<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:d="http://suika.fam.cx/~wakaba/archive/2007/wdcc-desc/"
    id="error-description">
<head>
<title xml:lang="en">Description of Errors &#x2014; 
Web Document Conformance Checker (BETA)</title>
<link rel="stylesheet" href="cc-style"/>
<link rel="license" href="#license"/>
</head>
<body>
<h1>Description of Errors</h1>

<section id="html5-tokenize-error">
<h2>HTML5 Parse Errors in Tokenization Stage</h2>

<d:item name="after html"
    class="parse-error">
  <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
  is not allowed after the end tag <code>&lt;/html></code>.</d:message>
  <d:desc xml:lang="en">
    <p>The start or end tag of an element appears after the
    <code>html</code> element has been closed.  The document is
    non-conforming.</p>

    <p>Any content of the document other than comments
    must be put into the <code>html</code> element.</p>
  </d:desc>
</d:item>

<d:item name="after body"
    class="parse-error">
  <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
  is not allowed after the end tag <code>&lt;/body></code>.</d:message>
  <d:desc xml:lang="en">
    <p>The start or end tag of an element appears after the
    <code>body</code> element has been closed.  The document is
    non-conforming.</p>

    <p>Any content of the document other than <code>head</code>
    contents and comments must be put into the <code>body</code>
    element.</p>
  </d:desc>
</d:item>

<d:item name="bare ero"
    class="tokenize-error">
  <d:message xml:lang="en">The <code>&amp;</code> character must
  introduce a reference.</d:message>
  <d:desc xml:lang="en">
    <p>An <code>&amp;</code> (<code>U+0026</code>
    <code class="charname">AMPERSAND</code>) character which
    is not part of any reference appears in the input stream.
    The document is non-conforming.</p>

    <p>The <code>&amp;</code> character must
    be the first character of a reference:
      <dl>
      <dt>Named entity reference</dt>
          <dd><pre class="html example"><code>&amp;<var>entity-name</var>;</code></pre>
          where <var>entity-name</var> is the name of the
          character entity to be referenced.</dd>
      <dt>Numeric character reference</dt>
          <dd><pre class="html example"><code>&amp;#<var>d</var>;</code></pre>
          where <var>d</var> is the decimal representation of
          the code position of the character to be referenced.</dd>
      <dt>Hexadecimal character reference</dt>
          <dd><pre class="html example"><code>&amp;#x<var>h</var>;</code></pre>
          where <var>h</var> is the hexadecimal representation
          of the code position of the character to be referenced.</dd>
      </dl>
    </p>

    <p>To represent <code>&amp;</code> as a data character, use
    named entity reference:
      <pre class="html example"><code>&amp;amp;</code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="bare etago"
    class="tokenize-error">
  <d:message xml:lang="en">A <code>&lt;/</code> string is not followed
  by a tag name.</d:message><!-- </ EOF -->
  <d:desc xml:lang="en">
    <p>There is a <code>&lt;</code> (<code>U+003C</code> 
    <code class="charname">LESS-THAN SIGN</code>) character
    immediately followed by a <code>/</code> (<code>U+005F</code>
    <code>SOLIDUS</code>) character, which is not part
    of any end tag, in the input stream.  The document
    is non-conforming.</p>

    <p>The <code>&lt;/</code> sequence immediately followed
    by an <abbr title="End of file pseudo-character">EOF</abbr> is
    interpreted as a string data of <code>&lt;/</code>.</p>

    <p>The <code>&lt;/</code> sequence as string data must
    be escaped as:
    <pre class="html example"><code>&amp;lt;/</code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="bare stago"
    class="tokenize-error">
  <d:message xml:lang="en">A <code>&lt;</code> character is not followed
  by tag name or by a <code>!</code> character.</d:message>
  <d:desc xml:lang="en">
    <p>A <code>&lt;</code> (<code>U+003C</code> 
    <code class="charname">LESS-THAN SIGN</code>) character which is not part
    of any markup appears in the input stream.</p>

    <p>The <code>&lt;</code> character as a data character must
    be escaped as:
    <pre class="html example"><code>&amp;lt;</code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="bare nero"
    class="tokenize-error">
  <d:message xml:lang="en">The decimal representation of the code position
  of a character must be specified after <code>&amp;#</code>.</d:message>
  <d:desc xml:lang="en">
    <p>An <code>&amp;</code> (<code>U+0026</code>
    <code class="charname">AMPERSAND</code>) character immediately
    followed by a <code>#</code> (<code>U+0023</code>
    <code>NUMBER SIGN</code>) character which
    is not part of any reference appears in the input stream.
    The document is non-conforming.</p>

    <p>The string <code>&amp;#</code> must be the first two characters
    of a reference:
      <dl>
      <dt>Numeric character reference</dt>
          <dd><pre class="html example"><code>&amp;#<var>d</var>;</code></pre>
          where <var>d</var> is the decimal representation of
          the code point of the character to be referenced.</dd>
      <dt>Hexadecimal character reference</dt>
          <dd><pre class="html example"><code>&amp;#x<var>h</var>;</code></pre>
          where <var>h</var> is the hexadecimal representation
          of the code point of the character to be referenced.</dd>
      </dl>
    </p>

    <p>To represent <code>&amp;#</code> as data characters, use
    a named entity reference for the <code>&amp;</code> character:
      <pre class="html example"><code>&amp;amp;#</code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="bare hcro"
    class="tokenize-error">
  <d:message xml:lang="en">The hexadecimal representation of the code position
  of a character must be specified after <code>&amp;#x</code>.</d:message>
  <d:desc xml:lang="en">
   <p>The string <code>&amp;#x</code> or <code>&amp;#X</code> which
   is not part of any reference appears in the input stream.
    The document is non-conforming.</p>

    <p>The string <code>&amp;#x</code> or <code>&amp;#X</code> must
    be the first three characters of a hexadecimal reference:
      <pre class="html example"><code>&amp;#x<var>h</var>;</code></pre>
    where <var>h</var> is the hexadecimal representation
    of the code point of the character to be referenced.</p>

    <p>To represent <code>&amp;#x</code> as data characters, use
    a named entity reference for the <code>&amp;</code> character:
      <pre class="html example"><code>&amp;amp;#x</code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="bogus end tag"
    class="tokenize-error">
  <d:message xml:lang="en">A <code>&lt;/</code> string is not followed
  by a tag name.</d:message><!-- </ non-name-start-char-non-EOF -->
  <d:desc xml:lang="en">
    <p>There is a <code>&lt;</code> (<code>U+003C</code> 
    <code class="charname">LESS-THAN SIGN</code>) character
    immediately followed by a <code>/</code> (<code>U+005F</code>
    <code>SOLIDUS</code>) character, which is not part
    of any end tag, in the input stream.  The document
    is non-conforming.</p>

    <p>The <code>&lt;/</code> sequence not followed by a
    tag name is parsed as an opening of bogus comment.</p>

    <p>The <code>&lt;/</code> sequence as string data must
    be escaped as:
    <pre class="html example"><code>&amp;lt;/</code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="dash in comment"
    class="tokenize-error">
  <d:message xml:lang="en">There is a <code>--</code> sequence
  in a comment.</d:message>
  <d:desc xml:lang="en">
    <p>There is a <code>-</code> (<code>U+002D</code>
    <code class="charname">HYPHEN-MINUS</code>) character 
    at the end of the comment or a <code>--</code> sequence
    in the comment.  The document is non-conforming.</p>

    <p>Comments cannot contain a string <code>--</code>, as in XML.
    Unlike SGML, there cannot be more than one comments
    (where <i>comment</i> is an SGML term) in the comment
    declaration.</p>
  </d:desc>
