/[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.21 - (show annotations) (download) (as text)
Fri Mar 21 08:59:47 2008 UTC (16 years, 8 months ago) by wakaba
Branch: MAIN
Changes since 1.20: +13 -11 lines
File MIME type: text/xml
++ ChangeLog	21 Mar 2008 08:59:37 -0000
2008-03-21  Wakaba  <wakaba@suika.fam.cx>

	* cc.cgi: Experimental support for application/rdf+xml type.
	Generate section on RDF triples extracted from the document.
	(print_rdf_section): New function.
	(get_rdf_resource_html): New function.

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24