/[pub]/test/html-webhacc/error-description-source.xml
Suika

Diff of /test/html-webhacc/error-description-source.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by wakaba, Sun Jul 1 10:02:24 2007 UTC revision 1.16 by wakaba, Sun Nov 18 11:05:12 2007 UTC
# Line 11  Web Document Conformance Checker (BETA)< Line 11  Web Document Conformance Checker (BETA)<
11  <body>  <body>
12  <h1>Description of Errors</h1>  <h1>Description of Errors</h1>
13    
14  <section id="html5-parse-errors">  <section id="html5-character-encoding">
15  <h2>HTML5 Parse Errors</h2>  <h2>HTML5 Character Encoding Errors</h2>
16    
17  <d:item name="after head"  <d:item name="character encoding" class="format-charset must" level="m">
18      <d:message xml:lang="en">Character encoding <code><var>$0</var></code>
19      is not allowed for <abbr>HTML</abbr> document.</d:message>
20      <d:desc xml:lang="en">
21        <p>The character encoding used for the document is not allowed
22        for <abbr>HTML</abbr> document.  The document is non‐conforming.</p>
23      </d:desc>
24    </d:item>
25    
26    <d:item name="character encoding" class="format-charset should"
27        level="s">
28      <d:message xml:lang="en">Character encoding <code><var>$0</var></code>
29      should not be used for <abbr>HTML</abbr> document.</d:message>
30      <d:desc xml:lang="en">
31        <p>The character encoding used for the document is not recommended
32        for <abbr>HTML</abbr> document.  The document is non‐conforming
33        unless there is any good reason to use that encoding.</p>
34      </d:desc>
35    </d:item>
36    
37    <d:item name="character encoding" class="format-charset warning"
38        level="w">
39      <d:message xml:lang="en">Use of UTF-8 is encouraged.</d:message>
40      <d:desc xml:lang="en">
41        <p>Use of UTF-8 as the character encoding of the document is encouraged,
42        though the use of another character encoding is conforming.</p>
43      </d:desc>
44    </d:item>
45    
46    <d:item name="no character encoding declaration" class="format-charset error"
47        level="m">
48      <d:message xml:lang="en">There is no character encoding
49      declaration.</d:message>
50      <d:desc xml:lang="en">
51        <p>The document does not contain a character encoding
52        declaration.  Unless the character encoding is explicitly
53        specified in upper‐level protocol, e.g. in <abbr>HTTP</abbr>,
54        or is implied by <abbr>BOM</abbr>, there must be a character
55        encoding declaration.  The document is non‐conforming.</p>
56    
57        <p>The long character encoding declaration syntax
58        <code class="html bad example">&lt;meta http-equiv="Content-Type" content="text/html; charset=<var>charset-name</var>"></code>
59        is obsolete.  The new syntax is:</p>
60        <pre class="html example"><code>&lt;meta charset="<var>charset-name</var>"></code></pre>
61    
62        <p>Note that the <code>encoding</code> declaration in <abbr>XML</abbr>
63        declaration has no effect for <abbr>HTML</abbr> document.</p>
64      </d:desc>
65    </d:item>
66    
67    <d:item name="non ascii superset" class="format-charset error"
68        level="m">
69      <d:message xml:lang="en">No character encoding metadata is found
70      in upper‐level protocol nor is there <abbr>BOM</abbr>, while
71      character encoding <code><var>$0</var></code>
72      is not a superset of <abbr>ASCII</abbr>.</d:message>
73      <d:desc xml:lang="en">
74        <p>The document is not labeled with character encoding name
75        in upper‐level protocol, e.g. in <abbr>HTTP</abbr>, and
76        the document is not begin with <abbr>BOM</abbr>.  In addition,
77        the character encoding of the document is not a superset of
78        <abbr>ASCII</abbr>.  The document is non‐conforming.</p>
79    
80        <p>Unless there is a <abbr>BOM</abbr>, the character encoding
81        for the document must be specified in e.g. <abbr>HTTP</abbr>‐level,
82        as:</p>
83        <pre class="http example"><code>Content-Type: text/html; charset=<var>charset-name</var></code></pre>
84    
85        <p>Existence of <abbr>HTML</abbr> character encoding declaration, i.e.
86        <code class="html example">&lt;meta charset="<var>charset-name</var>"></code>,
87        does not allow to omit <code>charset</code> parameter
88        for <abbr>HTML</abbr> document encoded in non‐<abbr>ASCII</abbr>
89        compatible encoding.</p>
90    
91        <p>Character encodings <code>Shift_JIS</code>, <code>Windows-31J</code>,
92        and <code>ISO-2022-JP</code> are <em>not</em> a superset of
93        <abbr>ASCII</abbr> for the purpose of <abbr>HTML</abbr> conformance.</p>
94      </d:desc>
95    </d:item>
96    
97    <d:item name="charset label detected" class="format-charset warning"
98        level="w">
99      <d:message xml:lang="en">While parsing the document as
100      <code><var>$0</var></code>, a character encoding declaration specifying
101      character encoding as <code><var>$1</var></code> is found.  The document
102      is reparsed.</d:message>
103      <d:desc xml:lang="en">
104        <p>While parsing a document in a character encoding,
105        a character encoding declaration which declares the character
106        encoding of the document as another character encoding is found.
107        The occurence of this warning itself does not make the document
108        non‐conforming.  However, the failure of the first attempt to
109        to detect the character encoding might be the result of non‐conformance
110        of the document.</p>
111    
112        <p>The document will be reparsed from the beginning.  Some error
113        or warning might be reported again.</p>
114    
115        <p>These are suggestions to avoid this warning:</p>
116        <ul>
117        <li>Specify <code>charset</code> parameter in the <code>Content-Type</code>
118        field in the <abbr>HTTP</abbr> header, as:
119        <pre class="HTTP example"><code>Content-Type: text/html; charset="<var>charset-name</var>"</code></pre></li>
120        <li>Put the character encoding declaration
121        (<code class="html example">&lt;meta charset="<var>charset-name</var>"></code>)
122        just after <code class="html example">&lt;head></code> start tag.</li>
123        <li>Use <code>UTF-8</code>.</li>
124        </ul>
125      </d:desc>
126    </d:item>
127    </section>
128    
129    <section id="html5-tokenize-error">
130    <h2>HTML5 Parse Errors in Tokenization Stage</h2>
131    
132    <d:item name="after html"
133      class="parse-error">      class="parse-error">
134    <d:message xml:lang="en">The <code><var>$0</var></code> element cannot be    <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
135    inserted between <code>head</code> and <code>body</code> elements.</d:message>    is not allowed after the end tag <code>&lt;/html></code>.</d:message>
136    <d:desc xml:lang="en">    <d:desc xml:lang="en">
137      <p>A start tag occurs after the <code>head</code> element is closed      <p>The start or end tag of an element appears after the
138      but before the <code>body</code> element is opened.      <code>html</code> element has been closed.  The document is
139        non-conforming.</p>
140    
141        <p>Any content of the document other than comments
142        must be put into the <code>html</code> element.</p>
143      </d:desc>
144    </d:item>
145    
146    <d:item name="after body"
147        class="parse-error">
148      <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
149      is not allowed after the end tag <code>&lt;/body></code>.</d:message>
150      <d:desc xml:lang="en">
151        <p>The start or end tag of an element appears after the
152        <code>body</code> element has been closed.  The document is
153        non-conforming.</p>
154    
155        <p>Any content of the document other than <code>head</code>
156        contents and comments must be put into the <code>body</code>
157        element.</p>
158      </d:desc>
159    </d:item>
160    
161    <d:item name="bare ero"
162        class="tokenize-error">
163      <d:message xml:lang="en">The <code>&amp;</code> character must
164      introduce a reference.</d:message>
165      <d:desc xml:lang="en">
166        <p>An <code>&amp;</code> character which
167        is not part of any reference appears in the input stream.
168        The document is non‐conforming.</p>
169    
170        <p><em>Any <code>&amp;</code> character in URI (or IRI)
171        must be escaped as <code class="example">&amp;amp;</code>.</em></p>
172    
173        <p>The <code>&amp;</code> character must
174        be the first character of a reference:
175          <dl class="switch">
176          <dt>Named entity reference</dt>
177              <dd><pre class="html example"><code>&amp;<var>entity-name</var>;</code></pre>
178              where <var>entity-name</var> is the name of the
179              character entity to be referenced.</dd>
180          <dt>Numeric character reference</dt>
181              <dd><pre class="html example"><code>&amp;#<var>d</var>;</code></pre>
182              where <var>d</var> is the decimal representation of
183              the code position of the character to be referenced.</dd>
184          <dt>Hexadecimal character reference</dt>
185              <dd><pre class="html example"><code>&amp;#x<var>h</var>;</code></pre>
186              where <var>h</var> is the hexadecimal representation
187              of the code position of the character to be referenced.</dd>
188          </dl>
189        </p>
190    
191        <p>To represent <code>&amp;</code> as a data character, use
192        named entity reference:
193          <pre class="html example"><code>&amp;amp;</code></pre>
194        </p>
195      </d:desc>
196    </d:item>
197    
198    <d:item name="bare etago"
199        class="tokenize-error">
200      <d:message xml:lang="en">A <code>&lt;/</code> string is not followed
201      by a tag name.</d:message><!-- </ EOF -->
202      <d:desc xml:lang="en">
203        <p>There is a <code>&lt;</code> (<code>U+003C</code>
204        <code class="charname">LESS-THAN SIGN</code>) character
205        immediately followed by a <code>/</code> (<code>U+005F</code>
206        <code>SOLIDUS</code>) character, which is not part
207        of any end tag, in the input stream.  The document
208        is non-conforming.</p>
209    
210        <p>The <code>&lt;/</code> sequence immediately followed
211        by an <abbr title="End of file pseudo-character">EOF</abbr> is
212        interpreted as a string data of <code>&lt;/</code>.</p>
213    
214        <p>The <code>&lt;/</code> sequence as string data must
215        be escaped as:
216        <pre class="html example"><code>&amp;lt;/</code></pre>
217        </p>
218      </d:desc>
219    </d:item>
220    
221    <d:item name="bare stago"
222        class="tokenize-error">
223      <d:message xml:lang="en">A <code>&lt;</code> character is not followed
224      by tag name or by a <code>!</code> character.</d:message>
225      <d:desc xml:lang="en">
226        <p>A <code>&lt;</code> (<code>U+003C</code>
227        <code class="charname">LESS-THAN SIGN</code>) character which is not part
228        of any markup appears in the input stream.</p>
229    
230        <p>The <code>&lt;</code> character as a data character must
231        be escaped as:
232        <pre class="html example"><code>&amp;lt;</code></pre>
233        </p>
234      </d:desc>
235    </d:item>
236    
237    <d:item name="bare nero"
238        class="tokenize-error">
239      <d:message xml:lang="en">The decimal representation of the code position
240      of a character must be specified after <code>&amp;#</code>.</d:message>
241      <d:desc xml:lang="en">
242        <p>An <code>&amp;</code> (<code>U+0026</code>
243        <code class="charname">AMPERSAND</code>) character immediately
244        followed by a <code>#</code> (<code>U+0023</code>
245        <code>NUMBER SIGN</code>) character which
246        is not part of any reference appears in the input stream.
247        The document is non-conforming.</p>
248    
249        <p>The string <code>&amp;#</code> must be the first two characters
250        of a reference:
251          <dl class="switch">
252          <dt>Numeric character reference</dt>
253              <dd><pre class="html example"><code>&amp;#<var>d</var>;</code></pre>
254              where <var>d</var> is the decimal representation of
255              the code point of the character to be referenced.</dd>
256          <dt>Hexadecimal character reference</dt>
257              <dd><pre class="html example"><code>&amp;#x<var>h</var>;</code></pre>
258              where <var>h</var> is the hexadecimal representation
259              of the code point of the character to be referenced.</dd>
260          </dl>
261        </p>
262    
263        <p>To represent <code>&amp;#</code> as data characters, use
264        a named entity reference for the <code>&amp;</code> character:
265          <pre class="html example"><code>&amp;amp;#</code></pre>
266        </p>
267      </d:desc>
268    </d:item>
269    
270    <d:item name="bare hcro"
271        class="tokenize-error">
272      <d:message xml:lang="en">The hexadecimal representation of the code position
273      of a character must be specified after <code>&amp;#x</code>.</d:message>
274      <d:desc xml:lang="en">
275       <p>The string <code>&amp;#x</code> or <code>&amp;#X</code> which
276       is not part of any reference appears in the input stream.
277      The document is non-conforming.</p>      The document is non-conforming.</p>
278    
279        <p>The string <code>&amp;#x</code> or <code>&amp;#X</code> must
280        be the first three characters of a hexadecimal reference:
281          <pre class="html example"><code>&amp;#x<var>h</var>;</code></pre>
282        where <var>h</var> is the hexadecimal representation
283        of the code point of the character to be referenced.</p>
284    
285        <p>To represent <code>&amp;#x</code> as data characters, use
286        a named entity reference for the <code>&amp;</code> character:
287          <pre class="html example"><code>&amp;amp;#x</code></pre>
288        </p>
289      </d:desc>
290    </d:item>
291    
292    <d:item name="bogus comment"
293        class="tokenize-error">
294      <d:message xml:lang="en">String <code>&lt;!</code> is not followed
295      by <code>--</code>.</d:message>
296      <d:desc xml:lang="en">
297        <p>There is a <code>&lt;</code> (<code>U+003C</code>
298        <code class="charname">LESS-THAN SIGN</code>) character
299        followed by a <code>!</code> (<code>U+0021</code>
300        <code class="charname">EXCLAMATION MARK</code>) character,
301        which is not followed by a <code>--</code> or
302        <code>!DOCTYPE</code>.  The document is non-conforming.</p>
303    
304        <dl class="switch">
305        <dt>Comments</dt>
306          <dd>In HTML document, comments must be introduced by
307          <code class="example">&lt;!--</code> (<code>&lt;!</code>
308          <em>immediately</em> followed
309          by <em>two</em> <code>-</code>s) and must be terminated by
310          <code class="example">--></code>.
311          Strings <code>&lt;!</code> not followed
312          by <code>--</code> and <code>&lt;!-</code> not followed by
313          <code>-</code> are not valid open delimiters for comments.</dd>
314        <dt>Marked sections, including <code>CDATA</code> sections</dt>
315          <dd>Marked sections are not allowed in HTML document.</dd>
316        <dt>Markup declarations</dt>
317          <dd>Markup declarations, except for <code>DOCTYPE</code>
318          and comment declarations, are not allowed in HTML document.</dd>
319        <dt>String <code>&lt;!</code></dt>
320          <dd>String <code>&lt;!</code> must be escaped as
321          <code class="example">&amp;lt;!</code>.</dd>
322        </dl>
323      </d:desc>
324    </d:item>
325    
326    <d:item name="bogus end tag"
327        class="tokenize-error">
328      <d:message xml:lang="en">String <code>&lt;/</code> is not followed
329      by tag name.</d:message><!-- </ non-name-start-char-non-EOF -->
330      <d:desc xml:lang="en">
331        <p>There is a <code>&lt;</code> (<code>U+003C</code>
332        <code class="charname">LESS-THAN SIGN</code>) character
333        immediately followed by a <code>/</code> (<code>U+005F</code>
334        <code>SOLIDUS</code>) character, which is not part
335        of any end tag, in the input stream.  The document
336        is non-conforming.</p>
337    
338        <p>The <code>&lt;/</code> sequence not followed by a
339        tag name is parsed as an opening of bogus comment.</p>
340    
341        <p>The <code>&lt;/</code> sequence as string data must
342        be escaped as:
343        <pre class="html example"><code>&amp;lt;/</code></pre>
344        </p>
345      </d:desc>
346    </d:item>
347    
348    <d:item name="dash in comment"
349        class="tokenize-error">
350      <d:message xml:lang="en">There is a <code>--</code> sequence
351      in a comment.</d:message>
352      <d:desc xml:lang="en">
353        <p>There is a <code>-</code> (<code>U+002D</code>
354        <code class="charname">HYPHEN-MINUS</code>) character
355        at the end of the comment or a <code>--</code> sequence
356        in the comment.  The document is non-conforming.</p>
357    
358        <p>Comments cannot contain a string <code>--</code>, as in XML.
359        Unlike SGML, there cannot be more than one comments
360        (where <i>comment</i> is an SGML term) in the comment
361        declaration.</p>
362    </d:desc>    </d:desc>
363  </d:item>  </d:item>
364    
365  <d:item name="duplicate attribute"  <d:item name="duplicate attribute"
366      class="tokenize-error">      class="tokenize-error">
367    <d:message xml:lang="en">There are two attributes with same name.</d:message>    <d:message xml:lang="en">There are two attributes with name
368          <code><var>$0</var></code>.</d:message>
369    <d:desc xml:lang="en">    <d:desc xml:lang="en">
370      <p>Attributes must be unique in an element.  Specifying      <p>There are more than one attributes with the same
371      attributes with same name more than once is non-conforming.</p>      name in a tag.  The document is non-conforming.</p>
372    
373      <p>The <code>motion</code> attribute is not part of the HTML standard.      <p>The <code>motion</code> attribute is not part of the HTML standard.
374      Use <code>img</code> element with animation GIF instead.</p>      Use <code>img</code> element with animation GIF instead.</p>
# Line 39  Web Document Conformance Checker (BETA)< Line 377  Web Document Conformance Checker (BETA)<
377    
378  <d:item name="nestc"  <d:item name="nestc"
379      class="tokenize-error">      class="tokenize-error">
380    <d:message xml:lang="en">Void element syntax (<code>/></code>) cannot be    <d:message xml:lang="en">Polytheistic slash (<code>/></code>) cannot be
381    used for this element.</d:message>    used for this element.</d:message>
382    <d:desc xml:lang="en">    <d:desc xml:lang="en">
383      <p>The void element syntax <code>/></code> syntax can only be      <p>Polytheistic slash (<code>/></code>) must not be used
384        for the element.  The document is non-conforming.</p>
385    
386        <p>The polytheistic slash can only be
387      used for <code>base</code>, <code>link</code>, <code>meta</code>,      used for <code>base</code>, <code>link</code>, <code>meta</code>,
388      <code>hr</code>, <code>br</code>, <code>img</code>,      <code>hr</code>, <code>br</code>, <code>img</code>,
389      <code>embed</code>, <code>param</code>, <code>area</code>,      <code>embed</code>, <code>param</code>, <code>area</code>,
390      <code>col</code>, and <code>input</code> elements.      <code>col</code>, and <code>input</code> elements.</p>
391      For any other elements, using that syntax is non-conforming.</p>  
392        <dl class="switch">
393        <dt><code>&lt;script/></code></dt>
394            <dd><p>The polytheistic slash cannot be used for <code>script</code>
395            element.  Even for an empty <code>script</code> element,
396            there must be an explicit end tag
397            <code class="html example">&lt;/script></code>.</p>
398    
399            <p><strong>NOTE</strong>: Though some user agents interpret
400            polytheistic slash for <code>script</code> element as the
401            closing of the element, such usage is not allowed under
402            the current standard.</p></dd>
403        <dt><code>&lt;basefont/></code>, <code>&lt;bgsound/></code>,
404        <code>&lt;frame/></code>, <code>&lt;keygen/></code>,
405        <code>&lt;spacer/></code>, <code>&lt;wbr/></code></dt>
406            <dd>These elements are themselves non-conforming.</dd>
407        <!-- isindex, image -->
408        <dt><code>&lt;command/></code>, <code>&lt;event-source/></code>,
409        <code>&lt;nest/></code>, or <code>&lt;source/></code></dt>
410            <dd>Future revision of HTML5 parsing algorithm is expected
411            to allow polytheistic slash for these elements.</dd>
412        <dt><code>&lt;a/></code>, <code>&lt;p/></code></dt>
413            <dd>These elements are not always empty and therefore
414            polytheistic slash is not allowed.  Use explicit end tag
415            to represent empty element as:
416              <pre class="example html"><code>&lt;p>&lt;/p></code></pre>
417            </dd>
418        </dl>
419    
420      <p>Unlike XML, the void element syntax (<code>/></code>) has      <p>Note that, unlike in XML, the polytheistic slash has
421      no effect in HTML.</p>      no effect in HTML.</p>
422    </d:desc>    </d:desc>
423  </d:item>  </d:item>
424    
425    
426    <d:item name="pio"
427        class="tokenize-error">
428      <d:message xml:lang="en">Processing instruction
429      (<code>&lt;?<var>...</var>></code>) cannot be used.</d:message>
430      <d:desc xml:lang="en">
431        <p>Processing instructions (<code>&lt;?<var>...</var>?></code>),
432        including XML declaration (<code>&lt;?xml <var>...</var>?></code>)
433        and XML style sheet <abbr title="processing instruction">PI</abbr>
434        (<code>&lt;?xml-stylesheet <var>...</var>?></code>), are not allowed
435        in the HTML syntax.  The document is non-conforming.</p>
436    
437        <dl class="switch">
438        <dt><code>&lt;?xbl?></code> (<abbr>XBL</abbr> Association)</dt>
439          <dd>An <abbr>XBL</abbr> binding cannot be associated by
440          <abbr title="processing instruction">PI</abbr> in <abbr>HTML</abbr>
441          document.  Use <code>binding</code> property in <abbr>CSS</abbr>
442          style sheet as:
443            <pre class="html example"><code>&lt;style>
444    p {
445      binding: url(binding.xbl);
446    }
447    &lt;/style></code></pre>
448          </dd>
449        <dt><code>&lt;?xml?&gt;</code> (XML declaration)</dt>
450            <dd>XML declaration is unnecessary for HTML documents.</dd>
451        <dt><code>&lt;?xml-stylesheet?></code> (XML style sheet
452        <abbr title="processing instruction">PI</abbr>)</dt>
453            <dd>Use HTML <code>link</code> element with <code>rel</code>
454            attribute set to <code>stylesheet</code> (or,
455            <code>alternate stylesheet</code> for an alternate style
456            sheet).
457              <pre class="example html"><code>&lt;link rel=stylesheet href="path/to/stylesheet.css"></code></pre>
458            </dd>
459        <dt><code>&lt;?php?&gt;</code> or
460        <code>&lt;? <var>... <abbr>PHP</abbr> code ...</var> ?&gt;</code>
461        (<abbr>PHP</abbr> code)</dt>
462            <dd>The conformance checker does <em>not</em> support
463            checking for PHP source documents.</dd>
464        <dt>Other processing instructions</dt>
465            <dd>Processing instructions cannot be inserted in an HTML
466            document.  Use XML document or insert
467            <code>ProcessingInstruction</code> node by scripting.</dd>
468        </dl>
469    
470        <p>Web browsers will parse processing instructions as bogus
471        comments.  Some legacy Web browsers, such as IE:mac and
472        some mobile Web browsers, will display processing instructions
473        as string.</p>
474      </d:desc>
475    </d:item>
476    
477    </section>
478    
479    <section id="html5-parse-errors">
480    <h2>HTML5 Parse Errors in Tree Construction Stage</h2>
481    
482    <d:item name="after head"
483        class="parse-error">
484      <d:message xml:lang="en">The <code><var>$0</var></code> element cannot be
485      inserted between <code>head</code> and <code>body</code> elements.</d:message>
486      <d:desc xml:lang="en">
487        <p>A start tag appears after the <code>head</code> element is closed
488        but before the <code>body</code> element is opened.
489        The document is non-conforming.</p>
490      </d:desc>
491    </d:item>
492    
493    <d:item name="DOCTYPE in the middle"
494        class="parse-error">
495      <d:message xml:lang="en">A <code>DOCTYPE</code> appears after any
496      element or data character has been seen.</d:message>
497      <d:desc xml:lang="en">
498        <p>A <code>DOCTYPE</code> appears after any element or data character
499        has been seen.  The document is non-conforming.</p>
500        
501        <p>The <code>DOCTYPE</code> must be placed before any
502        tag, reference, or data character.  Only white space characters
503        and comments can be inserted before the <code>DOCTYPE</code>.</p>
504      </d:desc>
505    </d:item>
506    
507    <d:item name="in a:a"
508        class="parse-error">
509      <d:message xml:lang="en">Anchor cannot be nested.</d:message>
510      <d:desc xml:lang="en">
511        <p>HTML <code>a</code> elements cannot be nested.
512        The document is non-conforming.</p>
513    
514        <p>In the HTML syntax, a start tag of the <code>a</code>
515        implies the end tag of any opening <code>a</code> element.</p>
516      </d:desc>
517    </d:item>
518    
519    <d:item name="in body"
520        class="parse-error">
521      <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
522      is not allowed in the <code>body</code> element.</d:message>
523      <d:desc xml:lang="en">
524        <p>The start or end tag of an element, which
525        cannot be a descendant of <code>body</code> element, appears
526        in the input stream while the <code>body</code> element has been opened.
527        The document is non-conforming.</p>
528      </d:desc>
529    </d:item>
530    
531    <d:item name="in head:head"
532        class="parse-error">
533      <d:message xml:lang="en">Start tag <code>&lt;head&gt;</code>
534      is not allowed in the <code>head</code> element.</d:message>
535      <d:desc xml:lang="en">
536        <p>There is a start tag <code>&lt;head></code> in the
537        <code>&lt;head></code> element.  The document is non-conforming.</p>
538    
539        <p>In an HTML document there must not be more than
540        one <code>head</code> element, therefore no more than one
541        start tag <code>&lt;head></code> can appear in the input stream.</p>
542      </d:desc>
543    </d:item>
544    
545    <d:item name="in table"
546        class="parse-error">
547      <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
548      is not allowed in a <code>table</code> element.</d:message>
549      <d:desc xml:lang="en">
550        <p>The start or end tag of an element, which
551        cannot be a child of <code>table</code> element, appears
552        in the input stream while the <code>table</code> element has been opened
553        but no other element has been opened.  The document is non-conforming.</p>
554    
555        <p>In <code>table</code>, only table related elements
556        are allowed; any other element must be contained in
557        <code>td</code> or <code>th</code> element to form
558        a part of the table, or <code>caption</code> element to create
559        a table caption.</p>
560      </d:desc>
561    </d:item>
562    
563    <d:item name="in table:#character"
564        class="parse-error">
565      <d:message xml:lang="en">Data character is not allowed in
566      <code>table</code>.</d:message>
567      <d:desc xml:lang="en">
568        <p>A data character appears in <code>table</code>.  The document
569        is non-conforming.</p>
570    
571        <p>In <code>table</code>, only table related elements
572        are allowed; any other element and data character must be contained in
573        <code>td</code> or <code>th</code> element to form
574        a part of the table, or <code>caption</code> element to create
575        a table caption.</p>
576      </d:desc>
577    </d:item>
578    
579    <d:item name="missing start tag:tr"
580        class="parse-error">
581      <d:message xml:lang="en">Start tag of <code>tr</code>
582      element is missing.</d:message>
583      <d:desc>
584        <p>Start tag of a <code>tr</code> element, which is <em>not</em>
585        optional, is missing.  The document is non-conforming.</p>
586    
587        <p>In a table section, a <code>&lt;tr></code> start tag
588        must occur before any <code>&lt;td></code> or
589        <code>&lt;th></code> start tag.  Though the HTML5 parser
590        implies the <code>&lt;tr></code> start tag before
591        these start tags, it must be explicitly specified.</p>
592      </d:desc>
593    </d:item>
594    
595    <d:item name="no DOCTYPE"
596        class="parse-error">
597      <d:message xml:lang="en">This document does not start with a
598      <code>DOCTYPE</code>.</d:message>
599      <d:desc>
600        <p>The document does not start with a <code>DOCTYPE</code>.
601        The document is non-conforming.</p>
602    
603        <p>An HTML document must start by a <code>DOCTYPE</code>:
604          <pre class="html example"><code>&lt;!DOCTYPE HTML></code></pre>
605        </p>
606    
607        <p>Only white space characters and comments are allowed
608        before the <code>DOCTYPE</code>.  XML declaration is <em>not</em>
609        allowed in HTML document.</p>
610      </d:desc>
611    </d:item>
612    
613    <d:item name="not closed"
614        class="parse-error">
615      <d:message xml:lang="en">Element <code><var>$0</var></code> is not
616      closed.</d:message>
617      <d:desc>
618        <p>End tag of an element is not found before, for example,
619        an end tag of another element appears or
620        the end of the document.  The document is non-conforming.</p>
621    
622        <p>Only <code>body</code>, <code>colgroup</code>, <code>dd</code>,
623        <code>dt</code>, <code>head</code>, <code>html</code>, <code>li</code>,
624        <code>ol</code>, <code>option</code>, <code>optgroup</code>,
625        <code>p</code>, <code>rb</code>, <code>rp</code>, <code>rt</code>,
626        <code>tbody</code>, <code>td</code>, <code>tfoot</code>,
627        <code>th</code>, <code>thead</code>, <code>tr</code>,
628        <code>ul</code> end tag can be omitted in HTML documents.
629        For any element except for void element, there must be an explicit
630        end tag.</p>
631    
632        <dl class="switch">
633        <dt>HTML <code>canvas</code> element</dt>
634          <dd>Though the element is void in earlier versions of Safari,
635          the <code>canvas</code> element is <em>no</em> longer
636          defined as empty.  There must be an end tag
637          <code class="html example">&lt;/canvas></code>.</dd>
638        </dl>
639    
640        <p>Note that misnesting tags, such as
641        <code class="bad example">&lt;a>&lt;b>&lt;/a>&lt;/b></code>, are not
642        allowed and they also cause this error.</p>
643      </d:desc>
644    </d:item>
645    
646    <d:item name="not first start tag"
647        class="parse-error">
648      <d:message xml:lang="en">This <code>&lt;html></code> tag is not
649      the first start tag.</d:message>
650      <d:desc>
651        <p>There is a start tag of the <code>html</code> element
652        that it not the first start tag in the input stream.
653        The document is non-conforming.</p>
654    
655        <p>In an HTML document, there cannot be more than one
656        <code>html</code> element and therefore there cannot be
657        more than one <code>&lt;html></code> tag.  In addition,
658        nothing can be placed before the <code>&lt;html></code> tag
659        except a <code>DOCTYPE</code>, white space characters,
660        and comments.</p>
661      </d:desc>
662    </d:item>
663    
664    <d:item name="not HTML5"
665        class="parse-error">
666      <d:message xml:lang="en">This document is written in an old version of
667      HTML.</d:message>
668      <d:desc xml:lang="en">
669        <p>The document contains a <code>DOCTYPE</code> declaration
670        that is different from HTML5 <code>DOCTYPE</code> (i.e.
671        <code class="example html">&lt;!DOCTYPE HTML&gt;</code>).
672        The document is non‐conforming.</p>
673    
674        <p>The document might or might not be conformant to
675        some version of HTML.  However, conformance to any HTML
676        specification other than HTML5 provides for no practical
677        convenience, since Web borwsers will parse any
678        HTML document (roughly) as defined in HTML5.</p>
679      </d:desc>
680    </d:item>
681    
682    <d:item name="unmatched end tag"
683        class="parse-error">
684      <d:message xml:lang="en">Element <code><var>$0</var></code> is not
685      opened.</d:message>
686      <d:desc>
687        <p>An end tag appears though no element with the same name
688        has been opened.  The document is non-conforming.</p>
689    
690        <p>For any end tag in HTML document, there must be a
691        corresponding start tag.</p>
692    
693        <dl class="switch">
694        <dt>HTML <code>base</code>, <code>basefont</code>,
695        <code>bgsound</code>, <code>br</code>, <code>col</code>,
696        <code>embed</code>, <code>frame</code>, <code>hr</code>,
697        <code>image</code>, <code>img</code>, <code>input</code>,
698        <code>isindex</code>, <code>link</code>, <code>meta</code>,
699        <code>param</code>, <code>spacer</code>, or <code>wbr</code> element</dt>
700          <dd>End tag is not allowed for these elements, since
701          those content must always be empty.  Remove end tag.</dd>
702        <!-- keygen -->
703        <!-- command, event-source, nest, source -->
704        </dl>
705      </d:desc>
706    </d:item>
707    
708  </section>  </section>
709    
710  <section id="element-content-model-errors">  <section id="element-content-model-errors">
# Line 64  Web Document Conformance Checker (BETA)< Line 715  Web Document Conformance Checker (BETA)<
715    <d:message xml:lang="en">Data character is not allowed in this    <d:message xml:lang="en">Data character is not allowed in this
716    context.</d:message>    context.</d:message>
717    <d:desc xml:lang="en">    <d:desc xml:lang="en">
718      <p>A data character occurs where it is not allowed in this      <p>A data character appears where it is not allowed in this
719      context.  The document is non-conforming.</p>      context.  The document is non-conforming.</p>
720    
721      <p>Possible causes:      <p>Possible causes:
722        <dl>        <ul>
723        <dt>If the erred element is an inline-level element (such        <li><p>A data character cannot be a child
724        as <code>a</code> or <code>span</code>)</dt>        of certain sectioning elements such as <code>body</code>,
725            <dd><p>A data character cannot be a child        <code>section</code>, and <code>blockquote</code>.</p>
726            of certain sectioning elements such as <code>body</code>,  
727            <code>section</code>, and <code>blockquote</code>.</p>        <p>Any inline-level content must be put
728          in e.g. paragraph element such as <code>p</code>.</p></li>
729            <p>Any inline-level content must be put        <li><p>Though some elements such as <code>div</code>,
730            in e.g. paragraph element such as <code>p</code>.</p></dd>        <code>li</code>, and <code>td</code> allow
731        <dt>If the erred element is a block-level element (such as        <em>either one</em> of block-level or inline-level content
732        <code>div</code> or <code>h<var>n</var></code>)</dt>        is allowed.  If there is a block-level content,
733            <dd><p>Though some elements such as <code>div</code>,        any inline-level content must be put
734            <code>li</code>, and <code>td</code> allow        in e.g. paragraph element such as <code>p</code>.</p></li>
735            <em>either one</em> of block-level or inline-level content        </ul>
           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>  
