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

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

<d:item name="duplicate attribute"
    class="tokenize-error">
  <d:message xml:lang="en">There are two attributes with same name.</d:message>
  <d:desc xml:lang="en">
    <p>Attributes must be unique in an element.  Specifying
    attributes with same name more than once is non-conforming.</p>

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

<d:item name="nestc"
    class="tokenize-error">
  <d:message xml:lang="en">Void element syntax (<code>/></code>) cannot be
  used for this element.</d:message>
  <d:desc xml:lang="en">
    <p>The void element syntax <code>/></code> syntax can only be
    used for <code>base</code>, <code>link</code>, <code>meta</code>,
    <code>hr</code>, <code>br</code>, <code>img</code>, 
    <code>embed</code>, <code>param</code>, <code>area</code>,
    <code>col</code>, and <code>input</code> elements.
    For any other elements, using that syntax is non-conforming.</p>

    <p>Unlike XML, the void element syntax (<code>/></code>) has
    no effect in HTML.</p>
  </d:desc>
</d:item>

</section>

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

<d:item name="after head"
    class="parse-error">
  <d:message xml:lang="en">The <code><var>$0</var></code> element cannot be
  inserted between <code>head</code> and <code>body</code> elements.</d:message>
  <d:desc xml:lang="en">
    <p>A start tag occurs 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="no DOCTYPE"
    class="parse-error">
  <d:message xml:lang="en">This document does not start with the
  <code>DOCTYPE</code> declaration.</d:message>
</d:item>

<d:item name="not closed"
    class="parse-error">
  <d:message xml:lang="en">Element <code><var>$0</var></code> is not
  closed.</d:message>
</d:item>

<d:item name="not HTML5"
    class="parse-error">
  <d:message xml:lang="en">This document is written in an old version of 
  HTML.</d:message>
</d:item>

<d:item name="unmatched end tag"
    class="parse-error">
  <d:message xml:lang="en">Element <code><var>$0</var></code> is not
  opened.</d:message>
</d:item>

</section>

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

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

    <p>Possible causes:
      <dl>
      <dt>If the erred element is an inline-level element (such
      as <code>a</code> or <code>span</code>)</dt>
          <dd><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></dd>
      <dt>If the erred element is a block-level element (such as
      <code>div</code> or <code>h<var>n</var></code>)</dt>
          <dd><p>Though some elements such as <code>div</code>,
          <code>li</code>, and <code>td</code> allow
          <em>either one</em> of block-level or inline-level content
          is allowed.  If there is a block-level content, 
          any inline-level content must be put
          in e.g. paragraph element such as <code>p</code>.</p></dd>
      </dl>
    </p>
  </d:desc>
</d:item>

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

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

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

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

    <p>Possible causes:
      <dl>
      <dt>If the erred element is an inline-level element (such
      as <code>a</code> or <code>span</code>)</dt>
          <dd><p>An inline-level element cannot be a child
          of certain sectioning elements such as <code>body</code>,
          <code>section</code>, and <code>blockquote</code>.</p>

          <p>Any inline-level content must be put
          in e.g. paragraph element such as <code>p</code>.</p></dd>
      <dt>If the erred element is a block-level element (such as
      <code>div</code> or <code>h<var>n</var></code>)</dt>
          <dd><p>Though some elements such as <code>div</code>,
          <code>li</code>, and <code>td</code> allow
          <em>either one</em> of block-level or inline-level content
          is allowed.  If there is a block-level content, 
          any inline-level content must be put
          in e.g. paragraph element such as <code>p</code>.</p></dd>
      <dt>If the erred element is the root <code>html</code> element</dt>
          <dd><p>In an XHTML document, the root <code>html</code>
          element must have an <code>xmlns</code> attribute
          whose value is set to 
          <code>http://www.w3.org/1999/xhtml</code>.</p></dd>
      </dl>
    </p>
  </d:desc>
</d:item>

</section>

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

<d:item name="enumerated:invalid"
    class="attribute-error">
  <d:message xml:lang="en">This attribute only allow a limited set of 
  values and the specified value is not one of them.</d:message>
</d:item>

</section>

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

<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>

</section>

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

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

<d:item name="IMT:private subtype"
    class="should" level="s">
  <d:message xml:lang="en">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">The subtype is not registered to IANA.</d:message>
<!-- TODO: Unknown message?? -->
</d:item>

</section>

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

<d:item name="URI::syntax error"
    class="must" level="m">
  <d:message xml:lang="en">This string is not an IRI syntactically.</d:message>
</d:item>

</section>

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

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

</section>

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

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

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

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

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

</section>

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

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

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

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

<!-- $Date: 2007/07/16 08:38:48 $ -->
</body>
</html>