<!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="character-encoding-layer">
<h2>Character Encoding Layer Errors</h2>

<d:item name="illegal-octets-error" class="error-category-charset" level="m">
  <d:message xml:lang="en">An illegal octet in the input stream.</d:message>
</d:item>
</section>

<section id="html5-character-encoding">
<h2>HTML5 Character Encoding Errors</h2>

<d:item name="disallowed character encoding"
    modules="ContentChecker">
  <d:message xml:lang="en">Character encoding <code><var>{text}</var></code>
  is not allowed for <abbr>HTML</abbr> document.</d:message>
  <d:desc xml:lang="en">
    <p>The character encoding used for the document is not allowed
    for <abbr>HTML</abbr> document.  The document is non‐conforming.</p>
  </d:desc>
</d:item>

<d:item name="bad character encoding"
    modules="ContentChecker">
  <d:message xml:lang="en">Character encoding <code><var>{text}</var></code>
  should not be used for <abbr>HTML</abbr> document.</d:message>
  <d:desc xml:lang="en">
    <p>The character encoding used for the document is not recommended
    for <abbr>HTML</abbr> document.  The document is non‐conforming
    unless there is any good reason to use that encoding.</p>
  </d:desc>
</d:item>

<d:item name="non-utf-8 character encoding"
    modules="ContentChecker">
  <d:message xml:lang="en">Use of UTF-8 is encouraged (this document
  is encoded in <code><var>{text}</var></code>).</d:message>
  <d:desc xml:lang="en">
    <p>Use of UTF-8 as the character encoding of the document is encouraged,
    though the use of another character encoding is still conforming.</p>
  </d:desc>
</d:item>

<d:item name="character encoding unchecked"
    modules="ContentChecker">
  <d:message xml:lang="en">Conformance for character encoding requirements
  cannot be checked, since the input is not a byte stream.</d:message>
  <d:desc xml:lang="en">
    <p>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.</p>
  </d:desc>
</d:item>

<d:item name="no character encoding declaration"
    modules="ContentChecker">
  <d:message xml:lang="en">There is no character encoding
  declaration.</d:message>
  <d:desc xml:lang="en">
    <p>The document does not contain a character encoding 
    declaration.  Unless the character encoding is explicitly 
    specified in lower‐level protocol, e.g. in <abbr>HTTP</abbr>,
    or is implied by <abbr>BOM</abbr>, there must be a character
    encoding declaration.  The document is non‐conforming.</p>

    <p>The long character encoding declaration syntax
    <code class="html bad example">&lt;meta http-equiv="Content-Type" content="text/html; charset=<var>charset-name</var>"></code>
    is obsolete.  The new syntax is:</p>
    <pre class="html example"><code>&lt;meta charset="<var>charset-name</var>"></code></pre>

    <p>Note that the <code>encoding</code> declaration in <abbr>XML</abbr> 
    declaration has no effect for <abbr>HTML</abbr> document.</p>
  </d:desc>
</d:item>

<d:item name="non ascii superset"
    modules="ContentChecker">
  <d:message xml:lang="en">No character encoding metadata is found
  in lower‐level protocol nor is there <abbr>BOM</abbr>, while
  character encoding <code><var>{text}</var></code>
  is not a superset of <abbr>ASCII</abbr>.</d:message>
  <d:desc xml:lang="en">
    <p>The document is not labeled with character encoding name
    in lower‐level protocol, e.g. in <abbr>HTTP</abbr>, and
    the document is not begin with <abbr>BOM</abbr>.  In addition,
    the character encoding of the document is not a superset of
    <abbr>ASCII</abbr>.  The document is non‐conforming.</p>

    <p>Unless there is a <abbr>BOM</abbr>, the character encoding
    for the document must be specified in e.g. <abbr>HTTP</abbr>‐level,
    as:</p>
    <pre class="http example"><code>Content-Type: text/html; charset=<var>charset-name</var></code></pre>

    <p>Existence of <abbr>HTML</abbr> character encoding declaration, i.e.
    <code class="html example">&lt;meta charset="<var>charset-name</var>"></code>,
    does not allow to omit <code>charset</code> parameter
    for <abbr>HTML</abbr> document encoded in non‐<abbr>ASCII</abbr>
    compatible encoding.</p>

    <p>Character encodings <code>Shift_JIS</code>, <code>Windows-31J</code>,
    and <code>ISO-2022-JP</code> are <em>not</em> a superset of
    <abbr>ASCII</abbr> for the purpose of <abbr>HTML</abbr> conformance.</p>
  </d:desc>
</d:item>

<d:item name="sniffing:chardet"
    modules="HTML::Parser">
  <d:message xml:lang="en">Character encoding of this document is sniffed
  as <code><var>{text}</var></code> (Sniffed because no explicit specification
  for the character encoding of this document is found in the transfer
  procotol headers).</d:message>
</d:item>

<d:item name="sniffing:default"
    modules="HTML::Parser">
  <d:message xml:lang="en">Character encoding of this document is defaulted
  to <code><var>{text}</var></code> because no explicit specification
  for the character encoding of this document is found in the transfer
  procotol headers.</d:message>
</d:item>

<d:item name="chardecode:fallback"
    modules="HTML::Parser">
  <d:message xml:lang="en">Since no decoder for the document character
  encoding is found, decoder for the character encoding
  <code><var>{text}</var></code> is used.  Checking results might be
  <em>wrong</em>.</d:message>
</d:item>

<d:item name="chardecode:no error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Conformance error checking for the character
  encoding <code><var>{text}</var></code> is not supported.</d:message>
</d:item>

<d:item name="charset label:matching"
    modules="HTML::Parser">
  <d:message xml:lang="en">Sniffed character encoding 
  <code><var>{text}</var></code> is same as the character encoding specified
  in the character encoding declaration.  This is <em>not</em> an
  error.</d:message>
</d:item>

<d:item name="charset label detected"
    class="format-charset warning"
    modules="HTML::Parser">
  <d:message xml:lang="en">While parsing the document as
  <code><var>{text}</var></code>, a character encoding declaration specifying
  a different character encoding is found.  The document
  is reparsed.</d:message>
  <d:desc xml:lang="en">
    <p>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.</p>

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

    <p>These are suggestions to avoid this warning:</p>
    <ul>
    <li>Specify <code>charset</code> parameter in the <code>Content-Type</code>
    field in the <abbr>HTTP</abbr> header, as:
    <pre class="HTTP example"><code>Content-Type: text/html; charset="<var>charset-name</var>"</code></pre></li>
    <li>Put the character encoding declaration
    (<code class="html example">&lt;meta charset="<var>charset-name</var>"></code>)
    just after <code class="html example">&lt;head></code> start tag.</li>
    <li>Use <code>UTF-8</code>.</li>
    </ul>
  </d:desc>
</d:item>

<d:item name="NULL"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code class="charname">NULL</code> character
  is not allowed.</d:message>
</d:item>

<d:item name="control char"
    modules="HTML::Parser">
  <d:message xml:lang="en">Code point <code><var>{text}</var></code> is
  not allowed.</d:message>
</d:item>

</section>

<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="bad attribute name"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Attribute name cannot contain characters
  <code>"</code>, <code>'</code>, and <code>=</code>.</d:message>
</d:item>

<d:item name="bad attribute value"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Attribute value must be quoted by <code>"</code>
  or <code>'</code> if it contains a <code>"</code>, <code>'</code>, or
  <code>=</code> character.</d:message>
</d:item>

<d:item name="bare ero"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code>&amp;</code> character must
  be escaped as <code class="html example">&amp;amp;</code>.</d:message>
  <d:desc xml:lang="en">
    <p>An <code>&amp;</code> character which
    is not part of any reference appears in the input stream.
    The document is non‐conforming.</p>

    <p><em>Any <code>&amp;</code> character in URI (or IRI)
    must be escaped as <code class="example">&amp;amp;</code>.</em></p>

    <p>The <code>&amp;</code> character must
    be the first character of a reference:
      <dl class="switch">
      <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"
    modules="HTML::Parser">
  <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"
    modules="HTML::Parser">
  <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"
    modules="HTML::Parser">
  <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 class="switch">
      <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"
    modules="HTML::Parser">
  <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 comment"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">String <code>&lt;!</code> is not followed
  by <code>--</code>.</d:message>
  <d:desc xml:lang="en">
    <p>There is a <code>&lt;</code> (<code>U+003C</code> 
    <code class="charname">LESS-THAN SIGN</code>) character
    followed by a <code>!</code> (<code>U+0021</code>
    <code class="charname">EXCLAMATION MARK</code>) character,
    which is not followed by a <code>--</code> or
    <code>!DOCTYPE</code>.  The document is non-conforming.</p>

    <dl class="switch">
    <dt>Comments</dt>
      <dd>In HTML document, comments must be introduced by
      <code class="example">&lt;!--</code> (<code>&lt;!</code>
      <em>immediately</em> followed
      by <em>two</em> <code>-</code>s) and must be terminated by
      <code class="example">--></code>.
      Strings <code>&lt;!</code> not followed
      by <code>--</code> and <code>&lt;!-</code> not followed by
      <code>-</code> are not valid open delimiters for comments.</dd>
    <dt>Marked sections, including <code>CDATA</code> sections</dt>
      <dd>Marked sections are not allowed in HTML document.</dd>
    <dt>Markup declarations</dt>
      <dd>Markup declarations, except for <code>DOCTYPE</code>
      and comment declarations, are not allowed in HTML document.</dd>
    <dt>String <code>&lt;!</code></dt>
      <dd>String <code>&lt;!</code> must be escaped as
      <code class="example">&amp;lt;!</code>.</dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="bogus end tag"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">String <code>&lt;/</code> is not followed
  by 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="C1 character reference"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Character reference to
  <code><var>{text}</var></code> is not allowed.</d:message>
</d:item>

<d:item name="CR character reference"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Character reference to
  <code>U+000D</code> (<code class="charname">CARRIAGE RETURN</code>)
  is not allowed.</d:message>
</d:item>

<d:item name="dash in comment"
    class="tokenize-error"
    modules="HTML::Parser">
  <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"
    modules="HTML::Parser">
  <d:message xml:lang="en">There are two attributes with name
      <code><var>{text}</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="empty start tag"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Empty start tag (<code>&lt;></code>) is not
  allowed.</d:message>
</d:item>

<d:item name="empty end tag"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Empty end tag (<code>&lt;/></code>) is not
  allowed.</d:message>
</d:item>

<d:item name="end tag attribute"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">End tag cannot have attributes.</d:message>
</d:item>

<d:item name="invalid character reference"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Character reference to
  <code><var>{text}</var></code> is not allowed.</d:message>