736      </p>      </p>
737    </d:desc>    </d:desc>
738  </d:item>  </d:item>
# Line 97  Web Document Conformance Checker (BETA)< Line 744  Web Document Conformance Checker (BETA)<
744    <d:desc xml:lang="en">    <d:desc xml:lang="en">
745      <p>The content model of the element is so defined that it      <p>The content model of the element is so defined that it
746      must contain a <code><var>$0</var></code> child element.      must contain a <code><var>$0</var></code> child element.
747      Without such an element, the document is non-conforming.</p>      The document is non-conforming.</p>
748    
749      <p>For example:      <dl class="switch">
750        <ul>      <dt>HTML <code>head</code> element</dt>
751        <li>The <code>head</code> element must contain exactly one        <dd>There must be a <code>title</code> child element.</dd>
752        <code>title</code> child element.</li>      <dt>HTML <code>html</code> element</dt>
753        <li><a href="#child-element-missing:td%7Cth">The <code>tr</code>        <dd>There must be a <code>head</code> child element followed
754        element must contain one or more <code>td</code> or <code>th</code>        by a <code>body</code> element.</dd>
755        child element.</a></li>      <dt>HTML <code>tr</code> element</dt>
756        </ul>        <dd><a href="#child-element-missing:td%7Cth">There must be
757      </p>        one or more <code>td</code> or <code>th</code> child element.</a></dd>
758        </dl>
759    </d:desc>    </d:desc>
760  </d:item>  </d:item>
761    
# Line 117  Web Document Conformance Checker (BETA)< Line 765  Web Document Conformance Checker (BETA)<
765    or <code>th</code> element as a child of this element.</d:message>    or <code>th</code> element as a child of this element.</d:message>
766    <d:desc xml:lang="en">    <d:desc xml:lang="en">
767      <p>The <code>tr</code> element must contain at least one      <p>The <code>tr</code> element must contain at least one
768      <code>td</code> or <code>th</code> child element.  Without      <code>td</code> or <code>th</code> child element.  The document
769      such an element, the document is non-conforming.</p>      is non-conforming.</p>
770    </d:desc>    </d:desc>
771  </d:item>  </d:item>
772    
# Line 127  Web Document Conformance Checker (BETA)< Line 775  Web Document Conformance Checker (BETA)<
775    <d:message xml:lang="en">This element is not allowed in this    <d:message xml:lang="en">This element is not allowed in this
776    context.</d:message>    context.</d:message>
777    <d:desc xml:lang="en">    <d:desc xml:lang="en">
778      <p>An element occurs where it is not allowed.  The document      <p>An element appears where it is not allowed.  The document
779      is non-conforming.</p>      is non-conforming.</p>
780    
781      <p>Possible causes:      <p>Possible causes:
782        <dl>        <dl class="switch">
783        <dt>If the erred element is an inline-level element (such        <dt>If the element with the error is an inline-level element,
784        as <code>a</code> or <code>span</code>)</dt>        such as <code>a</code>, <code>progress</code>, or <code>img</code></dt>
785            <dd><p>An inline-level element cannot be a child            <dd><p>An inline-level element cannot be a child
786            of certain sectioning elements such as <code>body</code>,            of certain sectioning elements such as <code>body</code>,
787            <code>section</code>, and <code>blockquote</code>.</p>            <code>section</code>, and <code>blockquote</code>.</p>
788    
789            <p>Any inline-level content must be put            <p>Any inline-level content must be put
790            in e.g. paragraph element such as <code>p</code>.</p></dd>            in e.g. paragraph element such as <code>p</code>.</p></dd>
791        <dt>If the erred element is a block-level element (such as        <dt>If it is a block-level elements, such as <code>aside</code>,
792        <code>div</code> or <code>h<var>n</var></code>)</dt>        <code>div</code>, <code>h<var>n</var></code>,
793            <dd><p>Though some elements such as <code>div</code>,        <code>p</code>, or <code>section</code></dt>
794            <code>li</code>, and <code>td</code> allow            <dd><dl class="switch">
795            <em>either one</em> of block-level or inline-level content                <dt>If the parent element is <code>div</code>,
796            is allowed.  If there is a block-level content,                <code>li</code>, <code>td</code>, or <code>th</code></dt>
797            any inline-level content must be put                <!-- @@ TODO: more... -->
798            in e.g. paragraph element such as <code>p</code>.</p></dd>                    <!-- @@ TODO: <p><ul><li><p> -->
799        <dt>If the erred element is the root <code>html</code> element</dt>                    <dd><p>The parent element allows <em>either</em>
800            <dd><p>In an XHTML document, the root <code>html</code>                    block-level or inline-level content.  If there is a
801            element must have an <code>xmlns</code> attribute                    block-level content, any inline-level content must be
802            whose value is set to                    put in e.g. paragraph element such as <code>p</code>.</p>
803            <code>http://www.w3.org/1999/xhtml</code>.</p></dd>                    <p>For example, an HTML document fragment
804                      <code class="html bad example">&lt;div>&lt;p>Hello!&lt;/p> World!&lt;/div></code>
805                      is non-conforming, since a word <q>World!</q> does not belong
806                      to any paragraph.  (If not part of any paragraph, what is
807                      it!?)  A conforming example would be:
808                        <pre class="html example"><code>&lt;div>&lt;p>Hello!&lt;/p> &lt;p>World!&lt;/p>&lt;/div></code></pre>
809                      </p></dd>
810                  <dt>If the parent element does <em>not</em> allow
811                  block-level elements as content</dt>
812                      <dd>The element is not allowed to be inserted here.
813                      For example, a <code>div</code> element cannot be
814                      a child of an <code>h1</code> element.</dd>
815              </dl></dd>
816          <dt>If the element with the error is a <code>noscript</code> element</dt>
817              <dd>The <code>noscript</code> element is allowed only in the context
818              where a block-level or inline-level content is expected
819              and in the <code>head</code> element.
820              It cannot be used in e.g. <code>ul</code>, <code>table</code>,
821              or <code>select</code>.</dd>
822          <dt>If the element with the error is <code>blink</code>,
823          <code>center</code>, or <code>marquee</code> element</dt>
824              <dd>These elements are not part of the HTML standard.
825              Use CSS for styling control.</dd>
826    
827          <dt><code>button</code>, <code>datalist</code>,
828          <code>fieldset</code>, <code>form</code>,
829          <code>input</code>, <code>label</code>,
830          <code>optgroup</code>, <code>option</code>, <code>output</code>,
831          <code>rb</code>, <code>rp</code>, <code>rt</code>, <code>ruby</code>,
832          <code>textarea</code>, or <code>textarea</code> element</dt>
833          <!-- rbc, rtc ? -->
834              <dd>These elements are intentionally not supported by the conformance
835              checker <em>yet</em>.</dd>
836        </dl>        </dl>
837      </p>      </p>
838    </d:desc>    </d:desc>
839  </d:item>  </d:item>
840    
841  enumerated:invalid;attribute-error;This attribute only allow a limited set of values and the specified value is not one of them.  <d:item name="element not allowed:root"
842  no DOCTYPE;parse-error;This document does not start with the <code>DOCTYPE</code> declaration.      class="content-model-error">
843  not HTML5;parse-error;This document is written in an old version of HTML.    <d:message xml:lang="en">This element is not allowed as a root
844  not closed;parse-error;Element <code>$0</code> is not closed.    element.</d:message>
845  unmatched end tag;parse-error;Element <code>$0</code> is not opened.    <d:desc xml:lang="en">
846        <p>An element that is not allowed as the root element
847  table:no cell in last row;table-model-error;The table has no cell (<code>td</code> or <code>th</code>) in the last row.      is used as the root element of the document.  The document is
848        non-conforming, as far as the conformance checker can tell.</p>
849  s:IMT:obsolete subtype;should;An <em>obsolete</em> subtype is used.  
850  s:IMT:private subtype;should;A private (<code>x-</code> or <code>x.</code>) subtype is used.      <dl class="switch">
851  s:IMT:unregistered subtype;should;The subtype is not registered to IANA.      <dt><code>html</code> element in an XHTML document</dt>
852            <dd><p>In <abbr>XHTML</abbr> document, the root <code>html</code>
853            element must have an <code>xmlns</code> attribute as:
854              <pre class="xml example"><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"></code></pre></p></dd>
855        <dt><code>rss</code> element</dt>
856            <dd><p>The document is written in some version of RSS.</p>
857            <p>The conformance checker does not support any version
858            of RSS.  Use Atom 1.0 for feed documents.</p></dd>
859        <dt><code>feed</code> element</dt>
860            <dd><p>The Atom <code>feed</code> element must be
861            in the <code>http://www.w3.org/2005/Atom</code>
862            namespace as:
863              <pre class="xml example"><code>&lt;feed xmlns="http://www.w3.org/2005/Atom"></code></pre>
864            </p>
865            <p>The conformance checker does not support Atom 0.3.
866            Use Atom 1.0 for feed documents.</p></dd>
867        </dl>
868      </d:desc>
869    </d:item>
870    
871    <d:item name="ps element missing"
872        class="content-model-error">
873      <d:message xml:lang="en">There is no <code><var>$0</var></code>
874      element before this element.</d:message>
875      <d:desc xml:lang="en">
876        <p>There must be an element before another element, but there
877        is not.  The document is non-conforming.</p>
878    
879        <p>For example, there must be a <code>dt</code> element
880        before any <code>dd</code> element.</p>
881      </d:desc>
882    </d:item>
883    
884    </section>
885    
886    <section id="attribute-errors">
887    <h2>Attribute Errors</h2>
888    
889    <d:item name="attribute missing"
890        class="attribute-error">
891      <d:message xml:lang="en">Required attribute <code><var>$0</var></code>
892      is not specified.</d:message>
893      <d:desc>
894        <p>A required attribute is not specified.  The document
895        is non-conforming.</p>
896    
897        <p>Some attribute is defined as <i>required</i>.
898        Without required attributes specified, user agents
899        cannot provide full functionality of the element to the user.</p>
900    
901        <dl class="switch">
902        <dt>HTML <code>img</code> element</dt>
903            <dd>The <code>src</code> attribute must be specified.
904            Additionally, the <code>alt</code> attribute must be specified
905            in many cases.</dd>
906        <dt>HTML <code>link</code> element</dt>
907            <dd>The <code>rel</code> attribute must be specified.
908            Note that the <code>rev</code> attribute is obsolete.</dd>
909        </dl>
910      </d:desc>
911    </d:item>
912    
913    <d:item name="attribute not allowed" class="attribute-error">
914      <d:message xml:lang="en">Attribute
915      <code><var>{local-name}</var></code> is not allowed for
916      <code><var>{element-local-name}</var></code> element.</d:message>
917      <d:desc xml:lang="en">
918        <p>An attribute is specified where it is not allowed.
919        The document is non-conforming.</p>
920    
921        <dl>
922        <dt>HTML <code>meta</code> element</dt>
923            <dd>For HTML <code>meta</code> element, <em>only one</em> of
924            <code>name</code>, <code>http-equiv</code>, or <code>charset</code>
925            attribute is allowed.</dd>
926        </dl>
927      </d:desc>
928    </d:item>
929    
930    <d:item name="in HTML:xml:lang"
931        class="attribute-error">
932      <d:message xml:lang="en">The <code>xml:lang</code> attribute is not
933      allowed in HTML document.</d:message>
934      <d:desc xml:lang="en">
935        <p>The <code>xml:lang</code> attribute is not allowed in
936        HTML document.  The document is non-conforming.</p>
937    
938        <p>Use of the <code>xml:lang</code> attribute is conforming
939        <em>only</em> in XML documents.</p>
940    
941        <p>To specify natural language information in HTML document,
942        use <code>lang</code> attribute instead.</p>
943    
944        <p>XHTML 1.0 Appendix C was encouraged to specify both
945        <code>lang</code> and <code>xml:lang</code> attributes with
946        the same value.  Such a duplication has <em>no effect</em> in practice.
947        Use only one of <code>lang</code> (in HTML) or <code>xml:lang</code> (in
948        XML).</p>
949    
950        <!-- @@ ISSUE: xml:lang in non-HTML element in DOM5 HTML created
951             from an HTML document? -->
952      </d:desc>
953    </d:item>
954    
955    <d:item name="in XML:charset"
956        class="attribute-error">
957      <d:message xml:lang="en">The <code>charset</code> attribute is not
958      allowed in XML document.</d:message>
959      <d:desc>
960        <p>The <code>charset</code> attribute of a
961        <code>meta</code> element is not allowed in XML document.
962        The document is non-conforming.</p>
963    
964        <p>To specify the character encoding used for serialization,
965        if necessary, use XML declaration instead:
966          <pre class="xml example"><code>&lt;?xml version="1.0" encoding="<var>encoding-name</var>"?></code></pre>
967        </p>
968      </d:desc>
969    </d:item>
970    
971    <d:item name="in XML:lang"
972        class="attribute-error">
973      <d:message xml:lang="en">The <code>lang</code> attribute is not
974      allowed in XML document.</d:message>
975      <d:desc>
976        <p>The HTML <code>lang</code> attribute is not allowed in
977        XML document.  The document is non-conforming.</p>
978    
979        <p>The <code>lang</code> attribute in <code>null</code>
980        namespace for HTML elements is conforming <em>only</em> in
981        HTML documents.</p>
982    
983        <p>To specify natural language information in XML document,
984        use <code>xml:lang</code> attribute instead.</p>
985      </d:desc>
986    </d:item>
987    
988    <d:item name="in XML:xmlns"
989        class="attribute-error">
990      <d:message xml:lang="en">The <code>xmlns</code> attribute
991      in the <code>null</code> namespace is not allowed in
992      XHTML document.  The document is non-conforming.</d:message>
993      <d:desc>
994        <p>The <code>xmlns</code> attribute in the <code>null</code>
995        namespace is not allowed in XHTML document.</p>
996    
997        <p>This error should not occur in conformance-checking of
998        static documents.</p>
999      </d:desc>
1000    </d:item>
1001    
1002    </section>
1003    
1004    <section id="attribute-value-errors">
1005    <h2>Attribute Value Errors</h2>
1006    
1007    <d:item name="enumerated:invalid"
1008        class="attribute-value-error">
1009      <d:message xml:lang="en">This attribute only allow a limited set of
1010      values and the specified value <code><var>{@}</var></code> is not one
1011      of them.</d:message>
1012      <d:desc xml:lang="en">
1013        <p>For this attribute only several values are allowed and the
1014        value of the attribute is not one of them.  The document
1015        is non-conforming.</p>
1016    
1017        <dl>
1018        <dt>HTML <code>meta</code> element, <code>http-equiv</code> attribute</dt>
1019            <dd><p>Only values <code>Default-Style</code> and <code>Refresh</code>
1020            are allowed.</p>
1021            <p>Value <code>Content-Type</code> is obsolete; for charset
1022            declaration, the <code>charset</code> attribute can be used as:
1023            <pre class="html example"><code>&lt;meta charset="<var>charset-name</var>"></code></pre>
1024            ... where <var>charset-name</var> is a name of the character encoding
1025            of the document, such as <code>utf-8</code>.</p>
1026            <p>Values <code>Content-Style-Type</code> and
1027            <code>Content-Script-Type</code> are currently not allowed.</p>
1028            <p>Value <code>Keywords</code> is not allowed.  Use
1029            <code>name</code> attribute instead of <code>http-equiv</code>
1030            attribute.</p>
1031            <p>Values <code>Expires</code>, <code>Pragma</code>,
1032            and <code>Cache-Control</code> are not allowed;
1033            use <em>real</em> HTTP header fields for cache control.</p></dd>
1034        </dl>
1035      </d:desc>
1036    </d:item>
1037    
1038    <d:item name="enumerated:invalid:http-equiv:content-type"
1039        class="attribute-value-error">
1040      <d:message xml:lang="en">Character encoding declaration syntax
1041      <code class="html bad example">&lt;meta http-equiv="Content-Type" content="text/html; charset=<var>charset-name</var>"></code>
1042      is obsolete.</d:message>
1043      <d:desc xml:lang="en">
1044        <p>Old long character encoding declaration syntax
1045        <code class="html bad example">&lt;meta http-equiv="Content-Type" content="text/html; charset=<var>charset-name</var>"></code>
1046        is in use.  The document is non‐conforming.</p>
1047    
1048        <p>The new character encoding declaration syntax is:
1049          <pre class="html example"><code>&lt;meta charset="<var>charset-name</var>"></code></pre>
1050        </p>
1051      </d:desc>
1052    </d:item>
1053    
1054    <d:item name="duplicate ID"
1055        class="attribute-value-error">
1056      <d:message xml:lang="en">This identifier has already been
1057      assigned to another element.</d:message>
1058      <!-- @@ <id=a xml:id=a>? -->
1059    </d:item>
1060    
1061    <d:item name="link type:bad context"
1062        class="attribute-value-error">
1063      <d:message xml:lang="en">The link type <code><var>$0</var></code>
1064      cannot be specified for this element.</d:message>
1065      <d:desc xml:lang="en">
1066        <p>The specified link type cannot be used for the element.
1067        The document is non-conforming.</p>
1068    
1069        <p>Link types are associated with limited set of elements.
1070        They cannot be used with other elements.</p>
1071    
1072        <p>For example, link type <code>bookmark</code>
1073        can be used with <code>a</code> or <code>area</code> element,
1074        while it cannot be used with <code>link</code> element.</p>
1075      </d:desc>
1076    </d:item>
1077    
1078    <d:item name="link type:non-conforming"
1079        class="attribute-value-error">
1080      <d:message xml:lang="en">The link type <code><var>$0</var></code>
1081      is non-conforming.</d:message>
1082      <d:desc xml:lang="en">
1083        <p>The specified link type is non-conforming, and therefore
1084        the document is non-conforming.</p>
1085    
1086        <dl class="switch">
1087        <dt>Link type <code>contents</code></dt>
1088          <dd>Use link type <code>index</code>.</dd>
1089        <dt>Link type <code>copyright</code></dt>
1090          <dd>Use link type <code>license</code>.</dd>
1091        <dt>Link type <code>home</code></dt>
1092          <dd>Use link type <code>index</code>.</dd>
1093        <dt>Link type <code>previous</code></dt>
1094          <dd>Use link type <code>prev</code>.</dd>
1095        <dt>Link type <code>start</code></dt>
1096          <dd>Use link type <code>first</code>.</dd>
1097        <dt>Link type <code>toc</code> or <code>top</code></dt>
1098          <dd>Use link type <code>index</code>.</dd>
1099        </dl>
1100      </d:desc>
1101    </d:item>
1102    
1103    <d:item name="reserved browsing context name"
1104        class="attribute-value-error">
1105      <d:message xml:lang="en">Browsing context name
1106      <code><var>{@}</var></code> is reserved.</d:message>
1107      <d:desc xml:lang="en">
1108        <p>The specified browsing context name is reserved.
1109        The document is non-conforming.</p>
1110    
1111        <p>Names of browsing contexts starting with <code>_</code>
1112        (<code>U+005F</code> <code class="charname">LOW LINE</code>)
1113        are reserved so that it must not be used.</p>
1114    
1115        <p>Old version of HTML, non-HTML markup languages, and
1116        Web browsers define or implements special reserved
1117        browsing context names <code>_blank</code>,
1118        <code>_main</code>, and <code>_replace</code>.
1119        However, they are <em>not</em> conforming attribute values.</p>
1120      </d:desc>
1121    </d:item>
1122    
1123    </section>
1124    
1125    <section id="attribute-value-warnings">
1126    <h2>Attribute Value Warnings</h2>
1127    
1128    <d:item name="link type:proposed" level="s"
1129        class="attribute-value-warning should">
1130      <d:message xml:lang="en">Link type <code><var>$0</var></code>
1131      is proposed but not accepted yet; it <em>should not</em> be
1132      used until it has been accepted.</d:message>
1133      <d:desc>
1134        <p>The link type is in the <i>proposed</i> status; it
1135        <em>should not</em> be used until it has been
1136        accepted.</p>
1137    
1138        <p><strong>Warning</strong>: The data served to the
1139        conforming checker might be out of date; it might have already
1140        been accepted or rejected.  The document might or might not be
1141        conforming depending on the status.  See WHATWG Wiki
1142        for the latest information.</p>
1143      </d:desc>
1144    </d:item>
1145    
1146    </section>
1147    
1148    <section id="table-model-errors">
1149    <h2>Table Model Errors</h2>
1150    
1151    <d:item name="table:colspan creates column with no anchored cell"
1152        class="table-model-error">
1153      <d:message xml:lang="en">This <code>colspan</code> attribute
1154      results in creating a table column that does not contain
1155      any cell anchored to it.</d:message>
1156    </d:item>
1157    
1158    <d:item name="table:no cell in last row"
1159        class="table-model-error">
1160      <d:message xml:lang="en">The table has no cell (<code>td</code> or
1161      <code>th</code>) in the last row.</d:message>
1162    </d:item>
1163    
1164    <d:item name="table:rowspan extends table"
1165        class="table-model-error">
1166      <d:message xml:lang="en">This <code>rowspan</code> attribute
1167      results in creating a table row that does not contain
1168      any cell anchored to it.</d:message>
1169      <d:desc xml:lang="en">
1170        <p>The <code>rowspan</code> attribute value of the cell
1171        is so specified that it extends a table in the row axis.
1172        However, the extended row does not contain any cell by itself.
1173        The document is non-conforming.</p>
1174    
1175        <p>For example, the table below is non-conforming:
1176          <pre class="html bad example"><code>&lt;table>
1177    &lt;tbody>
1178    &lt;tr>&lt;td rowspan=2>&lt;/td>&lt;/tr>
1179    &lt;/tbody>
1180    &lt;/table></code></pre>
1181        ... since the second row contains only
1182        a cell that spans between first and second rows.</p>
1183      </d:desc>
1184    </d:item>
1185    
1186    </section>
1187    
1188    <section id="imt-warnings">
1189    <h2>Internet Media Type Warnings</h2>
1190    
1191    <d:item name="IMT:obsolete subtype"
1192        class="should" level="s">
1193      <d:message xml:lang="en"><code><var>{@}</var></code>: An <em>obsolete</em>
1194      subtype is used.</d:message>
1195      <d:item xml:lang="en">
1196        <p>The specified Internet Media Type is registered with status
1197        of <i>OBSOLETE</i>.</p><!-- @@ SHOULD NOT? -->
1198        
1199        <dl class="swtich">
1200        <dt>Media type <code>text/ecmascript</code></dt>
1201          <dd>Media type <code>text/ecmascript</code> is obsoleted in
1202          favor of <code>application/ecmascript</code>.  Note that
1203          <code>text/javascript</code> would be better alternative
1204          for many cases.</dd>
1205        <dt>Media type <code>text/javascript</code></dt>
1206          <dd>Media type <code>text/javascript</code> is obsoleted by
1207          <abbr>IETF</abbr> with backward incompatible alternate
1208          <code>application/javascript</code> for architectural
1209          purity.<!-- @@ ref? -->  Realist may ignore this warning.</dd>
1210        </dl>
1211      </d:item>
1212    </d:item>
1213    
1214    <d:item name="IMT:private subtype"
1215        class="should" level="s">
1216      <d:message xml:lang="en"><code><var>{@}</var></code>: A private
1217      (<code>x-</code> or <code>x.</code>) subtype is used.</d:message>
1218    </d:item>
1219    
1220    <d:item name="IMT:unregistered subtype"
1221        class="should" level="s">
1222      <d:message xml:lang="en"><code><var>{@}</var></code>: The subtype is
1223      not registered to IANA.</d:message>
1224    <!-- TODO: Unknown message?? -->
1225    </d:item>
1226    
1227    </section>
1228    
1229    <section id="uri-errors">
1230    <h2>URI (or IRI) Errors</h2>
1231    
1232    <d:item name="URI::syntax error"
1233        class="must" level="m">
1234      <d:message xml:lang="en">The specified value is syntactically not an IRI
1235      reference.</d:message>
1236      <d:desc xml:lang="en">
1237        <p>The specified value does not satisfy the syntactical requirements
1238        for IRI references.  The document is non-conforming.</p>
1239    
1240        <p>Possible causes:
1241          <ul>
1242          <li>The string might contain one or more white space characters.
1243          Especially, the <code> </code> (<code>U+0020</code>
1244          <code class="charname">SPACE</code>) character cannot be
1245          used in IRI references.</li>
1246          </ul>
1247        </p>
1248      </d:desc>
1249    </d:item>
1250    
1251    </section>
1252    
1253    <section id="uri-shoulds">
1254    <h2>URI (or IRI) Should-level Errors</h2>
1255    
1256    <d:item name="URI::dot-segment"
1257        class="should" level="s">
1258      <d:message xml:lang="en">A dot-segment (<code>.</code> or
1259      <code>..</code>) occurs in an absolute reference.</d:message>
1260      <d:desc>
1261        <p>Dot-segment (<code>.</code> or <code>..</code>) should
1262        not occur in an absolute reference.</p>
1263    
1264        <p>In relative references, dot-segments are used to represent
1265        the current (<code>.</code>) or the parent (<code>..</code>)
1266        hierarchy of the path.  Though they are also allowed
1267        in absolute references, it should be resolved to the
1268        canonical form before it has been published.</p>
1269      </d:desc>
1270    </d:item>
1271    
1272    <d:item name="URI::empty path"
1273        class="should" level="s">
1274      <d:message xml:lang="en">This IRI does not end with
1275      a <code>/</code>.</d:message>
1276      <d:item xml:lang="en">
1277        <p>The IRI does not end with a <code>/</code>.  If there is an
1278        authority component in an IRI, a <code>/</code> should be present
1279        instead of empty path component.</p>
1280    
1281        <p>For example, <code>http://www.example.com<strong>/</strong></code>
1282        is preferred to <code>http://www.example.com</code>.</p>
1283      </d:item>
1284    </d:item>
1285    
1286    <d:item name="URI::lowercase hexadecimal digit"
1287        class="should" level="s">
1288      <d:message xml:lang="en">A lowercase hexadecimal digit is used
1289      in percent-encoding.</d:message>
1290      <d:desc xml:lang="en">
1291        <p>The hexadecimal digit in percent-encoding string in the IRI
1292        is in lowercase.  Though the IRI <em>is</em> conforming,
1293        it should be in uppercase.</p>
1294      </d:desc>
1295    </d:item>
1296    
1297    <d:item name="URI::percent-encoded unreserved"
1298        class="should" level="s">
1299      <d:message xml:lang="en">An unreserved character is
1300      percent-encoded.</d:message>
1301      <d:desc xml:lang="en">
1302        <p>An unreserved character is percent-encoded in the IRI.
1303        Though it <em>is</em> conforming, it should be in the
1304        decoded (or bare) form.</p>
1305      </d:desc>
1306    </d:item>
1307    
1308    <d:item name="URI::uppercase scheme name"
1309        class="should" level="s">
1310      <d:message xml:lang="en">URI scheme name is in uppercase.</d:message>
1311      <d:desc xml:lang="en">
1312        <p>The scheme part of the IRI is written in uppercase letter.</p>
1313    
1314        <p>Uppercase scheme names are not required to be processed
1315        correctly.</p>
1316    <!-- @@
1317     RFC 3986 3.1.
1318     > Although schemes are case-
1319       insensitive, the canonical form is lowercase and documents that
1320       specify schemes must do so with lowercase letters.
1321    
1322     > An implementation ... should only produce lowercase scheme names for
1323       consistency.
1324    -->
1325      </d:desc>
1326    </d:item>
1327    
1328    </section>
1329    
1330    <section id="cache-manifest-errors">
1331    <h2>Cache Manifest Errors</h2>
1332    
1333    <d:item name="not manifest" class="must" level="m">
1334      <d:message xml:lang="en">This document is not a cache manifest.</d:message>
1335      <d:desc xml:lang="en">
1336        <p>The specified document is <em>not</em> a cache manifest.
1337        The document is non-conforming.</p>
1338    
1339  s:URI::empty path;should;This IRI should explicitly end with <code>/</code>.      <p>An entity labeled as Internet media type
1340  m:URI::syntax error;must;This IRI is not syntactically valid.      <code>text/cache-manifest</code> must contain a cache manifest.</p>
1341    
1342        <p>A cache manifest must start with a line whose content is
1343        <code class="manifest example">CACHE MANIFEST</code>
1344        (exactly one space character between
1345        <code>CACHE</code> and <code>MANIFEST</code>).</p>
1346      </d:desc>
1347    </d:item>
1348  </section>  </section>
1349    
1350  <section id="unsupported-messages">  <section id="unsupported-messages">
1351  <h2><i>Unsupported</i> Messages</h2>  <h2><i>Unsupported</i> Messages</h2>
1352    
1353  <d:item name="unsupported:attribute"  <d:item name="element"
1354      class="unsupported">      class="unsupported" level="unsupported">
1355    <d:message xml:lang="en">This attribute is not supported by the    <d:message xml:lang="en">Conformance checking for element
1356    conformance checker; <em>it might or might not be conforming</em>.</d:message>    <code><var>{local-name}</var></code> is not supported; <em>it might or
1357      might not be conforming</em>.</d:message>
1358    <d:desc xml:lang="en">    <d:desc xml:lang="en">
1359      <p>The conformant checker does not support the attribute.      <p>The conformant checker does not support the element.
1360      It cannot determine whether the document is conforming or not.</p>      It cannot determine whether the document is conforming or not.</p>
1361    </d:desc>    </d:desc>
1362  </d:item>  </d:item>
1363    
1364  <d:item name="unsupported:element"  <d:item name="attribute"
1365      class="unsupported">      class="unsupported" level="unsupported">
1366    <d:message xml:lang="en">This element is not supported by the    <d:message xml:lang="en">Conformance checking for attribute
1367    conformance checker; <em>it might or might not be conforming</em>.</d:message>    <code><var>{local-name}</var></code> of element
1368      <code><var>{element-local-name}</var></code> is not supported;
1369      <em>it might or might not be conforming</em>.</d:message>
1370    <d:desc xml:lang="en">    <d:desc xml:lang="en">
1371      <p>The conformant checker does not support the element.      <p>The conformant checker does not support the attribute.
1372      It cannot determine whether the document is conforming or not.</p>      It cannot determine whether the document is conforming or not.</p>
1373    </d:desc>    </d:desc>
1374  </d:item>  </d:item>
1375    
1376  <d:item name="unsupported:link type"  <d:item name="link type"
1377      class="unsupported">      class="unsupported" level="unsupported">
1378    <d:message xml:lang="en">The link type <code>$0</code> is not standardized    <d:message xml:lang="en">Link type <code><var>$0</var></code> is not
1379    or registered at the time of the release of the conformance checker;    standardized or registered at the time of the release of the conformance
1380    <em>it is non-conforming unless it has now been registered</em>.</d:message>    checker; <em>it is non-conforming unless it now has been
1381      registered</em>.</d:message>
1382    <d:desc xml:lang="en">    <d:desc xml:lang="en">
1383      <p>The <code>rel</code> attribute is defined as a list of link types.      <p>The <code>rel</code> attribute is defined as a list of link types.
1384      Some common link types are defined in the HTML5 specification.      Some common link types are defined in the HTML5 specification.
# Line 214  m:URI::syntax error;must;This IRI is not Line 1390  m:URI::syntax error;must;This IRI is not
1390      The link type might have been added to the registry since then.      The link type might have been added to the registry since then.
1391      In such case it might be conforming.  Otherwise, the      In such case it might be conforming.  Otherwise, the
1392      document is non-conforming.</p>      document is non-conforming.</p>
1393    
1394        <dl>
1395        <dt>Link types <code>shortcut icon</code></dt>
1396            <dd>Link type <code>shortcut</code> is not registered.
1397            Use only <code>icon</code> for linking to so-called favicon.</dd>
1398        </dl>
1399    </d:desc>    </d:desc>
1400  </d:item>  </d:item>
1401    
1402    <d:item name="event handler"
1403        class="unsupported" level="unsupported">
1404      <d:message xml:lang="en">Conformance checking for event handler attribute
1405      is not supported; <em>it might or might not be conforming.</em></d:message>
1406    </d:item>
1407    
1408    <d:item name="media query"
1409        class="unsupported" level="unsupported">
1410      <d:message xml:lang="en">Conformance checking for media query
1411      is not supported; <em>it might or might not be conforming.</em></d:message>
1412    </d:item>
1413    
1414    <d:item name="script"
1415        class="unsupported" level="unsupported">
1416      <d:message xml:lang="en">Conformance checking for script
1417      language <code><var>$0</var></code> is not supported;
1418      <em>it might or might not be conforming.</em></d:message>
1419    </d:item>
1420    
1421    <d:item name="style"
1422        class="unsupported" level="unsupported">
1423      <d:message xml:lang="en">Conformance checking for style
1424      language <code><var>$0</var></code> is not supported;
1425      <em>it might or might not be conforming.</em></d:message>
1426    </d:item>
1427    
1428    </section>
1429    
1430    <d:catalog>
1431    manakaiCompatMode:quirks;;Quirks Mode
1432    manakaiCompatMode:limited quirks;;Limited Quirks Mode
1433    manakaiCompatMode:no quirks;;No Quirks Mode
1434    
1435    manakaiIsHTML:1;;HTML Document
1436    manakaiIsHTML:0;;XML Document
1437    </d:catalog>
1438    
1439    <section id="levels">
1440    <h2>Error Levels</h2>
1441    
1442    <table id="levels-table">
1443    <thead>
1444    <tr><th scope="col">Level</th>
1445    <th scope="col">Conforming?</th>
1446    <th scope="col">Description</th>
1447    </tr>
1448    </thead>
1449    <tbody>
1450    <tr id="level-m" class="level-m">
1451    <th scope="row"><em class="rfc2119">MUST</em>‐level error</th>
1452    <td>Non‐conforming.</td>
1453    <td>A violation to a hard requirement of the specification.
1454    The document is non‐conforming.</td>
1455    </tr>
1456    <tr id="level-s" class="level-s">
1457    <th scope="row"><em class="rfc2119">SHOULD</em>‐level error</th>
1458    <td>Non‐conforming, but <em>in some case</em>
1459    conforming.</td>
1460    <td>A violation to a requirement of the specification.
1461    The violation might be legitimize in some case.  Otherwise,
1462    the document is non‐conforming.</td>
1463    </tr>
1464    <tr id="level-w" class="level-w">
1465    <th scope="row">Warning</th>
1466    <td>Conforming.</td>
1467    <td>A warning is an advice from the conformance checker to avoid
1468    to solve a problem in a confusing or possibly wrong way.
1469    It does not affect to the conformance of the document, and
1470    may sometimes be inappropriate.</td>
1471    </tr>
1472    <tr id="level-unsupported" class="level-unsupported">
1473    <th scope="row">Not supported</th>
1474    <td><em>Unknown</em>.</td>
1475    <td>Some feature that is not supported by the conformance checker
1476    is used in the document.</td>
1477    </tr>
1478    </tbody>
1479    </table>
1480  </section>  </section>
1481    
1482  <section id="license">  <section id="license">
1483  <h2>License of This Document</h2>  <h2>License of This Document</h2>
1484    
1485  <p>Copyright 2007 <a href="http://suika.fam.cx/~wakaba/who?">Wakaba</a></p>  <p>Copyright <time>2007</time>
1486  <p>This library is free software; you can redistribute it  <a href="http://suika.fam.cx/~wakaba/who?" rel="author" xml:lang="ja">Wakaba</a>
1487    <code class="mail">&lt;<a href="mailto:w@suika.fam.cx">w@suika.fam.cx</a>></code>.</p>
1488    
1489    <p>This document is free software; you can redistribute it
1490  and/or modify it under the same terms as Perl itself.</p>  and/or modify it under the same terms as Perl itself.</p>
1491  </section>  </section>
1492    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.16

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24