1 |
<!DOCTYPE html><html id="error-description" lang="en" xmlns:d="http://suika.fam.cx/~wakaba/archive/2007/wdcc-desc/" xmlns="http://www.w3.org/1999/xhtml"> |
2 |
<head> |
3 |
<title xml:lang="en">Description of Errors — |
4 |
Web Document Conformance Checker (BETA)</title> |
5 |
<link href="cc-style" rel="stylesheet"> |
6 |
<link href="#license" rel="license"> |
7 |
</head> |
8 |
<body> |
9 |
<h1>Description of Errors</h1> |
10 |
|
11 |
<section id="html5-tokenize-error"> |
12 |
<h2>HTML5 Parse Errors in Tokenization Stage</h2> |
13 |
|
14 |
<div class="section parse-error" id="after-html"><h3>Tag <code><<var>$0</var>></code> |
15 |
is not allowed after the end tag <code></html></code>.</h3> |
16 |
<p>The start or end tag of an element appears after the |
17 |
<code>html</code> element has been closed. The document is |
18 |
non-conforming.</p> |
19 |
|
20 |
<p>Any content of the document other than comments |
21 |
must be put into the <code>html</code> element.</p> |
22 |
</div> |
23 |
|
24 |
<div class="section tokenize-error" id="bare-ero"><h3>The <code>&</code> character must |
25 |
introduce a reference.</h3> |
26 |
<p>An <code>&</code> (<code>U+0026</code> |
27 |
<code class="charname">AMPERSAND</code>) character which |
28 |
is not part of any reference appears in the input stream. |
29 |
The document is non-conforming.</p> |
30 |
|
31 |
<p>The <code>&</code> character must |
32 |
be the first character of a reference: |
33 |
<dl> |
34 |
<dt>Named entity reference</dt> |
35 |
<dd><pre class="html example"> |
36 |
<code>&<var>entity-name</var>;</code></pre> |
37 |
where <var>entity-name</var> is the name of the |
38 |
character entity to be referenced.</dd> |
39 |
<dt>Numeric character reference</dt> |
40 |
<dd><pre class="html example"> |
41 |
<code>&#<var>d</var>;</code></pre> |
42 |
where <var>d</var> is the decimal representation of |
43 |
the code position of the character to be referenced.</dd> |
44 |
<dt>Hexadecimal character reference</dt> |
45 |
<dd><pre class="html example"> |
46 |
<code>&#x<var>h</var>;</code></pre> |
47 |
where <var>h</var> is the hexadecimal representation |
48 |
of the code position of the character to be referenced.</dd> |
49 |
</dl> |
50 |
</p> |
51 |
|
52 |
<p>To represent <code>&</code> as a data character, use |
53 |
named entity reference: |
54 |
<pre class="html example"> |
55 |
<code>&amp;</code></pre> |
56 |
</p> |
57 |
</div> |
58 |
|
59 |
<div class="section tokenize-error" id="bare-nero"><h3>The decimal representation of the code position |
60 |
of a character must be specified after <code>&#</code>.</h3> |
61 |
<p>An <code>&</code> (<code>U+0026</code> |
62 |
<code class="charname">AMPERSAND</code>) character immediately |
63 |
followed by a <code>#</code> (<code>U+0023</code> |
64 |
<code>NUMBER SIGN</code>) character which |
65 |
is not part of any reference appears in the input stream. |
66 |
The document is non-conforming.</p> |
67 |
|
68 |
<p>The string <code>&#</code> must be the first two characters |
69 |
<code>NUMBER SIGN</code>) character must be the first two characters |
70 |
of a reference: |
71 |
<dl> |
72 |
<dt>Numeric character reference</dt> |
73 |
<dd><pre class="html example"> |
74 |
<code>&#<var>d</var>;</code></pre> |
75 |
where <var>d</var> is the decimal representation of |
76 |
the code point of the character to be referenced.</dd> |
77 |
<dt>Hexadecimal character reference</dt> |
78 |
<dd><pre class="html example"> |
79 |
<code>&#x<var>h</var>;</code></pre> |
80 |
where <var>h</var> is the hexadecimal representation |
81 |
of the code point of the character to be referenced.</dd> |
82 |
</dl> |
83 |
</p> |
84 |
|
85 |
<p>To represent <code>&#</code> as data characters, use |
86 |
named entity reference: |
87 |
<pre class="html example"> |
88 |
<code>&amp;#</code></pre> |
89 |
</p> |
90 |
</div> |
91 |
|
92 |
<div class="section tokenize-error" id="bare-hcro"><h3>The hexadecimal representation of the code position |
93 |
of a character must be specified after <code>&#x</code>.</h3> |
94 |
<p>The string <code>&#x</code> or <code>&#X</code> which |
95 |
is not part of any reference appears in the input stream. |
96 |
The document is non-conforming.</p> |
97 |
|
98 |
<p>The string <code>&#x</code> or <code>&#X</code> must |
99 |
be the first three characters of a hexadecimal reference: |
100 |
<pre class="html example"> |
101 |
<code>&#x<var>h</var>;</code></pre> |
102 |
where <var>h</var> is the hexadecimal representation |
103 |
of the code point of the character to be referenced.</p> |
104 |
|
105 |
<p>To represent <code>&#x</code> as data characters, use |
106 |
named entity reference: |
107 |
<pre class="html example"> |
108 |
<code>&amp;#x</code></pre> |
109 |
</p> |
110 |
</div> |
111 |
|
112 |
<div class="section tokenize-error" id="duplicate-attribute"><h3>There are two attributes with same name.</h3> |
113 |
<p>There are more than one attributes with the same |
114 |
name in a tag. The document is non-conforming.</p> |
115 |
|
116 |
<p>The <code>motion</code> attribute is not part of the HTML standard. |
117 |
Use <code>img</code> element with animation GIF instead.</p> |
118 |
</div> |
119 |
|
120 |
<div class="section tokenize-error" id="nestc"><h3>Void element syntax (<code>/></code>) cannot be |
121 |
used for this element.</h3> |
122 |
<p>Void element syntax (<code>/></code>) must not be used |
123 |
for the element. The document is non-conforming.</p> |
124 |
|
125 |
<p>The void element syntax can only be |
126 |
used for <code>base</code>, <code>link</code>, <code>meta</code>, |
127 |
<code>hr</code>, <code>br</code>, <code>img</code>, |
128 |
<code>embed</code>, <code>param</code>, <code>area</code>, |
129 |
<code>col</code>, and <code>input</code> elements.</p> |
130 |
|
131 |
<p>Note that, unlike in XML, the void element syntax has |
132 |
no effect in HTML.</p> |
133 |
</div> |
134 |
|
135 |
</section> |
136 |
|
137 |
<section id="html5-parse-errors"> |
138 |
<h2>HTML5 Parse Errors in Tree Construction Stage</h2> |
139 |
|
140 |
<div class="section parse-error" id="after-head"><h3>The <code><var>$0</var></code> element cannot be |
141 |
inserted between <code>head</code> and <code>body</code> elements.</h3> |
142 |
<p>A start tag appears after the <code>head</code> element is closed |
143 |
but before the <code>body</code> element is opened. |
144 |
The document is non-conforming.</p> |
145 |
</div> |
146 |
|
147 |
<div class="section parse-error" id="in-table"><h3>Tag <code><<var>$0</var>></code> |
148 |
is not allowed in <code>table</code>.</h3> |
149 |
<p>The start or end tag of an element appears in <code>table</code>. |
150 |
The document is non-conforming.</p> |
151 |
|
152 |
<p>In <code>table</code>, only table related elements |
153 |
are allowed; any other element must be contained in |
154 |
<code>td</code> or <code>th</code> element to form |
155 |
a part of the table, or <code>caption</code> element to create |
156 |
a table caption.</p> |
157 |
</div> |
158 |
|
159 |
<div class="section parse-error" id="in-table:#character"><h3>Data character is not allowed in |
160 |
<code>table</code>.</h3> |
161 |
<p>A data character appears in <code>table</code>. The document |
162 |
is non-conforming.</p> |
163 |
|
164 |
<p>In <code>table</code>, only table related elements |
165 |
are allowed; any other element and data character must be contained in |
166 |
<code>td</code> or <code>th</code> element to form |
167 |
a part of the table, or <code>caption</code> element to create |
168 |
a table caption.</p> |
169 |
</div> |
170 |
|
171 |
<div class="section parse-error" id="missing-start-tag:tr"><h3>Start tag of <code>tr</code> |
172 |
element is missing.</h3> |
173 |
<p>Start tag of a <code>tr</code> element, which is <em>not</em> |
174 |
optional, is missing. The document is non-conforming.</p> |
175 |
|
176 |
<p>In a table section, a <code><tr></code> start tag |
177 |
must occur before any <code><td></code> or |
178 |
<code><th></code> start tag. Though the HTML5 parser |
179 |
implies the <code><tr></code> start tag before |
180 |
these start tags, it must be explicitly specified.</p> |
181 |
</div> |
182 |
|
183 |
<div class="section parse-error" id="no-DOCTYPE"><h3>This document does not start with the |
184 |
<code>DOCTYPE</code>.</h3> |
185 |
<p>The document does not start with a <code>DOCTYPE</code>. |
186 |
The document is non-conforming.</p> |
187 |
|
188 |
<p>An HTML document must start by a <code>DOCTYPE</code>: |
189 |
<pre class="html example"> |
190 |
<code><!DOCTYPE HTML></code></pre> |
191 |
</p> |
192 |
|
193 |
<p>Only white space characters and comments are allowed |
194 |
before the <code>DOCTYPE</code>.</p> |
195 |
</div> |
196 |
|
197 |
<div class="section parse-error" id="not-closed"><h3>Element <code><var>$0</var></code> is not |
198 |
closed.</h3> |
199 |
<p>End tag of an element is not found before, for example, |
200 |
an end tag of another element appears or |
201 |
the end of the document. The document is non-conforming.</p> |
202 |
</div> |
203 |
|
204 |
<div class="section parse-error" id="not-HTML5"><h3>This document is written in an old version of |
205 |
HTML.</h3> |
206 |
<p>The document contains a <code>DOCTYPE</code> declaration |
207 |
that is different from HTML5 <code>DOCTYPE</code> (i.e. <code><!DOCTYPE |
208 |
HTML></code>). The document is non-conforming.</p> |
209 |
|
210 |
<p>The document might or might not be conformant to |
211 |
some version of HTML. However, conformance to any HTML |
212 |
specification other than HTML5 provides for no practical |
213 |
convenience, since Web borwsers will parse any |
214 |
HTML document (roughly) as defined in HTML5.</p> |
215 |
</div> |
216 |
|
217 |
<div class="section parse-error" id="unmatched-end-tag"><h3>Element <code><var>$0</var></code> is not |
218 |
opened.</h3></div> |
219 |
|
220 |
</section> |
221 |
|
222 |
<section id="element-content-model-errors"> |
223 |
<h2>Element Content Model Errors</h2> |
224 |
|
225 |
<div class="section content-model-error" id="character-not-allowed"><h3>Data character is not allowed in this |
226 |
context.</h3> |
227 |
<p>A data character appears where it is not allowed in this |
228 |
context. The document is non-conforming.</p> |
229 |
|
230 |
<p>Possible causes: |
231 |
<dl> |
232 |
<dt>If the erred element is an inline-level element (such |
233 |
as <code>a</code> or <code>span</code>)</dt> |
234 |
<dd><p>A data character cannot be a child |
235 |
of certain sectioning elements such as <code>body</code>, |
236 |
<code>section</code>, and <code>blockquote</code>.</p> |
237 |
|
238 |
<p>Any inline-level content must be put |
239 |
in e.g. paragraph element such as <code>p</code>.</p></dd> |
240 |
<dt>If the erred element is a block-level element (such as |
241 |
<code>div</code> or <code>h<var>n</var></code>)</dt> |
242 |
<dd><p>Though some elements such as <code>div</code>, |
243 |
<code>li</code>, and <code>td</code> allow |
244 |
<em>either one</em> of block-level or inline-level content |
245 |
is allowed. If there is a block-level content, |
246 |
any inline-level content must be put |
247 |
in e.g. paragraph element such as <code>p</code>.</p></dd> |
248 |
</dl> |
249 |
</p> |
250 |
</div> |
251 |
|
252 |
<div class="section content-model-error" id="child-element-missing"><h3>There must be a <code><var>$0</var></code> |
253 |
element as a child of this element.</h3> |
254 |
<p>The content model of the element is so defined that it |
255 |
must contain a <code><var>$0</var></code> child element. |
256 |
The document is non-conforming.</p> |
257 |
|
258 |
<p>For example: |
259 |
<ul> |
260 |
<li>The <code>head</code> element must contain exactly one |
261 |
<code>title</code> child element.</li> |
262 |
<li><a href="#child-element-missing:td%7Cth">The <code>tr</code> |
263 |
element must contain one or more <code>td</code> or <code>th</code> |
264 |
child element.</a></li> |
265 |
</ul> |
266 |
</p> |
267 |
</div> |
268 |
|
269 |
<div class="section content-model-error" id="child-element-missing:td|th"><h3>There must be a <code>td</code> |
270 |
or <code>th</code> element as a child of this element.</h3> |
271 |
<p>The <code>tr</code> element must contain at least one |
272 |
<code>td</code> or <code>th</code> child element. The document |
273 |
is non-conforming.</p> |
274 |
</div> |
275 |
|
276 |
<div class="section content-model-error" id="element-not-allowed"><h3>This element is not allowed in this |
277 |
context.</h3> |
278 |
<p>An element appears where it is not allowed. The document |
279 |
is non-conforming.</p> |
280 |
|
281 |
<p><strong>Note</strong>: The conformance checker does |
282 |
<em>not</em> support form elements yet.</p> |
283 |
|
284 |
<p>Possible causes: |
285 |
<dl> |
286 |
<dt>If the erred element is an inline-level element (such |
287 |
as <code>a</code> or <code>span</code>)</dt> |
288 |
<dd><p>An inline-level element cannot be a child |
289 |
of certain sectioning elements such as <code>body</code>, |
290 |
<code>section</code>, and <code>blockquote</code>.</p> |
291 |
|
292 |
<p>Any inline-level content must be put |
293 |
in e.g. paragraph element such as <code>p</code>.</p></dd> |
294 |
<dt>If the erred element is a block-level element (such as |
295 |
<code>div</code> or <code>h<var>n</var></code>)</dt> |
296 |
<dd><p>Though some elements such as <code>div</code>, |
297 |
<code>li</code>, and <code>td</code> allow |
298 |
<em>either one</em> of block-level or inline-level content |
299 |
is allowed. If there is a block-level content, |
300 |
any inline-level content must be put |
301 |
in e.g. paragraph element such as <code>p</code>.</p></dd> |
302 |
<dt>If the erred element is the root <code>html</code> element</dt> |
303 |
<dd><p>In an XHTML document, the root <code>html</code> |
304 |
element must have an <code>xmlns</code> attribute |
305 |
whose value is set to |
306 |
<code>http://www.w3.org/1999/xhtml</code>.</p></dd> |
307 |
</dl> |
308 |
</p> |
309 |
</div> |
310 |
|
311 |
</section> |
312 |
|
313 |
<section id="attribute-errors"> |
314 |
<h2>Attribute Errors</h2> |
315 |
|
316 |
<div class="section attribute-error" id="attribute-missing"><h3>Required attribute <code><var>$0</var></code> |
317 |
is not specified.</h3> |
318 |
<p>A required attribute is not specified. The document |
319 |
is non-conforming.</p> |
320 |
|
321 |
<p>Some attribute is defined as <i>required</i>. |
322 |
For example, any <code>img</code> element must have |
323 |
<code>alt</code> and <code>src</code> attributes specified. |
324 |
Without required attributes specified, user agents |
325 |
cannot provide the full functionality of the element |
326 |
to the user.</p> |
327 |
</div> |
328 |
|
329 |
<div class="section attribute-error" id="in-HTML:xml:lang"><h3>The <code>xml:lang</code> attribute is not |
330 |
allowed in HTML document.</h3> |
331 |
<p>The <code>xml:lang</code> attribute is not allowed in |
332 |
HTML document. The document is non-conforming.</p> |
333 |
|
334 |
<p>The <code>xml:lang</code> attribute in <code>null</code> |
335 |
namespace for HTML elements is defined as conforming only for |
336 |
XML document.</p> |
337 |
|
338 |
<p>To specify natural language information in HTML document, |
339 |
use <code>lang</code> attribute instead.</p> |
340 |
<!-- @@ ISSUE: xml:lang in non-HTML element in DOM5 HTML created |
341 |
from an HTML document? --> |
342 |
</div> |
343 |
|
344 |
<div class="section attribute-error" id="in-XML:charset"><h3>The <code>charset</code> attribute is not |
345 |
allowed in XML document.</h3> |
346 |
<p>The <code>charset</code> attribute of a |
347 |
<code>meta</code> element is not allowed in XML document. |
348 |
The document is non-conforming.</p> |
349 |
|
350 |
<p>To specify the character encoding used for serialization, |
351 |
if necessary, use XML declaration instead: |
352 |
<pre class="xml example"> |
353 |
<code><?xml version="1.0" encoding="<var>encoding-name</var>"?></code></pre> |
354 |
</p> |
355 |
</div> |
356 |
|
357 |
<div class="section attribute-error" id="in-XML:lang"><h3>The <code>lang</code> attribute is not |
358 |
allowed in XML document.</h3> |
359 |
<p>The HTML <code>lang</code> attribute is not allowed in |
360 |
XML document. The document is non-conforming.</p> |
361 |
|
362 |
<p>The <code>lang</code> attribute in <code>null</code> |
363 |
namespace for HTML elements is defined as conforming only for |
364 |
HTML document.</p> |
365 |
|
366 |
<p>To specify natural language information in XML document, |
367 |
use <code>xml:lang</code> attribute instead.</p> |
368 |
</div> |
369 |
|
370 |
<div class="section attribute-error" id="in-XML:xmlns"><h3>The <code>xmlns</code> attribute |
371 |
in the <code>null</code> namespace is not allowed in |
372 |
XHTML document. The document is non-conforming.</h3> |
373 |
<p>The <code>xmlns</code> attribute in the <code>null</code> |
374 |
namespace is not allowed in XHTML document.</p> |
375 |
|
376 |
<p>This error should not occur in conformance-checking |
377 |
static documents.</p> |
378 |
</div> |
379 |
|
380 |
</section> |
381 |
|
382 |
<section id="attribute-value-errors"> |
383 |
<h2>Attribute Value Errors</h2> |
384 |
|
385 |
<div class="section attribute-value-error" id="enumerated:invalid"><h3>This attribute only allow a limited set of |
386 |
values and the specified value is not one of them.</h3></div> |
387 |
|
388 |
<div class="section attribute-value-error" id="duplicate-ID"><h3>This identifier has already been |
389 |
assigned to another element.</h3></div> |
390 |
|
391 |
<div class="section attribute-value-error" id="reserved-browsing-context-name"><h3>This browsing context name is reserved.</h3></div> |
392 |
|
393 |
</section> |
394 |
|
395 |
<section id="table-model-errors"> |
396 |
<h2>Table Model Errors</h2> |
397 |
|
398 |
<div class="section table-model-error" id="table:colspan-creates-column-with-no-anchored-cell"><h3>This <code>colspan</code> attribute |
399 |
results in creating a table column that does not contain |
400 |
any cell anchored to it.</h3></div> |
401 |
|
402 |
<div class="section table-model-error" id="table:no-cell-in-last-row"><h3>The table has no cell (<code>td</code> or |
403 |
<code>th</code>) in the last row.</h3></div> |
404 |
|
405 |
</section> |
406 |
|
407 |
<section id="imt-warnings"> |
408 |
<h2>Internet Media Type Warnings</h2> |
409 |
|
410 |
<div class="section should" id="s:IMT:obsolete-subtype"><h3>An <em>obsolete</em> subtype is used.</h3></div> |
411 |
|
412 |
<div class="section should" id="s:IMT:private-subtype"><h3>A private (<code>x-</code> or <code>x.</code>) |
413 |
subtype is used.</h3></div> |
414 |
|
415 |
<div class="section should" id="s:IMT:unregistered-subtype"><h3>The subtype is not registered to IANA.</h3></div> |
416 |
|
417 |
</section> |
418 |
|
419 |
<section id="uri-errors"> |
420 |
<h2>URI (or IRI) Errors</h2> |
421 |
|
422 |
<div class="section must" id="m:URI::syntax-error"><h3>This string is not an IRI syntactically.</h3></div> |
423 |
|
424 |
</section> |
425 |
|
426 |
<section id="uri-warnings"> |
427 |
<h2>URI (or IRI) Warnings</h2> |
428 |
|
429 |
<div class="section should" id="s:URI::dot-segment"><h3>Dot-segment (<code>.</code> or |
430 |
<code>..</code>) should not occur in an absolute reference.</h3> |
431 |
<p>Dot-segment (<code>.</code> or <code>..</code>) should |
432 |
not occur in an absolute reference.</p> |
433 |
|
434 |
<p>In relative references, dot-segments are used to represent |
435 |
the current (<code>.</code>) or the parent (<code>..</code>) |
436 |
hierarchy of the path. Though they are also allowed |
437 |
in absolute references, it should be resolved to the |
438 |
canonical form before it has been published.</p> |
439 |
</div> |
440 |
|
441 |
<div class="section should" id="s:URI::empty-path"><h3>This IRI should explicitly end with |
442 |
<code>/</code>.</h3></div> |
443 |
|
444 |
</section> |
445 |
|
446 |
<section id="unsupported-messages"> |
447 |
<h2><i>Unsupported</i> Messages</h2> |
448 |
|
449 |
<div class="section unsupported" id="unsupported:attribute"><h3>This attribute is not supported by the |
450 |
conformance checker; <em>it might or might not be conforming</em>.</h3> |
451 |
<p>The conformant checker does not support the attribute. |
452 |
It cannot determine whether the document is conforming or not.</p> |
453 |
</div> |
454 |
|
455 |
<div class="section unsupported" id="unsupported:element"><h3>This element is not supported by the |
456 |
conformance checker; <em>it might or might not be conforming</em>.</h3> |
457 |
<p>The conformant checker does not support the element. |
458 |
It cannot determine whether the document is conforming or not.</p> |
459 |
</div> |
460 |
|
461 |
<div class="section unsupported" id="unsupported:link-type"><h3>The link type <code>$0</code> is not standardized |
462 |
or registered at the time of the release of the conformance checker; |
463 |
<em>it is non-conforming unless it has now been registered</em>.</h3> |
464 |
<p>The <code>rel</code> attribute is defined as a list of link types. |
465 |
Some common link types are defined in the HTML5 specification. |
466 |
Additional link types can be registered to the WHATWG Wiki. |
467 |
use of any other link type is non-conforming.</p> |
468 |
|
469 |
<p>The specified link type is not part of the standard or registry |
470 |
when the database used by the conformance cheker is created. |
471 |
The link type might have been added to the registry since then. |
472 |
In such case it might be conforming. Otherwise, the |
473 |
document is non-conforming.</p> |
474 |
</div> |
475 |
|
476 |
</section> |
477 |
|
478 |
|
479 |
|
480 |
<section id="license"> |
481 |
<h2>License of This Document</h2> |
482 |
|
483 |
<p>Copyright 2007 <a href="http://suika.fam.cx/~wakaba/who?">Wakaba</a></p> |
484 |
<p>This library is free software; you can redistribute it |
485 |
and/or modify it under the same terms as Perl itself.</p> |
486 |
</section> |
487 |
|
488 |
<!-- $Date: 2007/07/16 08:38:48 $ --> |
489 |
</body> |
490 |
</html> |