</d:item>

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

    <p>The polytheistic slash 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>

    <dl class="switch">
    <dt><code>&lt;script/></code></dt>
        <dd><p>The polytheistic slash cannot be used for <code>script</code>
        element.  Even for an empty <code>script</code> element,
        there must be an explicit end tag
        <code class="html example">&lt;/script></code>.</p>

        <p><strong>NOTE</strong>: Though some user agents interpret
        polytheistic slash for <code>script</code> element as the 
        closing of the element, such usage is not allowed under
        the current standard.</p></dd>
    <dt><code>&lt;basefont/></code>, <code>&lt;bgsound/></code>,
    <code>&lt;frame/></code>, <code>&lt;keygen/></code>,
    <code>&lt;spacer/></code>, <code>&lt;wbr/></code></dt>
        <dd>These elements are themselves non-conforming.</dd>
    <!-- isindex, image -->
    <dt><code>&lt;command/></code>, <code>&lt;event-source/></code>,
    <code>&lt;nest/></code>, or <code>&lt;source/></code></dt>
        <dd>Future revision of HTML5 parsing algorithm is expected
        to allow polytheistic slash for these elements.</dd>
    <dt><code>&lt;a/></code>, <code>&lt;p/></code></dt>
        <dd>These elements are not always empty and therefore
        polytheistic slash is not allowed.  Use explicit end tag
        to represent empty element as:
          <pre class="example html"><code>&lt;p>&lt;/p></code></pre>
        </dd>
    </dl>

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

<d:item name="no DOCTYPE name"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">After the string <code>&lt;!DOCTYPE </code>, the
  document type name must be specified.</d:message>
</d:item>

<d:item name="no PUBLIC literal"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">After the keyword <code>PUBLIC</code>, no
  oublic identifier is specified.</d:message>
</d:item>

<d:item name="no refc"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Character reference must be closed by a
  <code>;</code> character.</d:message>
</d:item>

<d:item name="no space before DOCTYPE name"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">After the string <code>&lt;!DOCTYPE</code>, there
  must be at least a white space character before the document type
  name.</d:message>
</d:item>

<d:item name="no space between attributes"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Attributes must be separeted by at least a
  white space character.</d:message>
</d:item>

<d:item name="no SYSTEM literal"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">After the keyword <code>SYSTEM</code>, no
  system identifier is specified.</d:message>
</d:item>

<d:item name="pio"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Processing instruction 
  (<code>&lt;?<var>...</var>></code>) is not allowed in HTML
  document.</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>

    <dl class="switch">
    <dt><code>&lt;?xbl?></code> (<abbr>XBL</abbr> Association)</dt>
      <dd>An <abbr>XBL</abbr> binding cannot be associated by 
      <abbr title="processing instruction">PI</abbr> in <abbr>HTML</abbr>
      document.  Use <code>binding</code> property in <abbr>CSS</abbr>
      style sheet as:
        <pre class="html example"><code>&lt;style>
p {
  binding: url(binding.xbl);
}
&lt;/style></code></pre>
      </dd>
    <dt><code>&lt;?xml?&gt;</code> (XML declaration)</dt>
        <dd>XML declaration is unnecessary for HTML documents.</dd>
    <dt><code>&lt;?xml-stylesheet?></code> (XML style sheet
    <abbr title="processing instruction">PI</abbr>)</dt>
        <dd>Use HTML <code>link</code> element with <code>rel</code>
        attribute set to <code>stylesheet</code> (or,
        <code>alternate stylesheet</code> for an alternate style 
        sheet).
          <pre class="example html"><code>&lt;link rel=stylesheet href="path/to/stylesheet.css"></code></pre>
        </dd>
    <dt><code>&lt;?php?&gt;</code> or 
    <code>&lt;? <var>... <abbr>PHP</abbr> code ...</var> ?&gt;</code> 
    (<abbr>PHP</abbr> code)</dt>
        <dd>The conformance checker does <em>not</em> support
        checking for PHP source documents.</dd>
    <dt>Other processing instructions</dt>
        <dd>Processing instructions cannot be inserted in an HTML
        document.  Use XML document or insert 
        <code>ProcessingInstruction</code> node by scripting.</dd>
    </dl>

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

<d:item name="string after DOCTYPE name"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">There is a bogus string after the document type
  name.</d:message>
</d:item>

<d:item name="string after PUBLIC"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">There is a bogus string after the keyword
  <code>PUBLIC</code>.</d:message>
</d:item>

<d:item name="string after PUBLIC literal"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">There is a bogus string after the public
  identifier.</d:message>
</d:item>

<d:item name="string after SYSTEM"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">There is a bogus string after the keyword
  <code>SYSTEM</code>.</d:message>
</d:item>

<d:item name="string after SYSTEM literal"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">There is a bogus string after the system
  identifier.</d:message>
</d:item>

<d:item name="unclosed attribute value"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Attribute value is not closed by a quotation
  mark.</d:message>
</d:item>

<d:item name="unclosed comment"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Comment is not closed by a string
  <code>--></code>.</d:message>
</d:item>

<d:item name="unclosed DOCTYPE"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code>DOCTYPE</code> is not closed by a
  <code>></code> character.</d:message>
</d:item>

<d:item name="unclosed PUBLIC literal"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The public identifier literal is not closed by a
  quotation mark.</d:message>
</d:item>

<d:item name="unclosed SYSTEM literal"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The system identifier literal is not closed by a
  quotation mark.</d:message>
</d:item>

<d:item name="unclosed tag"
    class="tokenize-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Tag is not closed by a <code>></code>
  character.</d:message>
</d:item>

</section>

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

<d:item name="after body"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</var>></code> is
  not allowed after the <code>body</code> is closed.</d:message>
</d:item>

<d:item name="after body:/"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">End tag <code>&lt;/<var>{text}</var>></code> is
  not allowed after the <code>body</code> is closed.</d:message>
</d:item>

<d:item name="after body:#text"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed
  after the <code>body</code> is closed.</d:message>
</d:item>

<d:item name="after frameset"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</var>></code> is
  not allowed after the <code>frameset</code> is closed.</d:message>
</d:item>

<d:item name="after frameset:/"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">End tag <code>&lt;/<var>{text}</var>></code> is
  not allowed after the <code>frameset</code> is closed.</d:message>
</d:item>

<d:item name="after frameset:#text"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed
  after the <code>frame</code> is closed.</d:message>
</d:item>

<d:item name="after head"
    class="parse-error">
  <d:message xml:lang="en">The <code><var>{text}</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="after html"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</var>></code> is
  not allowed after the <code>html</code> is closed.</d:message>
</d:item>

<d:item name="after html:/"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">End tag <code>&lt;/<var>{text}</var>></code> is
  not allowed after the <code>html</code> is closed.</d:message>
</d:item>

<d:item name="after html:#text"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed
  after the <code>html</code> is closed.</d:message>
</d:item>

<d:item name="image"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code>image</code> element is
  obsolete.</d:message>
</d:item>

<d:item name="in a:a"
    class="parse-error"
    modules="HTML::Parser">
  <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"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</var>&gt;</code>
  is not allowed in the <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 body:#eof"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Some element is not closed before the end of
  file.</d:message>
</d:item>

<d:item name="in button:button"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code>button</code> element cannot be
  nested.</d:message>
</d:item>

<d:item name="in CDATA:#eof"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Element is not closed before the end of
  file.</d:message>
</d:item>

<d:item name="in form:form"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;form></code> is
  not allowed in a <code>form</code> element.</d:message>
</d:item>

<d:item name="in frameset"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</var>></code> is
  not allowed in a <code>framset</code> element.</d:message>
</d:item>

<d:item name="in frameset:/"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">End tag <code>&lt;/<var>{text}</var>></code> is
  not allowed in a <code>frameset</code> element.</d:message>
</d:item>

<d:item name="in frameset:#text"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed
  in a <code>frameset</code> element.</d:message>
</d:item>

<d:item name="in head:head"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;head&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 html:#DOCTYPE"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">A <code>DOCTYPE</code> appears after any
  element or data character has been seen.</d:message>
  <!-- <!DOCTYPE HTML><!DOCTYPE HTML> -->
  <!-- <html><!DOCTYPE HTML> -->
  <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 nobr:nobr"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code>nobr</code> element cannot be
  nested.</d:message>
</d:item>

<d:item name="in noscript"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code><var>{text}</var></code> element is not
  allowed in a <code>noscript</code> element in the
  <code>head</code> element.</d:message>
</d:item>

<d:item name="in noscript:/"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">An end tag <code>&lt;/<var>{text}</var>></code>
  appers before the <code>noscript</code> element is closed.</d:message>
</d:item>

<d:item name="in noscript:#eof"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">A <code>noscript</code> element is not closed
  before the end of file.</d:message>
</d:item>

<d:item name="in noscript:#text"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed
  in a <code>noscript</code> element in the <code>head</code>
  element.</d:message>
</d:item>

<d:item name="in PCDATA:#eof"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Element is not closed before the end of
  file.</d:message>
</d:item>

<d:item name="in select"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</var>&gt;</code>
  is not allowed in a <code>select</code> element.</d:message>
</d:item>

<d:item name="in select:/"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">End tag <code>&lt;/<var>{text}</var>&gt;</code>
  is not allowed in a <code>select</code> element.</d:message>
</d:item>

<d:item name="in table"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</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:/"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">End tag <code>&lt;/<var>{text}</var>&gt;</code>
  is not allowed in a <code>table</code> element.</d:message>
</d:item>

<d:item name="in table:#text"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Non‐white‐space character is not allowed within 
  the <code>table</code> element, outside of the caption and cells.</d:message>
  <d:desc xml:lang="en">
    <p>A non‐white‐space 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="isindex"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">The <code>isindex</code> element is
  obsolete.</d:message>
</d:item>

<d:item name="missing start tag:tr"
    class="parse-error"
    modules="HTML::Parser">
  <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"
    modules="HTML::Parser">
  <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>.  XML declaration is <em>not</em>
    allowed in HTML document.</p>
  </d:desc>
</d:item>

<d:item name="not closed"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Element <code><var>{text}</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>

    <p>Only <code>body</code>, <code>colgroup</code>, <code>dd</code>,
    <code>dt</code>, <code>head</code>, <code>html</code>, <code>li</code>,
    <code>ol</code>, <code>option</code>, <code>optgroup</code>, 
    <code>p</code>, <code>rb</code>, <code>rp</code>, <code>rt</code>,
    <code>tbody</code>, <code>td</code>, <code>tfoot</code>,
    <code>th</code>, <code>thead</code>, <code>tr</code>,
    <code>ul</code> end tag can be omitted in HTML documents.
    For any element except for void element, there must be an explicit
    end tag.</p>

    <dl class="switch">
    <dt>HTML <code>canvas</code> element</dt>
      <dd>Though the element is void in earlier versions of Safari,
      the <code>canvas</code> element is <em>no</em> longer
      defined as empty.  There must be an end tag
      <code class="html example">&lt;/canvas></code>.</dd>
    </dl>

    <p>Note that misnesting tags, such as 
    <code class="bad example">&lt;a>&lt;b>&lt;/a>&lt;/b></code>, are not
    allowed and they also cause this error.</p>
  </d:desc>
