Reference > HTML errors
Errors due to non-conformance with the chosen HTML specification
Code
Summary
Details
E600
Unrecognised element
This error is often raised when an old element has been used when testing against a newer HTML specification. Alternatively, you may have misspelt the name. LINK TO STANDARD.
E601
This tag must not be nested within any other tags
This issue is normally due to structural errors with the page, such as placing tags in the wrong order.
E602
The
<!DOCTYPE>
tag should be the first HTML tag or content in the fileThe
<!DOCTYPE>
tag should appear before all other HTML tags or non-whitespace content (with XHTML it may appear after the XML declaration).E603
An end tag is not allowed for this element
This issue occurs when you use an end tag where no end tag is allowed according to the HTML specification being tested against. Correcting this issue is normally a matter of deleting the end tag indicated. LINK TO STANDARD.
E604
The matching end tag appears to be missing
According to the HTML specification being tested against, the tag must have an end
tag. Sometimes this error is caused by improperly nested tags where the end tag exists but cannot be matched with the corresponding start tag. LINK TO STANDARD.
E606
This tag or content must be nested within
<html>
tagsThe tag or content appears outside of the
<html>
tags, but it must be nested inside them. This error is typically caused by missing or misplaced <html>
, <head>
and <body>
start and end tags. Although these three tags are normally optional in HTML, it is poor practice to miss them off and often causes problems for search engine robots.E607
This tag or content must be nested within
<html>
tagsThe tag or content appears outside of the
<html>
tags, but it must be nested inside them. This error is typically caused by missing or misplaced <html>
, <head>
and <body>
start and end tags. The start and end tags for these three elements are mandatory for XHTML.E608
There must be a
<!DOCTYPE>
tag at the top of the page (if 'auto-detecting' then a best-fit <!DOCTYPE>
will be used)A
<!DOCTYPE>
tag should be placed before any other HTML tag or non-whitespace characters on the page. Sometimes the <!DOCTYPE>
tag is in the wrong place, but is usually missing altogether in these cases. A correct <!DOCTYPE>
tag is needed to ensure that the browser interprets the HTML correctly. See Recognised Doctypes.E6091
This tag or content is not allowed here. One of the following was expected: LIST OF VALID TYPES/TAGS
There are strict rules as to what tags may be nested within others, as well as the order and number of tags allowed. This error may also be caused by incorrectly nesting tags, missing end tags, or similar structural issues. So if it is not obvious what is wrong, fix any structural issues first. LINK TO STANDARD.
E6092
This tag or content is not allowed here
There are strict rules as to what tags may be nested within others, as well as the order and number of tags allowed. This error may also be caused by incorrectly nesting tags, missing end tags, or similar structural issues. So if it is not obvious what is wrong, fix any structural issues first. LINK TO STANDARD.
E6093
TAG NOT ALLOWED HERE
There are strict rules as to what tags may be nested within others, as well as the order and number of tags allowed. This error may also be caused by incorrectly nesting tags, missing end tags, or similar structural issues. So if it is not obvious what is wrong, fix any structural issues first. LINK TO STANDARD.
E6094
This tag or content is not allowed here. One of the following was expected: LIST OF VALID TYPES/TAGS
When using ARIA
role
there are additional rules for what HTML elements can be nested within others. This error may also be caused by incorrectly nesting tags, missing end tags, or similar structural issues. So if it is not obvious what is wrong, fix any structural issues first. See ARIA in HTML.E6095
Interactive elements are not allowed here
There are strict rules where interactive elements may appear. Note that as well as obvious interactive elements like buttons, adding a
tabindex
attribute to any element will also make it interactive. So if it is not obvious this is an interactive element, check the attributes too. This error may also be caused by incorrectly nesting tags, missing end tags, or similar structural issues. So if it is not obvious what is wrong, fix any structural issues first. LINK TO STANDARD.E6096
Interactive elements are not allowed here
When using ARIA
role
there are additional rules where interactive elements may appear. This error may also be caused by incorrectly nesting tags, missing end tags, or similar structural issues. So if it is not obvious what is wrong, fix any structural issues first. See ARIA in HTML.E6097
Because the parent TAG NAME is "transparent" only phrasing elements are allowed here
Elements that are "transparent" can only contain child elements that are allowed in their parent's element. In this case the grandparent element of this one only allows phrasing elements. So you need to replace this element with a phrasing one to fix this problem. LINK TO STANDARD.
E6098
Because the parent is TAG NAME only inline elements are allowed here
The
<ins>
and <del>
elements can only contain child elements that are allowed in their parent's element. In this case the grandparent element of this one only allows inline elements. So you need to replace this element with an inline one to fix this problem. LINK TO STANDARD.E610
One or more of the following tags are missing from within the enclosing tag: LIST OF MISSING TAGS
The HTML specification being tested against defines that the tag identified must have one or more specific tags nested within it. You should add one or more of the missing tags as appropriate. LINK TO STANDARD.
E611
Only one of this type of tag should be used within the enclosing tag
This error occurs when the specification only allows one of a certain tag to be nested within the enclosing tag, and more than one tag was found. LINK TO STANDARD.
E612
There are too many h1-h6 elements within the
<hgroup>
This error occurs if there are more than one of the h1-h6 elements. Remove the excess ones to resolve this. LINK TO STANDARD.
E613
Exactly one of the h1-h6 elements is expected
This error occurs if there are no h1-h6 elements within the
<hgroup>
. Add one of the h1-h6 elements to the group to resolve this. LINK TO STANDARD.E614
The
<!DOCTYPE>
tag does not match the HTML specification being tested againstThe
<!DOCTYPE>
tag should exactly match the one that uniquely identifies the specification being tested. See Recognised Doctypes.E620
The ATTRIBUTE NAME attribute is not allowed here
The most common reasons for this error are the use of an old unsupported attribute, a new one which is not yet part of the specification being tested against, or the misuse of attributes for use with JavaScript. If the attribute is for use with AngularJS, then see the FAQ for more information. LINK TO STANDARD.
E621
The ATTRIBUTE NAME attribute for this tag is missing
The HTML specification being tested against requires that the attribute indicated must be used. LINK TO STANDARD.
E622
The ATTRIBUTE NAME attribute does not have a valid value: LIST OF VALID VALUES
The HTML specification being tested against defines certain valid values for each attribute. Usually a list of valid values will be displayed when you see this message. Note that many values must be in lower case in XHTML, including the 'x' in numeric hex entity references. Also note that what values are allowed varies from standard to standard.
E623
The values of all attributes must be enclosed by quotes
In XHTML all attribute values must be enclosed by quotes. See XHTML 1.0 Attributes. This error is sometimes caused by a badly formatted tag possibly with single or double quotes in the wrong place or mismatched. Check that there are no extra or missing quote characters.
E624
The
content
attribute should have a value of application/xhtml+xml
for XHTMLNote that
<meta>
tags override HTTP headers and XHTML should be served with a content type of application/xhtml+xml
, but the content type used was not recognised. See Media Types.E625
The
content
attribute should have a value of 'text/html' for HTMLNote that
<meta>
tags override HTTP headers and HTML should be served with a content type of 'text/html'. See Media Types.E626
All element names must be in lower case
XHTML is case-sensitive and in XHTML all element names are defined as being in lower case. See XHTML 1.0 Elements.
E627
All attribute names must be in lower case: ATTRIBUTE NAME
XHTML is case-sensitive and in XHTML all attribute names are defined as being in lower case. See XHTML 1.0 Elements.
E628
Self-closing tags are not allowed in HTML 1-4
In older versions of HTML you are not allowed to end a tag with the '/' character. This is only valid with HTML5 and XHTML documents.
E630
The
name
and id
attributes must have the same valueWhen
name
and id
attributes appear in the same element they must have the same value. See HTML 4.01 Anchors.E631
Anchor
name
and id
attributes must be unique in the same document. See matching tags on lines: LINE NUMBERSAll
id
and anchor name
attributes in the same document must have unique values. See HTML5 IDs, and HTML 4.01 Anchors.E633
The
content-type
http header should have a value of application/xhtml+xml
for XHTMLXHTML should be served with a content type of
application/xhtml+xml
, but the content type used was not recognised. See Media Types.E634
The
content-type
http header should have a value of 'text/html' for HTMLHTML should be served with a content type of
text/html
. See Media Types.E635
The XML declaration must appear before any other content or tags
The XML declaration (if supplied) must be the first thing in the file, before any other content or tags.
E636
Only one XML declaration is allowed
Only one XML declaration may be supplied and this must be the first thing in the file, before any other content or tags.
E637
The XML declaration must contain a
version
attributeThe XML declaration must contain a
version
attribute. Check the spelling of any attributes supplied.E638
Invalid value for the
version
attributeThe
version
attribute must be set to the string '1.0'.E639
Invalid value for the
encoding
attributeThe
encoding
attribute must begin with a letter [a-zA-Z] and may be followed by any number of letters, digits [0-9], hyphens, underscores, and periods.E640
Invalid value for the
standalone
attributeThe
standalone
attribute must be set to either 'yes' or 'no'.E641
Unrecognised or invalid attribute: ATTRIBUTE NAME
The XML declaration contains an unrecognised or invalid attribute. Check for spelling mistakes.
E642
The root element name 'html' is missing from the
<!DOCTYPE>
tagThe root element name 'html' is either missing from the
<!DOCTYPE>
tag, misspelt, or the wrong root element name has been used. See Recognised Doctypes.E643
The keyword 'PUBLIC' is missing from the
<!DOCTYPE>
tagThe keyword 'PUBLIC' is either missing from the
<!DOCTYPE>
tag, or misspelt. See Recognised Doctypes.E644
The word '!DOCTYPE' must be in uppercase for XHTML documents
XHTML is case-sensitive and the word '!DOCTYPE' must be all in uppercase. See Recognised Doctypes.
E645
The keyword 'PUBLIC' must be in uppercase for XHTML documents
XHTML is case-sensitive and the word 'PUBLIC' must be all in uppercase. See Recognised Doctypes.
E646
The root element name 'html' must be in lowercase for XHTML documents
XHTML is case-sensitive and the root element name 'html' must be all in lowercase. See Recognised Doctypes.
E647
Unrecognised character set
The character set specified is not recognised. This may be because it is misspelt.
E648
There can be only one labelable element associated with a
<label>
The
<label>
tag can only refer to one labelable element. In this case there is either more than one labelable element within the <label>
tag, and/or the <label>
tag has a for
attribute which refers to a labelable element that is found elsewhere.E649
The default scripting language must be specified for ATTRIBUTE NAME
When intrinsic events such as
onclick
and onmouseover
are used, the default scripting language should be specified using a Content-Script-Type HTTP header or <meta>
tag. See Default Scripting Language.E650
The default style sheet language must be specified when
style
attributes are usedThe default style sheet language should be specified using a Content-Style-Type HTTP header or
<meta>
tag. See Default Style Sheet Language.E651
The value of the
for
attribute must match the id
of the control element it refers toWhen you include a
for
attribute to associate a label with a control you must provide a control with a matching id
value in the same document. See The for
Attribute.E652
The values in the
headers
attribute must have matching the table cell 'ids'When you include a
headers
attribute to associate one cell with another you must provide matching 'ids' in <th>
cells in the same table. See HTML5: TD and TH elements, and HTML 4.01: TH and TD elements.E653
The value of the
usemap
attribute must match the id
or name
of the <map>
it refers toWhen you include a
usemap
attribute for a client-side map you must provide a <map>
with a matching id
or name
.E654
The keyword 'SYSTEM' is missing from the
<!DOCTYPE>
tagThe keyword 'SYSTEM' is either missing from the
<!DOCTYPE>
tag, or misspelt. See Recognised Doctypes.E655
The keyword 'SYSTEM' must be in uppercase for XHTML documents
XHTML is case-sensitive and the keyword 'SYSTEM' must be all in uppercase. See Recognised Doctypes.
E656
The ATTRIBUTE NAME attribute has an invalid character at position: INDEX
The specification being tested against does not allow attribute names with certain characters in them, this restriction may include namespace prefixes.
E657
The
xml:lang
and lang
attributes must have the same valueWhen
xml:lang
and lang
attributes appear in the same element they must have the same value. See The lang
and xml:lang
AttributesE658
The
lang
attribute is missingWhen the
xml:lang
attribute is used you must also add a lang
attribute to the same element. See The lang
and xml:lang
Attributes.E659
The values in the
for
attribute must have matching idsWhen you include a
for
attribute each of the ids listed must match elements elsewhere in the document.E660
The value of the
list
attribute must match the id
of the <datalist>
it refers toWhen you include a
list
attribute you must provide a <datalist>
with a matching id
.E661
The value of the
contextmenu
attribute must match the id
of the <menu>
it refers toWhen you include a
contextmenu
attribute you must provide a <menu>
with a matching id
.E662
The value of the
form
attribute must match the id
or name
(if pre-HTML5) of the <form>
it refers toWhen you include a
form
attribute you must provide a <form>
with a matching id
or name
(if pre-HTML5).E663
The value of the
refid
attribute must match the id
of the element it refers toWhen you include a
refid
attribute you must provide an element with a matching id
.E664
An attribute is not allowed for this input
type
For each
type
attribute only a limited set of other attributes are allowed. LINK TO STANDARD.E665
Attribute missing, or conflicting ones specified
Exactly one of the
name
, http-equiv
, charset
, property
, and itemprop
attributes must be specified.E666
Only one
charset
may be specified per documentYou can only use one
<meta>
tag with a charset
, or http-equiv=content-type
attribute, per document. You must not specify a charset
with <iframe>
srcdoc
. See Character Encoding Declaration.E667
For HTML5 documents the value of
charset
must be a case-insensitive match for utf-8
HTML5 only supports documents encoded using
UTF-8
. See Character Encoding DeclarationE668
Missing value for
content
attributeIf either
name
, http-equiv
, property
or itemprop
is specified, then the content
attribute must have a value.E669
The ATTRIBUTE NAME attribute is not allowed in this context
The HTML specification being tested against specifies that the attribute is not allowed due to special restrictions. LINK TO STANDARD.
E670
Invalid value for
type
attributeIf the
language
attribute is specified on the <script>
tag then the type
attribute must be omitted or be equal to text/javascript
.E671
The charset part of the
content
attribute is missingThe
content
attribute must contain charset=utf-8
.E672
Obsolete value for
http-equiv
Using the
<meta>
element to specify the document-wide default language is obsolete. Consider specifying the language on the root element instead.E673
The
summary
attribute is obsoleteAuthors are encouraged to consider whether the explanatory text in the
summary
attribute is likely to be useful to the visually impaired, and whether it would be more useful to the visually unimpaired to put this before the table or in a <caption>.E677
Self-closing tags are not allowed for this element
You can only use self-closing tags with 'void' elements whose content model is EMPTY. See Start Tags.
E679
More than one open
<details>
in same name group. See matching tags on lines: LINE NUMBERSA document must not contain more than one
<details>
element in the same details name group that has the open
attribute present. You need to remove the excess open
attribute(s), or use different name
values. See Details Name.E680
The value of the
menu
attribute must match the id
of the <menu>
it refers toWhen you include a
menu
attribute you must provide a <menu>
with a matching id
.E681
ARIA attributes such as
role
and aria-*
are invalid hereSome elements (sometimes combined with certain attributes) cannot have ARIA attributes specified. See ARIA in HTML.
E682
The value of the
role
attribute is not valid for this elementElements can only have specific roles as defined by the ARIA specification. So, you may be better off using a more appropriate element for this role. See ARIA in HTML.
E683
The ATTRIBUTE NAME attribute for this ARIA
role
is missingThe ARIA specification requires that the attribute indicated should be used with the specified roles. See ARIA 1.2.
E684
The ATTRIBUTE NAME attribute is not allowed in this context
The ARIA specification only allows certain
aria-*
attributes to be used with certain roles. See ARIA 1.2.E685
Elements with the ROLE role must be owned by an element with one of these roles: LIST OF ROLES
The ARIA specification requires that elements with certain roles must be contained within or owned by elements with other roles. So you need to add one of the roles listed to an owning element. See ARIA 1.2.
E686
The value of the attribute must match an
id
in the same documentEach of the ids listed for this aria attribute must match elements elsewhere in the document. See ARIA 1.2.
E687
The value of the
alt
attribute must contain a non-empty stringThe
alt
attribute must be present, and must contain a non-empty string giving the label that would be appropriate for an equivalent button if the image was unavailable. See Image Button.E6881
Do not use
role=presentation|none
with a focusable elementUsing this with an interactive element, or one with a positive
tabindex
, will result in some users focusing on 'nothing'. Remove the role, or use tablindex=-1
so it is not sequentially focusable. See Fourth Rule of ARIA Use.E6882
Do not use
aria-hidden=true
with a focusable elementUsing this with an interactive element, or one with a positive
tabindex
, will result in some users focusing on 'nothing' when they tab to it. Remove the aria-hidden
, or use tablindex=-1
so it is not sequentially focusable. See Fourth Rule of ARIA Use.E689
Do not mix
role=presentation|none
and global ARIA attributesWhen global ARIA attributes are present using
role=presentation|none
has no effect. You should either remove all the aria-*
attributes or change or remove the role
. See Conditions that cause 'presentation' to be ignored.E690
Elements with the ROLE role must own an element with one of these roles: LIST OF ROLES
The ARIA specification requires that elements with certain roles must contain or own elements with specific roles. So you need to add one or more of the roles listed to an owned element. See ARIA 1.2.
E691
You must not use ARIA ATTRIBUTE NAME as this conflicts with ATTRIBUTE NAME
Web developers must not use an
aria-*
attribute when it conflicts with an equivalent regular attribute for an element. See ARIA in HTML.E692
You must not use
aria-hidden=true
hereUsing
aria-hidden=true
to hide things is not allowed in this context. See ARIA in HTML.E693
Missing
aria-roledescription
attributeReference > HTML warnings
Warnings due to non-conformance with the chosen HTML specification
Code
Summary
Details
W600
The ATTRIBUTE NAME attribute has a boolean value, and this may be ignored or cause errors in older browsers/robots
Some older browsers and search engine robots do not recognise XHTML style boolean attributes such as
selected="selected"
. For backwards compatibility just use the attribute without any value, like 'selected'W601
The ATTRIBUTE NAME attribute for this tag is recommended, but missing
Although this attribute is not required it is recommended that you add it for clarity.
W602
The
<!DOCTYPE>
tag does not match the HTML specification being tested againstThe
<!DOCTYPE>
tag should exactly match the one that uniquely identifies the specification being tested. See Recognised Doctypes.W603
The system ID is missing from the
<!DOCTYPE>
tagAlthough not a serious problem, the
<!DOCTYPE>
tag should exactly match the one that uniquely identifies the specification that the page follows. In this case the system ID is missing and should be added for completeness. This is a URL pointing to the DTD used to test the page. See Recognised Doctypes.W605
Duplicate tags found
Duplicate tags have been found with the same attributes. Although this should not affect the page, it indicates that a mistake may have been made.
W607
The
content
attribute should have a value of application/xhtml+xml
for XHTMLNote that
<meta>
tags override HTTP headers and XHTML should be served with a content type of application/xhtml+xml
. See Media Types.W608
The
content-type
http header should have a value of application/xhtml+xml
for XHTMLXHTML should be served with a content type of
application/xhtml+xml
. See Media Types.W609
The
content-type
HTTP header specifies a different character setThe
content-type
HTTP header specifies a different character set to that specified in the tag. In this case the HTTP header takes precedence.W610
The BOM specifies a different character set
The BOM (Byte Order Mark) of the document specifies a different character set to that specified in the tag. In this case the BOM takes precedence.
W611
No character set is specified in either the HTTP header,
<meta>
tag, or XML declarationThe character set (character encoding) should be specified in either a HTTP header or
<meta>
tag, or XML declaration for XHTML documents. If it isn't then the user agent may select an incorrect character set by mistake. See HTML5: Character Encoding, and HTML 4.01: Character Encoding.W613
The
border
attribute is obsoleteAuthors should not specify a
border
attribute on an <img> element. CSS should be used instead.W614
The
name
attribute is obsoleteThe
name
attribute on the <a>
element is obsolete. Consider putting an id
attribute on the nearest container instead. See Obsolete Features.W616
The
language
attribute is obsoleteAuthors should not specify the
language
attribute on the <script>
element. The type
attribute should be used instead.W617
With XHTML you should not use the
content
attribute to set the content type or character setWith XHTML the character set should be set by an XML declaration or HTTP header.
W618
This attribute is obsolete: ATTRIBUTE NAME
The attribute indicated is considered obsolete and so should not be used. Browsers will often ignore obsolete attributes. In most cases there is a better alternative using CSS or ARIA, or the attribute is considered redundant.
W619
Unrecognised value for the
name
attributeThe
name
attribute in the <meta>
element is restricted to values documented in the HTML5 specification with extensions in the WHATWG Wiki. Note that Total Validator will not recognise changes to the wiki after its release date. So, you will have to wait until the next release of Total Validator before new names are recognised. See Meta Extensions.W620
You should not use ARIA roles or attributes, that are the default for the element
Web developers should not set the ARIA
role
and aria-*
attributes to values that match the default implicit ARIA semantics. See ARIA in HTML.W621
You should not use ARIA ATTRIBUTE NAME in place of ATTRIBUTE NAME
Web developers should not use
aria-*
attributes when there is an equivalent regular attribute for an element. See ARIA in HTML.W622
The ARIA FEATURE has been deprecated
Deprecated features could be removed at any time, so you should not rely on them. The ARIA specification will usually provide an alternative or state why it should not be used at all. See ARIA 1.2.
W623
Use the
lang
attribute to denote the primary language of the documentYou should always identify the primary natural language of a document using a
lang
attribute on the <html>
tag. See Declaring language in HTML.W624
You should not use the
generic
roleThe
generic
role is the implicit role of generic elements for use by user agents only. It should not be used by web authors. See ARIA in HTML.W625
You should use the elements h1-h6 instead of the 'heading' role
The 'heading' role and 'aria-level' attribute should only be used to retrofit accessibility on legacy code that you cannot make major changes to. See First Rule of ARIA Use.
W626
Avoid using ARIA roles that are not recommended
If possible, consider using a different HTML element which allows the specified role. See ARIA in HTML.
W690
The parent tag has a role that must only own an element with one of these roles: LIST OF ROLES
The ARIA specification requires that elements with certain roles must only contain or own elements with specific roles. So you need to move or remove this, or change its
role
. See ARIA 1.2.