</d:item>

<d:item name="duplicate attribute"
    class="tokenize-error">
  <d:message xml:lang="en">There are two attributes with name
      <code><var>$0</var></code>.</d:message>
  <d:desc xml:lang="en">
    <p>There are more than one attributes with the same
    name in a tag.  The document is non-conforming.</p>

    <p>The <code>motion</code> attribute is not part of the HTML standard.
    Use <code>img</code> element with animation GIF instead.</p>
  </d:desc>
</d:item>

<d:item name="nestc"
    class="tokenize-error">
  <d:message xml:lang="en">Void element syntax (<code>/></code>) cannot be
  used for this element.</d:message>
  <d:desc xml:lang="en">
    <p>Void element syntax (<code>/></code>) must not be used
    for the element.  The document is non-conforming.</p>

    <p>The void element syntax can only be
    used for <code>base</code>, <code>link</code>, <code>meta</code>,
    <code>hr</code>, <code>br</code>, <code>img</code>, 
    <code>embed</code>, <code>param</code>, <code>area</code>,
    <code>col</code>, and <code>input</code> elements.</p>

    <p>Note that, unlike in XML, the void element syntax has
    no effect in HTML.</p>
  </d:desc>
</d:item>


<d:item name="pio"
    class="tokenize-error">
  <d:message xml:lang="en">Processing instruction 
  (<code>&lt;?<var>...</var>?></code>) cannot be used.</d:message>
  <d:desc xml:lang="en">
    <p>Processing instructions (<code>&lt;?<var>...</var>?></code>),
    including XML declaration (<code>&lt;?xml <var>...</var>?></code>)
    and XML style sheet <abbr title="processing instruction">PI</abbr>
    (<code>&lt;xml-stylesheet <var>...</var>?></code>), are not allowed 
    in the HTML syntax.  The document is non-conforming.</p>

    <p>If it is necessary to embed a processing instruction
    in the HTML document, you must use the XML syntax instead.</p>

    <p>In the HTML syntax, XML declaration is not necessary.</p>

    <p>Instead of XML style sheet,
    <abbr title="processing instruction">PI</abbr>s, you must
    use the HTML <code>link</code> element whose <code>rel</code>
    attribute is set to <code>stylesheet</code> (or 
    <code>alternate stylesheet</code> for an aleternate style sheet).</p>

    <p>Web browsers will parse processing instructions as bogus
    comments.  Some legacy Web browsers, such as IE:mac and
    some mobile browsers, will display processing instructions
    as string.</p>
  </d:desc>