</d:item>

<d:item name="not first start tag"
    class="parse-error"
    modules="HTML::Parser">
  <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"
    modules="HTML::Parser">
  <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 class="example html">&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="start tag not allowed"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Start tag <code>&lt;<var>{text}</var>></code> is
  not allowed here.</d:message>
</d:item>

<d:item name="unmatched end tag"
    class="parse-error"
    modules="HTML::Parser">
  <d:message xml:lang="en">Element <code><var>{text}</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>

    <dl class="switch">
    <dt>HTML <code>base</code>, <code>basefont</code>,
    <code>bgsound</code>, <code>br</code>, <code>col</code>,
    <code>embed</code>, <code>frame</code>, <code>hr</code>,
    <code>image</code>, <code>img</code>, <code>input</code>,
    <code>isindex</code>, <code>link</code>, <code>meta</code>,
    <code>param</code>, <code>spacer</code>, or <code>wbr</code> element</dt>
      <dd>End tag is not allowed for these elements, since
      those content must always be empty.  Remove end tag.</dd>
    <!-- keygen -->
    <!-- command, event-source, nest, source -->
    </dl>
  </d:desc>
</d:item>

</section>

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

<d:item name="basehref after URL attribute"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>base</code> element with the 
  <code>href</code> attribute specified cannot be placed after
  any attribute with a URL.</d:message>
</d:item>

<d:item name="basetarget after hyperlink"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>base</code> element with the
  <code>target</code> attribute specified cannot be placed after
  any element that defines a hyperlink.</d:message>
</d:item>

<d:item name="character not allowed"
    modules="ContentChecker::HTML RDFXML">
  <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="character not allowed:empty"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed in
  an empty element.</d:message>
</d:item>

<d:item name="character not allowed:atom|PersonConstruct"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed in
  Person construct.</d:message>
</d:item>

<d:item name="character not allowed:atom|TextConstruct"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Non‐white‐space characters are not allowed in
  Text construct.</d:message>
</d:item>

<d:item name="child element missing"
    modules="ContentChecker::HTML ContentChecker::Atom">
  <d:message xml:lang="en">There must be an element
  <code><var>{text}</var></code> 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>

    <dl class="switch">
    <dt>HTML <code>head</code> element</dt>
      <dd>There must be a <code>title</code> child element.</dd>
    <dt>HTML <code>html</code> element</dt>
      <dd>There must be a <code>head</code> child element followed
      by a <code>body</code> element.</dd>
    <dt>HTML <code>tr</code> element</dt>
      <dd><a href="#child-element-missing:td%7Cth">There must be
      one or more <code>td</code> or <code>th</code> child element.</a></dd>
    </dl>
  </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="child element missing:atom"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">There must be an element
  <code><var>{text}</var></code> in the Atom namespace as a child of this
  element.</d:message>
</d:item>

<d:item name="child element missing:atom:link:alternate"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">There must be an Atom <code>link</code> element
  whose <code>rel</code> attribute is set to <code>alternate</code> as a
  child of this element.</d:message>
</d:item>

<d:item name="child element missing:atom:link:self"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">There should be an Atom <code>link</code> element
  whose <code>rel</code> attribute is set to <code>self</code> as a
  child of this element.</d:message>
</d:item>

<d:item name="element missing:hn"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">There must be at least one 
  <code>h<var>n</var></code> element descendant.</d:message>
</d:item>

<d:item name="element not allowed"
    modules="ContentChecker::HTML ContentChecker::Atom RDFXML">
  <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>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 it is a block-level elements, such as <code>aside</code>,
      <code>div</code>, <code>h<var>n</var></code>,
      <code>p</code>, or <code>section</code></dt>
          <dd><dl class="switch">
              <dt>If the parent element is <code>div</code>,
              <code>li</code>, <code>td</code>, or <code>th</code></dt>
              <!-- @@ TODO: more... -->
                  <!-- @@ TODO: <p><ul><li><p> -->
                  <dd><p>The parent element allows <em>either</em>
                  block-level or inline-level content.  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>
                  <p>For example, an HTML document fragment
                  <code class="html bad example">&lt;div>&lt;p>Hello!&lt;/p> World!&lt;/div></code>
                  is non-conforming, since a word <q>World!</q> does not belong
                  to any paragraph.  (If not part of any paragraph, what is
                  it!?)  A conforming example would be:
                    <pre class="html example"><code>&lt;div>&lt;p>Hello!&lt;/p> &lt;p>World!&lt;/p>&lt;/div></code></pre>
                  </p></dd>
              <dt>If the parent element does <em>not</em> allow 
              block-level elements as content</dt>
                  <dd>The element is not allowed to be inserted here.
                  For example, a <code>div</code> element cannot be 
                  a child of an <code>h1</code> element.</dd>
          </dl></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 <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>

      <dt><code>button</code>, <code>datalist</code>,
      <code>fieldset</code>, <code>form</code>,
      <code>input</code>, <code>label</code>,
      <code>optgroup</code>, <code>option</code>, <code>output</code>,
      <code>rb</code>, <code>rp</code>, <code>rt</code>, <code>ruby</code>,
      <code>textarea</code>, or <code>textarea</code> element</dt>
      <!-- rbc, rtc ? -->
          <dd>These elements are intentionally not supported by the conformance
          checker <em>yet</em>.</dd>
      </dl>
    </p>
  </d:desc>
</d:item>

<d:item name="element not allowed:area"
    modules="ContentChecker ContentChecker::HTML">
  <d:message xml:lang="en">An <code>area</code> element cannot be used
  outside of a <code>map</code> element.</d:message>
</d:item>

<d:item name="element not allowed:base"
    modules="ContentChecker ContentChecker::HTML">
  <d:message xml:lang="en">There is another <code>base</code>
  element.</d:message>
</d:item>

<d:item name="element not allowed:datatemplate"
    modules="ContentChecker ContentChecker::HTML">
  <d:message xml:lang="en">In a <code>datatemplate</code> element, only
  <code>rule</code> elements are allowed.</d:message>
</d:item>

<d:item name="element not allowed:details legend"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">In a <code>details</code> element, only at the
  beginning of the element a <code>lengend</code> element
  may be used.</d:message>
</d:item>

<d:item name="element not allowed:empty"
    modules="ContentChecker::HTML ContentChecker::Atom">
  <d:message xml:lang="en">Elements are not allowed in an empty
  element.</d:message>
</d:item>

<d:item name="element not allowed:figure legend"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">In a <code>figure</code> element, only at the
  beginning or only at the end of the element a <code>lengend</code> element
  may be used.</d:message>
</d:item>

<d:item name="element not allowed:flow"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">This element is not allowed where flow
  content is expected.</d:message>
</d:item>

<d:item name="element not allowed:flow style"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">A <code>style</code> element without
  <code>scoped</code> attribute is not allowed in this context.</d:message>
</d:item>

<d:item name="element not allowed:head noscript"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">This element is not allowed in a
  <code>noscript</code> element in the <code>head</code> element.</d:message>
</d:item>

<d:item name="element not allowed:head style"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">A <code>style</code> element with
  <code>scoped</code> attribute is not allowed in the <code>head</code>
  element.</d:message>
</d:item>

<d:item name="element not allowed:head title"
    modules="ContentChecker ContentChecker::HTML">
  <d:message xml:lang="en">There is another <code>title</code>
  element.</d:message>
</d:item>

<d:item name="element not allowed:minus"
    modules="ContentChecker ContentChecker::HTML">
  <d:message xml:lang="en">This element is not allowed in this
  context.</d:message>
</d:item>

<d:item name="element not allowed:meta charset"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The character encoding declaration must be the
  first element in the <code>head</code> element.</d:message>
</d:item>

<d:item name="element not allowed:metadata"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">This element is not allowed where metadata
  content is expected.</d:message>
</d:item>

<d:item name="element not allowed:phrasing"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">This element is not allowed where phrasing
  content is expected.</d:message>
</d:item>

<d:item name="element not allowed:root"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is not allowed as the root
  element of a document.</d:message>
  <d:desc xml:lang="en">
    <p>An element that is not allowed as the root element
    is used as the root element of the document.  The document is
    non-conforming, as far as the conformance checker can tell.</p>

    <dl class="switch">
    <dt><code>html</code> element in an XHTML document</dt>
        <dd><p>In <abbr>XHTML</abbr> document, the root <code>html</code>
        element must have an <code>xmlns</code> attribute as:
          <pre class="xml example"><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"></code></pre></p></dd>
    <dt><code>rss</code> element</dt>
        <dd><p>The document is written in some version of RSS.</p>
        <p>The conformance checker does not support any version
        of RSS.  Use Atom 1.0 for feed documents.</p></dd>
    <dt><code>feed</code> element</dt>
        <dd><p>The Atom <code>feed</code> element must be
        in the <code>http://www.w3.org/2005/Atom</code>
        namespace as:
          <pre class="xml example"><code>&lt;feed xmlns="http://www.w3.org/2005/Atom"></code></pre>
        </p>
        <p>The conformance checker does not support Atom 0.3.
        Use Atom 1.0 for feed documents.</p></dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="element not allowed:root:xml"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is not allowed as the root element
  of an XML document.</d:message>
</d:item>

<d:item name="element not allowed:ruby base"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is not allowed in the <code>ruby</code>
  element.</d:message>
</d:item>

<d:item name="element not allowed:text"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">This element is not allowed in this
  context.</d:message>
</d:item>

<d:item name="element not allowed:atom|content"
    modules="ContentChecker::Atom">
  <d:message xml:lang="en">This element is not allowed in an Atom
  <code>content</code> element.</d:message>
</d:item>

<d:item name="element not allowed:atom|PersonConstruct"
    modules="ContentChecker::Atom">
  <d:message xml:lang="en">This element is not allowed in Person
  construct.</d:message>
</d:item>

<d:item name="element not allowed:atom|TextConstruct"
    modules="ContentChecker::Atom">
  <d:message xml:lang="en">This element is not allowed in Text
  construct.</d:message>
</d:item>

<d:item name="element not defined"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is not defined.</d:message>
</d:item>

<d:item name="no significant content"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">No significant content is contained
  in this element.</d:message>
</d:item>

<d:item name="no significant content before"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">There is no significant content
  before this element.</d:message>
</d:item>

<d:item name="no significant content at the end"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">No significant content is contained
  at the end of this element.</d:message>
</d:item>

<d:item name="ps element missing"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">There is no <code><var>{text}</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>

<d:item name="rp:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The content of a <code>rp</code> element must
  be a parenthesis.</d:message>
</d:item>

</section>

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

