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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.10 - (show annotations) (download) (as text)
Tue Sep 4 11:40:02 2007 UTC (16 years, 8 months ago) by wakaba
Branch: MAIN
Changes since 1.9: +21 -9 lines
File MIME type: text/xml
*** empty log message ***

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24