NOTE: The current preferred location for bug reports is the GitHub issue tracker.
Bug 617 - Change the transition approach from 'downplayed error' to 'conforming with warning'.
Change the transition approach from 'downplayed error' to 'conforming with wa...
Status: NEW
Product: Validator.nu
Classification: Unclassified
Component: General
HEAD
All All
: P2 normal
Assigned To: Nobody
http://svn.whatwg.org/webapps/source?...
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-07-14 15:05 CEST by Henri Sivonen
Modified: 2009-11-23 17:17 CET (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Henri Sivonen 2009-07-14 15:05:07 CEST
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&nbsp;HTML&nbsp;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&nbsp;HTML&nbsp;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&nbsp;XHTML&nbsp;1.0&nbsp;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&nbsp;XHTML&nbsp;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&nbsp;HTML&nbsp;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&nbsp;HTML&nbsp;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&nbsp;XHTML&nbsp;1.0&nbsp;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&nbsp;XHTML&nbsp;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>