<d:item name="attribute missing"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Required attribute <code><var>{text}</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>.
    Without required attributes specified, user agents 
    cannot provide full functionality of the element to the user.</p>

    <dl class="switch">
    <dt>HTML <code>img</code> element</dt>
        <dd>The <code>src</code> attribute must be specified.
        Additionally, the <code>alt</code> attribute must be specified
        in many cases.</dd>
    <dt>HTML <code>link</code> element</dt>
        <dd>The <code>rel</code> attribute must be specified.
        Note that the <code>rev</code> attribute is obsolete.</dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="attribute missing:data|type"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">For an <code>object</code> at least one of
  <code>data</code> and <code>type</code> attributes must be 
  specified.</d:message>
</d:item>

<d:item name="attribute missing:href|target"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">For a <code>base</code> element, at least one of
  <code>href</code> and <code>target</code> attributes must be
  specified.</d:message>
</d:item>

<d:item name="attribute missing:name|http-equiv"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">For a <code>meta</code> element with the
  <code>content</code> attribute specified, exactly one of
  <code>name</code> and <code>http-equiv</code> attributes must be
  specified.</d:message>
</d:item>

<d:item name="attribute missing:name|http-equiv|charset"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">For a <code>meta</code> element, exactly one of
  <code>name</code>, <code>http-equiv</code>, and <code>charset</code>
  attributes must be specified.</d:message>
</d:item>

<d:item name="attribute not allowed"
    modules="ContentChecker::HTML RDFXML">
  <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="attribute not allowed:ismap"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>ismap</code> attribute may only be
  used for the image contained in an <code>a</code> element.</d:message>
</d:item>

<d:item name="attribute not defined"
    modules="ContentChecker">
  <d:message xml:lang="en">This attribute is not defined.</d:message>
</d:item>

<d:item name="in HTML:xml:lang"
    class="attribute-error"
    modules="ContentChecker::XML">
  <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>Use of the <code>xml:lang</code> attribute is conforming
    <em>only</em> in XML documents.</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"
    modules="ContentChecker::HTML">
  <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"
    modules="ContentChecker::HTML">
  <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 conforming <em>only</em> in
    HTML documents.</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:noscript"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">A <code>noscript</code> element cannot be 
  used in XML document.</d:message>
</d:item>

<d:item name="in XML:xmlns"
    modules="ContentChecker::HTML">
  <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="boolean:invalid"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Attribute value <code><var>{@}</var></code>
  is not allowed.  It must be an empty string or a string
  <code><var>{local-name}</var></code>.</d:message>
</d:item>

<d:item name="char:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value must be exactly one
  character.</d:message>
</d:item>

<d:item name="charref in charset"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">A character reference cannot be used to
  represent a character encoding name.</d:message>
</d:item>

<d:item name="charset:not preferred"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Character encoding name
  <code><var>{value}</var></code> is not the preferred name of that
  character encoding.</d:message>
</d:item>

<d:item name="charset:not registered"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Character encoding name
  <code><var>{value}</var></code> is not a registered name.</d:message>
  <d:desc xml:lang="en">
    <p>The specified character encoding name is not registered to
    <abbr>IANA</abbr>.  Use of registered character encoding name
    is a good practice to facilitate interoperability.</p>

    <dl class="switch">
    <dt><code>EUC-TW</code></dt>
      <dd><code>EUC-TW</code> is not registered.  Unfortunately, there
      is no registered name for that character encoding.  Use
      Big5 encoding with character encoding name <code>Big5</code> 
      if it is enough to represent the document.</dd>
    <dt><code>ISO-2022-JP-1</code></dt>
      <dd><code>ISO-2022-JP-1</code> is not registered, nevertheless
      this character encoding name is documented in 
      <a href="urn:ietf:rfc:2237"><abbr>RFC</abbr> 2237</a>.  Use
      <code>ISO-2022-JP-2</code> instead, since that character encoding
      is a superset of ISO-2022-JP-1.</dd>
    <dt><code>ISO-2022-JP-3</code>, <code>ISO-2022-JP-3-plane1</code></dt>
      <dd>These names are not registered and obsoleted in favor of
      <code>ISO-2022-JP-2004</code> and
      <code>ISO-2022-JP-2004-plane1</code>.</dd>
    <dt><code>ISO-2022-JP-2003</code>,
    <code>ISO-2022-JP-2003-plane1</code></dt>
      <dd>These names are not registered and corrected to
      <code>ISO-2022-JP-2004</code> and
      <code>ISO-2022-JP-2004-plane1</code>.</dd>
    <dt><code>ISO-2022-JP-2004</code>,
    <code>ISO-2022-JP-2004-plane1</code></dt>
      <dd>These names are not registered.  Unfortunately, there is 
      no registered name for these character encodings.</dd>
    <dt><code>UTF-8N</code></dt>
      <dd><code>UTF-8N</code> is not registered.  Character encoding
      name <code>UTF-8</code> represents UTF-8 encoding with or
      without <abbr>BOM</abbr>.</dd>
    </dl>

    <p><strong>WARNING</strong>: This error might be raised for
    a registered character encoding name, since the character encoding
    name database of the conformance checker is not complete yet.</p>
  </d:desc>
</d:item>

<d:item name="charset:private"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Character encoding name
  <code><var>{value}</var></code> is a private name.</d:message>
  <d:desc xml:lang="en">
    <p>The specified character encoding name is a private name and
    not registered to <abbr>IANA</abbr>.  Use of registered character
    encoding name is a good practice to facilitate interoperability.</p>

    <dl class="switch">
    <dt><code>x-euc-jp</code></dt>
      <dd>Use <code>EUC-JP</code> for the Japanese <abbr>EUC</abbr>
      character encoding.</dd>
    <dt><code>x-sjis</code></dt>
      <dd>Use <code>Shift_JIS</code> for standard Shift encoding scheme of
      <abbr>JIS</abbr> coded character set, or <code>Windows-31J</code>
      for Microsoft standard character set as implemented by
      Microsoft Windows.</dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="charset:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value <code><var>{value}</var></code>
  is syntactically not a character encoding name.</d:message>
  <d:desc xml:lang="en">
    <p>The attribute value must be a character encoding name.  However,
    the specified value is not a character encoding name syntactically.
    The document is non‐conforming.</p>
    <p>Character encoding name is a string of <abbr>ASCII</abbr>
    printable characters, up to 40 characters.</p>
  </d:desc>
</d:item>

<d:item name="color:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value is not a color
  name or hexadecimal color number.</d:message>
</d:item>

<d:item name="coords:number not 3"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>coords</code> attribute have to
  contain three (3) numbers (specified:
  <code><var>{text}</var></code>).</d:message>
</d:item>

<d:item name="coords:number not 4"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>coords</code> attribute have to
  contain four (4) numbers (specified:
  <code><var>{text}</var></code>).</d:message>
</d:item>

<d:item name="coords:number lt 6"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>coords</code> attribute have to
  contain more than or equal to six (6) numbers (specified:
  <code><var>{text}</var></code>).</d:message>
</d:item>

<d:item name="coords:number not even"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>coords</code> attribute have to
  contain even number of numbers (specified:
  <code><var>{text}</var></code>).</d:message>
</d:item>

<d:item name="coords:out of range"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value <code><var>{value}</var></code>
  is out of range.</d:message>
</d:item>

<d:item name="coords:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value is not valid.</d:message>
</d:item>

<d:item name="datetime:bad year"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Year number is out of range.</d:message>
</d:item>

<d:item name="datetime:bad month"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Month number is out of range.</d:message>
</d:item>

<d:item name="datetime:bad day"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Day number is out of range.</d:message>
</d:item>

<d:item name="datetime:bad hour"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Hour number is out of range.</d:message>
</d:item>

<d:item name="datetime:bad minute"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Minute number is out of range.</d:message>
</d:item>

<d:item name="datetime:bad second"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Second number is out of range.</d:message>
</d:item>

<d:item name="datetime:bad timezone hour"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Hour number of the timezone component is out of
  range.</d:message>
</d:item>

<d:item name="datetime:bad timezone minute"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Minute number of the timezone component is out of
  range.</d:message>
</d:item>

<d:item name="datetime:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not a datetime.</d:message>
</d:item>

<d:item name="dateortime:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not a date or
  time.</d:message>
</d:item>

<d:item name="enumerated:invalid"
    modules="ContentChecker::HTML">
  <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 values <code>Default-Style</code> and <code>Refresh</code>
        are 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="enumerated:invalid:http-equiv:content-type"
    class="attribute-value-error">
  <d:message xml:lang="en">Character encoding declaration syntax
  <code class="html bad example">&lt;meta http-equiv="Content-Type" content="text/html; charset=<var>charset-name</var>"></code>
  is obsolete.</d:message>
  <d:desc xml:lang="en">
    <p>Old long character encoding declaration syntax
    <code class="html bad example">&lt;meta http-equiv="Content-Type" content="text/html; charset=<var>charset-name</var>"></code>
    is in use.  The document is non‐conforming.</p>

    <p>The new character encoding declaration syntax is:
      <pre class="html example"><code>&lt;meta charset="<var>charset-name</var>"></code></pre>
    </p>
  </d:desc>
</d:item>

<d:item name="enumerated:non-conforming"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Attribute value <code><var>{@}</var></code>
  is not allowed.</d:message>
</d:item>

<d:item name="duplicate http-equiv"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">There is another pragma
  <code><var>{value}</var></code>.</d:message>
</d:item>

<d:item name="duplicate ID"
    class="attribute-value-error"
    modules="ContentChecker::XML ContentChecker::HTML">
  <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="duplicate token"
    modules="ContentChecker::HTML HTML::Table">
  <d:message xml:lang="en">The token <code><var>{value}</var></code>
  appears in the attribute value twice.</d:message>
</d:item>

<d:item name="empty attribute value"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value must not be empty.</d:message>
</d:item>

<d:item name="float:out of range"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value is out of range.</d:message>
</d:item>

<d:item name="float:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not a real
  number.</d:message>
</d:item>

<d:item name="fragment points itself"
    modules="ContentChecker">
  <d:message xml:lang="en">A fragment identifier references the element
  itself.</d:message>
</d:item>

<d:item name="fragment points nothing"
    modules="ContentChecker">
  <d:message xml:lang="en">A fragment identifier references no
  node.</d:message>
</d:item>

<d:item name="hashref:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">A hash−name reference must start with a
  <code>#</code> character.</d:message>
</d:item>

<d:item name="id ne name"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The <code>id</code> attribute value is 
  different from the <code>name</code> attribute value.</d:message>
</d:item>

<d:item name="integer:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not an integer.</d:message>
</d:item>

<d:item name="link type:bad context"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The link type <code><var>{value}</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="invalid attribute value"
    class="attribute-value-error"
    modules="ContentChecker::XML ContentChecker::HTML ContentChecker::Atom">
  <d:message xml:lang="en">Attribute value <code><var>{@}</var></code>
  is not an allowed value.</d:message>
</d:item>

<d:item name="length:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not a length
  value.</d:message>
</d:item>

