HTML Checking for Large Sites
Rocket Validator automatically checks your pages on the W3C Validator.
A “meta” element with an “http-equiv” attribute whose value is “X-UA-Compatible” must have a “content” attribute with the value “IE=edge”.
The only value admitted for the attribute content
in a <meta http-equiv="X-UA-Compatible">
is currently IE=edge
. You’re probably seeing this issue because the page being validated includes the following meta tag:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
As the Google Chrome Frame plugin was discontinued on February 25, 2014, this is longer supported so you should change that meta tag to:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
According to this article in Wikipedia:
Google Chrome Frame was a plug-in designed for Internet Explorer based on the open-source Chromium project, first announced on September 22, 2009. It went stable in September 2010, on the first birthday of the project. It was discontinued on February 25, 2014 and is no longer supported.
The plug-in worked with Internet Explorer 6, 7, 8 and 9. It allowed suitably coded web pages to be displayed in Internet Explorer by Google Chrome’s versions of the WebKit layout engine and V8 JavaScript engine.
You can read the official post about retiring Google Chrome Frame that was posted in June 2013.
Related W3C validator issues
The <meta charset>
is expected to appear at the beginning of the document, within the first 1024 bytes. Move it to the beginning of the <head>
section, as in this example:
<head>
<meta charset="utf-8">
...
</head>
A character encoding declaration is a mechanism by which the character encoding used to store or transmit a document is specified. For HTML documents, the standard way to declare a document character encoding is by including a <meta>
tag with a charset
attribute, typically <meta charset="utf-8">
.
According to the W3C standard:
The element containing the character encoding declaration must be serialized completely within the first 1024 bytes of the document.
Source:
In order to define the charset encoding of an HTML document, both of these options are valid, but only one of them must appear in the document:
<!-- This is the preferred way -->
<meta charset="UTF-8">
<!-- This is the older way, also valid -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Read about specifying the character encoding
The <meta charset>
tag, used to define the character encoding, must appear only once in a document, within the <head>
section.
Learn more:
A <meta>
tag has been found that is either malformed, or in a bad place within the document. Check its attributes and context.
For example, the following HTML contains a valid <meta>
tag that is raising an issue because of bad context, caused by an <img>
tag that shouldn’t be there:
<!DOCTYPE html>
<html lang="">
<head>
<title>Test</title>
<img src="photo.jpg" alt="A smiling cat" />
<meta charset="utf-8" />
</head>
<body>
<p>Some content</p>
</body>
</html>
If we fix that document and move the <img>
tag within the body, the issue raised about <meta>
disappears because it’s now in a valid context:
<!DOCTYPE html>
<html lang="">
<head>
<title>Test</title>
<meta charset="utf-8" />
</head>
<body>
<p>Some content</p>
<img src="photo.jpg" alt="A smiling cat" />
</body>
</html>
Learn more:
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
A <meta>
tag has been found that is either malformed, or in a bad place within the document. Check its attributes and context.
For example, the following HTML contains a valid <meta>
tag that is raising an issue because of bad context, caused by an <img>
tag that shouldn’t be there:
<!DOCTYPE html>
<html lang="">
<head>
<title>Test</title>
<img src="photo.jpg" alt="A smiling cat" />
<meta name="description" content="Description of this page" />
</head>
<body>
<p>Some content</p>
</body>
</html>
If we fix that document and move the <img>
tag within the body, the issue raised about <meta>
disappears because it’s now in a valid context:
<!DOCTYPE html>
<html lang="">
<head>
<title>Test</title>
<meta name="description" content="Description of this page" />
</head>
<body>
<p>Some content</p>
<img src="photo.jpg" alt="A smiling cat" />
</body>
</html>
Learn more:
The value cache-control
is no longer a valid pragma directive. A better alternative is defining cache-control as an HTTP header.
Learn more:
According to W3C, http-equiv
value content-script-type
attribute is unknown for HTML5 meta markup.
Learn more:
According to W3C, http-equiv
value content-style-type
attribute is unknown for HTML5 meta markup.
Learn more:
A <meta>
element has an invalid value for the property
attribute, probably caused by invalid double quotes. Check out the double quotes, ”
should be "
.
The correct markup for this meta tag should be like:
<meta property="og:type" content="website" />
A <meta>
tag has been found in the document stating that the charset is windows-1251
, but it actually is utf-8
. You should update the tag to reflect the actual encoding of the document, for example:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
A <meta>
tag has been found in the document stating that the charset is windows-1252
, but it actually is utf-8
. You should update the tag to reflect the actual encoding of the document, for example:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
A <meta name="viewport">
element has been found where the allowed values for the viewport prevent users from zooming and scaling the document.
The user-scalable="no"
parameter disables browser zoom on a web page. The maximum-scale
parameter limits the amount the user can zoom. Both are problematic for users with low vision who rely on browser zoom to see the contents of a web page. Consider relaxing these values in order to allow users to resize the documents.
Learn more:
A <meta>
element without a content
, itemprop
or property
attributes has been found in an unexpected place.
Check its attributes and context - depending on the section of the document (<head>
or <body>
), the <meta>
element allows different attributes.
Learn more:
A <meta>
tag has been found that is missing its required content
. Example of a valid meta
tag:
<meta name="description" content="Description of the page" />
A <meta>
element without a itemprop
or property
attributes has been found in an unexpected place.
While the <meta>
element is commonly used within the <head>
section of the document, it can also be used within the <body>
section, for example in the context of defining microdata, as in this example:
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Price: $<span itemprop="price">1.00</span>
<meta itemprop="priceCurrency" content="USD" />
</div>
When used within the <body>
section, the <meta>
element is required to have a itemprop
or property
, and a content
attribute, and it can’t have a http-equiv
or charset
attribute.
A common cause for this issue is including a <meta>
element that was intended for the <head>
section (for example one containing a http-equiv
attribute in the <body>
, for example:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<form>
...
</form>
Learn more:
In HTML5 you’re encouraged to use Unicode (UTF-8) character encoding rather than a legacy character encoding such as Latin1 (Windows-1252 or ISO 8859-1).
In short, it can be just a matter of using <meta charset="utf-8"/>
in your document, but you should also ensure that your pages are also saved and served as UTF-8.
<meta>
tags, used for defining metadata about HTML documents, must appear within the <head>...</head>
section, but it has been found out of place. Check the document structure to ensure there are no <meta>
tags outside the head section.
A common cause of this issue is having a duplicated, out of place <head>...</head>
section. Ensure that this section appears in its proper place and is the only container for <meta>
tags.
The <meta>
element no longer accepts a scheme
attribute, it’s now obsolete and should be removed.
For example, old documents adhering to old definitions in DCMI (Dublin Core Metadata Initiative) use this HTML tag to define a date:
<meta name="DC.Date.Created" scheme="W3CDTF" content="2009-11-30" />
As the scheme
attribute is now obsolete, it should now be removed. The following HTML code will pass current validations, but you should check the exact definition to use if you want to keep using the DCMI tags.
<meta name="DC.Date.Created" content="2009-11-30" />
Learn more:
25,000 HTML checks per month. Is that enough for your site?
Save time using our automated web checker. Let our crawler check your web pages on the W3C Validator.