</d:item>

</section>

<section id="html5-parse-errors">
<h2>HTML5 Parse Errors in Tree Construction Stage</h2>

<d:item name="after head"
    class="parse-error">
  <d:message xml:lang="en">The <code><var>$0</var></code> element cannot be
  inserted between <code>head</code> and <code>body</code> elements.</d:message>
  <d:desc xml:lang="en">
    <p>A start tag appears after the <code>head</code> element is closed
    but before the <code>body</code> element is opened.
    The document is non-conforming.</p>
  </d:desc>
</d:item>

<d:item name="DOCTYPE in the middle"
    class="parse-error">
  <d:message xml:lang="en">A <code>DOCTYPE</code> appears after any
  element or data character has been seen.</d:message>
  <d:desc xml:lang="en">
    <p>A <code>DOCTYPE</code> appears after any element or data character
    has been seen.  The document is non-conforming.</p>
    
    <p>The <code>DOCTYPE</code> must be placed before any
    tag, reference, or data character.  Only white space characters
    and comments can be inserted before the <code>DOCTYPE</code>.</p>
  </d:desc>
</d:item>

<d:item name="in a:a"
    class="parse-error">
  <d:message xml:lang="en">Anchor cannot be nested.</d:message>
  <d:desc xml:lang="en">
    <p>HTML <code>a</code> elements cannot be nested.
    The document is non-conforming.</p>

    <p>In the HTML syntax, a start tag of the <code>a</code>
    implies the end tag of any opening <code>a</code> element.</p>
  </d:desc>
</d:item>

<d:item name="in body"
    class="parse-error">
  <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
  is not allowed in a <code>body</code> element.</d:message>
  <d:desc xml:lang="en">
    <p>The start or end tag of an element, which 
    cannot be a descendant of <code>body</code> element, appears
    in the input stream while the <code>body</code> element has been opened.
    The document is non-conforming.</p>
  </d:desc>
</d:item>

<d:item name="in head:head"
    class="parse-error">
  <d:message xml:lang="en">Start tag <code>&lt;<var>head</var>&gt;</code>
  is not allowed in the <code>head</code> element.</d:message>
  <d:desc xml:lang="en">
    <p>There is a start tag <code>&lt;head></code> in the
    <code>&lt;head></code> element.  The document is non-conforming.</p>

    <p>In an HTML document there must not be more than
    one <code>head</code> element, therefore no more than one
    start tag <code>&lt;head></code> can appear in the input stream.</p>
  </d:desc>
</d:item>

<d:item name="in table"
    class="parse-error">
  <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
  is not allowed in a <code>table</code> element.</d:message>
  <d:desc xml:lang="en">
    <p>The start or end tag of an element, which
    cannot be a child of <code>table</code> element, appears
    in the input stream while the <code>table</code> element has been opened
    but no other element has been opened.  The document is non-conforming.</p>

    <p>In <code>table</code>, only table related elements
    are allowed; any other element must be contained in
    <code>td</code> or <code>th</code> element to form 
    a part of the table, or <code>caption</code> element to create
    a table caption.</p>
  </d:desc>
</d:item>

<d:item name="in table:#character"
    class="parse-error">
  <d:message xml:lang="en">Data character is not allowed in 
  <code>table</code>.</d:message>
  <d:desc xml:lang="en">
    <p>A data character appears in <code>table</code>.  The document
    is non-conforming.</p>

    <p>In <code>table</code>, only table related elements
    are allowed; any other element and data character must be contained in
    <code>td</code> or <code>th</code> element to form 
    a part of the table, or <code>caption</code> element to create
    a table caption.</p>
  </d:desc>
</d:item>

<d:item name="missing start tag:tr"
    class="parse-error">
  <d:message xml:lang="en">Start tag of <code>tr</code>
  element is missing.</d:message>
  <d:desc>
    <p>Start tag of a <code>tr</code> element, which is <em>not</em>
    optional, is missing.  The document is non-conforming.</p>

    <p>In a table section, a <code>&lt;tr></code> start tag
    must occur before any <code>&lt;td></code> or
    <code>&lt;th></code> start tag.  Though the HTML5 parser
    implies the <code>&lt;tr></code> start tag before
    these start tags, it must be explicitly specified.</p>
  </d:desc>
