/[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.16 - (show annotations) (download) (as text)
Sun Nov 18 11:05:12 2007 UTC (16 years, 6 months ago) by wakaba
Branch: MAIN
Changes since 1.15: +119 -4 lines
File MIME type: text/xml
++ ChangeLog	18 Nov 2007 11:04:51 -0000
	* cc-style.css: New rules for warnings.

	* cc-todo.en.txt: Updated.

	* cc.cgi: Default to |Windows-1252| instead of |ISO-8859-1|
	for |inner_html| with external source.  Set |manakai_charset|
	attribute if possible.
	(load_text_catalog): Interpret catalog file as UTF-8.

	* error-description-source.en.xml: New errors for character
	encodings are added.

2007-11-18  Wakaba  <wakaba@suika.fam.cx>

	* error-description-source.xml: s/charset declaration/character
	encoding declaration/g, since HTML5 spec says so.

2007-11-18  Wakaba  <wakaba@suika.fam.cx>

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-character-encoding">
15 <h2>HTML5 Character Encoding Errors</h2>
16
17 <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">
134 <d:message xml:lang="en">Tag <code>&lt;<var>$0</var>&gt;</code>
135 is not allowed after the end tag <code>&lt;/html></code>.</d:message>
136 <d:desc xml:lang="en">
137 <p>The start or end tag of an element appears after the
138 <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>
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>
363 </d:item>
364
365 <d:item name="duplicate attribute"
366 class="tokenize-error">
367 <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">
370 <p>There are more than one attributes with the same
371 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.
374 Use <code>img</code> element with animation GIF instead.</p>
375 </d:desc>
376 </d:item>
377
378 <d:item name="nestc"
379 class="tokenize-error">
380 <d:message xml:lang="en">Polytheistic slash (<code>/></code>) cannot be
381 used for this element.</d:message>
382 <d:desc xml:lang="en">
383 <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>,
388 <code>hr</code>, <code>br</code>, <code>img</code>,
389 <code>embed</code>, <code>param</code>, <code>area</code>,
390 <code>col</code>, and <code>input</code> elements.</p>
391
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>Note that, unlike in XML, the polytheistic slash has
421 no effect in HTML.</p>
422 </d:desc>
423 </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>
709
710 <section id="element-content-model-errors">
711 <h2>Element Content Model Errors</h2>
712
713 <d:item name="character not allowed"
714 class="content-model-error">
715 <d:message xml:lang="en">Data character is not allowed in this
716 context.</d:message>
717 <d:desc xml:lang="en">
718 <p>A data character appears where it is not allowed in this
719 context. The document is non-conforming.</p>
720
721 <p>Possible causes:
722 <ul>
723 <li><p>A data character cannot be a child
724 of certain sectioning elements such as <code>body</code>,
725 <code>section</code>, and <code>blockquote</code>.</p>
726
727 <p>Any inline-level content must be put
728 in e.g. paragraph element such as <code>p</code>.</p></li>
729 <li><p>Though some elements such as <code>div</code>,
730 <code>li</code>, and <code>td</code> allow
731 <em>either one</em> of block-level or inline-level content
732 is allowed. If there is a block-level content,
733 any inline-level content must be put
734 in e.g. paragraph element such as <code>p</code>.</p></li>
735 </ul>
736 </p>
737 </d:desc>
738 </d:item>
739
740 <d:item name="child element missing"
741 class="content-model-error">
742 <d:message xml:lang="en">There must be a <code><var>$0</var></code>
743 element as a child of this element.</d:message>
744 <d:desc xml:lang="en">
745 <p>The content model of the element is so defined that it
746 must contain a <code><var>$0</var></code> child element.
747 The document is non-conforming.</p>
748
749 <dl class="switch">
750 <dt>HTML <code>head</code> element</dt>
751 <dd>There must be a <code>title</code> child element.</dd>
752 <dt>HTML <code>html</code> element</dt>
753 <dd>There must be a <code>head</code> child element followed
754 by a <code>body</code> element.</dd>
755 <dt>HTML <code>tr</code> element</dt>
756 <dd><a href="#child-element-missing:td%7Cth">There must be
757 one or more <code>td</code> or <code>th</code> child element.</a></dd>
758 </dl>
759 </d:desc>
760 </d:item>
761
762 <d:item name="child element missing:td|th"
763 class="content-model-error">
764 <d:message xml:lang="en">There must be a <code>td</code>
765 or <code>th</code> element as a child of this element.</d:message>
766 <d:desc xml:lang="en">
767 <p>The <code>tr</code> element must contain at least one
768 <code>td</code> or <code>th</code> child element. The document
769 is non-conforming.</p>
770 </d:desc>
771 </d:item>
772
773 <d:item name="element not allowed"
774 class="content-model-error">
775 <d:message xml:lang="en">This element is not allowed in this
776 context.</d:message>
777 <d:desc xml:lang="en">
778 <p>An element appears where it is not allowed. The document
779 is non-conforming.</p>
780
781 <p>Possible causes:
782 <dl class="switch">
783 <dt>If the element with the error is an inline-level element,
784 such as <code>a</code>, <code>progress</code>, or <code>img</code></dt>
785 <dd><p>An inline-level element cannot be a child
786 of certain sectioning elements such as <code>body</code>,
787 <code>section</code>, and <code>blockquote</code>.</p>
788
789 <p>Any inline-level content must be put
790 in e.g. paragraph element such as <code>p</code>.</p></dd>
791 <dt>If it is a block-level elements, such as <code>aside</code>,
792 <code>div</code>, <code>h<var>n</var></code>,
793 <code>p</code>, or <code>section</code></dt>
794 <dd><dl class="switch">
795 <dt>If the parent element is <code>div</code>,
796 <code>li</code>, <code>td</code>, or <code>th</code></dt>
797 <!-- @@ TODO: more... -->
798 <!-- @@ TODO: <p><ul><li><p> -->
799 <dd><p>The parent element allows <em>either</em>
800 block-level or inline-level content. If there is a
801 block-level content, any inline-level content must be
802 put in e.g. paragraph element such as <code>p</code>.</p>
803 <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>
837 </p>
838 </d:desc>
839 </d:item>
840
841 <d:item name="element not allowed:root"
842 class="content-model-error">
843 <d:message xml:lang="en">This element is not allowed as a root
844 element.</d:message>
845 <d:desc xml:lang="en">
846 <p>An element that is not allowed as the root element
847 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
850 <dl class="switch">
851 <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 <p>An entity labeled as Internet media type
1340 <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>
1349
1350 <section id="unsupported-messages">
1351 <h2><i>Unsupported</i> Messages</h2>
1352
1353 <d:item name="element"
1354 class="unsupported" level="unsupported">
1355 <d:message xml:lang="en">Conformance checking for element
1356 <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">
1359 <p>The conformant checker does not support the element.
1360 It cannot determine whether the document is conforming or not.</p>
1361 </d:desc>
1362 </d:item>
1363
1364 <d:item name="attribute"
1365 class="unsupported" level="unsupported">
1366 <d:message xml:lang="en">Conformance checking for attribute
1367 <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">
1371 <p>The conformant checker does not support the attribute.
1372 It cannot determine whether the document is conforming or not.</p>
1373 </d:desc>
1374 </d:item>
1375
1376 <d:item name="link type"
1377 class="unsupported" level="unsupported">
1378 <d:message xml:lang="en">Link type <code><var>$0</var></code> is not
1379 standardized or registered at the time of the release of the conformance
1380 checker; <em>it is non-conforming unless it now has been
1381 registered</em>.</d:message>
1382 <d:desc xml:lang="en">
1383 <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.
1385 Additional link types can be registered to the WHATWG Wiki.
1386 use of any other link type is non-conforming.</p>
1387
1388 <p>The specified link type is not part of the standard or registry
1389 when the database used by the conformance cheker is created.
1390 The link type might have been added to the registry since then.
1391 In such case it might be conforming. Otherwise, the
1392 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>
1400 </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>
1481
1482 <section id="license">
1483 <h2>License of This Document</h2>
1484
1485 <p>Copyright <time>2007</time>
1486 <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>
1491 </section>
1492
1493 <!-- $Date: 2007/11/07 12:20:44 $ -->
1494 </body>
1495 </html>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24