W3C home > Mailing lists > Public > public-html-diffs@w3.org > September 2010

hixie: Tighten up UTF-8 error handling definitions (whatwg r5530)

From: poot <cvsmail@w3.org>
Date: Wed, 29 Sep 2010 04:16:43 +0900 (JST)
To: public-html-diffs@w3.org
Message-Id: <20100928191643.85C4A33B4F@toro.w3.mag.keio.ac.jp>
hixie: Tighten up UTF-8 error handling definitions (whatwg r5530)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.4418&r2=1.4419&f=h
http://html5.org/tools/web-apps-tracker?from=5529&to=5530

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4418
retrieving revision 1.4419
diff -u -d -r1.4418 -r1.4419
--- Overview.html	28 Sep 2010 18:31:50 -0000	1.4418
+++ Overview.html	28 Sep 2010 19:16:21 -0000	1.4419
@@ -469,60 +469,61 @@
      <li><a href="#dependencies"><span class="secno">2.2.1 </span>Dependencies</a></li>
      <li><a href="#extensibility"><span class="secno">2.2.2 </span>Extensibility</a></ol></li>
    <li><a href="#case-sensitivity-and-string-comparison"><span class="secno">2.3 </span>Case-sensitivity and string comparison</a></li>
-   <li><a href="#common-microsyntaxes"><span class="secno">2.4 </span>Common microsyntaxes</a>
+   <li><a href="#utf-8"><span class="secno">2.4 </span>UTF-8</a></li>
+   <li><a href="#common-microsyntaxes"><span class="secno">2.5 </span>Common microsyntaxes</a>
     <ol>
-     <li><a href="#common-parser-idioms"><span class="secno">2.4.1 </span>Common parser idioms</a></li>
-     <li><a href="#boolean-attributes"><span class="secno">2.4.2 </span>Boolean attributes</a></li>
-     <li><a href="#keywords-and-enumerated-attributes"><span class="secno">2.4.3 </span>Keywords and enumerated attributes</a></li>
-     <li><a href="#numbers"><span class="secno">2.4.4 </span>Numbers</a>
+     <li><a href="#common-parser-idioms"><span class="secno">2.5.1 </span>Common parser idioms</a></li>
+     <li><a href="#boolean-attributes"><span class="secno">2.5.2 </span>Boolean attributes</a></li>
+     <li><a href="#keywords-and-enumerated-attributes"><span class="secno">2.5.3 </span>Keywords and enumerated attributes</a></li>
+     <li><a href="#numbers"><span class="secno">2.5.4 </span>Numbers</a>
       <ol>
-       <li><a href="#non-negative-integers"><span class="secno">2.4.4.1 </span>Non-negative integers</a></li>
-       <li><a href="#signed-integers"><span class="secno">2.4.4.2 </span>Signed integers</a></li>
-       <li><a href="#real-numbers"><span class="secno">2.4.4.3 </span>Real numbers</a></li>
-       <li><a href="#percentages-and-dimensions"><span class="secno">2.4.4.4 </span>Percentages and lengths</a></li>
-       <li><a href="#lists-of-integers"><span class="secno">2.4.4.5 </span>Lists of integers</a></li>
-       <li><a href="#lists-of-dimensions"><span class="secno">2.4.4.6 </span>Lists of dimensions</a></ol></li>
-     <li><a href="#dates-and-times"><span class="secno">2.4.5 </span>Dates and times</a>
+       <li><a href="#non-negative-integers"><span class="secno">2.5.4.1 </span>Non-negative integers</a></li>
+       <li><a href="#signed-integers"><span class="secno">2.5.4.2 </span>Signed integers</a></li>
+       <li><a href="#real-numbers"><span class="secno">2.5.4.3 </span>Real numbers</a></li>
+       <li><a href="#percentages-and-dimensions"><span class="secno">2.5.4.4 </span>Percentages and lengths</a></li>
+       <li><a href="#lists-of-integers"><span class="secno">2.5.4.5 </span>Lists of integers</a></li>
+       <li><a href="#lists-of-dimensions"><span class="secno">2.5.4.6 </span>Lists of dimensions</a></ol></li>
+     <li><a href="#dates-and-times"><span class="secno">2.5.5 </span>Dates and times</a>
       <ol>
-       <li><a href="#months"><span class="secno">2.4.5.1 </span>Months</a></li>
-       <li><a href="#dates"><span class="secno">2.4.5.2 </span>Dates</a></li>
-       <li><a href="#times"><span class="secno">2.4.5.3 </span>Times</a></li>
-       <li><a href="#local-dates-and-times"><span class="secno">2.4.5.4 </span>Local dates and times</a></li>
-       <li><a href="#global-dates-and-times"><span class="secno">2.4.5.5 </span>Global dates and times</a></li>
-       <li><a href="#weeks"><span class="secno">2.4.5.6 </span>Weeks</a></li>
-       <li><a href="#vaguer-moments-in-time"><span class="secno">2.4.5.7 </span>Vaguer moments in time</a></ol></li>
-     <li><a href="#colors"><span class="secno">2.4.6 </span>Colors</a></li>
-     <li><a href="#space-separated-tokens"><span class="secno">2.4.7 </span>Space-separated tokens</a></li>
-     <li><a href="#comma-separated-tokens"><span class="secno">2.4.8 </span>Comma-separated tokens</a></li>
-     <li><a href="#syntax-references"><span class="secno">2.4.9 </span>References</a></li>
-     <li><a href="#mq"><span class="secno">2.4.10 </span>Media queries</a></ol></li>
-   <li><a href="#urls"><span class="secno">2.5 </span>URLs</a>
+       <li><a href="#months"><span class="secno">2.5.5.1 </span>Months</a></li>
+       <li><a href="#dates"><span class="secno">2.5.5.2 </span>Dates</a></li>
+       <li><a href="#times"><span class="secno">2.5.5.3 </span>Times</a></li>
+       <li><a href="#local-dates-and-times"><span class="secno">2.5.5.4 </span>Local dates and times</a></li>
+       <li><a href="#global-dates-and-times"><span class="secno">2.5.5.5 </span>Global dates and times</a></li>
+       <li><a href="#weeks"><span class="secno">2.5.5.6 </span>Weeks</a></li>
+       <li><a href="#vaguer-moments-in-time"><span class="secno">2.5.5.7 </span>Vaguer moments in time</a></ol></li>
+     <li><a href="#colors"><span class="secno">2.5.6 </span>Colors</a></li>
+     <li><a href="#space-separated-tokens"><span class="secno">2.5.7 </span>Space-separated tokens</a></li>
+     <li><a href="#comma-separated-tokens"><span class="secno">2.5.8 </span>Comma-separated tokens</a></li>
+     <li><a href="#syntax-references"><span class="secno">2.5.9 </span>References</a></li>
+     <li><a href="#mq"><span class="secno">2.5.10 </span>Media queries</a></ol></li>
+   <li><a href="#urls"><span class="secno">2.6 </span>URLs</a>
     <ol>