</d:item>

<d:item name="no DOCTYPE"
    class="parse-error">
  <d:message xml:lang="en">This document does not start with a
  <code>DOCTYPE</code>.</d:message>
  <d:desc>
    <p>The document does not start with a <code>DOCTYPE</code>.
    The document is non-conforming.</p>

    <p>An HTML document must start by a <code>DOCTYPE</code>:
      <pre class="html example"><code>&lt;!DOCTYPE HTML></code></pre>
    </p>

    <p>Only white space characters and comments are allowed
    before the <code>DOCTYPE</code>.</p>
  </d:desc>
</d:item>

<d:item name="not closed"
    class="parse-error">
  <d:message xml:lang="en">Element <code><var>$0</var></code> is not
  closed.</d:message>
  <d:desc>
    <p>End tag of an element is not found before, for example,
    an end tag of another element appears or
    the end of the document.  The document is non-conforming.</p>
  </d:desc>
</d:item>

<d:item name="not first start tag"
    class="parse-error">
  <d:message xml:lang="en">This <code>&lt;html></code> tag is not
  the first start tag.</d:message>
  <d:desc>
    <p>There is a start tag of the <code>html</code> element
    that it not the first start tag in the input stream.
    The document is non-conforming.</p>

    <p>In an HTML document, there cannot be more than one
    <code>html</code> element and therefore there cannot be
    more than one <code>&lt;html></code> tag.  In addition,
    nothing can be placed before the <code>&lt;html></code> tag
    except a <code>DOCTYPE</code>, white space characters, 
    and comments.</p>
  </d:desc>
</d:item>

<d:item name="not HTML5"
    class="parse-error">
  <d:message xml:lang="en">This document is written in an old version of 
  HTML.</d:message>
  <d:desc xml:lang="en">
    <p>The document contains a <code>DOCTYPE</code> declaration
    that is different from HTML5 <code>DOCTYPE</code> (i.e. 
    <code>&lt;!DOCTYPE HTML&gt;</code>).  The document is non-conforming.</p>

    <p>The document might or might not be conformant to
    some version of HTML.  However, conformance to any HTML
    specification other than HTML5 provides for no practical
    convenience, since Web borwsers will parse any
    HTML document (roughly) as defined in HTML5.</p>
  </d:desc>
</d:item>

<d:item name="unmatched end tag"
    class="parse-error">
  <d:message xml:lang="en">Element <code><var>$0</var></code> is not
  opened.</d:message>
  <d:desc>
    <p>An end tag appears though no element with the same name
    has been opened.  The document is non-conforming.</p>

    <p>For any end tag in HTML document, there must be a
    corresponding start tag.</p>
  </d:desc>
</d:item>

</section>

<section id="element-content-model-errors">
<h2>Element Content Model Errors</h2>

<d:item name="character not allowed"
    class="content-model-error">
  <d:message xml:lang="en">Data character is not allowed in this
  context.</d:message>
  <d:desc xml:lang="en">
    <p>A data character appears where it is not allowed in this
    context.  The document is non-conforming.</p>

    <p>Possible causes:
      <ul>
      <li><p>A data character cannot be a child
      of certain sectioning elements such as <code>body</code>,
      <code>section</code>, and <code>blockquote</code>.</p>

      <p>Any inline-level content must be put
      in e.g. paragraph element such as <code>p</code>.</p></li>
      <li><p>Though some elements such as <code>div</code>,
      <code>li</code>, and <code>td</code> allow
      <em>either one</em> of block-level or inline-level content
      is allowed.  If there is a block-level content, 
      any inline-level content must be put
      in e.g. paragraph element such as <code>p</code>.</p></li>
      </ul>
    </p>
  </d:desc>
</d:item>

<d:item name="child element missing"
    class="content-model-error">
  <d:message xml:lang="en">There must be a <code><var>$0</var></code>
  element as a child of this element.</d:message>
  <d:desc xml:lang="en">
    <p>The content model of the element is so defined that it
    must contain a <code><var>$0</var></code> child element.
    The document is non-conforming.</p>

    <p>For example:
      <ul>
      <li>The <code>head</code> element must contain exactly one
      <code>title</code> child element.</li>
      <li><a href="#child-element-missing:td%7Cth">The <code>tr</code>
      element must contain one or more <code>td</code> or <code>th</code>
      child element.</a></li>
      </ul>
    </p>
  </d:desc>
</d:item>

<d:item name="child element missing:td|th"
    class="content-model-error">
  <d:message xml:lang="en">There must be a <code>td</code>
  or <code>th</code> element as a child of this element.</d:message>
  <d:desc xml:lang="en">
    <p>The <code>tr</code> element must contain at least one
    <code>td</code> or <code>th</code> child element.  The document
    is non-conforming.</p>
  </d:desc>
</d:item>