<d:item name="link type:non-conforming"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The link type <code><var>{value}</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 class="switch">
    <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>previous</code></dt>
      <dd>Use link type <code>prev</code>.</dd>
    <dt>Link type <code>start</code></dt>
      <dd>Use link type <code>first</code>.</dd>
    <dt>Link type <code>toc</code> or <code>top</code></dt>
      <dd>Use link type <code>index</code>.</dd>
    </dl>
  </d:desc>
</d:item>

<d:item name="meta content-type syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value is not a valid as a long
  character encoding declaration.</d:message>
</d:item>

<d:item name="mismatched charset name"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified character encoding name
  <code><var>{value}</var></code> is different from the actual document
  character encoding <code><var>{text}</var></code>.</d:message>
  <d:desc xml:lang="en">
    <p>The specified character encoding name is different from
    the character encoding of the document.  The document
    is non‐conforming.</p>
  </d:desc>
</d:item> 

<d:item name="mismatched charset name not checked"
    mopdules="ContentChecker::HTML">
  <d:message xml:lang="en">Whether the specified character encoding name
  <code><var>{value}</var></code> matches to the actual character encoding
  name cannot be checked since the input is not a byte stream.</d:message>
</d:item>

<d:item name="mode:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not a valid mode
  name.</d:message>
</d:item>

<d:item name="nninteger:out of range"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value is out of range.</d:message>
</d:item>

<d:item name="nninteger:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not a non‐negative
  integer.</d:message>
</d:item>

<d:item name="no referenced map"
    modules="ContentChecker">
  <d:message xml:lang="en">The <code>usemap</code> attribute references
  no image map.</d:message>
</d:item>

<d:item name="no referenced menu"
    modules="ContentChecker">
  <d:message xml:lang="en">The <code>contextmenu</code> attribute references
  no menu.</d:message>
</d:item>

<d:item name="no referenced header cell"
    modules="ContentChecker">
  <d:message xml:lang="en">There is no table header cell whose <code>id</code>
  is <code><var>{value}</var></code> in the same table.</d:message>
</d:item>

<d:item name="refresh:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">the specified value is not a valid as part
  of a <code>Refresh</code> pragma.</d:message>
</d:item>

<d:item name="repeat:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The attribute value is not an integer or 
  a string <code>template</code>.</d:message>
</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>

<d:item name="Reserved Prefixes and Namespace Names:Name"
    modules="ContentChecker::XML">
  <d:message xml:lang="en">Namespace name <code><var>{text}</var></code>
  is reserved and cannot be used for an arbitrary prefix.</d:message>
</d:item>

<d:item name="Reserved Prefixes and Namespace Names:Prefix"
    modules="ContentChecker::XML">
  <d:message xml:lang="en">Namespace prefix <code><var>{text}</var></code>
  is reserved and cannot be used for an arbitrary namespace name.</d:message>
</d:item>

<d:item name="link type:proposed"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Link type <code><var>{value}</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.  The document might or might not be
    conforming depending on the status.  See WHATWG Wiki
    for the latest information.</p>
  </d:desc>
</d:item>

<d:item name="sizes:syntax error"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The specified value <code><var>{value}</var></code>
  is not a valid value.</d:message>
</d:item>

<d:item name="space in ID"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">White space characters are not allowed
  in the <code>id</code> attribute.</d:message>
</d:item>

<d:item name="template:not template"
    modules="ContentChecker ContentChecker::HTML">
  <d:message xml:lang="en">The node referenced by the <code>template</code>
  attribute is not a template.</d:message>
</d:item>

<d:item name="window name:empty"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Browsing context name must not be empty.</d:message>
</d:item>

<d:item name="window name:reserved"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Browsing context name
  <code><var>{value}</var></code> is reserved.</d:message>
</d:item>

<d:item name="word not allowed"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">The word <code><var>{value}</var></code> is not
  allowed in this attribute.</d:message>
</d:item>

<d:item name="XML 1.0 NCName:syntax error"
    modules="RDFXML">
  <d:message xml:lang="en">The specified value is not a legal XML Namespaces
  1.0 <code>NCName</code>.</d:message>
</d:item>

</section>

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

<d:item name="cell overlapping"
    modules="HTML::Table">
  <d:message xml:lang="en">Cell slot (<var>{text}</var>) is filled by
  multiple cells.</d:message>
</d:item>

<d:item name="colspan creates column with no anchored cell"
    modules="HTML::Table">
  <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="column with no anchored cell"
    modules="HTML::Table">
  <d:message xml:lang="en">This column has no anchored cell.</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 bad example"><code>&lt;table>
&lt;tbody>
&lt;tr>&lt;td rowspan=2>&lt;/td>&lt;/tr>
&lt;/tbody>
&lt;/table></code></pre>
    ... since the second row contains only
    a cell that spans between first and second rows.</p>
  </d:desc>
</d:item>

<d:item name="row with no anchored cell"
    modules="HTML::Table">
  <d:message xml:lang="en">This row has no anchored cell.</d:message>
</d:item>

<d:item name="rowspan creates row with no anchored cell"
    modules="HTML::Table">
  <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:item>


</section>

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

<d:item name="IMT:composite"
    modules="ContentChecker::Atom">
  <d:message xml:lang="en">The specified media type is a composite
  type, which is not allowed in this context.</d:message>
</d:item>

<d:item name="IMT:syntax error"
    modules="ContentChecker::HTML ContentChecker::Atom">
  <d:message xml:lang="en">The specified value is not an Internet Media
  Type.</d:message>
</d:item>

<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 xml:lang="en">
    <p>The specified Internet Media Type is registered with status
    of <i>OBSOLETE</i>.</p><!-- @@ SHOULD NOT? -->
    
    <dl class="swtich">
    <dt>Media type <code>text/ecmascript</code></dt>
      <dd>Media type <code>text/ecmascript</code> is obsoleted in
      favor of <code>application/ecmascript</code>.  Note that
      <code>text/javascript</code> would be better alternative
      for many cases.</dd>
    <dt>Media type <code>text/javascript</code></dt>
      <dd>Media type <code>text/javascript</code> is obsoleted by 
      <abbr>IETF</abbr> with backward incompatible alternate
      <code>application/javascript</code> for architectural 
      purity.<!-- @@ ref? -->  Realist may ignore this warning.</dd>
    </dl>
  </d:item>
</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>

<d:item name="not IMT"
    modules="ContentChecker::Atom">
  <d:message xml:lang="en">A value that is not an Internet Media Type
  is not allowed here.</d:message>
</d:item>

</section>

<section id="uri-errors">
<h2>URL Errors</h2>

<d:item name="syntax error:iri3987"
    modules="URIChecker">
  <d:message xml:lang="en">The specified value is syntactically not an
  IRI.</d:message>
</d:item>

<d:item name="syntax error:iriref3987"
    modules="URIChecker">
  <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>

<d:item name="syntax error:rdfuriref"
    modules="URIChecker">
  <d:message xml:lang="en">The specified value is syntactically not an RDF
  URI reference.</d:message>
</d:item>

<d:item name="syntax error:uri2396"
    modules="URIChecker">
  <d:message xml:lang="en">The specified value is syntactically not a
  URI according to RFC 2396.</d:message>
</d:item>

<d:item name="syntax error:uri3986"
    modules="URIChecker">
  <d:message xml:lang="en">The specified value is syntactically not a
  URI.</d:message>
</d:item>

<d:item name="URL:address format"
    modules="URIChecker">
  <d:message xml:lang="en">URL host address format
  <code><var>{value}</var></code> is not supported by the
  conformance checker.</d:message>
</d:item>

<d:item name="URL:default port"
    modules="URIChecker">
  <d:message xml:lang="en">Default port number should be omitted.</d:message>
</d:item>

<d:item name="URL:dot-segment"
    modules="URIChecker">
  <d:message xml:lang="en">A dot-segment (<code>.</code> or
  <code>..</code>) occurs 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="URL:empty host"
    modules="URIChecker">
  <d:message xml:lang="en">The host component of the URL is empty.</d:message>
</d:item>

<d:item name="URL:empty path"
    modules="URIChecker">
  <d:message xml:lang="en">The URL does not end with
  a <code>/</code> character.</d:message>
  <d:item xml:lang="en">
    <p>The IRI does not end with a <code>/</code>.  If there is an
    authority component in an IRI, a <code>/</code> should be present
    instead of empty path component.</p>

    <p>For example, <code>http://www.example.com<strong>/</strong></code>
    is preferred to <code>http://www.example.com</code>.</p>
  </d:item>
</d:item>

<d:item name="URL:empty port"
    modules="URIChecker">
  <d:message xml:lang="en">The port component of the URL is empty.</d:message>
</d:item>

<d:item name="URL:long host"
    modules="URIChecker">
  <d:message xml:lang="en">The host component of the URL
  is too long.</d:message>
</d:item>

<d:item name="URL:lowercase hexadecimal digit"
    modules="URIChecker">
  <d:message xml:lang="en">A lowercase hexadecimal digit is used
  in percent-encoding.</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="URL:non-DNS host"
    modules="URIChecker">
  <d:message xml:lang="en">The host component of the URL
  is not a DNS host name.</d:message>
</d:item>

<d:item name="URL:non UTF-8 host"
    modules="URIChecker">
  <d:message xml:lang="en">The host component of the URL
  is not encoded in UTF-8.</d:message>
</d:item>

<d:item name="URL:password"
    modules="URIChecker">
  <d:message xml:lang="en">Password should not be included in a URL
  for the security.</d:message>
</d:item>

<d:item name="URL:percent-encoded unreserved"
    modules="URIChecker">
  <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="URL:uppercase host"
    modules="URIChecker">
  <d:message xml:lang="en">The host <code><var>{value}</var></code>
  should be spelt in lowercase.</d:message>
</d:item>

<d:item name="URL:uppercase scheme name"
    modules="URIChecker">
  <d:message xml:lang="en">URL 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="cache-manifest-errors">
<h2>Cache Manifest Errors</h2>

<d:item name="not manifest" class="must" level="m">
  <d:message xml:lang="en">This document is not a cache manifest.</d:message>
  <d:desc xml:lang="en">
    <p>The specified document is <em>not</em> a cache manifest.
    The document is non-conforming.</p>

    <p>An entity labeled as Internet media type 
    <code>text/cache-manifest</code> must contain a cache manifest.</p>

    <p>A cache manifest must start with a line whose content is 
    <code class="manifest example">CACHE MANIFEST</code>
    (exactly one space character between
    <code>CACHE</code> and <code>MANIFEST</code>).</p>
  </d:desc>
</d:item>
</section>

<section id="information">
<h2>Stability Information</h2>

<d:item name="deprecated:attr"
    modules="ContentChecker">
  <d:message xml:lang="en">This attribute is deprecated.</d:message>
</d:item>

<d:item name="deprecated:element"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is deprecated.</d:message>
</d:item>