-     <li><a href="#terminology-0"><span class="secno">2.5.1 </span>Terminology</a></li>
-     <li><a href="#dynamic-changes-to-base-urls"><span class="secno">2.5.2 </span>Dynamic changes to base URLs</a></li>
-     <li><a href="#interfaces-for-url-manipulation"><span class="secno">2.5.3 </span>Interfaces for URL manipulation</a></ol></li>
-   <li><a href="#fetching-resources"><span class="secno">2.6 </span>Fetching resources</a>
+     <li><a href="#terminology-0"><span class="secno">2.6.1 </span>Terminology</a></li>
+     <li><a href="#dynamic-changes-to-base-urls"><span class="secno">2.6.2 </span>Dynamic changes to base URLs</a></li>
+     <li><a href="#interfaces-for-url-manipulation"><span class="secno">2.6.3 </span>Interfaces for URL manipulation</a></ol></li>
+   <li><a href="#fetching-resources"><span class="secno">2.7 </span>Fetching resources</a>
     <ol>
-     <li><a href="#concept-http-equivalent"><span class="secno">2.6.1 </span>Protocol concepts</a></li>
-     <li><a href="#encrypted-http-and-related-security-concerns"><span class="secno">2.6.2 </span>Encrypted HTTP and related security concerns</a></li>
-     <li><a href="#content-type-sniffing"><span class="secno">2.6.3 </span>Determining the type of a resource</a></ol></li>
-   <li><a href="#common-dom-interfaces"><span class="secno">2.7 </span>Common DOM interfaces</a>
+     <li><a href="#concept-http-equivalent"><span class="secno">2.7.1 </span>Protocol concepts</a></li>
+     <li><a href="#encrypted-http-and-related-security-concerns"><span class="secno">2.7.2 </span>Encrypted HTTP and related security concerns</a></li>
+     <li><a href="#content-type-sniffing"><span class="secno">2.7.3 </span>Determining the type of a resource</a></ol></li>
+   <li><a href="#common-dom-interfaces"><span class="secno">2.8 </span>Common DOM interfaces</a>
     <ol>
-     <li><a href="#reflecting-content-attributes-in-idl-attributes"><span class="secno">2.7.1 </span>Reflecting content attributes in IDL attributes</a></li>
-     <li><a href="#collections-0"><span class="secno">2.7.2 </span>Collections</a>
+     <li><a href="#reflecting-content-attributes-in-idl-attributes"><span class="secno">2.8.1 </span>Reflecting content attributes in IDL attributes</a></li>
+     <li><a href="#collections-0"><span class="secno">2.8.2 </span>Collections</a>
       <ol>
-       <li><a href="#htmlcollection-0"><span class="secno">2.7.2.1 </span>HTMLCollection</a></li>
-       <li><a href="#htmlallcollection-0"><span class="secno">2.7.2.2 </span>HTMLAllCollection</a></li>
-       <li><a href="#htmlformcontrolscollection-0"><span class="secno">2.7.2.3 </span>HTMLFormControlsCollection</a></li>
-       <li><a href="#htmloptionscollection-0"><span class="secno">2.7.2.4 </span>HTMLOptionsCollection</a></ol></li>
-     <li><a href="#domtokenlist-0"><span class="secno">2.7.3 </span>DOMTokenList</a></li>
-     <li><a href="#domsettabletokenlist-0"><span class="secno">2.7.4 </span>DOMSettableTokenList</a></li>
-     <li><a href="#safe-passing-of-structured-data"><span class="secno">2.7.5 </span>Safe passing of structured data</a></li>
-     <li><a href="#domstringmap-0"><span class="secno">2.7.6 </span>DOMStringMap</a></li>
-     <li><a href="#dom-feature-strings"><span class="secno">2.7.7 </span>DOM feature strings</a></li>
-     <li><a href="#exceptions"><span class="secno">2.7.8 </span>Exceptions</a></li>
-     <li><a href="#garbage-collection"><span class="secno">2.7.9 </span>Garbage collection</a></ol></li>
-   <li><a href="#namespaces"><span class="secno">2.8 </span>Namespaces</a></ol></li>
+       <li><a href="#htmlcollection-0"><span class="secno">2.8.2.1 </span>HTMLCollection</a></li>
+       <li><a href="#htmlallcollection-0"><span class="secno">2.8.2.2 </span>HTMLAllCollection</a></li>
+       <li><a href="#htmlformcontrolscollection-0"><span class="secno">2.8.2.3 </span>HTMLFormControlsCollection</a></li>
+       <li><a href="#htmloptionscollection-0"><span class="secno">2.8.2.4 </span>HTMLOptionsCollection</a></ol></li>
+     <li><a href="#domtokenlist-0"><span class="secno">2.8.3 </span>DOMTokenList</a></li>
+     <li><a href="#domsettabletokenlist-0"><span class="secno">2.8.4 </span>DOMSettableTokenList</a></li>
+     <li><a href="#safe-passing-of-structured-data"><span class="secno">2.8.5 </span>Safe passing of structured data</a></li>
+     <li><a href="#domstringmap-0"><span class="secno">2.8.6 </span>DOMStringMap</a></li>
+     <li><a href="#dom-feature-strings"><span class="secno">2.8.7 </span>DOM feature strings</a></li>
+     <li><a href="#exceptions"><span class="secno">2.8.8 </span>Exceptions</a></li>
+     <li><a href="#garbage-collection"><span class="secno">2.8.9 </span>Garbage collection</a></ol></li>
+   <li><a href="#namespaces"><span class="secno">2.9 </span>Namespaces</a></ol></li>
  <li><a href="#dom"><span class="secno">3 </span>Semantics, structure, and APIs of HTML documents</a>
   <ol>
    <li><a href="#documents"><span class="secno">3.1 </span>Documents</a>
@@ -2989,7 +2990,52 @@
   </div><p>A string <var title="">pattern</var> is a <dfn id="prefix-match">prefix match</dfn>
   for a string <var title="">s</var> when <var title="">pattern</var>
   is not longer than <var title="">s</var> and truncating <var title="">s</var> to <var title="">pattern</var>'s length leaves the
