Skip to main content

HTML Guide

Attribute “http-equiv” not allowed on element “meta” at this point.

A <meta> element using the http-equiv attribute has been found in an unexpected place of the document. It should appear inside the <head> section, like in this example:

<!DOCTYPE html>
<html lang="">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Test</title>
  </head>
  <body>
    <p>Content of the page</p>
  </body>
</html>

The http-equiv attribute is used in web pages to simulate an HTTP response header. While HTTP response headers can be set from the server, not everyone has access to the server configuration, so an alternative is using <meta http-equiv> to define settings that would otherwise require setting an HTTP response header.

The most popular use of http-equiv are defining the content-type of the document as in the example above, although in HTML5 it’s preferred to use this instead:

<meta charset="UTF-8">

Another popular use of the http-equiv is setting an automatic reload of the web page, for example this will have the browser reload the page every 60 seconds:

<meta http-equiv="refresh" content="60">

However, refreshing a page automatically is a bad practice regarding accessibility, as users do not expect a page to do that, and doing so will move focus back to the top of the page, which may create a frustrating or confusing experience.

Other values that can be used with the http-equiv attribute include:

  • content-security-policy
  • content-length.
  • content-encoding
  • default-style
  • window-target

Related W3C validator issues