<d:item name="status:cr:element"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is in the
  <strong>call for implementation</strong> stage.</d:message>
  <d:desc xml:lang="en">
    <p>The element is in the call for implementation stage.</p>
    
    <p>Usually, using the element is safe.  However, it is a new feature
    so that it might not be implemented correctly.  If it is found that
    the feature is hard or impossible to implement, the feature
    might be revised, or in some case it might be dropped.</p>

    <p>Elements defined by Atom 1.0 (IETF Proposed Standard), and XBL 2.0
    (W3C Candidate Recommendation) belong to this class.</p>
  </d:desc>
</d:item>

<d:item name="status:lc:element"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is in the <strong>last
  call for comments</strong> stage.</d:message>
  <d:desc xml:lang="en">
    <p>The element is in the last call for comments stage.</p>
    
    <p>The element is relatively mature, though the standardization
    is not done yet.  It may be used for experiments.  Since it is a new
    feature, it might not be implemented correctly or at all.  If it is
    found that the feature is hard or impossible to implement, the feature
    might be revised or might be dropped.</p>

    <p>Elements defined by Web Forms 2.0 as well as some elements
    defined by HTML5 belong to this class.</p>
  </d:desc>
</d:item>

<d:item name="status:wd:element"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is documented in a <strong>working
  draft</strong>.</d:message>
  <d:desc xml:lang="en">
    <p>The element is documented in a working or editor's draft
    and not yet completed.</p>
    
    <p>The element should not be used for any practical purpose.
    The feature might be drastically changed later or might be
    entirely removed.</p>

    <p>Most of new elements defined by HTML5 belong to this class.</p>
  </d:desc>
</d:item>

<d:item name="status:non-standard:element"
    modules="ContentChecker">
  <d:message xml:lang="en">This element is <strong>not part of any
  standard</strong> the conformance checker knows.</d:message>
  <d:desc xml:lang="en">
    <p>The element is not part of any standard or draft the conformance
    checker is aware of.</p>
    
    <p>The element should not be used for any practical purpose unless
    there is really a standard that defines the element.</p>
  </d:desc>
</d:item>

<d:item name="status:cr:attr"
    modules="ContentChecker">
  <d:message xml:lang="en">This attribute is in the
  <strong>call for implementation</strong> stage.</d:message>
  <d:desc xml:lang="en">
    <p>The attribute is in the call for implementation stage.</p>
    
    <p>Usually, using the attribute is safe.  However, it is a new feature
    so that it might not be implemented correctly.  If it is found that
    the feature is hard or impossible to implement, the feature
    might be revised, or in some case it might be dropped.</p>
  </d:desc>
</d:item>

<d:item name="status:lc:attr"
    modules="ContentChecker">
  <d:message xml:lang="en">This attribute is in the <strong>last
  call for comments</strong> stage.</d:message>
  <d:desc xml:lang="en">
    <p>The attribute is in the last call for comments stage.</p>
    
    <p>The attribute is relatively mature, though the standardization
    is not done yet.  It may be used for experiments.  Since it is a new
    feature, it might not be implemented correctly or at all.  If it is
    found that the feature is hard or impossible to implement, the feature
    might be revised or might be dropped.</p>
  </d:desc>
</d:item>

<d:item name="status:wd:attr"
    modules="ContentChecker">
  <d:message xml:lang="en">This attribute is documented in a <strong>working
  draft</strong>.</d:message>
  <d:desc xml:lang="en">
    <p>The attribute is documented in a working or editor's draft
    and not yet completed.</p>
    
    <p>The attribute should not be used for any practical purpose.
    The feature might be drastically changed later or might be
    entirely removed.</p>
  </d:desc>
</d:item>

<d:item name="status:non-standard:attr"
    modules="ContentChecker">
  <d:message xml:lang="en">This attribute is <strong>not part of any
  standard</strong> the conformance checker knows.</d:message>
  <d:desc xml:lang="en">
    <p>The attribute is not part of any standard or draft the conformance
    checker is aware of.</p>
    
    <p>The attribute should not be used for any practical purpose unless
    there is really a standard that defines the attribute.</p>
  </d:desc>
</d:item>
</section>

<section id="langtag-errors">
<h2>Language Tag Errors</h2>

<d:item name="langtag:extension:duplication"
    modules="LangTag">
  <d:message xml:lang="en">There is another extension subtag
  <code><var>{value}</var></code>.</d:message>
</d:item>

<d:item name="langtag:illegal"
    modules="LangTag">
  <d:message xml:lang="en">Subtag <code><var>{value}</var></code> is 
  syntactically invalid.</d:message>
</d:item>

<d:item name="langtag:language:case"
    modules="LangTag">
  <d:message xml:lang="en">It is a good practice to represent ISO 639-1
  language code <code><var>{value}</var></code> in lowercase.</d:message>
</d:item>

<d:item name="langtag:language:mul"
    modules="LangTag">
  <d:message xml:lang="en">Langauge tag <code>mul</code> should not be
  used.</d:message>
</d:item>

<d:item name="langtag:language:nosemantics"
    modules="LangTag">
  <d:message xml:lang="en">No semantics is defined for language subtag
  <code><var>{value}</var></code>.</d:message>
</d:item>

<d:item name="langtag:language:syntax"
    modules="LangTag">
  <d:message xml:lang="en">The language subtag <code><var>{value}</var></code>
  is syntactically invalid.</d:message>
</d:item>

<d:item name="langtag:language:und"
    modules="LangTag">
  <d:message xml:lang="en">Langauge tag <code>und</code> should not be
  used.</d:message>
</d:item>

<d:item name="langtag:private"
    modules="LangTag">
  <d:message xml:lang="en">It would be better if a private use language
  tag (<code><var>{value}</var></code>) is not used.</d:message>
</d:item>

<d:item name="langtag:privateuse:syntax"
    modules="LangTag">
  <d:message xml:lang="en">Private use subtag <code><var>{value}</var></code>
  is syntactically invalid.</d:message>
</d:item>

<d:item name="langtag:region:case"
    modules="LangTag">
  <d:message xml:lang="en">It is a good practice to represent ISO 3166
  country code <code><var>{value}</var></code> in uppercase.</d:message>
</d:item>

<d:item name="langtag:region:nosemantics"
    modules="LangTag">
  <d:message xml:lang="en">No semantics is defined for region subtag
  <code><var>{value}</var></code>.</d:message>
</d:item>

<d:item name="langtag:region:private"
    modules="LangTag">
  <d:message xml:lang="en">Use of private use country code
  <code><var>{value}</var></code> is not allowed.</d:message>
</d:item>

</section>

<section id="rdfxml-errors">
<h2>RDF/XML Errors</h2>

<d:item name="bad rdf namespace"
    modules="RDFXML">
  <d:message xml:lang="en">The namespace URI of an element that
  represents an RDF concept must be 
  <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code>.</d:message>
</d:item>

<d:item name="duplicate rdf id"
    modules="RDFXML">
  <d:message xml:lang="en">The specified value is already used as an
  ID.</d:message>
</d:item>

<d:item name="duplicate unqualified attr"
    modules="RDFXML">
  <d:message xml:lang="en">Both unqualified attribute and namespace‐qualified
  RDF attribute are specified, which is not allowed.</d:message>
</d:item>

<d:item name="parse type other"
    modules="RDFXML">
  <d:message xml:lang="en">An invalid value is specified to 
  the <code>parseType</code> attribute.</d:message>
</d:item>

<d:item name="second node element" 
    modules="RDFXML">
  <d:message xml:lang="en">There is another element, such that
  this element is not allowed.</d:message>
</d:item>

<d:item name="unqualified attr"
    modules="RDFXML">
  <d:message xml:lang="en">Unqualified attribute is not allowed.</d:message>
</d:item>

<d:item name="unqualified rdf attr"
    modules="RDFXML">
  <d:message xml:lang="en">RDF attribute should be
  namespace‐qualified.</d:message>
</d:item>

</section>

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

<d:item name="unknown element"
    modules="ContentChecker">
  <d:message xml:lang="en">Conformance checking for element
  <code><var>{local-name}</var></code> is not supported; <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="unknown attribute"
    modules="ContentChecker ContentChecker::HTML ContentChecker::Atom">
  <d:message xml:lang="en">Conformance checking for attribute
  <code><var>{local-name}</var></code> of element 
  <code><var>{element-local-name}</var></code> is not supported;
  <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="unknown link type"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Link type <code><var>{value}</var></code> is not
  standardized or registered at the time of the release of the conformance
  checker; <em>it is non-conforming unless it now has 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"
    modules="ContentChecker::HTML">
  <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="media query"
    modules="ContentChecker::HTML">
  <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="addr-spec not supported"
    modules="ContentChecker::Atom">
  <d:message xml:lang="en">Conformance checking for an <code>addr-spec</code>
  is not supported; <em>it might or might not be conforming.</em></d:message>
</d:item>

<d:item name="XML script lang"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Conformance checking for script
  language <code><var>{text}</var></code> is not supported;
  <em>it might or might not be conforming.</em></d:message>
</d:item>

<d:item name="XML style lang"
    modules="ContentChecker::HTML">
  <d:message xml:lang="en">Conformance checking for style
  language <code><var>{text}</var></code> is not supported;
  <em>it might or might not be conforming.</em></d:message>
</d:item>

<d:item name="atom|content not supported"
    modules="ContentChecker::Atom">
  <d:message xml:lang="en">Conformance checking for an Atom
  <code>content</code> element with <code>type</code>
  <code><var>{text}</var></code> is not supported.</d:message>
</d:item>

</section>

<d:cat name="WebHACC:Title">
  <d:text xml:lang="en">WebHACC (β)</d:text>
</d:cat>

<d:cat name="WebHACC:Heading">
  <d:text xml:lang="en">
    <a href="../cc-about"><abbr title="Web Hypertext Application Conformance Checker (β)"><img src="../icons/title" alt="WebHACC"/></abbr></a>
  </d:text>
  <d:text xml:lang="ja">
    <a href="../cc-about"><abbr title="Web ハイパーテキスト応用適合性検査器 (β)"><img src="../icons/title" alt="WebHACC"/></abbr></a>
  </d:text>
</d:cat>

<d:cat name="Input">
  <d:text xml:lang="en">Input</d:text>
  <d:text xml:lang="ja">入力</d:text>
</d:cat>

<d:cat name="By URL">
  <d:text xml:lang="en">By URL</d:text>
  <d:text xml:lang="ja">URL で指定</d:text>
</d:cat>

<d:cat name="By direct input">
  <d:text xml:lang="en">By direct input</d:text>
  <d:text xml:lang="ja">直接入力</d:text>
</d:cat>

<d:cat name="Options">
  <d:text xml:lang="en">More options</d:text>
  <d:text xml:lang="ja">検査オプション</d:text>
</d:cat>

<d:cat name="Check error page">
  <d:text xml:lang="en">Check an error page</d:text>
  <d:text xml:lang="ja">誤り頁を検査する</d:text>
</d:cat>

