WebHACC

Description of Errors

WebHACC is a conformance checker (or validator) for Web documents, supporting latest Web standards including HTML5, Atom 1.0, CSS3.

Check your document, or learn more about WebHACC.

Character Encoding Layer Errors

Octet sequence {octets} is not an allowed representation of the character {char} — character reference {char:hexref} should be used instead.

No character is assigned to octet sequence {octets}.

Octet sequence {octets} is illegal.

The input stream is broken.

The input stream is encoded in ISO-2022-JP or its variant but is partially broken.

Note that an ISO-2022-JP stream must end in the ASCII state.

No character is assigned to octet sequence {octets}.

HTML5 Character Encoding Errors

Character encoding {text} is not allowed for HTML document.

The character encoding used for the document is not allowed for HTML document. The document is non‐conforming.

Character encoding {text} should not be used for HTML document.

The character encoding used for the document is not recommended for HTML document. The document is non‐conforming unless there is any good reason to use that encoding.

Use of UTF-8 is encouraged (this document is encoded in {text}).

Use of UTF-8 as the character encoding of the document is encouraged, though the use of another character encoding is still conforming.

Conformance for character encoding requirements cannot be checked, since the input is not a byte stream.

The conformance checker cannot detect whether the input document met the requirements on character encoding, since the document is not inputed as a serialized byte sequence. The document is not conforming if it is not encoded in an appropriate character encoding with appropriate labeling.

There is no character encoding declaration.

The document does not contain a character encoding declaration. Unless the character encoding is explicitly specified in lower‐level protocol, e.g. in HTTP, or is implied by BOM, there must be a character encoding declaration. The document is non‐conforming.

The long character encoding declaration syntax <meta http-equiv="Content-Type" content="text/html; charset=charset-name"> is obsolete. The new syntax is:

<meta charset="charset-name">

Note that the encoding declaration in XML declaration has no effect for HTML document.

No character encoding metadata is found in lower‐level protocol nor is there BOM, while character encoding {text} is not a superset of ASCII.

The document is not labeled with character encoding name in lower‐level protocol, e.g. in HTTP, and the document is not begin with BOM. In addition, the character encoding of the document is not a superset of ASCII. The document is non‐conforming.

Unless there is a BOM, the character encoding for the document must be specified in e.g. HTTP‐level, as:

Content-Type: text/html; charset=charset-name

Existence of HTML character encoding declaration, i.e. <meta charset="charset-name">, does not allow to omit charset parameter for HTML document encoded in non‐ASCII compatible encoding.

Character encodings Shift_JIS, Windows-31J, and ISO-2022-JP are not a superset of ASCII for the purpose of HTML conformance.

Character encoding of this document is sniffed as {text} (Sniffed because no explicit specification for the character encoding of this document is found in the transfer procotol headers).

Character encoding of this document is defaulted to {text} because no explicit specification for the character encoding of this document is found in the transfer procotol headers.

Results might be wrong, since the conformance checker cannot find an appropriate decoder for the character encoding used for the document.

The conformance checker cannot find an appropriate decoder for the character encoding used to encode characters in the document.

This error is raised if:

In either case, the result shown by the conformance checker might contain wrong errors caused by errorneous decoder or might not contain errors that should be raised if an appropriate decoder is used.

Conformance error checking for the character encoding {text} is not supported.

Sniffed character encoding {text} is same as the character encoding specified in the character encoding declaration. This is not an error.

While parsing the document as {text}, a character encoding declaration specifying a different character encoding is found. The document is reparsed.

While parsing a document in a character encoding, a character encoding declaration which declares the character encoding of the document as another character encoding is found. The occurence of this warning itself does not make the document non‐conforming. However, the failure of the first attempt to to detect the character encoding might be a result of non‐conformance of the document.

The document will be reparsed from the beginning. Some error or warning might be reported again.

These are suggestions to avoid this warning:

Coded Character Set Layer Errors

The NULL character is not allowed.

Code point {text} is not allowed.

Noncharacter {text} is found in the input stream.

Noncharacter code points are used in the input stream.

Noncharacter code points are reserved for internal processings. Their use for information interchanges are forbidden.

In addition, they are not allowed in HTML document.

Character {text} is not a Unicode character.

Use of character {text} is deprecated.

Use of character {text} is discouraged.

Code point {text} is not the preferred representation of that character.

Character {text} should not be used in many cases.

HTML5 Parse Errors in Tokenization Stage

Attribute name cannot contain characters ", ', and =.

Attribute value must be quoted by " or ' if it contains a ", ', or = character.

In an unquoted attribute value, a character " (U+0022 QUOTATION MARK), ' (U+0026 APOSTROPHE), or = (U+003D EQUAL SIGN) is contained. These characters are not allowed in unquoted attribute values, since they are used to quote attribute values or to separate attribute name and value.

This error is also raised if one try to use empty attribute value like <foo bar= baz=>; in this example, baz= is treated as an invalid attribute value for the attribute bar, not as another attribute.

The & character must be escaped as &amp;.