<d:item name="element not allowed"
    class="content-model-error">
  <d:message xml:lang="en">This element is not allowed in this 
  context.</d:message>
  <d:desc xml:lang="en">
    <p>An element appears where it is not allowed.  The document
    is non-conforming.</p>

    <p><strong>Note</strong>: The conformance checker does
    <em>not</em> support form elements yet.</p>

    <p>Possible causes:
      <dl class="switch">
      <dt>If the element with the error is an inline-level element,
      such as <code>a</code>, <code>progress</code>, or <code>img</code></dt>
          <dd><p>An inline-level element cannot be a child
          of certain sectioning elements such as <code>body</code>,
          <code>section</code>, and <code>blockquote</code>.</p>

          <p>Any inline-level content must be put
          in e.g. paragraph element such as <code>p</code>.</p></dd>
      <dt>If the element with the error is a block-level element,
      such as <code>div</code>, <code>h<var>n</var></code>, or
      <code>section</code></dt>
          <dd><p>Though some elements such as <code>div</code>,
          <code>li</code>, and <code>td</code> allow
          <em>either one</em> of block-level or inline-level content
          is allowed.  If there is a block-level content, 
          any inline-level content must be put
          in e.g. paragraph element such as <code>p</code>.</p></dd>
      <dt>If the element with the error is a <code>noscript</code> element</dt>
          <dd>The <code>noscript</code> element is allowed only in the context
          where a block-level or inline-level content is expected
          and in the <code>head</code> element.
          It cannot be used in e.g. <code>ul</code>, <code>table</code>,
          or <code>select</code>.</dd>
      <dt>If the element with the error is the <code>html</code> element
      that is the root element of an XHTML document</dt>
          <dd><p>In an XHTML document, the root <code>html</code>
          element must have an <code>xmlns</code> attribute
          whose value is set to 
          <code>http://www.w3.org/1999/xhtml</code>.</p></dd>
      <dt>If the element with the error is <code>blink</code>,
      <code>center</code>, or <code>marquee</code> element</dt>
          <dd>These elements are not part of the HTML standard.
          Use CSS for styling control.</dd>
      </dl>
    </p>
  </d:desc>
</d:item>

<d:item name="ps element missing"
    class="content-model-error">
  <d:message xml:lang="en">There is no <code><var>$0</var></code>
  element before this element.</d:message>
  <d:desc xml:lang="en">
    <p>There must be an element before another element, but there
    is not.  The document is non-conforming.</p>

    <p>For example, there must be a <code>dt</code> element
    before any <code>dd</code> element.</p>
  </d:desc>
</d:item>

</section>

<section id="attribute-errors">
<h2>Attribute Errors</h2>

<d:item name="attribute missing"
    class="attribute-error">
  <d:message xml:lang="en">Required attribute <code><var>$0</var></code>
  is not specified.</d:message>
  <d:desc>
    <p>A required attribute is not specified.  The document
    is non-conforming.</p>

    <p>Some attribute is defined as <i>required</i>.
    For example, any <code>img</code> element must have
    <code>alt</code> and <code>src</code> attributes specified.
    Without required attributes specified, user agents 
    cannot provide the full functionality of the element
    to the user.</p>
  </d:desc>
</d:item>

<d:item name="attribute not allowed" class="attribute-error">
  <d:message xml:lang="en">Attribute
  <code><var>{local-name}</var></code> is not allowed for
  <code><var>{element-local-name}</var></code> element.</d:message>
  <d:desc xml:lang="en">
    <p>An attribute is specified where it is not allowed.
    The document is non-conforming.</p>

    <dl>
    <dt>HTML <code>meta</code> element</dt>
        <dd>For HTML <code>meta</code> element, <em>only one</em> of
        <code>name</code>, <code>http-equiv</code>, or <code>charset</code>
        attribute is allowed.</dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="in HTML:xml:lang"
    class="attribute-error">
  <d:message xml:lang="en">The <code>xml:lang</code> attribute is not 
  allowed in HTML document.</d:message>
  <d:desc xml:lang="en">
    <p>The <code>xml:lang</code> attribute is not allowed in
    HTML document.  The document is non-conforming.</p>

    <p>The <code>lang</code> attribute in the <code>null</code>
    namespace for HTML elements is defined as conforming <em>only</em> for
    XML document.</p>

    <p>To specify natural language information in HTML document,
    use <code>lang</code> attribute instead.</p>

    <p>XHTML 1.0 Appendix C was encouraged to specify both
    <code>lang</code> and <code>xml:lang</code> attributes with
    the same value.  Such a duplication has <em>no effect</em> in practice.
    Use only one of <code>lang</code> (in HTML) or <code>xml:lang</code> (in
    XML).</p>

    <!-- @@ ISSUE: xml:lang in non-HTML element in DOM5 HTML created
         from an HTML document? -->
  </d:desc>
</d:item>