<d:cat name="Content type">
  <d:text xml:lang="en">Content type</d:text>
  <d:text xml:lang="ja">内容型</d:text>
</d:cat>

<d:cat name="Charset">
  <d:text xml:lang="en">Character encoding</d:text>
  <d:text xml:lang="ja">文字符号化</d:text>
</d:cat>

<d:cat name="As specified">
  <d:text xml:lang="en">As specified</d:text>
  <d:text xml:lang="ja">指定通り</d:text>
</d:cat>

<d:cat name="Japanese charsets">
  <d:text xml:lang="en">Japanese character encodings</d:text>
  <d:text xml:lang="ja">日本語用文字符号化</d:text>
</d:cat>

<d:cat name="European charsets">
  <d:text xml:lang="en">European character encodings</d:text>
  <d:text xml:lang="ja">欧米言語用文字符号化</d:text>
</d:cat>

<d:cat name="Asian charsets">
  <d:text xml:lang="en">Asian character encodings</d:text>
  <d:text xml:lang="ja">アジア諸語用文字符号化</d:text>
</d:cat>

<d:cat name="Unicode charsets">
  <d:text xml:lang="en">Unicode character encodings</d:text>
  <d:text xml:lang="ja">Unicode 系文字符号化</d:text>
</d:cat>

<d:cat name="Document source to check">
  <d:text xml:lang="en">Document source to check</d:text>
  <d:text xml:lang="ja">検査する文書のソース</d:text>
</d:cat>

<d:cat name="Check">
  <d:text xml:lang="en">Check</d:text>
  <d:text xml:lang="ja">検査</d:text>
</d:cat>

<d:cat name="Setting innerHTML">
  <d:text xml:lang="en">Setting <code>innerHTML</code> of HTML element</d:text>
  <d:text xml:lang="ja"><code>innerHTML</code> に値を設定する HTML 要素</d:text>
</d:cat>

<d:cat name="Information">
  <d:text xml:lang="en">Information</d:text>
  <d:text xml:lang="ja">情報</d:text>
</d:cat>

<d:cat name="HTTP Header">
  <d:text xml:lang="en"><abbr title="Hypertext Transfer Protocol">HTTP</abbr>
      Header</d:text>
  <d:text xml:lang="ja"><abbr lang="en" title="Hypertext Transfer Protocol">HTTP</abbr>
      頭部</d:text>
</d:cat>

<d:cat name="Parse Errors Section">
  <d:text xml:lang="en">Parse Errors</d:text>
  <d:text xml:lang="ja">構文誤り</d:text>
</d:cat>

<d:cat name="Parse Errors">
  <d:text xml:lang="en">Parse Errors</d:text>
  <d:text xml:lang="ja">構文誤り</d:text>
</d:cat>

<d:cat name="Document Source">
  <d:text xml:lang="en">Document Source</d:text>
  <d:text xml:lang="ja">文書のソース</d:text>
</d:cat>

<d:cat name="Source">
  <d:text xml:lang="en">Source</d:text>
  <d:text xml:lang="ja">ソース</d:text>
</d:cat>

<d:cat name="Tables Section">
  <d:text xml:lang="en">Structure of Tables</d:text>
  <d:text xml:lang="ja">表の構造</d:text>
</d:cat>

<d:cat name="Tables">
  <d:text xml:lang="en">Tables</d:text>
  <d:text xml:lang="ja">表</d:text>
</d:cat>

<d:cat name="Document Tree">
  <d:text xml:lang="en">Document Tree</d:text>
  <d:text xml:lang="ja">文書木</d:text>
</d:cat>

<d:cat name="Tree">
  <d:text xml:lang="en">Tree</d:text>
  <d:text xml:lang="ja">木</d:text>
</d:cat>

<d:cat name="Document">
  <d:text xml:lang="en">Document</d:text>
  <d:text xml:lang="ja">文書</d:text>
</d:cat>

<d:cat name="Document Structure">
  <d:text xml:lang="en">Document Structure</d:text>
  <d:text xml:lang="ja">文書構造</d:text>
</d:cat>

<d:cat name="Structure">
  <d:text xml:lang="en">Structure</d:text>
  <d:text xml:lang="ja">構造</d:text>
</d:cat>

<d:cat name="Reformatted Document Source">
  <d:text xml:lang="en">Reformatted Document Source</d:text>
  <d:text xml:lang="ja">再整形した文書のソース</d:text>
</d:cat>

<d:cat name="Reformatted">
  <d:text xml:lang="en">Reformatted</d:text>
  <d:text xml:lang="ja">再整形</d:text>
</d:cat>

<d:cat name="RDF Triples">
  <d:text xml:lang="en"><abbr>RDF</abbr> Triples</d:text>
  <d:text xml:lang="ja"><abbr lang="en">RDF</abbr> 三項組</d:text>
</d:cat>

<d:cat name="RDF">
  <d:text xml:lang="en"><abbr>RDF</abbr></d:text>
  <d:text xml:lang="ja"><abbr lang="en">RDF</abbr></d:text>
</d:cat>

<d:cat name="Structural Errors">
  <d:text xml:lang="en">Structural Errors</d:text>
  <d:text xml:lang="ja">構造的誤り</d:text>
</d:cat>

<d:cat name="Struct. Errors">
  <d:text xml:lang="en">Struct. Errors</d:text>
  <d:text xml:lang="ja">構造誤り</d:text>
</d:cat>

<d:cat name="Transfer Errors">
  <d:text xml:lang="en">Transfer Errors</d:text>
  <d:text xml:lang="ja">転送誤り</d:text>
</d:cat>

<d:cat name="Trans. Errors">
  <d:text xml:lang="en">Trans. Errors</d:text>
  <d:text xml:lang="ja">転送誤り</d:text>
</d:cat>

<d:cat name="Result">
  <d:text xml:lang="en">Result</d:text>
  <d:text xml:lang="ja">結果</d:text>
</d:cat>

<d:cat name="manakaiCompatMode:quirks">
  <d:text xml:lang="en">Quirks Mode</d:text>
  <d:text xml:lang="ja">奇癖モード</d:text>
</d:cat>

<d:cat name="manakaiCompatMode:limited quirks">
  <d:text xml:lang="en">Limited Quirks Mode</d:text>
  <d:text xml:lang="ja">限定奇癖モード</d:text>
</d:cat>

<d:cat name="manakaiCompatMode:no quirks">
  <d:text xml:lang="en">No Quirks Mode</d:text>
  <d:text xml:lang="ja">無奇癖モード</d:text>
</d:cat>

<d:cat name="manakaiIsHTML:1">
  <d:text xml:lang="en">HTML Document</d:text>
  <d:text xml:lang="ja">HTML 文書</d:text>
</d:cat>

<d:cat name="manakaiIsHTML:0">
  <d:text xml:lang="en">XML Document</d:text>
  <d:text xml:lang="ja">XML 文書</d:text>
</d:cat>

<d:cat name="manakaiCharset">
  <d:text xml:lang="en"><code>charset</code> parameter</d:text>
  <d:text xml:lang="ja"><code lang="en">charset</code> 引数</d:text>
</d:cat>

<d:cat name="inputEncoding">
  <d:text xml:lang="en">Input character encoding</d:text>
  <d:text xml:lang="ja">入力に用いた文字符号化</d:text>
</d:cat>

<d:cat name="xmlVersion">
  <d:text xml:lang="en">XML <code>version</code></d:text>
  <d:text xml:lang="ja">XML <code lang="en">version</code></d:text>
</d:cat>

<d:cat name="xmlEncoding">
  <d:text xml:lang="en">XML <code>encoding</code></d:text>
  <d:text xml:lang="ja">XML <code lang="en">encoding</code></d:text>
</d:cat>

<d:cat name="xmlStandalone">
  <d:text xml:lang="en">XML <code>standalone</code></d:text>
  <d:text xml:lang="ja">XML <code lang="en">standalone</code></d:text>
</d:cat>

<d:cat name="... with BOM">
  <d:text xml:lang="en"> (with <code class="charname"><abbr title="BYTE ORDER MARK">BOM</abbr></code>)</d:text>
  <d:text xml:lang="ja"> (<code class="charname" lang="en"><abbr title="BYTE ORDER MARK">BOM</abbr></code> つき)</d:text>
</d:cat>

<d:cat name="URL">
  <d:text xml:lang="en"><abbr title="Uniform Resource Locator">URL</abbr></d:text>
  <d:text xml:lang="ja"><abbr title="統一資源所在子">URL</abbr></d:text>
</d:cat>

<d:cat name="URLs">
  <d:text xml:lang="en"><abbr title="Uniform Resource Locators">URLs</abbr></d:text>
  <d:text xml:lang="ja"><abbr title="統一資源所在子">URL</abbr></d:text>
</d:cat>

<d:cat name="Container Node">
  <d:text xml:lang="en">Container Node</d:text>
  <d:text xml:lang="ja">この文書を含む節点</d:text>
</d:cat>

<d:cat name="Table Element">
  <d:text xml:lang="en">Table Element</d:text>
  <d:text xml:lang="ja">表要素</d:text>
</d:cat>

<d:cat name="Base URL">
  <d:text xml:lang="en">Base URL</d:text>
  <d:text xml:lang="ja">基底 URL</d:text>
</d:cat>

<d:cat name="Internet Media Type">
  <d:text xml:lang="en">Internet Media Type</d:text>
  <d:text xml:lang="ja">インターネット媒体型</d:text>
</d:cat>

<d:cat name="Character Encoding">
  <d:text xml:lang="en">Character Encoding</d:text>
  <d:text xml:lang="ja">文字符号化</d:text>
</d:cat>

<d:cat name="Byte Length">
  <d:text xml:lang="en">Byte Length</d:text>
  <d:text xml:lang="ja">バイト長</d:text>
</d:cat>

<d:cat name="Character Length">
  <d:text xml:lang="en">Character Length</d:text>
  <d:text xml:lang="ja">文字長</d:text>
</d:cat>

<d:cat name="... overridden">
  <d:text xml:lang="en"> (<i>overridden</i>)</d:text>
  <d:text xml:lang="ja"> (<i>上書き</i>)</d:text>
</d:cat>

<d:cat name="... overridden, official type is #">
  <d:text xml:lang="en"> (<i>overridden</i>; official type is
      <code lang="en" class="MIME"><var>{text}</var></code>)</d:text>
  <d:text xml:lang="ja"> (<i>上書き</i>, 公式型は
      <code lang="en" class="MIME"><var>{text}</var></code>)</d:text>
</d:cat>

<d:cat name="... sniffed">
  <d:text xml:lang="en"> (<i>sniffed</i>)</d:text>
  <d:text xml:lang="ja"> (<i>探知結果</i>)</d:text>
</d:cat>

<d:cat name="byte">
  <d:text xml:lang="en">byte</d:text>
  <d:text xml:lang="ja">バイト</d:text>
</d:cat>