-  two strings as matches of each other.<h3 id="common-microsyntaxes"><span class="secno">2.4 </span>Common microsyntaxes</h3><p>There are various places in HTML that accept particular data
+  two strings as matches of each other.<h3 id="utf-8"><span class="secno">2.4 </span>UTF-8</h3><p>When a user agent is required to <dfn id="decoded-as-utf-8-with-error-handling" title="decoded as UTF-8,
+  with error handling">decode a byte string as UTF-8, with error
+  handling</dfn>, it means that the byte stream must be converted to a
+  Unicode string by interpreting it as UTF-8, except that any errors
+  must be handled as described in the following list. Bytes in the
+  following list are represented in hexadecimal. <a href="#refsRFC3629">[RFC3629]</a>
+
+  <dl class="switch"><dt>One byte in the range FE to FF</dt>
+
+   <dt>Overlong forms (e.g. F0 80 80 A0)</dt>
+
+   <dt>One byte in the range C0 to C1, followed by one byte in the range 80 to BF</dt>
+
+   <dt>One byte in the range F0 to F4, followed by three bytes in the range 80 to BF that represent a code point above U+10FFFF</dt>
+
+   <dt>One byte in the range F5 to F7, followed by three bytes in the range 80 to BF</dt>
+
+   <dt>One byte in the range F8 to FB, followed by four bytes in the range 80 to BF</dt>
+
+   <dt>One byte in the range FC to FD, followed by five bytes in the range 80 to BF</dt>
+
+   <dt>One byte in the range E0 to FD, followed by a byte in the range 80 to BF, not followed by a byte in the range 80 to BF</dt>
+
+   <dt>One byte in the range F0 to FD, followed by two bytes in the range 80 to BF, not followed by a byte in the range 80 to BF</dt>
+
+   <dt>One byte in the range F5 to FD, followed by three bytes in the range 80 to BF, not followed by a byte in the range 80 to BF</dt>
+
+   <dt>One byte in the range FC to FD, followed by four bytes in the range 80 to BF, not followed by a byte in the range 80 to BF</dt>
+
+
+   <dd>The whole sequence must be replaced by a single U+FFFD
+   REPLACEMENT CHARACTER.</dd>
+
+
+   <dt>One byte in the range 80 to BF not preceded by a byte in the range 80 to FD</dt>
+
+   <dt>A sequence of bytes in the range 80 to BF that does not follow a byte in the range C0 to FD</dt>
+
+   <dt>One byte in the range C0 to FD not followed by a byte in the range 80 to BF</dt>
+
+
+   <dd>Each byte must be replace with a U+FFFD REPLACEMENT CHARACTER.</dd>
+
+  </dl><p class="example">For example, the byte string "41 98 BA 42 E2 98
+  43 E2 98 BA E2 98" would be converted to the string
+  "A&#65533;&#65533;B&#65533;C&#9786;&#65533;".<h3 id="common-microsyntaxes"><span class="secno">2.5 </span>Common microsyntaxes</h3><p>There are various places in HTML that accept particular data
   types, such as dates or numbers. This section describes what the
   conformance criteria for content in those formats is, and how to
   parse them.<div class="impl">
@@ -3005,7 +3051,7 @@
 
   </div><div class="impl">
 
-  <h4 id="common-parser-idioms"><span class="secno">2.4.1 </span>Common parser idioms</h4>
+  <h4 id="common-parser-idioms"><span class="secno">2.5.1 </span>Common parser idioms</h4>
 
   <p>The <dfn id="space-character" title="space character">space characters</dfn>, for the
   purposes of this specification, are U+0020 SPACE, U+0009 CHARACTER
@@ -3063,7 +3109,7 @@
   <p>The <dfn id="code-point-length">code-point length</dfn> of a string is the number of
   Unicode code points in that string.</p>
 
-  </div><h4 id="boolean-attributes"><span class="secno">2.4.2 </span>Boolean attributes</h4><p>A number of attributes are <dfn id="boolean-attribute" title="boolean attribute">boolean
+  </div><h4 id="boolean-attributes"><span class="secno">2.5.2 </span>Boolean attributes</h4><p>A number of attributes are <dfn id="boolean-attribute" title="boolean attribute">boolean
   attributes</dfn>. The presence of a boolean attribute on an element
   represents the true value, and the absence of the attribute
   represents the false value.<p>If the attribute is present, its value must either be the empty
@@ -3087,7 +3133,7 @@
 
    <pre>&lt;label&gt;&lt;input type='checkbox' checked name=cheese disabled=""&gt; Cheese&lt;/label&gt;</pre>
 