<d:item name="in XML:charset"
    class="attribute-error">
  <d:message xml:lang="en">The <code>charset</code> attribute is not 
  allowed in XML document.</d:message>
  <d:desc>
    <p>The <code>charset</code> attribute of a
    <code>meta</code> element is not allowed in XML document.
    The document is non-conforming.</p>

    <p>To specify the character encoding used for serialization,
    if necessary, use XML declaration instead:
      <pre class="xml example"><code>&lt;?xml version="1.0" encoding="<var>encoding-name</var>"?></code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="in XML:lang"
    class="attribute-error">
  <d:message xml:lang="en">The <code>lang</code> attribute is not 
  allowed in XML document.</d:message>
  <d:desc>
    <p>The HTML <code>lang</code> attribute is not allowed in
    XML document.  The document is non-conforming.</p>

    <p>The <code>lang</code> attribute in <code>null</code>
    namespace for HTML elements is defined as conforming <em>only</em> for
    HTML document.</p>

    <p>To specify natural language information in XML document,
    use <code>xml:lang</code> attribute instead.</p>
  </d:desc>
</d:item>

<d:item name="in XML:xmlns"
    class="attribute-error">
  <d:message xml:lang="en">The <code>xmlns</code> attribute 
  in the <code>null</code> namespace is not allowed in
  XHTML document.  The document is non-conforming.</d:message>
  <d:desc>
    <p>The <code>xmlns</code> attribute in the <code>null</code>
    namespace is not allowed in XHTML document.</p>

    <p>This error should not occur in conformance-checking of
    static documents.</p>
  </d:desc>
</d:item>

</section>

<section id="attribute-value-errors">
<h2>Attribute Value Errors</h2>

<d:item name="enumerated:invalid"
    class="attribute-value-error">
  <d:message xml:lang="en">This attribute only allow a limited set of 
  values and the specified value <code><var>{@}</var></code> is not one 
  of them.</d:message>
  <d:desc xml:lang="en">
    <p>For this attribute only several values are allowed and the
    value of the attribute is not one of them.  The document
    is non-conforming.</p>

    <dl>
    <dt>HTML <code>meta</code> element, <code>http-equiv</code> attribute</dt>
        <dd><p>Only <code>Default-Style</code> and <code>Refresh</code>
        is allowed.</p>
        <p>Value <code>Content-Type</code> is obsolete; for charset
        declaration, the <code>charset</code> attribute can be used as:
        <pre class="html example"><code>&lt;meta charset="<var>charset-name</var>"></code></pre>
        ... where <var>charset-name</var> is a name of the character encoding
        of the document, such as <code>utf-8</code>.</p>
        <p>Values <code>Content-Style-Type</code> and
        <code>Content-Script-Type</code> are currently not allowed.</p>
        <p>Value <code>Keywords</code> is not allowed.  Use
        <code>name</code> attribute instead of <code>http-equiv</code>
        attribute.</p>
        <p>Values <code>Expires</code>, <code>Pragma</code>,
        and <code>Cache-Control</code> are not allowed;
        use <em>real</em> HTTP header fields for cache control.</p></dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="duplicate ID"
    class="attribute-value-error">
  <d:message xml:lang="en">This identifier has already been
  assigned to another element.</d:message>
  <!-- @@ <id=a xml:id=a>? -->
</d:item>

<d:item name="link type:bad context"
    class="attribute-value-error">
  <d:message xml:lang="en">The link type <code><var>$0</var></code>
  cannot be specified for this element.</d:message>
  <d:desc xml:lang="en">
    <p>The specified link type cannot be used for the element.
    The document is non-conforming.</p>

    <p>Link types are associated with limited set of elements.
    They cannot be used with other elements.</p>

    <p>For example, link type <code>bookmark</code>
    can be used with <code>a</code> or <code>area</code> element,
    while it cannot be used with <code>link</code> element.</p>
  </d:desc>
</d:item>

<d:item name="link type:non-conforming"
    class="attribute-value-error">
  <d:message xml:lang="en">The link type <code><var>$0</var></code>
  is non-conforming.</d:message>
  <d:desc xml:lang="en">
    <p>The specified link type is non-conforming, and therefore
    the document is non-conforming.</p>

    <dl>
    <dt>Link type <code>contents</code></dt>
      <dd>Use link type <code>index</code>.</dd>
    <dt>Link type <code>copyright</code></dt>
      <dd>Use link type <code>license</code>.</dd>
    <dt>Link type <code>home</code></dt>
      <dd>Use link type <code>index</code>.</dd>
    <dt>Link type <code>start</code></dt>
      <dd>Use link type <code>first</code>.</dd>
    <dt>Link type <code>toc</code></dt>
      <dd>Use link type <code>index</code>.</dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="reserved browsing context name"
    class="attribute-value-error">
  <d:message xml:lang="en">Browsing context name 
  <code><var>{@}</var></code> is reserved.</d:message>
  <d:desc xml:lang="en">
    <p>The specified browsing context name is reserved.
    The document is non-conforming.</p>

    <p>Names of browsing contexts starting with <code>_</code>
    (<code>U+005F</code> <code class="charname">LOW LINE</code>)
    are reserved so that it must not be used.</p>

    <p>Old version of HTML, non-HTML markup languages, and
    Web browsers define or implements special reserved
    browsing context names <code>_blank</code>,
    <code>_main</code>, and <code>_replace</code>.
    However, they are <em>not</em> conforming attribute values.</p>
  </d:desc>