<d:cat name="bytes">
  <d:text xml:lang="en">bytes</d:text>
  <d:text xml:lang="ja">バイト</d:text>
</d:cat>

<d:cat name="Subject">
  <d:text xml:lang="en">Subject</d:text>
  <d:text xml:lang="ja">主語</d:text>
</d:cat>

<d:cat name="Predicate">
  <d:text xml:lang="en">Predicate</d:text>
  <d:text xml:lang="ja">述語</d:text>
</d:cat>

<d:cat name="Object">
  <d:text xml:lang="en">Object</d:text>
  <d:text xml:lang="ja">目的語</d:text>
</d:cat>

<d:cat name="character">
  <d:text xml:lang="en">character</d:text>
  <d:text xml:lang="ja">文字</d:text>
</d:cat>

<d:cat name="characters">
  <d:text xml:lang="en">characters</d:text>
  <d:text xml:lang="ja">文字</d:text>
</d:cat>

<d:cat name="Line #">
  <d:text xml:lang="en">Line <var>{text}</var></d:text>
  <d:text xml:lang="ja"><var>{text}</var> 行</d:text>
</d:cat>

<d:cat name="column #">
  <d:text xml:lang="en">column <var>{text}</var></d:text>
  <d:text xml:lang="ja"><var>{text}</var> 列</d:text>
</d:cat>

<d:cat name="Index #">
  <d:text xml:lang="en">Index <var>{text}</var></d:text>
  <d:text xml:lang="ja">索引 #<var>{text}</var></d:text>
</d:cat>

<d:cat name="Unknown location">
  <d:text xml:lang="en">Unknown location</d:text>
  <d:text xml:lang="ja">位置不明</d:text>
</d:cat>

<d:cat name="Table #">
  <d:text xml:lang="en">Structure of Table #<var>{text}</var></d:text>
  <d:text xml:lang="ja">表 #<var>{text}</var> の構造</d:text>
</d:cat>

<d:cat name="Subdocument #">
  <d:text xml:lang="en">Subdocument #<var>{text}</var></d:text>
  <d:text xml:lang="ja">部分文書 #<var>{text}</var></d:text>
</d:cat>

<d:cat name="Sub #">
  <d:text xml:lang="en">Sub #<var>{text}</var></d:text>
  <d:text xml:lang="ja">部分 #<var>{text}</var></d:text>
</d:cat>

<d:cat name="...">
  <d:text xml:lang="en">..</d:text><!-- TODO: figure hyphen? -->
  <d:text xml:lang="ja">〜</d:text>
</d:cat>

<d:cat name="Score">
  <d:text xml:lang="en">Score</d:text>
  <d:text xml:lang="ja">得点</d:text>
</d:cat>

<d:cat name="Subtotal">
  <d:text xml:lang="en">Subtotal</d:text>
  <d:text xml:lang="ja">小計</d:text>
</d:cat>

<d:cat name="Total">
  <d:text xml:lang="en">Total</d:text>
  <d:text xml:lang="ja">合計</d:text>
</d:cat>

<d:cat name="Main document">
  <d:text xml:lang="en">Main document</d:text>
  <d:text xml:lang="ja">主文書</d:text>
</d:cat>

<d:cat name="Subdocuments">
  <d:text xml:lang="en">Subdocuments</d:text>
  <d:text xml:lang="ja">部分文書</d:text>
</d:cat>

<d:cat name="Transfer L.">
  <d:text xml:lang="en"><abbr title="Transfer protocol">Transfer</abbr></d:text>
  <d:text xml:lang="ja"><abbr title="転送プロトコル">転送</abbr></d:text>
</d:cat>

<d:cat name="Encode L.">
  <d:text xml:lang="en"><abbr title="Character encoding">Encoding</abbr></d:text>
  <d:text xml:lang="ja"><abbr title="文字符号化">符号</abbr></d:text>
</d:cat>

<d:cat name="Char L.">
  <d:text xml:lang="en"><abbr title="Coded characters">Character</abbr></d:text>
  <d:text xml:lang="ja"><abbr title="符号化文字">文字</abbr></d:text>
</d:cat>

<d:cat name="Syntax L.">
  <d:text xml:lang="en">Syntax</d:text>
  <d:text xml:lang="ja">構文</d:text>
</d:cat>

<d:cat name="Structure L.">
  <d:text xml:lang="en">Structure</d:text>
  <d:text xml:lang="ja">構造</d:text>
</d:cat>

<d:cat name="Semantics L.">
  <d:text xml:lang="en">Semantics</d:text>
  <d:text xml:lang="ja">意味</d:text>
</d:cat>

<d:cat name="N/A">
  <d:text xml:lang="en">N/A</d:text>
  <d:text xml:lang="ja">−</d:text>
</d:cat>

<d:cat name="No error found.">
  <d:text xml:lang="en">No error found.</d:text>
  <d:text xml:lang="ja">誤りは見つかりませんでした。</d:text>
</d:cat>

<d:cat name="No transfer error found.">
  <d:text xml:lang="en">This document has no transfer protocol header error.</d:text>
  <d:text xml:lang="ja">転送プロトコルの頭部に誤りは見つかりませんでした。</d:text>
</d:cat>

<d:cat name="No parse error found.">
  <d:text xml:lang="en">This document has no parse error.</d:text>
  <d:text xml:lang="ja">構文解析中に誤りは見つかりませんでした。</d:text>
</d:cat>

<d:cat name="No structural error found.">
  <d:text xml:lang="en">This document has no structral error.</d:text>
  <d:text xml:lang="ja">構造上の誤りは見つかりませんでした。</d:text>
</d:cat>

<d:cat name="This checker is work in progress.">
  <d:text xml:lang="en">
    <p><strong>Important</strong>: This conformance checking service
    is <em>under development</em>.  The result above might be <em>wrong</em>.</p>
  </d:text>
  <d:text xml:lang="ja">
    <p><strong>重要</strong>: この適合性検査サービスは<em>開発中</em>です。
    この結果は<em>間違い</em>かもしれません。</p>
  </d:text>
</d:cat>

<d:cat name="Conformance is conforming">
  <d:text xml:lang="en">No conformance‐error is
      found in this document.</d:text>
  <d:text xml:lang="ja">この文書に適合性に関わる誤りは見つかりませんでした。</d:text>
</d:cat>

<d:cat name="Conformance is should-error">
  <d:text xml:lang="en">This document
        is <strong>likely <em>non</em>-conforming</strong>, but in rare case
        it might be conforming.  The checker cannot determine whether
        this document is in the rare case or not.</d:text>
  <d:text xml:lang="ja">この文書は<strong>おそらく<em>不</em>適合</strong>ですが、
      稀に適合している場合もあります。適合性検査器はこの文書が稀な場合に該当するかどうか判定できません。</d:text>
</d:cat>

<d:cat name="Conformance is non-conforming">
  <d:text xml:lang="en">This document is
        <strong><em>non</em>-conforming</strong>.</d:text>
  <d:text xml:lang="ja">この文書は<strong><em>不</em>適合</strong>です。</d:text>
</d:cat>

<d:cat name="Conformance is uncertain">
  <d:text xml:lang="en">The conformance
        checker cannot decide whether the document is conforming or
        not, since the document contains one or more unsupported
        features.  The document might or might not be conforming.</d:text>
  <d:text xml:lang="ja">適合性検査器はこの文書が適合するかどうか判定できませんでした。
      この文書は適合性検査器が対応していない機能を使っています。
      この文書は適合しているかもしれませんし、していないかもしれません。</d:text>
</d:cat>

<d:cat name="Error level m">
  <d:text xml:lang="en"><a href="../error-description#level-m"><em class="rfc2119">MUST</em>‐level
        error</a></d:text>
  <d:text xml:lang="ja"><a href="../error-description#level-m"><em class="rfc2119" title="REQUIRED">必須</em>級の誤り</a></d:text>
</d:cat>

<d:cat name="Error level s">
  <d:text xml:lang="en"><a href="../error-description#level-s"><em class="rfc2119">SHOULD</em>‐level
        error</a></d:text>
  <d:text xml:lang="ja"><a href="../error-description#level-s"><em class="rfc2119" title="RECOMMENDED">推奨</em>級の誤り</a></d:text>
</d:cat>

<d:cat name="Error level w">
  <d:text xml:lang="en"><a href="../error-description#level-w">Warning</a></d:text>
  <d:text xml:lang="ja"><a href="../error-description#level-w">警告</a></d:text>
</d:cat>

<d:cat name="Error level i">
  <d:text xml:lang="en"><a href="../error-description#level-i">Information</a></d:text>
  <d:text xml:lang="ja"><a href="../error-description#level-i">情報</a></d:text>
</d:cat>

<d:cat name="Error level u">
  <d:text xml:lang="en"><a href="../error-description#level-u">Not
      supported</a></d:text>
  <d:text xml:lang="ja"><a href="../error-description#level-u">未対応</a></d:text>
</d:cat>

<section id="levels">
<h2>Error Levels</h2>

<table id="levels-table">
<thead>
<tr><th scope="col">Level</th>
<th scope="col">Conforming?</th>
<th scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr id="level-m" class="level-m">
<th scope="row"><em class="rfc2119">MUST</em>‐level error</th>
<td>Non‐conforming.</td>
<td>A violation to a hard requirement of the specification.
The document is non‐conforming.</td>
</tr>
<tr id="level-s" class="level-s">
<th scope="row"><em class="rfc2119">SHOULD</em>‐level error</th>
<td>Non‐conforming, but <em>in some case</em>
conforming.</td>
<td>A violation to a requirement of the specification.
The violation might be legitimize in some case.  Otherwise,
the document is non‐conforming.</td>
</tr>
<tr id="level-w" class="level-w">
<th scope="row">Warning</th>
<td>Conforming.</td>
<td>A warning is an advice from the conformance checker to avoid
to solve a problem in a confusing or possibly wrong way.
It does not affect to the conformance of the document, and
may sometimes be inappropriate.</td>
</tr>
<tr id="level-i" class="level-i">
<th scope="row">Information</th>
<td>Conforming.</td>
<td>An informational message just provides an additional information
on the feature used in the document or the status of the retrieval
or so on.
It does not affect to the conformance of the document.</td>
</tr>
<tr id="level-u" class="level-u">
<th scope="row">Not supported</th>
<td><em>Unknown</em>.</td>
<td>Some feature that is not supported by the conformance checker
is used in the document.</td>
</tr>
</tbody>
</table>
</section>

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

<p>Copyright <time>2007</time>‐<time>2008</time>
<a href="http://suika.fam.cx/~wakaba/who?" rel="author" xml:lang="ja">Wakaba</a>
<code class="mail">&lt;<a href="mailto:w@suika.fam.cx">w@suika.fam.cx</a>></code>.</p>

<p>This document is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.</p>
</section>

<!-- $Date: 2008/08/15 16:03:46 $ -->
</body>
</html>