An & character which is not part of any reference appears in the input stream. The document is non‐conforming.

Any & character in URI (or IRI) must be escaped as &amp;.

The & character must be the first character of a reference:

Named entity reference
&entity-name;
where entity-name is the name of the character entity to be referenced.
Numeric character reference
&#d;
where d is the decimal representation of the code position of the character to be referenced.
Hexadecimal character reference
&#xh;
where h is the hexadecimal representation of the code position of the character to be referenced.

To represent & as a data character, use named entity reference:

&amp;

A </ string is not followed by a tag name.

There is a < (U+003C LESS-THAN SIGN) character immediately followed by a / (U+005F SOLIDUS) character, which is not part of any end tag, in the input stream. The document is non-conforming.

The </ sequence immediately followed by an EOF is interpreted as a string data of </.

The </ sequence as string data must be escaped as:

&lt;/

A < character is not followed by tag name or by a ! character.

A < (U+003C LESS-THAN SIGN) character which is not part of any markup appears in the input stream.

The < character as a data character must be escaped as:

&lt;

The decimal representation of the code position of a character must be specified after &#.

An & (U+0026 AMPERSAND) character immediately followed by a # (U+0023 NUMBER SIGN) character which is not part of any reference appears in the input stream. The document is non-conforming.

The string &# must be the first two characters of a reference:

Numeric character reference
&#d;
where d is the decimal representation of the code point of the character to be referenced.
Hexadecimal character reference
&#xh;
where h is the hexadecimal representation of the code point of the character to be referenced.

To represent &# as data characters, use a named entity reference for the & character:

&amp;#

The hexadecimal representation of the code position of a character must be specified after &#x.

The string &#x or &#X which is not part of any reference appears in the input stream. The document is non-conforming.

The string &#x or &#X must be the first three characters of a hexadecimal reference:

&#xh;
where h is the hexadecimal representation of the code point of the character to be referenced.

To represent &#x as data characters, use a named entity reference for the & character:

&amp;#x

String <! is not followed by --.

There is a < (U+003C LESS-THAN SIGN) character followed by a ! (U+0021 EXCLAMATION MARK) character, which is not followed by a -- or !DOCTYPE. The document is non-conforming.

Comments
In HTML document, comments must be introduced by <!-- (<! immediately followed by two -s) and must be terminated by -->. Strings <! not followed by -- and <!- not followed by - are not valid open delimiters for comments.
Marked sections, including CDATA sections
Marked sections are not allowed in HTML document.
Markup declarations
Markup declarations, except for DOCTYPE and comment declarations, are not allowed in HTML document.
String <!
String <! must be escaped as &lt;!.

String </ is not followed by tag name.

There is a < (U+003C LESS-THAN SIGN) character immediately followed by a / (U+005F SOLIDUS) character, which is not part of any end tag, in the input stream. The document is non-conforming.

The </ sequence not followed by a tag name is parsed as an opening of bogus comment.

The </ sequence as string data must be escaped as:

&lt;/

Character reference to {text} is not allowed.

Character reference to U+000D (CARRIAGE RETURN) is not allowed.

There is a -- sequence in a comment.

There is a - (U+002D HYPHEN-MINUS) character at the end of the comment or a -- sequence in the comment. The document is non-conforming.

Comments cannot contain a string --, as in XML. Unlike SGML, there cannot be more than one comments (where comment is an SGML term) in the comment declaration.

There are two attributes with name {text}.

There are more than one attributes with the same name in a tag. The document is non-conforming.

The motion attribute is not part of the HTML standard. Use img element with animation GIF instead.

Empty start tag (<>) is not allowed.

Empty end tag (</>) is not allowed.

End tag cannot have attributes.

Attribute value is not specified.

The attribute value is not specified after the = (U+003C EQUAL SIGN) character.

When an attribute value is empty, the = character after the attribute name must be specified as:

<foo bar>

Instead, quotation marks can be used to explicitly represent that the attribute value is empty, as:

<foo bar="">

... or like:

<foo bar=''>

Character reference to {text} is not allowed.

Polytheistic slash (/>) cannot be used for this element.

Polytheistic slash (/>) must not be used for the element. The document is non-conforming.

The polytheistic slash can only be used for base, link, meta, hr, br, img, embed, param, area, col, and input elements.

<script/>

The polytheistic slash cannot be used for script element. Even for an empty script element, there must be an explicit end tag </script>.

NOTE: Though some user agents interpret polytheistic slash for script element as the closing of the element, such usage is not allowed under the current standard.

<basefont/>, <bgsound/>, <frame/>, <keygen/>, <spacer/>, <wbr/>
These elements are themselves non-conforming.
<command/>, <event-source/>, <nest/>, or <source/>
Future revision of HTML5 parsing algorithm is expected to allow polytheistic slash for these elements.
<a/>, <p/>
These elements are not always empty and therefore polytheistic slash is not allowed. Use explicit end tag to represent empty element as:
<p></p>

Note that, unlike in XML, the polytheistic slash has no effect in HTML.

After the string <!DOCTYPE , the document type name must be specified.

A