Bugzilla – Bug 617
Change the transition approach from 'downplayed error' to 'conforming with warning'.
Last modified: 2009-11-23 17:17:34 CET
Index: source =================================================================== --- source (revision 3377) +++ source (revision 3378) @@ -75095,18 +75095,67 @@ <dt>A DOCTYPE token</dt> <dd> - <p>If the DOCTYPE token's <code title="">name</code> is not a + <p>If the DOCTYPE token's name is not a <span>case-sensitive</span> match for the string "<code - title="">html</code>", or if the token's public identifier is not - missing, or if the token's system identifier is neither missing - nor a <span>case-sensitive</span> match for the string - "<code>about:legacy-compat</code>", then there is a <span>parse - error</span> (this is the <dfn>DOCTYPE parse - error</dfn>). Conformance checkers may, instead of reporting this - error, switch to a conformance checking mode for another language - (e.g. based on the DOCTYPE token a conformance checker could - recognize that the document is an HTML4-era document, and defer to - an HTML4 conformance checker.)</p> + title="">html</code>", or the token's public identifier is not + missing, or the token's system identifier is neither missing nor a + <span>case-sensitive</span> match for the string + "<code>about:legacy-compat</code>", and none of the sets of + conditions in the following list are matched, then there is a + <span>parse error</span>. If one of the sets of conditions in the + following list is matched, then there is an <dfn>obsolete + permitted DOCTYPE</dfn>.</p> + + <ul> + + <!-- only things that trigger no-quirks mode and were valid in + some other spec are allowed in this list --> + + <li>The DOCTYPE token's name is an <span>ASCII + case-insensitive</span> match for the string "<code + title="">HTML</code>", the token's public identifier is the + <span>case-sensitive</span> string "<code + title="">-//W3C//DTD HTML 4.0//EN</code>", and the + token's system identifier is either missing or the + <span>case-sensitive</span> string "<code + title="">http://www.w3.org/TR/REC-html40/strict.dtd</code>".</li> + + <li>The DOCTYPE token's name is an <span>ASCII + case-insensitive</span> match for the string "<code + title="">HTML</code>", the token's public identifier is the + <span>case-sensitive</span> string "<code + title="">-//W3C//DTD HTML 4.01//EN</code>", and the + token's system identifier is either missing or the + <span>case-sensitive</span> string "<code + title="">http://www.w3.org/TR/html4/strict.dtd</code>".</li> + + <li>The DOCTYPE token's name is an <span>ASCII + case-insensitive</span> match for the string "<code + title="">HTML</code>", the token's public identifier is the + <span>case-sensitive</span> string "<code + title="">-//W3C//DTD XHTML 1.0 Strict//EN</code>", + and the token's system identifier is the + <span>case-sensitive</span> string "<code + title="">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</code>".</li> + + <li>The DOCTYPE token's name is an <span>ASCII + case-insensitive</span> match for the string "<code + title="">HTML</code>", the token's public identifier is the + <span>case-sensitive</span> string "<code + title="">-//W3C//DTD XHTML 1.1//EN</code>", and the + token's system identifier is the <span>case-sensitive</span> + string "<code + title="">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</code>".</li> + + </ul> + + <p>Conformance checkers may, based on the values (including + presence or lack thereof) of the DOCTYPE token's name, public + identifier, or system identifier, switch to a conformance checking + mode for another language (e.g. based on the DOCTYPE token a + conformance checker could recognize that the document is an + HTML4-era document, and defer to an HTML4 conformance + checker.)</p> <p>Append a <code>DocumentType</code> node to the <code>Document</code> node, with the <code title="">name</code> @@ -82316,12 +82365,112 @@ <h2>Obsolete features</h2> - <p>Authors and documents must not use the features listed in this - section. <span class="impl">They are documented to enable user - agents to support legacy content in an interoperable - fashion.</span></p> + <h3>Conforming but obsolete features</h3> + + <p>Features listed in this section will trigger warnings in + conformance checkers.</p> + + <p>Authors should not specify an <code + title="attr-meta-http-equiv">http-equiv</code> attribute in the + <span title="attr-meta-http-equiv-content-language">Content + Language</span> state on a <code>meta</code> element. The <code + title="attr-lang">lang</code> attribute should be used instead.</p> + + <p>Authors should not specify a <code + title="attr-img-border">border</code> attribute on an + <code>img</code> element if its value is the string "<code + title="">0</code>". CSS should be used instead.</p> + + <p>Authors should not specify a <code + title="attr-script-language">language</code> attribute on a + <code>script</code> element. If the attribute is present, its value + must be an <span>ASCII case-insensitive</span> match for the string + "<code title="">JavaScript</code>" and either the <code + title="attr-script-type">type</code> attribute must be omitted or + its value must be an <span>ASCII case-insensitive</span> match for + the string "<code title="">text/javascript</code>". The attribute + should be entirely omitted instead (with the value "<code + title="">JavaScript</code>", it has no effect), or replaced with use + of the <code title="attr-script-type">type</code> attribute.</p> + + <p>Authors should not specify the <code + title="attr-a-name">name</code> attribute on <code>a</code> + elements. If the attribute is present, its value must not be the + empty string. The <code title="attr-id">id</code> attribute should + be used instead.</p> + + <p>Authors should not specify the <code + title="attr-a-name">name</code> attribute on <code>a</code> + elements. If the attribute is present, its value must not be the + empty string. The <code title="attr-id">id</code> attribute should + be used instead.</p> + + <p>Authors should not specify the <dfn + title="attr-table-summary"><code>summary</code></dfn> attribute on + <code>table</code> elements. <!-- 2.65% pages --> The + <code>caption</code> element or one of the other <a + href="#table-descriptions">techniques</a> described in the + <code>table</code> section should be used instead.</p> + + + <div class="impl"> + + <h4>Warnings for obsolete but conforming features</h4> + + <p>To ease the transition from HTML4 Transitional documents to the + language defined in <em>this</em> specification, and to discourage + certain features that are only allowed in very few circumstances, + conformance checkers are required to warn the user when the + following features are used in a document. These are generally old + obsolete features that have no effect, and are allowed only to + distinguish between likely mistakes (regular conformance errors) and + mere vestigial markup or unusual and discouraged practices (these + warnings).</p> - <p>The following elements are entirely obsolete:</p> + <p>The following features must be categorized as described + above:</p> + + <ul><!-- downplayed list --> + + <li><p>The presence of an <span>obsolete permitted + DOCTYPE</span>.</p></li> + + <li><p>The presence of a <code>meta</code> element with an <code + title="attr-meta-http-equiv">http-equiv</code> attribute in the + <span title="attr-meta-http-equiv-content-language">Content + Language</span> state.</p></li> + + <li><p>The presence of a <code + title="attr-img-border">border</code> attribute on an + <code>img</code> element if its value is the string "<code + title="">0</code>".</p></li> + + <li><p>The presence of a <code + title="attr-script-language">language</code> attribute on a + <code>script</code> element if its value is an <span>ASCII + case-insensitive</span> match for the string "<code + title="">JavaScript</code>" and if there is no <code + title="attr-script-type">type</code> attribute or there is and its + value is an <span>ASCII case-insensitive</span> match for the + string "<code title="">text/javascript</code>".</p></li> + + <li><p>The presence of a <code title="attr-a-name">name</code> + attribute on an <code>a</code> element, if its value is not the + empty string.</p></li> + + <li><p>The presence of a <code + title="attr-table-summary">summary</code> attribute on a + <code>table</code> element.</p></li> <!-- 2.65% pages --> + + </ul> + + </div> + + + <h3>Non-conforming features</h3> + + <p>Elements in the following list are entirely obsolete, and must + not be used by authors:</p> <dl><!-- alphabetical by first element in the group, except CSS goes last --> @@ -82363,7 +82512,7 @@ <hr> <p>The following attributes are obsolete (though the elements are - still part of the language):</p> + still part of the language), and must not be used by authors:</p> <dl><!-- alphabetical by element then attribute of first item in group, except CSS goes last --> @@ -82382,7 +82531,7 @@ <code title="">rev="made"</code>, use <code title="">rel="author"</code>.)</p></dd> - <dt><dfn title="attr-a-name"><code>name</code></dfn> on <code>a</code> elements</dt> + <dt><dfn title="attr-a-name"><code>name</code></dfn> on <code>a</code> elements (except as noted in the previous section)</dt> <dt><dfn title="attr-img-name"><code>name</code></dfn> on <code>img</code> elements</dt> <dd><p>Use the <code title="attr-id">id</code> attribute instead.</p></dd> @@ -82435,10 +82584,9 @@ title="attr-param-value">value</code> attributes without declaring value types.</p></dd> - <dt><dfn title="attr-table-summary"><code>summary</code></dfn> on <code>table</code> elements</dt> - <dd><p>Use the <code>caption</code> element instead or one of the - other <a href="#table-descriptions">techniques</a> described in the - <code>table</code> section.</p> + <dt><dfn title="attr-script-language"><code>language</code></dfn> on <code>script</code> elements (except as noted in the previous section)</dt> + <dd><p>Use the <code title="attr-script-type">type</code> attribute + instead.</p></dd> <dt><dfn title="attr-td/th-abbr"><code>abbr</code></dfn> on <code>td</code> and <code>th</code> elements</dt> <dd><p>Use text that begins in an unambiguous and terse manner, and include any more elaborate text after that.</p> @@ -82473,7 +82621,7 @@ <dt><dfn title="attr-iframe-scrolling"><code>scrolling</code></dfn> on <code>iframe</code> elements</dt> <dt><dfn title="attr-input-align"><code>align</code></dfn> on <code>input</code> elements</dt> <dt><dfn title="attr-img-align"><code>align</code></dfn> on <code>img</code> elements</dt> - <dt><dfn title="attr-img-border"><code>border</code></dfn> on <code>img</code> elements</dt> + <dt><dfn title="attr-img-border"><code>border</code></dfn> on <code>img</code> elements (except as noted in the previous section)</dt> <dt><dfn title="attr-img-hspace"><code>hspace</code></dfn> on <code>img</code> elements</dt> <dt><dfn title="attr-img-vspace"><code>vspace</code></dfn> on <code>img</code> elements</dt> <dt><dfn title="attr-legend-align"><code>align</code></dfn> on <code>legend</code> elements</dt> @@ -82522,7 +82670,7 @@ <div class="impl"> - <h3>Self-contained features</h3> + <h3>Requirements for implementations</h3> <h4>The <dfn><code>applet</code></dfn> element</h4> @@ -83043,7 +83191,7 @@ - <h3>Other elements, attributes and APIs</h3> <!-- alphabetical by name and attribute --> + <h4>Other elements, attributes and APIs</h4> <!-- alphabetical by name and attribute --> <pre class="idl">[Supplemental] interface <span>HTMLAnchorElement</span> { attribute DOMString <span title="dom-a-coords">coords</span>; @@ -83736,108 +83884,6 @@ violation is motivated by a desire for compatibility with legacy content. <a href="#refsECMA262">[ECMA262]</a></p> - - - - <h3>Conformance checkers</h3> - - <p>To ease the transition from HTML4 Transitional documents to the - language defined in <em>this</em> specification, conformance - checkers are encouraged to categorize errors that represent usage of - old obsolete features that generally have no effect (as defined - below) into a separate part of their report, to allow authors to - distinguish between likely mistakes and mere vestigial markup.</p> - - <p>The following errors may be categorized as described above:</p> - - <ul><!-- downplayed list --> - - <li> - - <p>The <span>DOCTYPE parse error</span>, if the DOCTYPE token's - <code title="">name</code> is an <span>ASCII - case-insensitive</span> match for the string "<code - title="">HTML</code>", and either:</p> - - <ul> - - <li>the token's public identifier is the - <span>case-sensitive</span> string "<code - title="">-//W3C//DTD HTML 4.0//EN</code>" and the - token's system identifier is either missing or the - <span>case-sensitive</span> string "<code - title="">http://www.w3.org/TR/REC-html40/strict.dtd</code>", or</li> - - <li>the token's public identifier is the - <span>case-sensitive</span> string "<code - title="">-//W3C//DTD HTML 4.01//EN</code>" and the - token's system identifier is either missing or the - <span>case-sensitive</span> string "<code - title="">http://www.w3.org/TR/html4/strict.dtd</code>", or</li> - - <li>the token's public identifier is the - <span>case-sensitive</span> string "<code - title="">-//W3C//DTD XHTML 1.0 Strict//EN</code>" - and the token's system identifier is the - <span>case-sensitive</span> string "<code - title="">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</code>", - or</li> - - <li>the token's public identifier is the - <span>case-sensitive</span> string "<code - title="">-//W3C//DTD XHTML 1.1//EN</code>" - and the token's system identifier is the - <span>case-sensitive</span> string "<code - title="">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</code>".</li> - - </ul> - - <!-- only things that trigger no-quirks mode and were valid in - some other spec are allowed in this list --> - - </li> - - <li><p>The presence of a <code - title="attr-head-profile">profile</code> attribute on the - <code>head</code> element, if its value is an <span>unordered set - of unique space-separated tokens</span> where the words are all - <span title="valid URL">valid URLs</span>.</p></li> - - <li><p>The presence of a <code>meta</code> element with an <code - title="attr-meta-http-equiv">http-equiv</code> attribute in the - <span title="attr-meta-http-equiv-content-language">Content - Language</span> state.</p></li> - - <li><p>The presence of a <code - title="attr-img-border">border</code> attribute on an - <code>img</code> element if its value is the string "<code - title="">0</code>".</p></li> - - <li><p>The presence of a <code - title="attr-img-longdesc">longdesc</code> attribute on an - <code>img</code> element, if its value is a <span>valid - URL</span>.</p></li> <!-- 0.29% pages --> - - <li><p>The presence of a <code - title="attr-script-language">language</code> attribute on a - <code>script</code> element if its value is an <span>ASCII - case-insensitive</span> match for the string "<code - title="">JavaScript</code>".</p></li> - - <li><p>The presence of a <code title="attr-a-name">name</code> - attribute on an <code>a</code> element, if its value is not the - empty string.</p></li> - - <li><p>The presence of a <code - title="attr-table-summary">summary</code> attribute on a - <code>table</code> element.</p></li> <!-- 2.65% pages --> - - <li><p>The presence of an <code title="attr-table-abbr">abbr</code> - attribute on a <code>td</code> or <code>th</code> element.</p></li> - <!-- 1.33% pages --> - - </ul> - </div>