Rocket Validator automatically checks your pages on the W3C Validator.
media attribute on a
<link> element has not been recognized.
This attribute specified what media the linked resource is optimized for. As an example, the following will link a general stylesheet, and a specific one for printing:
<head> <link rel="stylesheet" type="text/css" href="general.css"> <link rel="stylesheet" type="text/css" href="print.css" media="print"> </head>
Valid values for this attribute include:
all. Default, used for all media.
screen. Used for computer, tablets or smartphone screens.
Related W3C validator issues
<link> element has been found in an invalid body context. Check the attributes of the
<link> element and ensure it’s not within the
If the element is within the
<head> section, it may have been interpreted as a
body context depending on previous elements. For example, while this
<link> element is valid per se and is in the
<head> section, it is deemed invalid because the previous
<img> element made the validator consider it a
<!DOCTYPE html> <html lang=""> <head> <title>Test</title> <img src="photo.jpg" alt="A smiling cat" /> <link rel="canonical" href="https://example.com/" /> </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> <link rel="canonical" href="https://example.com/" /> </head> <body> <p>Some content</p> <img src="photo.jpg" alt="A smiling cat" /> </body> </html>
<link> element that is using the
preload value in the
rel attribute is missing the
as attribute, used to indicate the type of the resource.
preload value of the
rel attribute lets you declare fetch requests in the HTML’s
<head>, specifying resources that your page will need very soon, which you want to start loading early in the page lifecycle, before browsers’ main rendering machinery kicks in. This ensures they are available earlier and are less likely to block the page’s render, improving performance.
as attribute specifies the type of content being loaded by the
<link>, which is necessary for request matching, application of correct content security policy, and setting of correct
Accept request header.
contact is not a valid option for the
autocomplete attribute on an
All HTML elements may have the
hidden boolean attribute set. When specified on an element, it indicates that the element is not yet, or is no longer, relevant, so browsers won’t render it.
Boolean attributes don’t accept values, its presence represents the
true value and its absence represents the
<!-- This is invalid because the hidden attribute should not have a value set --> <div hidden="false"></div> <!-- The correct way to hide a div is like this --> <div hidden>This will be hidden</div> <!-- And to show the element, we just don't hide it --> <div>This won't be hidden</div>
<a> element has been found with an invalid
href attribute, containing more than one
# adjacent character.
# is used to separate the fragment part of an URI (typically used to indicate a section within a document). For example, this is a valid link to a URI containing a fragment:
The next example is invalid because it contains two adjacent
# characters, so that the fragment part would be
#pricing instead of
href attribute of an
<a> element contains an invalid character, that should be properly encoded as a URI percent-encoded character.
href attribute on the
link element must not be empty.
src attribute on an
<img> element contains an invalid character, that should be properly encoded as a URI percent-encoded character.
<a> tags can be used to link to an email address using the
mailto protocol in the
href attribute. Ensure that there is no space in the email address.
<a href="mailto: email@example.com">This is wrong as it contains an space</a> <a href="mailto:firstname.lastname@example.org">This is OK</a>
The at symbol (
@) should be percent-encoded as
%40 in order to include it at an
href attribute on an element
<link> contains a character that is not allowed, and should be encoded.
Some typical examples include the pipe character
| that should be replaced by its encoded alternative
%7C , and the left square bracket
[ that needs to be encoded as
<pattern> element has been found with an invalid ID. Check the format of the ID and ensure it does not start with a digit, full stop (.) or hyphen (-).
<pattern> element is used within
<svg> elements, which use XML 1.0 syntax. That syntax specifies that valid IDs only include designated characters (letters, digits, and a few punctuation marks), and do not start with a digit, a full stop (.) character, or a hyphen-minus (-) character.
type attribute on
<a> elements, when present, gives a hint on the MIME type of the linked resource, for example:
<a href="application/pdf" src="book.pdf">Read our book</a> <a href="image/jpeg" src="photo.jpeg">See a photo</a>
That is, we’re talking about the type of the linked resource, not the type of the
<a> element, as it’s sometimes misunderstood. The following example is invalid because
button is not a valid MIME type.
<a href="/order.php" type="button">Submit</a>
The value used to define the
type of a
link is not valid. You’re probably using a URL instead of a valid type.
Example of a valid
<link rel="icon" type="image/png" href="favicon.png">
When was the last time you validated your whole site?
Keep your sites healthy checking for A11Y/HTML issues on an automated schedule.