</d:item>

</section>

<section id="attribute-value-warnings">
<h2>Attribute Value Warnings</h2>

<d:item name="link type:proposed" level="s"
    class="attribute-value-warning should">
  <d:message xml:lang="en">Link type <code><var>$0</var></code>
  is proposed but not accepted yet; it <em>should not</em> be
  used until it has been accepted.</d:message>
  <d:desc>
    <p>The link type is in the <i>proposed</i> status; it
    <em>should not</em> be used until it has been
    accepted.</p>

    <p><strong>Warning</strong>: The data served to the
    conforming checker might be out of date; it might have already
    been accepted or rejected, depending on which the document
    might be conforming or non-conforming.  See WHATWG Wiki
    for the latest information.</p>
  </d:desc>
</d:item>

</section>

<section id="table-model-errors">
<h2>Table Model Errors</h2>

<d:item name="table:colspan creates column with no anchored cell"
    class="table-model-error">
  <d:message xml:lang="en">This <code>colspan</code> attribute
  results in creating a table column that does not contain
  any cell anchored to it.</d:message>
</d:item>

<d:item name="table:no cell in last row"
    class="table-model-error">
  <d:message xml:lang="en">The table has no cell (<code>td</code> or
  <code>th</code>) in the last row.</d:message>
</d:item>

<d:item name="table:rowspan extends table"
    class="table-model-error">
  <d:message xml:lang="en">This <code>rowspan</code> attribute
  results in creating a table row that does not contain
  any cell anchored to it.</d:message>
  <d:desc xml:lang="en">
    <p>The <code>rowspan</code> attribute value of the cell
    is so specified that it extends a table in the row axis.
    However, the extended row does not contain any cell by itself.
    The document is non-conforming.</p>

    <p>For example, the table below is non-conforming:
      <pre class="html non-conforming example"><code>&lt;table>
&lt;tbody>
&lt;tr>&lt;td rowspan=2>&lt;/td>&lt;/tr>
&lt;/tbody>
&lt;/table></code></pre>
    ... is non-conforming, since the second row contains only
    a cell that spans the first and the second rows.</p>
  </d:desc>
</d:item>

</section>

<section id="imt-warnings">
<h2>Internet Media Type Warnings</h2>

<d:item name="IMT:obsolete subtype"
    class="should" level="s">
  <d:message xml:lang="en"><code><var>{@}</var></code>: An <em>obsolete</em>
  subtype is used.</d:message>
</d:item>

<d:item name="IMT:private subtype"
    class="should" level="s">
  <d:message xml:lang="en"><code><var>{@}</var></code>: A private
  (<code>x-</code> or <code>x.</code>) subtype is used.</d:message>
</d:item>

<d:item name="IMT:unregistered subtype"
    class="should" level="s">
  <d:message xml:lang="en"><code><var>{@}</var></code>: The subtype is
  not registered to IANA.</d:message>
<!-- TODO: Unknown message?? -->
</d:item>

</section>

<section id="uri-errors">
<h2>URI (or IRI) Errors</h2>

<d:item name="URI::syntax error"
    class="must" level="m">
  <d:message xml:lang="en">The specified value is syntactically not an IRI
  reference.</d:message>
  <d:desc xml:lang="en">
    <p>The specified value does not satisfy the syntactical requirements
    for IRI references.  The document is non-conforming.</p>

    <p>Possible causes:
      <ul>
      <li>The string might contain one or more white space characters.
      Especially, the <code> </code> (<code>U+0020</code>
      <code class="charname">SPACE</code>) character cannot be
      used in IRI references.</li>
      </ul>
    </p>
  </d:desc>
</d:item>

</section>

<section id="uri-warnings">
<h2>URI (or IRI) Warnings</h2>

<d:item name="URI::dot-segment"
    class="should" level="s">
  <d:message xml:lang="en">Dot-segment (<code>.</code> or
  <code>..</code>) should not occur in an absolute reference.</d:message>
  <d:desc>
    <p>Dot-segment (<code>.</code> or <code>..</code>) should
    not occur in an absolute reference.</p>

    <p>In relative references, dot-segments are used to represent
    the current (<code>.</code>) or the parent (<code>..</code>) 
    hierarchy of the path.  Though they are also allowed
    in absolute references, it should be resolved to the
    canonical form before it has been published.</p>
  </d:desc>
