39 |
is not part of any reference appears in the input stream. |
is not part of any reference appears in the input stream. |
40 |
The document is non-conforming.</p> |
The document is non-conforming.</p> |
41 |
|
|
42 |
|
<p><strong>Any <code>&</code> character in URI (or IRI) |
43 |
|
must be escaped as <code>&amp;</code>.</strong></p> |
44 |
|
|
45 |
<p>The <code>&</code> character must |
<p>The <code>&</code> character must |
46 |
be the first character of a reference: |
be the first character of a reference: |
47 |
<dl> |
<dl> |
155 |
</p> |
</p> |
156 |
</div> |
</div> |
157 |
|
|
158 |
<div class="section tokenize-error" id="bogus-end-tag"><h3>A <code></</code> string is not followed |
<div class="section tokenize-error" id="bogus-comment"><h3>String <code><!</code> is not followed |
159 |
by a tag name.</h3> |
by <code>--</code>.</h3> |
160 |
|
<p>There is a <code><</code> (<code>U+003C</code> |
161 |
|
<code class="charname">LESS-THAN SIGN</code>) character |
162 |
|
followed by a <code>!</code> (<code>U+0021</code> |
163 |
|
<code class="charname">EXCLAMATION MARK</code>) character, |
164 |
|
which is not followed by a <code>--</code> or |
165 |
|
<code>!DOCTYPE</code>. The document is non-conforming.</p> |
166 |
|
|
167 |
|
<dl class="switch"> |
168 |
|
<dt>Comments</dt> |
169 |
|
<dd>In HTML documents, comments must be introduced by |
170 |
|
<code><!--</code> (<code><!</code> <em>immediately</em> followed |
171 |
|
by <em>two</em> <code>-</code>s) and must be terminated by |
172 |
|
<code>--></code>. Strings <code><!</code> not followed |
173 |
|
by <code>--</code> and <code><!-</code> not followed by |
174 |
|
<code>-</code> are not valid open delimiters for comments.</dd> |
175 |
|
<dt>Marked sections, including <code>CDATA</code> sections</dt> |
176 |
|
<dd>Marked sections are not allowed in HTML documents.</dd> |
177 |
|
<dt>Markup declarations</dt> |
178 |
|
<dd>Markup declarations, except <code>DOCTYPE</code> |
179 |
|
and comment declarations, are not allowed in HTML documents.</dd> |
180 |
|
<dt>String <code><!</code></dt> |
181 |
|
<dd>String <code><!</code> must be escaped as |
182 |
|
<code>&lt;!</code>.</dd> |
183 |
|
</dl> |
184 |
|
</div> |
185 |
|
|
186 |
|
<div class="section tokenize-error" id="bogus-end-tag"><h3>String <code></</code> is not followed |
187 |
|
by tag name.</h3> |
188 |
<p>There is a <code><</code> (<code>U+003C</code> |
<p>There is a <code><</code> (<code>U+003C</code> |
189 |
<code class="charname">LESS-THAN SIGN</code>) character |
<code class="charname">LESS-THAN SIGN</code>) character |
190 |
immediately followed by a <code>/</code> (<code>U+005F</code> |
immediately followed by a <code>/</code> (<code>U+005F</code> |
235 |
<code>embed</code>, <code>param</code>, <code>area</code>, |
<code>embed</code>, <code>param</code>, <code>area</code>, |
236 |
<code>col</code>, and <code>input</code> elements.</p> |
<code>col</code>, and <code>input</code> elements.</p> |
237 |
|
|
238 |
|
<dl> |
239 |
|
<dt><code><script/></code></dt> |
240 |
|
<dd><p>The void element syntax cannot be used for <code>script</code> |
241 |
|
element. Even for an empty <code>script</code> element, |
242 |
|
there must be an explicit end tag <code></script></code>.</p> |
243 |
|
|
244 |
|
<p><strong>NOTE</strong>: Though some user agents interpret |
245 |
|
void element syntax for <code>script</code> element as the |
246 |
|
closing of the element, such usage is not allowed under |
247 |
|
the current standard.</p></dd> |
248 |
|
<dt><code><basefont/></code>, <code><bgsound/></code>, |
249 |
|
<code><frame/></code>, <code><keygen/></code>, |
250 |
|
<code><spacer/></code>, <code><wbr/></code></dt> |
251 |
|
<dd>These elements are themselves non-conforming.</dd> |
252 |
|
<!-- isindex, image --> |
253 |
|
<dt><code><command/></code>, <code><event-source/></code>, |
254 |
|
<code><source/></code></dt> |
255 |
|
<dd>Future revision of HTML5 parsing algorithm is expected |
256 |
|
to allow void element syntax for these elements.</dd> |
257 |
|
<dt><code><a/></code>, <code><p/></code></dt> |
258 |
|
<dd>These elements are not always empty and therefore |
259 |
|
void element syntax is not allowed.</dd> |
260 |
|
</dl> |
261 |
|
|
262 |
<p>Note that, unlike in XML, the void element syntax has |
<p>Note that, unlike in XML, the void element syntax has |
263 |
no effect in HTML.</p> |
no effect in HTML.</p> |
264 |
</div> |
</div> |
265 |
|
|
266 |
|
|
267 |
<div class="section tokenize-error" id="pio"><h3>Processing instruction |
<div class="section tokenize-error" id="pio"><h3>Processing instruction |
268 |
(<code><?<var>...</var>?></code>) cannot be used.</h3> |
(<code><?<var>...</var>></code>) cannot be used.</h3> |
269 |
<p>Processing instructions (<code><?<var>...</var>?></code>), |
<p>Processing instructions (<code><?<var>...</var>?></code>), |
270 |
including XML declaration (<code><?xml <var>...</var>?></code>) |
including XML declaration (<code><?xml <var>...</var>?></code>) |
271 |
and XML style sheet <abbr title="processing instruction">PI</abbr> |
and XML style sheet <abbr title="processing instruction">PI</abbr> |
272 |
(<code><xml-stylesheet <var>...</var>?></code>), are not allowed |
(<code><?xml-stylesheet <var>...</var>?></code>), are not allowed |
273 |
in the HTML syntax. The document is non-conforming.</p> |
in the HTML syntax. The document is non-conforming.</p> |
274 |
|
|
275 |
<p>If it is necessary to embed a processing instruction |
<dl> |
276 |
in the HTML document, you must use the XML syntax instead.</p> |
<dt><code><?xml?></code> (XML declaration)</dt> |
277 |
|
<dd>XML declaration is unnecessary for HTML documents.</dd> |
278 |
<p>In the HTML syntax, XML declaration is not necessary.</p> |
<dt><code><?xml-stylesheet?></code> (XML style sheet |
279 |
|
<abbr title="processing instruction">PI</abbr></dt> |
280 |
<p>Instead of XML style sheet, |
<dd>Use HTML <code>link</code> element with <code>rel</code> |
281 |
<abbr title="processing instruction">PI</abbr>s, you must |
attribute set to <code>stylesheet</code> (or, |
282 |
use the HTML <code>link</code> element whose <code>rel</code> |
<code>alternate stylesheet</code> for an alternate style |
283 |
attribute is set to <code>stylesheet</code> (or |
sheet).</dd> |
284 |
<code>alternate stylesheet</code> for an aleternate style sheet).</p> |
<dt><code><?php?></code> (PHP code)</dt> |
285 |
|
<dd>The conformance checker does <em>not</em> support |
286 |
|
checking for PHP source documents.</dd> |
287 |
|
<dt>Other processing instructions</dt> |
288 |
|
<dd>Processing instructions cannot be inserted in an HTML |
289 |
|
document. Use XML document or insert |
290 |
|
<code>ProcessingInstruction</code> node by scripting.</dd> |
291 |
|
</dl> |
292 |
|
|
293 |
<p>Web browsers will parse processing instructions as bogus |
<p>Web browsers will parse processing instructions as bogus |
294 |
comments. Some legacy Web browsers, such as IE:mac and |
comments. Some legacy Web browsers, such as IE:mac and |
295 |
some mobile browsers, will display processing instructions |
some mobile Web browsers, will display processing instructions |
296 |
as string.</p> |
as string.</p> |
297 |
</div> |
</div> |
298 |
|
|
327 |
</div> |
</div> |
328 |
|
|
329 |
<div class="section parse-error" id="in-body"><h3>Tag <code><<var>$0</var>></code> |
<div class="section parse-error" id="in-body"><h3>Tag <code><<var>$0</var>></code> |
330 |
is not allowed in a <code>body</code> element.</h3> |
is not allowed in the <code>body</code> element.</h3> |
331 |
<p>The start or end tag of an element, which |
<p>The start or end tag of an element, which |
332 |
cannot be a descendant of <code>body</code> element, appears |
cannot be a descendant of <code>body</code> element, appears |
333 |
in the input stream while the <code>body</code> element has been opened. |
in the input stream while the <code>body</code> element has been opened. |
334 |
The document is non-conforming.</p> |
The document is non-conforming.</p> |
335 |
</div> |
</div> |
336 |
|
|
337 |
<div class="section parse-error" id="in-head:head"><h3>Start tag <code><<var>head</var>></code> |
<div class="section parse-error" id="in-head:head"><h3>Start tag <code><head></code> |
338 |
is not allowed in the <code>head</code> element.</h3> |
is not allowed in the <code>head</code> element.</h3> |
339 |
<p>There is a start tag <code><head></code> in the |
<p>There is a start tag <code><head></code> in the |
340 |
<code><head></code> element. The document is non-conforming.</p> |
<code><head></code> element. The document is non-conforming.</p> |
496 |
<p>An element appears where it is not allowed. The document |
<p>An element appears where it is not allowed. The document |
497 |
is non-conforming.</p> |
is non-conforming.</p> |
498 |
|
|
|
<p><strong>Note</strong>: The conformance checker does |
|
|
<em>not</em> support form elements yet.</p> |
|
|
|
|
499 |
<p>Possible causes: |
<p>Possible causes: |
500 |
<dl class="switch"> |
<dl class="switch"> |
501 |
<dt>If the element with the error is an inline-level element, |
<dt>If the element with the error is an inline-level element, |
506 |
|
|
507 |
<p>Any inline-level content must be put |
<p>Any inline-level content must be put |
508 |
in e.g. paragraph element such as <code>p</code>.</p></dd> |
in e.g. paragraph element such as <code>p</code>.</p></dd> |
509 |
<dt>If the element with the error is a block-level element, |
<dt>If it is a block-level elements, such as <code>aside</code>, |
510 |
such as <code>div</code>, <code>h<var>n</var></code>, or |
<code>div</code>, <code>h<var>n</var></code>, |
511 |
<code>section</code></dt> |
<code>p</code>, or <code>section</code></dt> |
512 |
<dd><p>Though some elements such as <code>div</code>, |
<dd><dl class="switch"> |
513 |
<code>li</code>, and <code>td</code> allow |
<dt>If the parent element is <code>div</code>, |
514 |
<em>either one</em> of block-level or inline-level content |
<code>li</code>, <code>td</code>, or <code>th</code></dt> |
515 |
is allowed. If there is a block-level content, |
<!-- @@ TODO: more... --> |
516 |
any inline-level content must be put |
<dd><p>The parent element allows <em>either</em> |
517 |
in e.g. paragraph element such as <code>p</code>.</p></dd> |
block-level or inline-level content. If there is a |
518 |
|
block-level content, any inline-level content must be |
519 |
|
put in e.g. paragraph element such as <code>p</code>.</p> |
520 |
|
<p>For example, an HTML document fragment |
521 |
|
<code class="bad example"><div><p>Hello!</p> World!</div></code> |
522 |
|
is non-conforming, since a word <q>World!</q> does not belong |
523 |
|
to any paragraph. (If not part of any paragraph, what is |
524 |
|
it!?) A conforming example would be: |
525 |
|
<pre class="example"> |
526 |
|
<code><div><p>Hello!</p> <p>World!</p></div></code></pre> |
527 |
|
</p></dd> |
528 |
|
<dt>If the parent element does <em>not</em> allow |
529 |
|
block-level elements as content</dt> |
530 |
|
<dd>The element is not allowed to be inserted here. |
531 |
|
For example, a <code>div</code> element cannot be |
532 |
|
a child of an <code>h1</code> element.</dd> |
533 |
|
</dl></dd> |
534 |
<dt>If the element with the error is a <code>noscript</code> element</dt> |
<dt>If the element with the error is a <code>noscript</code> element</dt> |
535 |
<dd>The <code>noscript</code> element is allowed only in the context |
<dd>The <code>noscript</code> element is allowed only in the context |
536 |
where a block-level or inline-level content is expected |
where a block-level or inline-level content is expected |
547 |
<code>center</code>, or <code>marquee</code> element</dt> |
<code>center</code>, or <code>marquee</code> element</dt> |
548 |
<dd>These elements are not part of the HTML standard. |
<dd>These elements are not part of the HTML standard. |
549 |
Use CSS for styling control.</dd> |
Use CSS for styling control.</dd> |
550 |
|
|
551 |
|
<dt><code>button</code>, <code>datalist</code>, <code>form</code>, |
552 |
|
<code>input</code>, <code>label</code>, |
553 |
|
<code>optgroup</code>, <code>option</code>, <code>output</code>, |
554 |
|
<code>rb</code>, <code>rp</code>, <code>rt</code>, <code>ruby</code>, |
555 |
|
<code>textarea</code>, or <code>textarea</code> element</dt> |
556 |
|
<!-- rbc, rtc ? --> |
557 |
|
<dd>These elements are intentionally not supported by the conformance |
558 |
|
checker <em>yet</em>.</dd> |
559 |
</dl> |
</dl> |
560 |
</p> |
</p> |
561 |
</div> |
</div> |
580 |
is non-conforming.</p> |
is non-conforming.</p> |
581 |
|
|
582 |
<p>Some attribute is defined as <i>required</i>. |
<p>Some attribute is defined as <i>required</i>. |
|
For example, any <code>img</code> element must have |
|
|
<code>alt</code> and <code>src</code> attributes specified. |
|
583 |
Without required attributes specified, user agents |
Without required attributes specified, user agents |
584 |
cannot provide the full functionality of the element |
cannot provide full functionality of the element to the user.</p> |
585 |
to the user.</p> |
|
586 |
|
<dl class="switch"> |
587 |
|
<dt>HTML <code>img</code> element</dt> |
588 |
|
<dd>The <code>src</code> attribute must be specified. |
589 |
|
Additionally, the <code>alt</code> attribute must be specified |
590 |
|
in many cases.</dd> |
591 |
|
<dt>HTML <code>link</code> element</dt> |
592 |
|
<dd>The <code>rel</code> attribute must be specified. |
593 |
|
Note that the <code>rev</code> attribute is obsolete.</dd> |
594 |
|
</dl> |
595 |
</div> |
</div> |
596 |
|
|
597 |
<div class="section attribute-error" id="attribute-not-allowed"><h3>Attribute |
<div class="section attribute-error" id="attribute-not-allowed"><h3>Attribute |
613 |
<p>The <code>xml:lang</code> attribute is not allowed in |
<p>The <code>xml:lang</code> attribute is not allowed in |
614 |
HTML document. The document is non-conforming.</p> |
HTML document. The document is non-conforming.</p> |
615 |
|
|
616 |
<p>The <code>lang</code> attribute in the <code>null</code> |
<p>Use of the <code>xml:lang</code> attribute is conforming |
617 |
namespace for HTML elements is defined as conforming <em>only</em> for |
<em>only</em> in XML documents.</p> |
|
XML document.</p> |
|
618 |
|
|
619 |
<p>To specify natural language information in HTML document, |
<p>To specify natural language information in HTML document, |
620 |
use <code>lang</code> attribute instead.</p> |
use <code>lang</code> attribute instead.</p> |
648 |
XML document. The document is non-conforming.</p> |
XML document. The document is non-conforming.</p> |
649 |
|
|
650 |
<p>The <code>lang</code> attribute in <code>null</code> |
<p>The <code>lang</code> attribute in <code>null</code> |
651 |
namespace for HTML elements is defined as conforming <em>only</em> for |
namespace for HTML elements is conforming <em>only</em> in |
652 |
HTML document.</p> |
HTML documents.</p> |
653 |
|
|
654 |
<p>To specify natural language information in XML document, |
<p>To specify natural language information in XML document, |
655 |
use <code>xml:lang</code> attribute instead.</p> |
use <code>xml:lang</code> attribute instead.</p> |
661 |
<p>The <code>xmlns</code> attribute in the <code>null</code> |
<p>The <code>xmlns</code> attribute in the <code>null</code> |
662 |
namespace is not allowed in XHTML document.</p> |
namespace is not allowed in XHTML document.</p> |
663 |
|
|
664 |
<p>This error should not occur in conformance-checking |
<p>This error should not occur in conformance-checking of |
665 |
static documents.</p> |
static documents.</p> |
666 |
</div> |
</div> |
667 |
|
|
795 |
<tr><td rowspan=2></td></tr> |
<tr><td rowspan=2></td></tr> |
796 |
</tbody> |
</tbody> |
797 |
</table></code></pre> |
</table></code></pre> |
798 |
... is non-conforming, since the second row contains only |
... since the second row contains only |
799 |
a cell that spans the first and the second rows.</p> |
a cell that spans between first and second rows.</p> |
800 |
</div> |
</div> |
801 |
|
|
802 |
</section> |
</section> |
835 |
|
|
836 |
</section> |
</section> |
837 |
|
|
838 |
<section id="uri-warnings"> |
<section id="uri-shoulds"> |
839 |
<h2>URI (or IRI) Warnings</h2> |
<h2>URI (or IRI) Should-level Errors</h2> |
840 |
|
|
841 |
<div class="section should" id="s:URI::dot-segment"><h3>Dot-segment (<code>.</code> or |
<div class="section should" id="s:URI::dot-segment"><h3>A dot-segment (<code>.</code> or |
842 |
<code>..</code>) should not occur in an absolute reference.</h3> |
<code>..</code>) occurs in an absolute reference.</h3> |
843 |
<p>Dot-segment (<code>.</code> or <code>..</code>) should |
<p>Dot-segment (<code>.</code> or <code>..</code>) should |
844 |
not occur in an absolute reference.</p> |
not occur in an absolute reference.</p> |
845 |
|
|
850 |
canonical form before it has been published.</p> |
canonical form before it has been published.</p> |
851 |
</div> |
</div> |
852 |
|
|
853 |
<div class="section should" id="s:URI::empty-path"><h3>This IRI should explicitly end with |
<div class="section should" id="s:URI::empty-path"><h3>This IRI does not end with |
854 |
<code>/</code>.</h3></div> |
a <code>/</code>.</h3></div> |
855 |
|
|
856 |
<div class="section should" id="s:URI::lowercase-hexadecimal-digit"><h3>Hexadecimal digit in percent-encoding |
<div class="section should" id="s:URI::lowercase-hexadecimal-digit"><h3>A lowercase hexadecimal digit is used |
857 |
should be in lowercase.</h3> |
in percent-encoding.</h3> |
858 |
<p>The hexadecimal digit in percent-encoding string in the IRI |
<p>The hexadecimal digit in percent-encoding string in the IRI |
859 |
is in lowercase. Though the IRI <em>is</em> conforming, |
is in lowercase. Though the IRI <em>is</em> conforming, |
860 |
it should be in uppercase.</p> |
it should be in uppercase.</p> |
888 |
<section id="unsupported-messages"> |
<section id="unsupported-messages"> |
889 |
<h2><i>Unsupported</i> Messages</h2> |
<h2><i>Unsupported</i> Messages</h2> |
890 |
|
|
891 |
<div class="section unsupported" id="unsupported:attribute"><h3>This attribute is not supported by the |
<div class="section unsupported" id="unsupported:element"><h3>Conformance checking for element |
892 |
conformance checker; <em>it might or might not be conforming</em>.</h3> |
<code><var>{local-name}</var></code> is not supported; <em>it might or |
893 |
<p>The conformant checker does not support the attribute. |
might not be conforming</em>.</h3> |
894 |
|
<p>The conformant checker does not support the element. |
895 |
It cannot determine whether the document is conforming or not.</p> |
It cannot determine whether the document is conforming or not.</p> |
896 |
</div> |
</div> |
897 |
|
|
898 |
<div class="section unsupported" id="unsupported:element"><h3>This element is not supported by the |
<div class="section unsupported" id="unsupported:attribute"><h3>Conformance checking for attribute |
899 |
conformance checker; <em>it might or might not be conforming</em>.</h3> |
<code><var>{local-name}</var></code> of element |
900 |
<p>The conformant checker does not support the element. |
<code><var>{element-local-name}</var></code> is not supported; |
901 |
|
<em>it might or might not be conforming</em>.</h3> |
902 |
|
<p>The conformant checker does not support the attribute. |
903 |
It cannot determine whether the document is conforming or not.</p> |
It cannot determine whether the document is conforming or not.</p> |
904 |
</div> |
</div> |
905 |
|
|
906 |
<div class="section unsupported" id="unsupported:link-type"><h3>The link type <code><var>$0</var></code> is not |
<div class="section unsupported" id="unsupported:link-type"><h3>Link type <code><var>$0</var></code> is not |
907 |
standardized or registered at the time of the release of the conformance |
standardized or registered at the time of the release of the conformance |
908 |
checker; <em>it is non-conforming unless it has now been |
checker; <em>it is non-conforming unless it now has been |
909 |
registered</em>.</h3> |
registered</em>.</h3> |
910 |
<p>The <code>rel</code> attribute is defined as a list of link types. |
<p>The <code>rel</code> attribute is defined as a list of link types. |
911 |
Some common link types are defined in the HTML5 specification. |
Some common link types are defined in the HTML5 specification. |
949 |
<section id="license"> |
<section id="license"> |
950 |
<h2>License of This Document</h2> |
<h2>License of This Document</h2> |
951 |
|
|
952 |
<p>Copyright 2007 <a href="http://suika.fam.cx/~wakaba/who?">Wakaba</a></p> |
<p>Copyright 2007 <a href="http://suika.fam.cx/~wakaba/who?" rel="author" xml:lang="ja">Wakaba</a></p> |
953 |
<p>This library is free software; you can redistribute it |
<p>This document is free software; you can redistribute it |
954 |
and/or modify it under the same terms as Perl itself.</p> |
and/or modify it under the same terms as Perl itself.</p> |
955 |
</section> |
</section> |
956 |
|
|