-  </div><h4 id="keywords-and-enumerated-attributes"><span class="secno">2.4.3 </span>Keywords and enumerated attributes</h4><p>Some attributes are defined as taking one of a finite set of
+  </div><h4 id="keywords-and-enumerated-attributes"><span class="secno">2.5.3 </span>Keywords and enumerated attributes</h4><p>Some attributes are defined as taking one of a finite set of
   keywords. Such attributes are called <dfn id="enumerated-attribute" title="enumerated
   attribute">enumerated attributes</dfn>. The keywords are each
   defined to map to a particular <em>state</em> (several keywords
@@ -3111,7 +3157,7 @@
   be ignored.<p>When the attribute is <em>not</em> specified, if there is a
   <i>missing value default</i> state defined, then that is the state
   represented by the (missing) attribute. Otherwise, the absence of
-  the attribute means that there is no state represented.<p class="note">The empty string can be a valid keyword.<h4 id="numbers"><span class="secno">2.4.4 </span>Numbers</h4><h5 id="non-negative-integers"><span class="secno">2.4.4.1 </span>Non-negative integers</h5><p>A string is a <dfn id="valid-non-negative-integer">valid non-negative integer</dfn> if it
+  the attribute means that there is no state represented.<p class="note">The empty string can be a valid keyword.<h4 id="numbers"><span class="secno">2.5.4 </span>Numbers</h4><h5 id="non-negative-integers"><span class="secno">2.5.4.1 </span>Non-negative integers</h5><p>A string is a <dfn id="valid-non-negative-integer">valid non-negative integer</dfn> if it
   consists of one or more characters in the range U+0030 DIGIT ZERO
   (0) to U+0039 DIGIT NINE (9).<p>A <a href="#valid-non-negative-integer">valid non-negative integer</a> represents the number
   that is represented in base ten by that string of digits.<div class="impl">
@@ -3152,7 +3198,7 @@
 
    <li><p>Return <var title="">value</var>.</li>
 
-  </ol></div><h5 id="signed-integers"><span class="secno">2.4.4.2 </span>Signed integers</h5><p>A string is a <dfn id="valid-integer">valid integer</dfn> if it consists of one or
+  </ol></div><h5 id="signed-integers"><span class="secno">2.5.4.2 </span>Signed integers</h5><p>A string is a <dfn id="valid-integer">valid integer</dfn> if it consists of one or
   more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
   NINE (9), optionally prefixed with a U+002D HYPHEN-MINUS character
   (-).<p>A <a href="#valid-integer">valid integer</a> without a U+002D HYPHEN-MINUS (-)
@@ -3222,7 +3268,7 @@
    <li><p>If <var title="">sign</var> is "positive", return <var title="">value</var>, otherwise return the result of subtracting
    <var title="">value</var> from zero.</li>
 
-  </ol></div><h5 id="real-numbers"><span class="secno">2.4.4.3 </span>Real numbers</h5><p>A string is a <dfn id="valid-floating-point-number">valid floating point number</dfn> if it
+  </ol></div><h5 id="real-numbers"><span class="secno">2.5.4.3 </span>Real numbers</h5><p>A string is a <dfn id="valid-floating-point-number">valid floating point number</dfn> if it
   consists of:<ol class="brief"><li>Optionally, a U+002D HYPHEN-MINUS character (-).</li>
 
    <li>A series of one or more characters in the range U+0030 DIGIT
@@ -3416,7 +3462,7 @@
    <li><p>Return <var title="">rounded-value</var>.</li>
 
   </ol></div><div class="impl">
-  <h5 id="percentages-and-dimensions"><span class="secno">2.4.4.4 </span>Percentages and lengths</h5>
+  <h5 id="percentages-and-dimensions"><span class="secno">2.5.4.4 </span>Percentages and lengths</h5>
 <!--(percentages are not used in valid html anymore)
   <p>A string is a <dfn>valid dimension value</dfn> if it consists of
   a character in the range U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE
@@ -3516,7 +3562,7 @@
 
    <li><p>Return <var title="">value</var> as a length.</li>
 
-  </ol></div><h5 id="lists-of-integers"><span class="secno">2.4.4.5 </span>Lists of integers</h5><p>A <dfn id="valid-list-of-integers">valid list of integers</dfn> is a number of <a href="#valid-integer" title="valid integer">valid integers</a> separated by U+002C
+  </ol></div><h5 id="lists-of-integers"><span class="secno">2.5.4.5 </span>Lists of integers</h5><p>A <dfn id="valid-list-of-integers">valid list of integers</dfn> is a number of <a href="#valid-integer" title="valid integer">valid integers</a> separated by U+002C
   COMMA characters, with no other characters (e.g. no <a href="#space-character" title="space character">space characters</a>). In addition, there
   might be restrictions on the number of integers that can be given,
   or on the range of values allowed.<div class="impl">
@@ -3780,7 +3826,7 @@
 
   </ol></div><div class="impl">
 
-  <h5 id="lists-of-dimensions"><span class="secno">2.4.4.6 </span>Lists of dimensions</h5>
+  <h5 id="lists-of-dimensions"><span class="secno">2.5.4.6 </span>Lists of dimensions</h5>
 
   <!-- no definition of a type since no conforming feature uses this
   syntax (it's only used in cols="" and rows="" on <frameset> -->
@@ -3881,7 +3927,7 @@
 
    <li><p>Return the list <var title="">result</var>.</li>
 
-  </ol></div><h4 id="dates-and-times"><span class="secno">2.4.5 </span>Dates and times</h4><p>In the algorithms below, the <dfn id="number-of-days-in-month-month-of-year-year">number of days in month <var title="">month</var> of year <var title="">year</var></dfn> is:
+  </ol></div><h4 id="dates-and-times"><span class="secno">2.5.5 </span>Dates and times</h4><p>In the algorithms below, the <dfn id="number-of-days-in-month-month-of-year-year">number of days in month <var title="">month</var> of year <var title="">year</var></dfn> is:
   <em>31</em> if <var title="">month</var> is 1, 3, 5, 7, 8, 10, or
   12; <em>30</em> if <var title="">month</var> is 4, 6, 9, or 11;
   <em>29</em> if <var title="">month</var> is 2 and <var title="">year</var> is a number divisible by 400, or if <var title="">year</var> is a number divisible by 4 but not by 100; and
@@ -3899,7 +3945,7 @@
   described below; ISO8601 libraries might not parse dates and times
   in exactly the same manner. <a href="#refsISO8601">[ISO8601]</a></p>
 
-  </div><h5 id="months"><span class="secno">2.4.5.1 </span>Months</h5><p>A <dfn id="concept-month" title="concept-month">month</dfn> consists of a specific
+  </div><h5 id="months"><span class="secno">2.5.5.1 </span>Months</h5><p>A <dfn id="concept-month" title="concept-month">month</dfn> consists of a specific
   proleptic Gregorian date with no time-zone information and no date
   information beyond a year and a month. <a href="#refsGREGORIAN">[GREGORIAN]</a><p>A string is a <dfn id="valid-month-string">valid month string</dfn> representing a year
   <var title="">year</var> and month <var title="">month</var> if it
@@ -3962,7 +4008,7 @@
 
    <li><p>Return <var title="">year</var> and <var title="">month</var>.</li>
 
-  </ol></div><h5 id="dates"><span class="secno">2.4.5.2 </span>Dates</h5><p>A <dfn id="concept-date" title="concept-date">date</dfn> consists of a specific
+  </ol></div><h5 id="dates"><span class="secno">2.5.5.2 </span>Dates</h5><p>A <dfn id="concept-date" title="concept-date">date</dfn> consists of a specific
   proleptic Gregorian date with no time-zone information, consisting
   of a year, a month, and a day. <a href="#refsGREGORIAN">[GREGORIAN]</a><p>A string is a <dfn id="valid-date-string">valid date string</dfn> representing a year
   <var title="">year</var>, month <var title="">month</var>, and day
@@ -4025,7 +4071,7 @@
    <li><p>Return <var title="">year</var>, <var title="">month</var>,
    and <var title="">day</var>.</li>
 
-  </ol></div><h5 id="times"><span class="secno">2.4.5.3 </span>Times</h5><p>A <dfn id="concept-time" title="concept-time">time</dfn> consists of a specific
+  </ol></div><h5 id="times"><span class="secno">2.5.5.3 </span>Times</h5><p>A <dfn id="concept-time" title="concept-time">time</dfn> consists of a specific
   time with no time-zone information, consisting of an hour, a minute,
   a second, and a fraction of a second.<p>A string is a <dfn id="valid-time-string">valid time string</dfn> representing an hour
   <var title="">hour</var>, a minute <var title="">minute</var>, and a
@@ -4151,7 +4197,7 @@
    <li><p>Return <var title="">hour</var>, <var title="">minute</var>,
    and <var title="">second</var>.</li>
 
-  </ol></div><h5 id="local-dates-and-times"><span class="secno">2.4.5.4 </span>Local dates and times</h5><p>A <dfn id="concept-datetime-local" title="concept-datetime-local">local date and time</dfn>
+  </ol></div><h5 id="local-dates-and-times"><span class="secno">2.5.5.4 </span>Local dates and times</h5><p>A <dfn id="concept-datetime-local" title="concept-datetime-local">local date and time</dfn>
   consists of a specific proleptic Gregorian date, consisting of a
   year, a month, and a day, and a time, consisting of an hour, a
   minute, a second, and a fraction of a second, but expressed without
@@ -4193,7 +4239,7 @@
 
    <li><p>Return <var title="">date</var> and <var title="">time</var>.</li>
 
-  </ol></div><h5 id="global-dates-and-times"><span class="secno">2.4.5.5 </span>Global dates and times</h5><p>A <dfn id="concept-datetime" title="concept-datetime">global date and time</dfn>
+  </ol></div><h5 id="global-dates-and-times"><span class="secno">2.5.5.5 </span>Global dates and times</h5><p>A <dfn id="concept-datetime" title="concept-datetime">global date and time</dfn>
   consists of a specific proleptic Gregorian date, consisting of a
   year, a month, and a day, and a time, consisting of an hour, a
   minute, a second, and a fraction of a second, expressed with a
@@ -4396,7 +4442,7 @@
    <li><p>Return <var title="">timezone<sub title="">hours</sub></var>
    and <var title="">timezone<sub title="">minutes</sub></var>.</li>
 
-  </ol></div><h5 id="weeks"><span class="secno">2.4.5.6 </span>Weeks</h5><p>A <dfn id="concept-week" title="concept-week">week</dfn> consists of a week-year
+  </ol></div><h5 id="weeks"><span class="secno">2.5.5.6 </span>Weeks</h5><p>A <dfn id="concept-week" title="concept-week">week</dfn> consists of a week-year
   number and a week number representing a seven-day period starting on
   a Monday. Each week-year in this calendaring system has either 52 or
   53 such seven-day periods, as defined below. The seven-day period
@@ -4476,7 +4522,7 @@
    <li><p>Return the week-year number <var title="">year</var> and the
    week number <var title="">week</var>.</li>
 
-  </ol></div><h5 id="vaguer-moments-in-time"><span class="secno">2.4.5.7 </span>Vaguer moments in time</h5><p>A string is a <dfn id="valid-date-or-time-string">valid date or time string</dfn> if it is also
+  </ol></div><h5 id="vaguer-moments-in-time"><span class="secno">2.5.5.7 </span>Vaguer moments in time</h5><p>A string is a <dfn id="valid-date-or-time-string">valid date or time string</dfn> if it is also
   one of the following:<ul><li>A <a href="#valid-date-string">valid date string</a>.</li>
 
    <li>A <a href="#valid-time-string">valid time string</a>.</li>
@@ -4573,7 +4619,7 @@
 
    </li>
 
-  </ol></div><h4 id="colors"><span class="secno">2.4.6 </span>Colors</h4><p>A <dfn id="simple-color">simple color</dfn> consists of three 8-bit numbers in the
+  </ol></div><h4 id="colors"><span class="secno">2.5.6 </span>Colors</h4><p>A <dfn id="simple-color">simple color</dfn> consists of three 8-bit numbers in the
   range 0..255, representing the red, green, and blue components of
   the color respectively, in the sRGB color space. <a href="#refsSRGB">[SRGB]</a><p>A string is a <dfn id="valid-simple-color">valid simple color</dfn> if it is exactly
   seven characters long, and the first character is a U+0023 NUMBER
@@ -4760,7 +4806,7 @@
 
    <li><p>Return <var title="">result</var>.</p>
 
-  </ol></div><hr><h4 id="space-separated-tokens"><span class="secno">2.4.7 </span>Space-separated tokens</h4><p>A <dfn id="set-of-space-separated-tokens">set of space-separated tokens</dfn> is a string containing
+  </ol></div><hr><h4 id="space-separated-tokens"><span class="secno">2.5.7 </span>Space-separated tokens</h4><p>A <dfn id="set-of-space-separated-tokens">set of space-separated tokens</dfn> is a string containing
   zero or more words separated by one or more <a href="#space-character" title="space
   character">space characters</a>, where words consist of any
   string of one or more characters, none of which are <a href="#space-character" title="space character">space characters</a>.<p>A string containing a <a href="#set-of-space-separated-tokens">set of space-separated tokens</a>
@@ -4864,7 +4910,7 @@
   token to be collapsed to a single space, except at the start and end
   of the string, where such spaces are removed.</p>
 
-  </div><h4 id="comma-separated-tokens"><span class="secno">2.4.8 </span>Comma-separated tokens</h4><p>A <dfn id="set-of-comma-separated-tokens">set of comma-separated tokens</dfn> is a string containing
+  </div><h4 id="comma-separated-tokens"><span class="secno">2.5.8 </span>Comma-separated tokens</h4><p>A <dfn id="set-of-comma-separated-tokens">set of comma-separated tokens</dfn> is a string containing
   zero or more tokens each separated from the next by a single U+002C
   COMMA character (,), where tokens consist of any string of zero or
   more characters, neither beginning nor ending with <a href="#space-character" title="space character">space characters</a>, nor containing any
@@ -4908,7 +4954,7 @@
 
    <li><p>Return <var title="">tokens</var>.</li>
 
-  </ol></div><h4 id="syntax-references"><span class="secno">2.4.9 </span>References</h4><p>A <dfn id="valid-hash-name-reference">valid hash-name reference</dfn> to an element of type <var title="">type</var> is a string consisting of a U+0023 NUMBER SIGN
+  </ol></div><h4 id="syntax-references"><span class="secno">2.5.9 </span>References</h4><p>A <dfn id="valid-hash-name-reference">valid hash-name reference</dfn> to an element of type <var title="">type</var> is a string consisting of a U+0023 NUMBER SIGN
   character (#) followed by a string which exactly matches the value
   of the <code title="">name</code> attribute of an element with type
   <var title="">type</var> in the document.<div class="impl">
@@ -4940,13 +4986,13 @@
    maybe they just don't know about combining dot above?
    -->
 
-  </ol></div><h4 id="mq"><span class="secno">2.4.10 </span>Media queries</h4><p>A string is a <dfn id="valid-media-query">valid media query</dfn> if it matches the
+  </ol></div><h4 id="mq"><span class="secno">2.5.10 </span>Media queries</h4><p>A string is a <dfn id="valid-media-query">valid media query</dfn> if it matches the
   <code title="">media_query_list</code> production of the Media
   Queries specification. <a href="#refsMQ">[MQ]</a><p>A string <dfn id="matches-the-environment">matches the environment</dfn> of the user if it is
   the empty string, a string consisting of only <a href="#space-character" title="space
   character">space characters</a>, or is a media query that matches
   the user's environment according to the definitions given in the
-  Media Queries specification. <a href="#refsMQ">[MQ]</a><h3 id="urls"><span class="secno">2.5 </span>URLs</h3><p class="XXX annotation"><span><a href="http://www.w3.org/html/wg/tracker/issues/56">ISSUE-56</a> (urls-webarch) blocks progress to Last Call</span><h4 id="terminology-0"><span class="secno">2.5.1 </span>Terminology</h4><!-- see also: svn diff -r3244:3245 source --><p>A <dfn id="url">URL</dfn> is a string used to identify a resource.<p>A <a href="#url">URL</a> is a <dfn id="valid-url">valid URL</dfn> if at least one of
+  Media Queries specification. <a href="#refsMQ">[MQ]</a><h3 id="urls"><span class="secno">2.6 </span>URLs</h3><p class="XXX annotation"><span><a href="http://www.w3.org/html/wg/tracker/issues/56">ISSUE-56</a> (urls-webarch) blocks progress to Last Call</span><h4 id="terminology-0"><span class="secno">2.6.1 </span>Terminology</h4><!-- see also: svn diff -r3244:3245 source --><p>A <dfn id="url">URL</dfn> is a string used to identify a resource.<p>A <a href="#url">URL</a> is a <dfn id="valid-url">valid URL</dfn> if at least one of
   the following conditions holds:<ul><li><p>The <a href="#url">URL</a> is a valid URI reference <a href="#refsRFC3986">[RFC3986]</a>.</li>
 
    <li><p>The <a href="#url">URL</a> is a valid IRI reference and it has no
@@ -5107,7 +5153,7 @@
   herein is really called something else altogether. This is a
   <a href="#willful-violation">willful violation</a> of RFC 3986. <a href="#refsRFC3986">[RFC3986]</a><div class="impl">
 
-  <h4 id="dynamic-changes-to-base-urls"><span class="secno">2.5.2 </span>Dynamic changes to base URLs</h4>
+  <h4 id="dynamic-changes-to-base-urls"><span class="secno">2.6.2 </span>Dynamic changes to base URLs</h4>
 
   <p>When an <code title="attr-xml-base"><a href="#the-xml:base-attribute-xml-only">xml:base</a></code> attribute
   changes, the attribute's element, and all descendant elements, are
@@ -5169,7 +5215,7 @@
 
    </dd>
 
-  </dl></div><h4 id="interfaces-for-url-manipulation"><span class="secno">2.5.3 </span>Interfaces for URL manipulation</h4><p>An interface that has a complement of <dfn id="url-decomposition-idl-attributes">URL decomposition IDL
+  </dl></div><h4 id="interfaces-for-url-manipulation"><span class="secno">2.6.3 </span>Interfaces for URL manipulation</h4><p>An interface that has a complement of <dfn id="url-decomposition-idl-attributes">URL decomposition IDL
   attributes</dfn> will have seven attributes with the following
   definitions:<pre class="idl extract">           attribute DOMString <a href="#dom-uda-protocol" title="dom-uda-protocol">protocol</a>;
            attribute DOMString <a href="#dom-uda-host" title="dom-uda-host">host</a>;
@@ -5359,7 +5405,7 @@
       <td> The (empty) <a href="#url-fragment" title="url-fragment">&lt;fragment&gt;</a> component is not part of the <a href="#url-query" title="url-query">&lt;query&gt;</a> component.
    </table></div><div class="impl">
 
-  <h3 id="fetching-resources"><span class="secno">2.6 </span>Fetching resources</h3>
+  <h3 id="fetching-resources"><span class="secno">2.7 </span>Fetching resources</h3>
 
   <p>When a user agent is to <dfn id="fetch">fetch</dfn> a resource or
   <a href="#url">URL</a>, optionally from an origin <i title="">origin</i>,
@@ -5572,7 +5618,7 @@
   applicable.</p>
 
 
-  <h4 id="concept-http-equivalent"><span class="secno">2.6.1 </span>Protocol concepts</h4>
+  <h4 id="concept-http-equivalent"><span class="secno">2.7.1 </span>Protocol concepts</h4>
 
   <p>User agents can implement a variety of transfer protocols, but
   this specification mostly defines behavior in terms of HTTP. <a href="#refsHTTP">[HTTP]</a></p>
@@ -5595,7 +5641,7 @@
   protocol.</p>
 
 
-  <h4 id="encrypted-http-and-related-security-concerns"><span class="secno">2.6.2 </span>Encrypted HTTP and related security concerns</h4>
+  <h4 id="encrypted-http-and-related-security-concerns"><span class="secno">2.7.2 </span>Encrypted HTTP and related security concerns</h4>
 
   <p>Anything in this specification that refers to HTTP also applies
   to HTTP-over-TLS, as represented by <a href="#url" title="url">URLs</a>
@@ -5641,7 +5687,7 @@
   </div>
 
 
-  <h4 id="content-type-sniffing"><span class="secno">2.6.3 </span>Determining the type of a resource</h4>
+  <h4 id="content-type-sniffing"><span class="secno">2.7.3 </span>Determining the type of a resource</h4>
 
   <p>The <dfn id="content-type" title="Content-Type">Content-Type metadata</dfn> of a
   resource must be obtained and interpreted in a manner consistent
@@ -5712,7 +5758,7 @@
   of the HTTP specification, motivated by the need for backwards
   compatibility with legacy content. <a href="#refsHTTP">[HTTP]</a></p>
 
-  </div><h3 id="common-dom-interfaces"><span class="secno">2.7 </span>Common DOM interfaces</h3><h4 id="reflecting-content-attributes-in-idl-attributes"><span class="secno">2.7.1 </span>Reflecting content attributes in IDL attributes</h4><p>Some IDL attributes are defined to <dfn id="reflect">reflect</dfn> a
+  </div><h3 id="common-dom-interfaces"><span class="secno">2.8 </span>Common DOM interfaces</h3><h4 id="reflecting-content-attributes-in-idl-attributes"><span class="secno">2.8.1 </span>Reflecting content attributes in IDL attributes</h4><p>Some IDL attributes are defined to <dfn id="reflect">reflect</dfn> a
   particular content attribute. This means that on getting, the IDL
   attribute returns the current value of the content attribute, and on
   setting, the IDL attribute changes the value of the content
@@ -5905,7 +5951,7 @@
   attribute. Otherwise, the IDL attribute must be set to the empty
   string.</p>
 
-  </div><h4 id="collections-0"><span class="secno">2.7.2 </span>Collections</h4><p>The <code><a href="#htmlcollection">HTMLCollection</a></code>, <code><a href="#htmlallcollection">HTMLAllCollection</a></code>,
+  </div><h4 id="collections-0"><span class="secno">2.8.2 </span>Collections</h4><p>The <code><a href="#htmlcollection">HTMLCollection</a></code>, <code><a href="#htmlallcollection">HTMLAllCollection</a></code>,
   <code><a href="#htmlformcontrolscollection">HTMLFormControlsCollection</a></code>,
   <code><a href="#htmloptionscollection">HTMLOptionsCollection</a></code>, and
   <code>HTMLPropertiesCollection</code> interfaces represent various
@@ -5928,7 +5974,7 @@
   <p>An attribute that returns a collection must return the same
   object every time it is retrieved.</p>
 
-  </div><h5 id="htmlcollection-0"><span class="secno">2.7.2.1 </span>HTMLCollection</h5><p>The <code><a href="#htmlcollection">HTMLCollection</a></code> interface represents a generic
+  </div><h5 id="htmlcollection-0"><span class="secno">2.8.2.1 </span>HTMLCollection</h5><p>The <code><a href="#htmlcollection">HTMLCollection</a></code> interface represents a generic
   <a href="#collections" title="collections">collection</a> of elements.<pre class="idl">interface <dfn id="htmlcollection">HTMLCollection</dfn> {
   readonly attribute unsigned long <a href="#dom-htmlcollection-length" title="dom-HTMLCollection-length">length</a>;
   caller getter <a href="#element">Element</a> <a href="#dom-htmlcollection-item" title="dom-HTMLCollection-item">item</a>(in unsigned long index);
@@ -5999,7 +6045,7 @@
   </ul><p>If no such elements are found, then the method must return
   null.</p>
 
-  </div><h5 id="htmlallcollection-0"><span class="secno">2.7.2.2 </span>HTMLAllCollection</h5><p>The <code><a href="#htmlallcollection">HTMLAllCollection</a></code> interface represents a generic
+  </div><h5 id="htmlallcollection-0"><span class="secno">2.8.2.2 </span>HTMLAllCollection</h5><p>The <code><a href="#htmlallcollection">HTMLAllCollection</a></code> interface represents a generic
   <a href="#collections" title="collections">collection</a> of elements just like
   <code><a href="#htmlcollection">HTMLCollection</a></code>, with the exception that its <code title="dom-HTMLAllCollection-namedItem"><a href="#dom-htmlallcollection-nameditem">namedItem()</a></code> method
   returns an <code><a href="#htmlallcollection">HTMLAllCollection</a></code> object when there are
@@ -6089,7 +6135,7 @@
   documents</a>, the argument must first be <a href="#converted-to-ascii-lowercase">converted to
   ASCII lowercase</a>.</p>
 
-  </div><h5 id="htmlformcontrolscollection-0"><span class="secno">2.7.2.3 </span>HTMLFormControlsCollection</h5><p>The <code><a href="#htmlformcontrolscollection">HTMLFormControlsCollection</a></code> interface represents
+  </div><h5 id="htmlformcontrolscollection-0"><span class="secno">2.8.2.3 </span>HTMLFormControlsCollection</h5><p>The <code><a href="#htmlformcontrolscollection">HTMLFormControlsCollection</a></code> interface represents
   a <a href="#collections" title="collections">collection</a> of <a href="#category-listed" title="category-listed">listed elements</a> in <code><a href="#the-form-element">form</a></code>
   and <code><a href="#the-fieldset-element">fieldset</a></code> elements.<pre class="idl">interface <dfn id="htmlformcontrolscollection">HTMLFormControlsCollection</dfn> : <a href="#htmlcollection">HTMLCollection</a> {
   // inherits <a href="#dom-htmlcollection-length" title="dom-HTMLCollection-length">length</a> and <a href="#dom-htmlcollection-item" title="dom-HTMLCollection-item">item</a>()
@@ -6197,7 +6243,7 @@
 
   </ol><!--
 http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E...%0A%3Cform%20name%3D%22a%22%3E%3Cinput%20id%3D%22x%22%20name%3D%22y%22%3E%3Cinput%20name%3D%22x%22%20id%3D%22y%22%3E%3C/form%3E%0A%3Cscript%3E%0A%20%20var%20x%3B%0A%20%20w%28x%20%3D%20document.forms%5B%27a%27%5D%5B%27x%27%5D%29%3B%0A%20%20w%28x.length%29%3B%0A%20%20x%5B0%5D.parentNode.removeChild%28x%5B0%5D%29%3B%0A%20%20w%28x.length%29%3B%0A%20%20w%28x%20%3D%3D%20document.forms%5B%27a%27%5D%5B%27x%27%5D%29%3B%0A%3C/script%3E%0A
---></div><h5 id="htmloptionscollection-0"><span class="secno">2.7.2.4 </span>HTMLOptionsCollection</h5><p>The <code><a href="#htmloptionscollection">HTMLOptionsCollection</a></code> interface represents a
+--></div><h5 id="htmloptionscollection-0"><span class="secno">2.8.2.4 </span>HTMLOptionsCollection</h5><p>The <code><a href="#htmloptionscollection">HTMLOptionsCollection</a></code> interface represents a
   list of <code><a href="#the-option-element">option</a></code> elements. It is always rooted on a
   <code><a href="#the-select-element">select</a></code> element and has attributes and methods that
   manipulate that element's descendants.<pre class="idl">interface <dfn id="htmloptionscollection">HTMLOptionsCollection</dfn> : <a href="#htmlcollection">HTMLCollection</a> {
@@ -6365,7 +6411,7 @@
 
   <!-- see also http://ln.hixie.ch/?start=1161042744&count=1 -->
 
-  </div><h4 id="domtokenlist-0"><span class="secno">2.7.3 </span>DOMTokenList</h4><p>The <code><a href="#domtokenlist">DOMTokenList</a></code> interface represents an interface
+  </div><h4 id="domtokenlist-0"><span class="secno">2.8.3 </span>DOMTokenList</h4><p>The <code><a href="#domtokenlist">DOMTokenList</a></code> interface represents an interface
   to an underlying string that consists of a <a href="#set-of-space-separated-tokens">set of
   space-separated tokens</a>.<p class="note"><code><a href="#domtokenlist">DOMTokenList</a></code> objects are always
   <a href="#case-sensitive">case-sensitive</a>, even when the underlying string might
@@ -6540,7 +6586,7 @@
   <dfn id="dom-tokenlist-tostring" title="dom-tokenlist-toString">stringify</dfn> to the object's
   underlying string representation.</p>
 
-  </div><h4 id="domsettabletokenlist-0"><span class="secno">2.7.4 </span>DOMSettableTokenList</h4><p>The <code><a href="#domsettabletokenlist">DOMSettableTokenList</a></code> interface is the same as the
+  </div><h4 id="domsettabletokenlist-0"><span class="secno">2.8.4 </span>DOMSettableTokenList</h4><p>The <code><a href="#domsettabletokenlist">DOMSettableTokenList</a></code> interface is the same as the
   <code><a href="#domtokenlist">DOMTokenList</a></code> interface, except that it allows the
   underlying string to be directly changed.<pre class="idl">interface <dfn id="domsettabletokenlist">DOMSettableTokenList</dfn> : <a href="#domtokenlist">DOMTokenList</a> {
             attribute DOMString <a href="#dom-domsettabletokenlist-value" title="dom-DOMSettableTokenList-value">value</a>;
@@ -6563,7 +6609,7 @@
 
   </div><div class="impl">
 
-  <h4 id="safe-passing-of-structured-data"><span class="secno">2.7.5 </span>Safe passing of structured data</h4>
+  <h4 id="safe-passing-of-structured-data"><span class="secno">2.8.5 </span>Safe passing of structured data</h4>
 
   <p>When a user agent is required to obtain a <dfn id="structured-clone">structured
   clone</dfn> of an object, it must run the following algorithm, which
@@ -6685,7 +6731,7 @@
    <dd><p>Throw a <code><a href="#data_clone_err">DATA_CLONE_ERR</a></code> exception and abort the
    overall <a href="#structured-clone">structured clone</a> algorithm.</dd>
 
-  </dl></div><h4 id="domstringmap-0"><span class="secno">2.7.6 </span>DOMStringMap</h4><p>The <code><a href="#domstringmap">DOMStringMap</a></code> interface represents a set of
+  </dl></div><h4 id="domstringmap-0"><span class="secno">2.8.6 </span>DOMStringMap</h4><p>The <code><a href="#domstringmap">DOMStringMap</a></code> interface represents a set of
   name-value pairs. It exposes these using the scripting language's
   native mechanisms for property access.<div class="impl">
 
@@ -6759,7 +6805,7 @@
   }
 }</pre>
 
-  </div><h4 id="dom-feature-strings"><span class="secno">2.7.7 </span>DOM feature strings</h4><p>DOM3 Core defines mechanisms for checking for interface support,
+  </div><h4 id="dom-feature-strings"><span class="secno">2.8.7 </span>DOM feature strings</h4><p>DOM3 Core defines mechanisms for checking for interface support,
   and for obtaining implementations of interfaces, using <a href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMFeatures">feature
   strings</a>. <a href="#refsDOMCORE">[DOMCORE]</a><p>Authors are strongly discouraged from using these, as they are
   notoriously unreliable and imprecise. Authors are encouraged to rely
@@ -6772,7 +6818,7 @@
   with <var title="">feature</var> set to either "<code title="">HTML</code>" or "<code title="">XHTML</code>" and <var title="">version</var> set to either "<code>1.0</code>" or
   "<code>2.0</code>".</p>
 
-  </div><h4 id="exceptions"><span class="secno">2.7.8 </span>Exceptions</h4><p>The following are <code><a href="#domexception">DOMException</a></code> codes. <a href="#refsDOMCORE">[DOMCORE]</a><ol class="brief"><li value="1"><dfn id="index_size_err"><code>INDEX_SIZE_ERR</code></dfn></li>
+  </div><h4 id="exceptions"><span class="secno">2.8.8 </span>Exceptions</h4><p>The following are <code><a href="#domexception">DOMException</a></code> codes. <a href="#refsDOMCORE">[DOMCORE]</a><ol class="brief"><li value="1"><dfn id="index_size_err"><code>INDEX_SIZE_ERR</code></dfn></li>
    <li value="2"><dfn id="domstring_size_err"><code>DOMSTRING_SIZE_ERR</code></dfn></li>
    <li value="3"><dfn id="hierarchy_request_err"><code>HIERARCHY_REQUEST_ERR</code></dfn></li>
    <li value="4"><dfn id="wrong_document_err"><code>WRONG_DOCUMENT_ERR</code></dfn></li>
@@ -6813,7 +6859,7 @@
 
   </div><div class="impl">
 
-  <h4 id="garbage-collection"><span class="secno">2.7.9 </span>Garbage collection</h4>
+  <h4 id="garbage-collection"><span class="secno">2.8.9 </span>Garbage collection</h4>
 
   <p>There is an <dfn id="implied-strong-reference">implied strong reference</dfn> from any IDL
   attribute that returns a pre-existing object to that object.</p>
@@ -6829,7 +6875,7 @@
 
   </div>
 
-  </div><h3 id="namespaces"><span class="secno">2.8 </span>Namespaces</h3><p>The <dfn id="html-namespace-0">HTML namespace</dfn> is: <code>http://www.w3.org/1999/xhtml</code><p>The <dfn id="mathml-namespace">MathML namespace</dfn> is: <code>http://www.w3.org/1998/Math/MathML</code><p>The <dfn id="svg-namespace">SVG namespace</dfn> is: <code>http://www.w3.org/2000/svg</code><p>The <dfn id="xlink-namespace">XLink namespace</dfn> is: <code>http://www.w3.org/1999/xlink</code><p>The <dfn id="xml-namespace">XML namespace</dfn> is: <code>http://www.w3.org/XML/1998/namespace</code><p>The <dfn id="xmlns-namespace">XMLNS namespace</dfn> is: <code>http://www.w3.org/2000/xmlns/</code><hr><p>Data mining tools and other user agents that perform operations
+  </div><h3 id="namespaces"><span class="secno">2.9 </span>Namespaces</h3><p>The <dfn id="html-namespace-0">HTML namespace</dfn> is: <code>http://www.w3.org/1999/xhtml</code><p>The <dfn id="mathml-namespace">MathML namespace</dfn> is: <code>http://www.w3.org/1998/Math/MathML</code><p>The <dfn id="svg-namespace">SVG namespace</dfn> is: <code>http://www.w3.org/2000/svg</code><p>The <dfn id="xlink-namespace">XLink namespace</dfn> is: <code>http://www.w3.org/1999/xlink</code><p>The <dfn id="xml-namespace">XML namespace</dfn> is: <code>http://www.w3.org/XML/1998/namespace</code><p>The <dfn id="xmlns-namespace">XMLNS namespace</dfn> is: <code>http://www.w3.org/2000/xmlns/</code><hr><p>Data mining tools and other user agents that perform operations
   on content without running scripts, evaluating CSS or XPath
   expressions, or otherwise exposing the resulting DOM to arbitrary
   content, may "support namespaces" by just asserting that their DOM
@@ -7058,9 +7104,8 @@
   <code><a href="#security_err">SECURITY_ERR</a></code> exception. Otherwise, the user agent must
   first <a href="#obtain-the-storage-mutex">obtain the storage mutex</a> and then return the
   cookie-string for <a href="#the-document-s-address">the document's address</a> for a
-  "non-HTTP" API, decoded as UTF-8, with bytes or sequences of bytes
-  that are not valid UTF-8 sequences interpreted as U+FFFD REPLACEMENT
-  CHARACTERs. <a href="#refsCOOKIES">[COOKIES]</a> <a href="#refsRFC3629">[RFC3629]</a></p>
+  "non-HTTP" API, <a href="#decoded-as-utf-8-with-error-handling">decoded as UTF-8, with error handling</a>.
+  <a href="#refsCOOKIES">[COOKIES]</a></p>
 
   <p>On setting, if the document is a <a href="#cookie-free-document-object">cookie-free
   <code>Document</code> object</a>, then the user agent must do
@@ -45499,13 +45544,13 @@
   <p>When a user agent is to <dfn id="parse-a-manifest">parse a manifest</dfn>, it means
   that the user agent must run the following steps:</p>
 
-  <ol><li><p>The user agent must decode the byte stream corresponding with
-   the manifest to be parsed, treating it as UTF-8. Bytes or sequences
-   of bytes that are not valid UTF-8 sequences must be interpreted as
-   a U+FFFD REPLACEMENT CHARACTER. <!--All U+0000 NULL characters must
-   be replaced by U+FFFD REPLACEMENT CHARACTERs. (this isn't black-box
-   testable since neither U+0000 nor U+FFFD are valid anywhere in the
-   syntax and thus both will be treated the same anyway)--> <a href="#refsRFC3629">[RFC3629]</a></li>
+  <ol><li><p>The user agent must decode the byte stream corresponding
+   with the manifest to be parsed <a href="#decoded-as-utf-8-with-error-handling" title="decoded as UTF-8, with
+   error handling">as UTF-8, with error handling</a>. <!--All
+   U+0000 NULL characters must be replaced by U+FFFD REPLACEMENT
+   CHARACTERs. (this isn't black-box testable since neither U+0000 nor
+   U+FFFD are valid anywhere in the syntax and thus both will be
+   treated the same anyway)--></li>
 
    <li><p>Let <var title="">base URL</var> be the <a href="#absolute-url">absolute
    URL</a> representing the manifest.</li>
@@ -54143,7 +54188,10 @@
 
   <p>Bytes or sequences of bytes in the original byte stream that
   could not be converted to Unicode code points must be converted to
-  U+FFFD REPLACEMENT CHARACTERs.</p>
+  U+FFFD REPLACEMENT CHARACTERs. Specifically, if the encoding is
+  UTF-8, the bytes must be <a href="#decoded-as-utf-8-with-error-handling" title="decoded as UTF-8, with error
+  handling">decoded with the error handling</a> defined in this
+  specification.</p>
 
   <p class="note">Bytes or sequences of bytes in the original byte
   stream that did not conform to the encoding specification
Received on Tuesday, 28 September 2010 19:17:15 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 20:09:10 UTC