</d:item>

<d:item name="URI::empty path"
    class="should" level="s">
  <d:message xml:lang="en">This IRI should explicitly end with
  <code>/</code>.</d:message>
</d:item>

<d:item name="URI::lowercase hexadecimal digit"
    class="should" level="s">
  <d:message xml:lang="en">Hexadecimal digit in percent-encoding
  should be in lowercase.</d:message>
  <d:desc xml:lang="en">
    <p>The hexadecimal digit in percent-encoding string in the IRI
    is in lowercase.  Though the IRI <em>is</em> conforming,
    it should be in uppercase.</p>
  </d:desc>
</d:item>

<d:item name="URI::percent-encoded unreserved"
    class="should" level="s">
  <d:message xml:lang="en">An unreserved character is 
  percent-encoded.</d:message>
  <d:desc xml:lang="en">
    <p>An unreserved character is percent-encoded in the IRI.
    Though it <em>is</em> conforming, it should be in the 
    decoded (or bare) form.</p>
  </d:desc>
</d:item>

<d:item name="URI::uppercase scheme name"
    class="should" level="s">
  <d:message xml:lang="en">URI scheme name is in uppercase.</d:message>
  <d:desc xml:lang="en">
    <p>The scheme part of the IRI is written in uppercase letter.</p>

    <p>Uppercase scheme names are not required to be processed
    correctly.</p>
<!-- @@
 RFC 3986 3.1.
 > Although schemes are case-
   insensitive, the canonical form is lowercase and documents that
   specify schemes must do so with lowercase letters.
 
 > An implementation ... should only produce lowercase scheme names for
   consistency.
-->
  </d:desc>
</d:item>

</section>

<section id="unsupported-messages">
<h2><i>Unsupported</i> Messages</h2>

<d:item name="attribute"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">This attribute is not supported by the
  conformance checker; <em>it might or might not be conforming</em>.</d:message>
  <d:desc xml:lang="en">
    <p>The conformant checker does not support the attribute.
    It cannot determine whether the document is conforming or not.</p>
  </d:desc>
</d:item>

<d:item name="element"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">This element is not supported by the
  conformance checker; <em>it might or might not be conforming</em>.</d:message>
  <d:desc xml:lang="en">
    <p>The conformant checker does not support the element.
    It cannot determine whether the document is conforming or not.</p>
  </d:desc>
</d:item>

<d:item name="link type"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">The link type <code><var>$0</var></code> is not
  standardized or registered at the time of the release of the conformance
  checker; <em>it is non-conforming unless it has now been
  registered</em>.</d:message>
  <d:desc xml:lang="en">
    <p>The <code>rel</code> attribute is defined as a list of link types.
    Some common link types are defined in the HTML5 specification.
    Additional link types can be registered to the WHATWG Wiki.
    use of any other link type is non-conforming.</p>

    <p>The specified link type is not part of the standard or registry
    when the database used by the conformance cheker is created.
    The link type might have been added to the registry since then.
    In such case it might be conforming.  Otherwise, the
    document is non-conforming.</p>

    <dl>
    <dt>Link types <code>shortcut icon</code></dt>
        <dd>Link type <code>shortcut</code> is not registered.
        Use only <code>icon</code> for linking to so-called favicon.</dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="event handler"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">Conformance checking for event handler attribute
  is not supported; <em>it might or might not be conforming.</em></d:message>
</d:item>

<d:item name="language tag"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">Conformance checking for language tag
  is not supported; <em>it might or might not be conforming.</em></d:message>
</d:item>

<d:item name="media query"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">Conformance checking for media query
  is not supported; <em>it might or might not be conforming.</em></d:message>
</d:item>

<d:item name="script"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">Conformance checking for script
  language <code><var>$0</var></code> is not supported;
  <em>it might or might not be conforming.</em></d:message>
</d:item>

<d:item name="style"
    class="unsupported" level="unsupported">
  <d:message xml:lang="en">Conformance checking for style
  language <code><var>$0</var></code> is not supported;
  <em>it might or might not be conforming.</em></d:message>
</d:item>

</section>

<d:catalog>
manakaiCompatMode:quirks;;Quirks Mode
manakaiCompatMode:limited quirks;;Limited Quirks Mode
manakaiCompatMode:no quirks;;No Quirks Mode

manakaiIsHTML:1;;HTML Document
manakaiIsHTML:0;;XML Document
</d:catalog>

<section id="license">
<h2>License of This Document</h2>

<p>Copyright 2007 <a href="http://suika.fam.cx/~wakaba/who?">Wakaba</a></p>
<p>This library is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.</p>
</section>

<!-- $Date: 2007/09/02 07:59:01 $ -->
</body>
</html>