[html5] r2251 - [] (0) WF2: Restructure the way dates and times are specified.

whatwg at whatwg.org whatwg at whatwg.org
Tue Sep 30 02:47:43 PDT 2008


Author: ianh
Date: 2008-09-30 02:47:40 -0700 (Tue, 30 Sep 2008)
New Revision: 2251

Modified:
   index
   source
Log:
[] (0) WF2: Restructure the way dates and times are specified.

Modified: index
===================================================================
--- index	2008-09-30 08:19:38 UTC (rev 2250)
+++ index	2008-09-30 09:47:40 UTC (rev 2251)
@@ -352,7 +352,18 @@
          <li><a href="#utc-dates"><span class=secno>2.4.4.3. </span>UTC dates
           and times</a>
 
-         <li><a href="#time-offsets"><span class=secno>2.4.4.4. </span>Time
+         <li><a href="#local"><span class=secno>2.4.4.4. </span>Local dates
+          and times</a>
+
+         <li><a href="#dates0"><span class=secno>2.4.4.5. </span>Dates</a>
+
+         <li><a href="#months"><span class=secno>2.4.4.6. </span>Months</a>
+
+         <li><a href="#weeks"><span class=secno>2.4.4.7. </span>Weeks</a>
+
+         <li><a href="#times"><span class=secno>2.4.4.8. </span>Times</a>
+
+         <li><a href="#time-offsets"><span class=secno>2.4.4.9. </span>Time
           offsets</a>
         </ul>
 
@@ -1089,7 +1100,7 @@
            <li><a href="#time-state"><span class=secno>4.10.4.1.9.
             </span>Time state</a>
 
-           <li><a href="#local"><span class=secno>4.10.4.1.10. </span>Local
+           <li><a href="#local0"><span class=secno>4.10.4.1.10. </span>Local
             Date and Time state</a>
 
            <li><a href="#number"><span class=secno>4.10.4.1.11. </span>Number
@@ -4096,6 +4107,13 @@
 
   <h5 id=specific><span class=secno>2.4.4.1. </span>Specific moments in time</h5>
 
+  <p class=big-issue>This syntax is going to be tightened up and made almost
+   exactly the same as the <a href="#valid6">valid UTC date and time
+   string</a> syntax, with the exception of allowing time zones. In fact what
+   we might do is allow time zones in general, use the same parser, etc, but
+   require that UAs always use the UTC time zone when synthesizing datetimes
+   for form submission.
+
   <p>A string is a <dfn id=valid5>valid datetime</dfn> if it has four digits
    (representing the year), a literal hyphen, two digits (representing the
    month), a literal hyphen, two digits (representing the day), optionally
@@ -4795,22 +4813,78 @@
 
   <h5 id=utc-dates><span class=secno>2.4.4.3. </span>UTC dates and times</h5>
 
-  <p>A <dfn id=utc-date>UTC date and time</dfn> consists of a specific
-   Gregorian date expressed relative to the UTC timezone, consisting of a
-   year, a month, a day, an hour, a minute, a second, and a fraction of a
-   second. <a href="#refsGREGORIAN">[GREGORIAN]</a>
+  <p>A <dfn id=utc-date title=concept-datetime>UTC date and time</dfn>
+   consists of a specific Gregorian date expressed relative to the UTC
+   timezone, consisting of a year, a month, a day, an hour, a minute, a
+   second, and a fraction of a second. <a
+   href="#refsGREGORIAN">[GREGORIAN]</a>
 
-  <p class=big-issue>... <dfn id=valid6>valid UTC date and time</dfn>
+  <p class=big-issue>... <dfn id=valid6>valid UTC date and time string</dfn>
 
-  <p class=big-issue>... rules to <dfn id=parse0>parse a UTC date and
-   time</dfn>
+  <p class=big-issue>... rules to <dfn id=parse0>parse a UTC date and time
+   string</dfn>
 
-  <h5 id=time-offsets><span class=secno>2.4.4.4. </span>Time offsets</h5>
+  <h5 id=local><span class=secno>2.4.4.4. </span>Local dates and times</h5>
 
-  <p class=big-issue><dfn id=valid7>valid time offset</dfn>, <dfn
+  <p>A <dfn id=local1 title=concept-datetime-local>local date and time</dfn>
+   consists of a specific Gregorian date with no timezone information,
+   consisting of a year, a month, a day, an hour, a minute, a second, and a
+   fraction of a second. <a href="#refsGREGORIAN">[GREGORIAN]</a>
+
+  <p class=big-issue>... <dfn id=valid7>valid local date and time
+   string</dfn>
+
+  <p class=big-issue>... rules to <dfn id=parse1>parse a local date and time
+   string</dfn>
+
+  <h5 id=dates0><span class=secno>2.4.4.5. </span>Dates</h5>
+
+  <p>A <dfn id=date title=concept-date>date</dfn> consists of a specific
+   Gregorian date with no timezone information, consisting of a year, a
+   month, and a day. <a href="#refsGREGORIAN">[GREGORIAN]</a>
+
+  <p class=big-issue>... <dfn id=valid8>valid date string</dfn>
+
+  <p class=big-issue>... rules to <dfn id=parse2>parse a date string</dfn>
+
+  <h5 id=months><span class=secno>2.4.4.6. </span>Months</h5>
+
+  <p>A <dfn id=month0 title=concept-month>month</dfn> consists of a specific
+   Gregorian date with no timezone information and no date information beyond
+   a year and a month. <a href="#refsGREGORIAN">[GREGORIAN]</a>
+
+  <p class=big-issue>... <dfn id=valid9>valid month string</dfn>
+
+  <p class=big-issue>... rules to <dfn id=parse3>parse a month string</dfn>
+
+  <h5 id=weeks><span class=secno>2.4.4.7. </span>Weeks</h5>
+
+  <p>A <dfn id=week title=concept-week>week</dfn> consists of a specific
+   Gregorian date with no timezone information and no date information beyond
+   a year and a week. <a href="#refsGREGORIAN">[GREGORIAN]</a></p>
+  <!-- XXX ISO week information -->
+
+  <p class=big-issue>... <dfn id=valid10>valid week string</dfn>
+
+  <p class=big-issue>... rules to <dfn id=parse4>parse a week string</dfn>
+
+  <h5 id=times><span class=secno>2.4.4.8. </span>Times</h5>
+
+  <p>A <dfn id=time title=concept-time>time</dfn> consists of a specific time
+   with no timezone information, consisting of an hour, a minute, a second,
+   and a fraction of a second.
+
+  <p class=big-issue>... <dfn id=valid11>valid time string</dfn>
+
+  <p class=big-issue>... rules to <dfn id=parse5>parse a time string</dfn>
+
+  <h5 id=time-offsets><span class=secno>2.4.4.9. </span>Time offsets</h5>
+
+  <p class=big-issue><dfn id=valid12>valid time offset</dfn>, <dfn
    id=rules4>rules for parsing time offsets</dfn>, <dfn id=time-offset>time
-   offset serialization rules</dfn>; in the format "5d4h3m2s1ms" or "3m 9.2s"
-   or "00:00:00.00" or similar.
+   offset serialization rules</dfn>; probably in the format "5d4h3m2.1s" or
+   similar, with all components being optional, and the last component's unit
+   suffix being optional if it's in seconds.
 
   <h4 id=space-separated><span class=secno>2.4.5 </span>Space-separated
    tokens</h4>
@@ -5060,7 +5134,7 @@
 
   <h4 id=syntax-references><span class=secno>2.4.8 </span>References</h4>
 
-  <p>A <dfn id=valid8>valid hash-name reference</dfn> to an element of type
+  <p>A <dfn id=valid13>valid hash-name reference</dfn> to an element of type
    <var title="">type</var> is a string consisting of a U+0023 NUMBER SIGN
    (<code title="">#</code>) character followed by a string which exactly
    matches the value of the <code title="">name</code> attribute of an
@@ -5114,8 +5188,8 @@
    script, in which case the associated <code>Document</code> is the script's
    <a href="#script4">script document context</a>.</span>
 
-  <p>A <a href="#url">URL</a> is a <dfn id=valid9>valid URL</dfn> if at least
-   one of the following conditions holds:
+  <p>A <a href="#url">URL</a> is a <dfn id=valid14>valid URL</dfn> if at
+   least one of the following conditions holds:
 
   <ul>
    <li>
@@ -5146,7 +5220,7 @@
 
   <h4 id=parsing0><span class=secno>2.5.2 </span>Parsing URLs</h4>
 
-  <p>To <dfn id=parse1>parse a URL</dfn> <var title="">url</var> into its
+  <p>To <dfn id=parse6>parse a URL</dfn> <var title="">url</var> into its
    component parts, the user agent must use the following steps:
 
   <ol>
@@ -5361,7 +5435,7 @@
      URL</a>.)
 
    <li>
-    <p><a href="#parse1" title="parse a URL">Parse</a> <var
+    <p><a href="#parse6" title="parse a URL">Parse</a> <var
      title="">url</var> into its component parts.
 
    <li>
@@ -5594,7 +5668,7 @@
    title="">#</code>" before a <fragment> component.
 
   <p>For the purposes of the above definitions, URLs must be parsed using the
-   <a href="#parse1" title="parse a URL">URL parsing rules</a> defined in
+   <a href="#parse6" title="parse a URL">URL parsing rules</a> defined in
    this specification.
 
   <table>
@@ -9857,7 +9931,7 @@
    address of the document's <a href="#application0">application cache</a> <a
    href="#the-manifest" title=concept-appcache-manifest>manifest</a>, if
    there is one. If the attribute is present, the attribute's value must be a
-   <a href="#valid9">valid URL</a>.
+   <a href="#valid14">valid URL</a>.
 
   <p>The <code title=attr-html-manifest><a
    href="#manifest">manifest</a></code> attribute only <a
@@ -10018,7 +10092,7 @@
    attribute, or both.
 
   <p>The <dfn id=href title=attr-base-href><code>href</code></dfn> content
-   attribute, if specified, must contain a <a href="#valid9">valid URL</a>.
+   attribute, if specified, must contain a <a href="#valid14">valid URL</a>.
 
   <p>A <code><a href="#base">base</a></code> element, if it has an <code
    title=attr-base-href><a href="#href">href</a></code> attribute, must come
@@ -10033,7 +10107,7 @@
    attributes, all but the first are ignored.
 
   <p>The <dfn id=target title=attr-base-target><code>target</code></dfn>
-   attribute, if specified, must contain a <a href="#valid11">valid browsing
+   attribute, if specified, must contain a <a href="#valid16">valid browsing
    context name or keyword</a>. User agents use this name when <a
    href="#following0">following hyperlinks</a>.
 
@@ -10114,7 +10188,7 @@
 
   <p>The destination of the link is given by the <dfn id=href1
    title=attr-link-href><code>href</code></dfn> attribute, which must be
-   present and must contain a <a href="#valid9">valid URL</a>. If the <code
+   present and must contain a <a href="#valid14">valid URL</a>. If the <code
    title=attr-link-href><a href="#href1">href</a></code> attribute is absent,
    then the element does not define a link.
 
@@ -10973,7 +11047,7 @@
       U, a U+0052 LATIN CAPITAL LETTER R or a U+0072 LATIN SMALL LETTER R, a
       U+004C LATIN CAPITAL LETTER L or a U+006C LATIN SMALL LETTER L, a
       U+003D EQUALS SIGN (<code title="">=</code>), and then a <a
-      href="#valid9">valid URL</a>.
+      href="#valid14">valid URL</a>.
     </ul>
 
     <p>In the former case, the integer represents a number of seconds before
@@ -11383,7 +11457,7 @@
 
   <p>The <dfn id=src title=attr-script-src><code>src</code></dfn> attribute,
    if specified, gives the address of the external script resource to use.
-   The value of the attribute must be a <a href="#valid9">valid URL</a>
+   The value of the attribute must be a <a href="#valid14">valid URL</a>
    identifying a script resource of the type given by the <code
    title=attr-script-type><a href="#type3">type</a></code> attribute, if the
    attribute is present, or of the type "<code
@@ -11820,9 +11894,9 @@
    <pre><script src="game-engine.js"></script>
 <script type="text/x-game-map">
 ........U.........e
-o............x....e
-.....x.....xxx....e
-.x..xxx...xxxxx...e
+o............A....e
+.....A.....AAA....e
+.A..AAA...AAAAA...e
 </script></pre>
 
    <p>The data in this case might be used by the script to generate the map
@@ -11965,7 +12039,7 @@
    document with no <code><a href="#noscript">noscript</a></code> elements
    and no <code><a href="#script1">script</a></code> elements, and such that
    no step in the algorithm causes an <a href="#html-0">HTML parser</a> to
-   flag a <a href="#parse3">parse error</a>:
+   flag a <a href="#parse8">parse error</a>:
 
   <ol>
    <li>Remove every <code><a href="#script1">script</a></code> element from
@@ -12067,7 +12141,7 @@
    represents a target for events generated by a remote server.
 
   <p>The <dfn id=src1 title=attr-eventsource-src><code>src</code></dfn>
-   attribute, if specified, must give a <a href="#valid9">valid URL</a>
+   attribute, if specified, must give a <a href="#valid14">valid URL</a>
    identifying a resource that uses the <code>text/event-stream</code>
    format.
 
@@ -13621,7 +13695,7 @@
    title=attr-blockquote-cite><code>cite</code></dfn> attribute.
 
   <p>If the <code title=attr-blockquote-cite><a href="#cite">cite</a></code>
-   attribute is present, it must be a <a href="#valid9">valid URL</a>. User
+   attribute is present, it must be a <a href="#valid14">valid URL</a>. User
    agents should allow users to follow such citation links.
 
   <p>If a <code><a href="#blockquote">blockquote</a></code> element is <a
@@ -14151,8 +14225,8 @@
 
   <p>If the <code><a href="#dt">dt</a></code> element is the child of a
    <code><a href="#dialog">dialog</a></code> element, and it further contains
-   a <code><a href="#time">time</a></code> element, then that <code><a
-   href="#time">time</a></code> element represents a timestamp for when the
+   a <code><a href="#time0">time</a></code> element, then that <code><a
+   href="#time0">time</a></code> element represents a timestamp for when the
    associated discourse (<code><a href="#dd">dd</a></code> element) was said,
    and is not part of the name of the talker.
 
@@ -14452,7 +14526,7 @@
    <dfn id=cite1 title=attr-q-cite><code>cite</code></dfn> attribute.
 
   <p>If the <code title=attr-q-cite><a href="#cite1">cite</a></code>
-   attribute is present, it must be a <a href="#valid9">valid URL</a>. User
+   attribute is present, it must be a <a href="#valid14">valid URL</a>. User
    agents should allow users to follow such citation links.
 
   <p>If a <code><a href="#q">q</a></code> element is contained (directly or
@@ -15146,7 +15220,7 @@
   </div>
 
   <h4 id=the-time><span class=secno>4.6.10 </span>The <dfn
-   id=time><code>time</code></dfn> element</h4>
+   id=time0><code>time</code></dfn> element</h4>
 
   <dl class=element>
    <dt>Categories
@@ -15171,13 +15245,13 @@
     <pre
      class=idl>interface <dfn id=htmltimeelement>HTMLTimeElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
            attribute DOMString <a href="#datetime0" title=dom-time-datetime>dateTime</a>;
-  readonly attribute <a href="#domtimestamp">DOMTimeStamp</a> <a href="#date0" title=dom-time-date>date</a>;
-  readonly attribute <a href="#domtimestamp">DOMTimeStamp</a> <a href="#time1" title=dom-time-time>time</a>;
+  readonly attribute <a href="#domtimestamp">DOMTimeStamp</a> <a href="#date1" title=dom-time-date>date</a>;
+  readonly attribute <a href="#domtimestamp">DOMTimeStamp</a> <a href="#time2" title=dom-time-time>time</a>;
   readonly attribute <a href="#domtimestamp">DOMTimeStamp</a> <a href="#timezone0" title=dom-time-timezone>timezone</a>;
 };</pre>
   </dl>
 
-  <p>The <code><a href="#time">time</a></code> element represents a date
+  <p>The <code><a href="#time0">time</a></code> element represents a date
    and/or a time.
 
   <p>The <dfn id=datetime
@@ -15198,11 +15272,11 @@
    href="#reflect">reflect</a> the <code title=attr-time-datetime><a
    href="#datetime">datetime</a></code> content attribute.
 
-  <p>User agents, to obtain the <dfn id=date
-   title=concept-time-date>date</dfn>, <dfn id=time0
+  <p>User agents, to obtain the <dfn id=date0
+   title=concept-time-date>date</dfn>, <dfn id=time1
    title=concept-time-time>time</dfn>, and <dfn id=timezone
    title=concept-time-timezone>timezone</dfn> represented by a <code><a
-   href="#time">time</a></code> element, must follow these steps:
+   href="#time0">time</a></code> element, must follow these steps:
 
   <ol>
    <li>If the <code title=attr-time-datetime><a
@@ -15218,29 +15292,29 @@
     <var title="">result</var>.
 
    <li>If <var title="">result</var> is empty (because the parsing failed),
-    then the <a href="#date" title=concept-time-date>date</a> is unknown, the
-    <a href="#time0" title=concept-time-time>time</a> is unknown, and the <a
-    href="#timezone" title=concept-time-timezone>timezone</a> is unknown.
+    then the <a href="#date0" title=concept-time-date>date</a> is unknown,
+    the <a href="#time1" title=concept-time-time>time</a> is unknown, and the
+    <a href="#timezone" title=concept-time-timezone>timezone</a> is unknown.
 
    <li>Otherwise: if <var title="">result</var> contains a date, then that is
-    the <a href="#date" title=concept-time-date>date</a>; if <var
-    title="">result</var> contains a time, then that is the <a href="#time0"
+    the <a href="#date0" title=concept-time-date>date</a>; if <var
+    title="">result</var> contains a time, then that is the <a href="#time1"
     title=concept-time-time>time</a>; and if <var title="">result</var>
     contains a timezone, then the timezone is the element's <a
     href="#timezone" title=concept-time-timezone>timezone</a>. (A timezone
     can only be present if both a date and a time are also present.)
   </ol>
 
-  <p>The <dfn id=date0 title=dom-time-date><code>date</code></dfn> DOM
-   attribute must return null if the <a href="#date"
+  <p>The <dfn id=date1 title=dom-time-date><code>date</code></dfn> DOM
+   attribute must return null if the <a href="#date0"
    title=concept-time-date>date</a> is unknown, and otherwise must return the
    time corresponding to midnight UTC (i.e. the first second) of the given <a
-   href="#date" title=concept-time-date>date</a>.
+   href="#date0" title=concept-time-date>date</a>.
 
-  <p>The <dfn id=time1 title=dom-time-time><code>time</code></dfn> DOM
-   attribute must return null if the <a href="#time0"
+  <p>The <dfn id=time2 title=dom-time-time><code>time</code></dfn> DOM
+   attribute must return null if the <a href="#time1"
    title=concept-time-time>time</a> is unknown, and otherwise must return the
-   time corresponding to the given <a href="#time0"
+   time corresponding to the given <a href="#time1"
    title=concept-time-time>time</a> of 1970-01-01, with the timezone UTC.
 
   <p>The <dfn id=timezone0
@@ -15257,20 +15331,20 @@
 
    <pre><p>Our first date was <time datetime="2006-09-23">a Saturday</time>.</p></pre>
 
-   <p>...the <code><a href="#time">time</a></code> element's <code
-    title=dom-time-date><a href="#date0">date</a></code> attribute would have
+   <p>...the <code><a href="#time0">time</a></code> element's <code
+    title=dom-time-date><a href="#date1">date</a></code> attribute would have
     the value 1,158,969,600,000ms, and the <code title=dom-time-time><a
-    href="#time1">time</a></code> and <code title=dom-time-timezone><a
+    href="#time2">time</a></code> and <code title=dom-time-timezone><a
     href="#timezone0">timezone</a></code> attributes would return null.</p>
 
    <p>In the following snippet:</p>
 
    <pre><p>We stopped talking at <time datetime="2006-09-24 05:00 -7">5am the next morning</time>.</p></pre>
 
-   <p>...the <code><a href="#time">time</a></code> element's <code
-    title=dom-time-date><a href="#date0">date</a></code> attribute would have
+   <p>...the <code><a href="#time0">time</a></code> element's <code
+    title=dom-time-date><a href="#date1">date</a></code> attribute would have
     the value 1,159,056,000,000ms, the <code title=dom-time-time><a
-    href="#time1">time</a></code> attribute would have the value
+    href="#time2">time</a></code> attribute would have the value
     18,000,000ms, and the <code title=dom-time-timezone><a
     href="#timezone0">timezone</a></code> attribute would return
     &#x2212;25,200,000ms. To obtain the actual time, the three attributes can
@@ -15281,10 +15355,10 @@
 
    <pre><p>Many people get up at <time>08:00</time>.</p></pre>
 
-   <p>...the <code><a href="#time">time</a></code> element's <code
-    title=dom-time-date><a href="#date0">date</a></code> attribute would have
+   <p>...the <code><a href="#time0">time</a></code> element's <code
+    title=dom-time-date><a href="#date1">date</a></code> attribute would have
     the value null, the <code title=dom-time-time><a
-    href="#time1">time</a></code> attribute would have the value
+    href="#time2">time</a></code> attribute would have the value
     28,800,000ms, and the <code title=dom-time-timezone><a
     href="#timezone0">timezone</a></code> attribute would return null.</p>
   </div>
@@ -16788,7 +16862,7 @@
   So are pears.
  </ins>
 </aside></pre>
-   <!-- Those date's aren't random. They're the start and end of
+   <!-- Those dates aren't random. They're the start and end of
    something. Can you guess what? -->
    </div>
 
@@ -16840,7 +16914,7 @@
    part of that document that discusses the change.
 
   <p>If the <code title=attr-mod-cite><a href="#cite3">cite</a></code>
-   attribute is present, it must be a <a href="#valid9">valid URL</a> that
+   attribute is present, it must be a <a href="#valid14">valid URL</a> that
    explains the change. User agents should allow users to follow such
    citation links.
 
@@ -17193,7 +17267,7 @@
    content</a>.
 
   <p>The <code title=attr-img-src><a href="#src3">src</a></code> attribute
-   must be present, and must contain a <a href="#valid9">valid URL</a>
+   must be present, and must contain a <a href="#valid14">valid URL</a>
    referencing a non-interactive, optionally animated, image resource that is
    neither paged nor scripted.
 
@@ -18391,15 +18465,15 @@
   <p>The <dfn id=src5 title=attr-iframe-src><code>src</code></dfn> attribute
    gives the address of a page that the nested <a href="#browsing1">browsing
    context</a> is to contain. The attribute, if present, must be a <a
-   href="#valid9">valid URL</a>. When the browsing context is created, if the
-   attribute is present, the user agent must <a href="#navigate">navigate</a>
-   the element's browsing context to the given <a href="#url">URL</a>, with
-   <a href="#replacement">replacement enabled</a>, and with the <code><a
-   href="#iframe">iframe</a></code> element's document's <a
-   href="#browsing1">browsing context</a> as the <a href="#source0">source
-   browsing context</a>. If the user <a href="#navigate"
-   title=navigate>navigates</a> away from this page, the <code><a
-   href="#iframe">iframe</a></code>'s corresponding <code><a
+   href="#valid14">valid URL</a>. When the browsing context is created, if
+   the attribute is present, the user agent must <a
+   href="#navigate">navigate</a> the element's browsing context to the given
+   <a href="#url">URL</a>, with <a href="#replacement">replacement
+   enabled</a>, and with the <code><a href="#iframe">iframe</a></code>
+   element's document's <a href="#browsing1">browsing context</a> as the <a
+   href="#source0">source browsing context</a>. If the user <a
+   href="#navigate" title=navigate>navigates</a> away from this page, the
+   <code><a href="#iframe">iframe</a></code>'s corresponding <code><a
    href="#window">Window</a></code> object will reference new
    <code>Document</code> objects, but the <code title=attr-iframe-src><a
    href="#src5">src</a></code> attribute will not change.
@@ -18420,7 +18494,7 @@
    href="#aboutblank">about:blank</a></code><!-- XXX xref --> page.
 
   <p>The <dfn id=name1 title=attr-iframe-name><code>name</code></dfn>
-   attribute, if present, must be a <a href="#valid10">valid browsing context
+   attribute, if present, must be a <a href="#valid15">valid browsing context
    name</a>. When the browsing context is created, if the attribute is
    present, the <a href="#browsing3">browsing context name</a> must be set to
    the value of this attribute; otherwise, the <a href="#browsing3">browsing
@@ -18827,7 +18901,7 @@
 
   <p>The <dfn id=src7 title=attr-embed-src><code>src</code></dfn> attribute
    gives the address of the resource being embedded. The attribute, if
-   present, must contain a <a href="#valid9">valid URL</a>.
+   present, must contain a <a href="#valid14">valid URL</a>.
 
   <p>The <dfn id=type6 title=attr-embed-type><code>type</code></dfn>
    attribute, if present, gives the MIME type of the plugin to instantiate.
@@ -19040,7 +19114,7 @@
 
   <p>The <dfn id=data title=attr-object-data><code>data</code></dfn>
    attribute, if present, specifies the address of the resource. If present,
-   the attribute must be a <a href="#valid9">valid URL</a>.
+   the attribute must be a <a href="#valid14">valid URL</a>.
 
   <p>The <dfn id=type8 title=attr-object-type><code>type</code></dfn>
    attribute, if present, specifies the type of the resource. If present, the
@@ -19052,7 +19126,7 @@
    href="#type8">type</a></code> attributes must be present.
 
   <p>The <dfn id=name3 title=attr-object-name><code>name</code></dfn>
-   attribute, if present, must be a <a href="#valid10">valid browsing context
+   attribute, if present, must be a <a href="#valid15">valid browsing context
    name</a>.
 
   <p>When the element is created, and subsequently whenever the <code
@@ -19525,7 +19599,7 @@
   <p>The <dfn id=poster title=attr-video-poster><code>poster</code></dfn>
    attribute gives the address of an image file that the user agent can show
    while no video data is available. The attribute, if present, must contain
-   a <a href="#valid9">valid URL</a>. If the specified resource is to be
+   a <a href="#valid14">valid URL</a>. If the specified resource is to be
    used, it must be <a href="#fetch" title=fetch>fetched</a> when the element
    is created or when the <code title=attr-video-poster><a
    href="#poster">poster</a></code> attribute is set. The <dfn
@@ -19935,7 +20009,8 @@
 
   <p>The <dfn id=src9 title=attr-source-src><code>src</code></dfn> attribute
    gives the address of the <a href="#media10">media resource</a>. The value
-   must be a <a href="#valid9">valid URL</a>. This attribute must be present.
+   must be a <a href="#valid14">valid URL</a>. This attribute must be
+   present.
 
   <p>The <dfn id=type10 title=attr-source-type><code>type</code></dfn>
    attribute gives the type of the <a href="#media10">media resource</a>, to
@@ -20295,7 +20370,7 @@
   <p>The <dfn id=src11 title=attr-media-src><code>src</code></dfn> content
    attribute on <a href="#media7" title="media element">media elements</a>
    gives the address of the media resource (video, audio) to show. The
-   attribute, if present, must contain a <a href="#valid9">valid URL</a>.
+   attribute, if present, must contain a <a href="#valid14">valid URL</a>.
 
   <p>If the <code title=attr-media-src><a href="#src11">src</a></code>
    attribute of a <a href="#media7">media element</a> that is already in a
@@ -25443,7 +25518,7 @@
    <code><a href="#img">img</a></code> or <code><a
    href="#object">object</a></code> element. The <code
    title=attr-area-usemap>usemap</code> attribute, if specified, must be a <a
-   href="#valid8">valid hash-name reference</a> to a <code><a
+   href="#valid13">valid hash-name reference</a> to a <code><a
    href="#map">map</a></code> element.
 
   <div class=example>
@@ -28286,40 +28361,40 @@
      <td> A date and time control
 
     <tr>
-     <td> <dfn id=date1
+     <td> <dfn id=date2
       title=attr-input-type-date-keyword><code>date</code></dfn>
 
-     <td> <a href="#date2" title=attr-input-type-date>Date</a>
+     <td> <a href="#date3" title=attr-input-type-date>Date</a>
 
      <td> A date (year, month, day) with no time zone
 
      <td> A date control
 
     <tr>
-     <td> <dfn id=month0
+     <td> <dfn id=month1
       title=attr-input-type-month-keyword><code>month</code></dfn>
 
-     <td> <a href="#month1" title=attr-input-type-month>Month</a>
+     <td> <a href="#month2" title=attr-input-type-month>Month</a>
 
      <td> A date consisting of a year and a month with no time zone
 
      <td> A month control
 
     <tr>
-     <td> <dfn id=week
+     <td> <dfn id=week0
       title=attr-input-type-week-keyword><code>week</code></dfn>
 
-     <td> <a href="#week0" title=attr-input-type-week>Week</a>
+     <td> <a href="#week1" title=attr-input-type-week>Week</a>
 
      <td> A date consisting of a year and a week number with no time zone
 
      <td> A week control
 
     <tr>
-     <td> <dfn id=time2
+     <td> <dfn id=time3
       title=attr-input-type-time-keyword><code>time</code></dfn>
 
-     <td> <a href="#time3" title=attr-input-type-time>Time</a>
+     <td> <a href="#time4" title=attr-input-type-time>Time</a>
 
      <td> A time (hour, minute, seconds, fractional seconds) with no time
       zone
@@ -28331,7 +28406,7 @@
       title=attr-input-type-datetime-local-keyword><code>datetime-local</code></dfn>
       
 
-     <td> <a href="#local0" title=attr-input-type-datetime-local>Local Date
+     <td> <a href="#local2" title=attr-input-type-datetime-local>Local Date
       and Time</a>
 
      <td> A date and time (year, month, day, hour, minute, second, fraction
@@ -28498,15 +28573,15 @@
      <th> <a href="#date-and0" title=attr-input-type-datetime>Date and
       Time</a>
 
-     <th> <a href="#date2" title=attr-input-type-date>Date</a>
+     <th> <a href="#date3" title=attr-input-type-date>Date</a>
 
-     <th> <a href="#month1" title=attr-input-type-month>Month</a>
+     <th> <a href="#month2" title=attr-input-type-month>Month</a>
 
-     <th> <a href="#week0" title=attr-input-type-week>Week</a>
+     <th> <a href="#week1" title=attr-input-type-week>Week</a>
 
-     <th> <a href="#time3" title=attr-input-type-time>Time</a>
+     <th> <a href="#time4" title=attr-input-type-time>Time</a>
 
-     <th> <a href="#local0" title=attr-input-type-datetime-local>Local Date
+     <th> <a href="#local2" title=attr-input-type-datetime-local>Local Date
       and Time</a>
 
      <th> <a href="#number2" title=attr-input-type-number>Number</a>
@@ -29761,6 +29836,10 @@
 
   <h5 id=states><span class=secno>4.10.4.1. </span>States of the <code
    title=attr-input-type><a href="#type14">type</a></code> attribute</h5>
+  <!-- XXX for things that say "express it as a valid foo", make sure
+  that valid foo is unambiguous, and if not, define a canonical
+  serialisation. e.g. should it be 2008-01-01T00:00 or
+  2008-01-01t00:00? should it be 1e2 or 100? -->
 
   <h6 id=text-state><span class=secno>4.10.4.1.1. </span><dfn id=text3
    title=attr-input-type-text>Text</dfn> state</h6>
@@ -29916,7 +29995,7 @@
    the URL represented by its <a href="#value12"
    title=concept-fe-value>value</a>. User agents may allow the user to set
    the <a href="#value12" title=concept-fe-value>value</a> to a string that
-   is not a <a href="#valid9">valid URL</a>. User agents should allow the
+   is not a <a href="#valid14">valid URL</a>. User agents should allow the
    user to set the <a href="#value12" title=concept-fe-value>value</a> to the
    empty string. User agents must not allow users to insert U+000A LINE FEED
    (LF) or U+000D CARRIAGE RETURN (CR) characters into the <a href="#value12"
@@ -29927,7 +30006,7 @@
 
   <p><strong>Constraint validation:</strong> While the <a href="#value12"
    title=concept-fe-value>value</a> of the element is not a <a
-   href="#valid9">valid URL</a>, the element is <a
+   href="#valid14">valid URL</a>, the element is <a
    href="#suffering">suffering from a type mismatch</a>.
 
   <p>The following common <code><a href="#input0">input</a></code> element
@@ -30044,34 +30123,37 @@
   <p>The <code><a href="#input0">input</a></code> element represents a
    control for setting the element's <a href="#value12"
    title=concept-fe-value>value</a> to a string representing a specific <a
-   href="#utc-date">UTC date and time</a>. User agents may display the date
-   and time in whatever timezone is appropriate for the user.
+   href="#utc-date" title=concept-datetime>UTC date and time</a>. User agents
+   may display the date and time in whatever timezone is appropriate for the
+   user.
 
   <p>If the element is <i title=concept-input-mutable><a
    href="#mutable">mutable</a></i>, the user should allow the user to change
-   the date and time represented by its <a href="#value12"
-   title=concept-fe-value>value</a>, as obtained by <a href="#parse0"
-   title="parse a UTC date and time">parsing a UTC date and time</a> from it.
-   User agents must not allow the user to set the <a href="#value12"
+   the <a href="#utc-date" title=concept-datetime>UTC date and time</a>
+   represented by its <a href="#value12" title=concept-fe-value>value</a>, as
+   obtained by <a href="#parse0" title="parse a UTC date and time
+   string">parsing a UTC date and time</a> from it. User agents must not
+   allow the user to set the <a href="#value12"
    title=concept-fe-value>value</a> to a string that is not a <a
-   href="#valid6">valid UTC date and time</a>. If the user agent provides a
-   user interface for selecting a date and time, then the <a href="#value12"
+   href="#valid6">valid UTC date and time string</a>. If the user agent
+   provides a user interface for selecting a <a href="#utc-date"
+   title=concept-datetime>UTC date and time</a>, then the <a href="#value12"
    title=concept-fe-value>value</a> must be set to a <a href="#valid6">valid
-   UTC date and time</a> representing the user's selection. User agents
-   should allow the user to set the <a href="#value12"
+   UTC date and time string</a> representing the user's selection. User
+   agents should allow the user to set the <a href="#value12"
    title=concept-fe-value>value</a> to the empty string.
 
   <p><strong>The <a href="#value8">value sanitization algorithm</a> is as
    follows:</strong> If the <a href="#value12"
    title=concept-fe-value>value</a> of the element is not a <a
-   href="#valid6">valid UTC date and time</a>, then set it to the empty
-   string instead.
+   href="#valid6">valid UTC date and time string</a>, then set it to the
+   empty string instead.
 
   <p>The <code title=attr-input-min><a href="#min2">min</a></code> attribute,
    if specified, must have a value that is a <a href="#valid6">valid UTC date
-   and time</a>. The <code title=attr-input-max><a
+   and time string</a>. The <code title=attr-input-max><a
    href="#max4">max</a></code> attribute, if specified, must have a value
-   that is a <a href="#valid6">valid UTC date and time</a>.
+   that is a <a href="#valid6">valid UTC date and time string</a>.
 
   <p>The <code title=attr-input-step><a href="#step0">step</a></code>
    attribute is expressed in seconds. The <a href="#step-"
@@ -30082,43 +30164,48 @@
 
   <p>When the element is <a href="#suffering3">suffering from a step
    mismatch</a>, the user agent may round the element's <span
-   title=concept-input-value>value</span> to the nearest date and time for
-   which the element would not <a href="#suffering3" title="suffering from a
-   step mismatch">suffer from a step mismatch</a>.
+   title=concept-input-value>value</span> to the nearest <a href="#utc-date"
+   title=concept-datetime>UTC date and time</a> for which the element would
+   not <a href="#suffering3" title="suffering from a step mismatch">suffer
+   from a step mismatch</a>.
 
   <p><strong>The <a href="#algorithm5"
    title=concept-input-value-string-number>algorithm to convert a string to a
    number</a>, given a string <var title="">input</var>, is as
-   follows:</strong> If <a href="#parse0" title="parse a UTC date and
-   time">parsing a UTC date and time</a> from <var title="">input</var>
+   follows:</strong> If <a href="#parse0" title="parse a UTC date and time
+   string">parsing a UTC date and time</a> from <var title="">input</var>
    results in an error, then return an error; otherwise, return the number of
    milliseconds elapsed from midnight UTC on the morning of 1970-01-01 (the
    time represented by the value "<code
-   title="">1970-01-01T00:00:00.0Z</code>") to the parsed date and time,
-   ignoring leap seconds.
+   title="">1970-01-01T00:00:00.0Z</code>") to the parsed <a href="#utc-date"
+   title=concept-datetime>UTC date and time</a>, ignoring leap seconds.
 
   <p><strong>The <a href="#algorithm6"
    title=concept-input-value-number-string>algorithm to convert a number to a
    string</a>, given a number <var title="">input</var>, is as
-   follows:</strong> Return a <a href="#valid6">valid UTC date and time</a>
-   that represents the date and time in UTC that is <var title="">input</var>
-   milliseconds after midnight UTC on the morning of 1970-01-01 (the time
-   represented by the value "<code title="">1970-01-01T00:00:00.0Z</code>").
+   follows:</strong> Return a <a href="#valid6">valid UTC date and time
+   string</a> that represents the <a href="#utc-date"
+   title=concept-datetime>date and time in UTC</a> that is <var
+   title="">input</var> milliseconds after midnight UTC on the morning of
+   1970-01-01 (the time represented by the value "<code
+   title="">1970-01-01T00:00:00.0Z</code>").
 
   <p><strong>The <a href="#algorithm7"
    title=concept-input-value-string-date>algorithm to convert a string to a
    <code>Date</code> object</a>, given a string <var title="">input</var>, is
-   as follows:</strong> If <a href="#parse0" title="parse a UTC date and
-   time">parsing a UTC date and time</a> from <var title="">input</var>
+   as follows:</strong> If <a href="#parse0" title="parse a UTC date and time
+   string">parsing a UTC date and time</a> from <var title="">input</var>
    results in an error, then return an error; otherwise, return a
-   <code>Date</code> object representing the parsed date and time.
+   <code>Date</code> object representing the parsed <a href="#utc-date"
+   title=concept-datetime>UTC date and time</a>.
 
   <p><strong>The <a href="#algorithm8"
    title=concept-input-value-date-string>algorithm to convert a
    <code>Date</code> object to a string</a>, given a <code>Date</code> object
    <var title="">input</var>, is as follows:</strong> Return a <a
-   href="#valid6">valid UTC date and time</a> that represents the date and
-   time in UTC that is represented by <var title="">input</var>.
+   href="#valid6">valid UTC date and time string</a> that represents the <a
+   href="#utc-date" title=concept-datetime>date and time in UTC</a> that is
+   represented by <var title="">input</var>.
 
   <p>The following common <code><a href="#input0">input</a></code> element
    content attributes, DOM attributes, and methods apply to the element:
@@ -30159,83 +30246,86 @@
    href="#checked1">checked</a></code> DOM attribute does not apply to the
    element.
 
-  <h6 id=date-state><span class=secno>4.10.4.1.6. </span><dfn id=date2
+  <h6 id=date-state><span class=secno>4.10.4.1.6. </span><dfn id=date3
    title=attr-input-type-date>Date</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
    title=attr-input-type><a href="#type14">type</a></code> attribute is in
-   the <a href="#date2" title=attr-input-type-date>Date</a> state, the rules
+   the <a href="#date3" title=attr-input-type-date>Date</a> state, the rules
    in this section apply.
 
   <p class=big-issue>...
 
-  <h6 id=month><span class=secno>4.10.4.1.7. </span><dfn id=month1
+  <h6 id=month><span class=secno>4.10.4.1.7. </span><dfn id=month2
    title=attr-input-type-month>Month</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
    title=attr-input-type><a href="#type14">type</a></code> attribute is in
-   the <a href="#month1" title=attr-input-type-month>Month</a> state, the
+   the <a href="#month2" title=attr-input-type-month>Month</a> state, the
    rules in this section apply.
 
   <p class=big-issue>...
 
-  <h6 id=week-state><span class=secno>4.10.4.1.8. </span><dfn id=week0
+  <h6 id=week-state><span class=secno>4.10.4.1.8. </span><dfn id=week1
    title=attr-input-type-week>Week</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
    title=attr-input-type><a href="#type14">type</a></code> attribute is in
-   the <a href="#week0" title=attr-input-type-week>Week</a> state, the rules
+   the <a href="#week1" title=attr-input-type-week>Week</a> state, the rules
    in this section apply.
 
   <p class=big-issue>...
 
-  <h6 id=time-state><span class=secno>4.10.4.1.9. </span><dfn id=time3
+  <h6 id=time-state><span class=secno>4.10.4.1.9. </span><dfn id=time4
    title=attr-input-type-time>Time</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
    title=attr-input-type><a href="#type14">type</a></code> attribute is in
-   the <a href="#time3" title=attr-input-type-time>Time</a> state, the rules
+   the <a href="#time4" title=attr-input-type-time>Time</a> state, the rules
    in this section apply.
 
   <p class=big-issue>...
 
-  <h6 id=local><span class=secno>4.10.4.1.10. </span><dfn id=local0
+  <h6 id=local0><span class=secno>4.10.4.1.10. </span><dfn id=local2
    title=attr-input-type-datetime-local>Local Date and Time</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
    title=attr-input-type><a href="#type14">type</a></code> attribute is in
-   the <a href="#local0" title=attr-input-type-datetime-local>Local Date and
+   the <a href="#local2" title=attr-input-type-datetime-local>Local Date and
    Time</a> state, the rules in this section apply.
 
   <p>The <code><a href="#input0">input</a></code> element represents a
    control for setting the element's <a href="#value12"
-   title=concept-fe-value>value</a> to a string representing a <span>date and
-   time</span>, with no time zone information.
+   title=concept-fe-value>value</a> to a string representing a <a
+   href="#local1" title=concept-datetime-local>local date and time</a>, with
+   no time zone information.
 
   <p>If the element is <i title=concept-input-mutable><a
    href="#mutable">mutable</a></i>, the user should allow the user to change
-   the date and time represented by its <a href="#value12"
-   title=concept-fe-value>value</a>, as obtained by <span title="parse a date
-   and time">parsing a date and time</span> from it. User agents must not
-   allow the user to set the <a href="#value12"
-   title=concept-fe-value>value</a> to a string that is not a <span>valid
-   date and time</span>. If the user agent provides a user interface for
-   selecting a date and time, then the <a href="#value12"
-   title=concept-fe-value>value</a> must be set to a <span>valid date and
-   time</span> representing the user's selection. User agents should allow
+   the <a href="#local1" title=concept-datetime-local>date and time</a>
+   represented by its <a href="#value12" title=concept-fe-value>value</a>, as
+   obtained by <a href="#parse1" title="parse a local date and time
+   string">parsing a date and time</a> from it. User agents must not allow
    the user to set the <a href="#value12" title=concept-fe-value>value</a> to
-   the empty string.
+   a string that is not a <a href="#valid7">valid local date and time
+   string</a>. If the user agent provides a user interface for selecting a <a
+   href="#local1" title=concept-datetime-local>local date and time</a>, then
+   the <a href="#value12" title=concept-fe-value>value</a> must be set to a
+   <a href="#valid7">valid local date and time string</a> representing the
+   user's selection. User agents should allow the user to set the <a
+   href="#value12" title=concept-fe-value>value</a> to the empty string.
 
   <p><strong>The <a href="#value8">value sanitization algorithm</a> is as
    follows:</strong> If the <a href="#value12"
-   title=concept-fe-value>value</a> of the element is not a <span>valid date
-   and time</span>, then set it to the empty string instead.
+   title=concept-fe-value>value</a> of the element is not a <a
+   href="#valid7">valid local date and time string</a>, then set it to the
+   empty string instead.
 
   <p>The <code title=attr-input-min><a href="#min2">min</a></code> attribute,
-   if specified, must have a value that is a <span>valid date and
-   time</span>. The <code title=attr-input-max><a href="#max4">max</a></code>
-   attribute, if specified, must have a value that is a <span>valid date and
-   time</span>.
+   if specified, must have a value that is a <a href="#valid7">valid local
+   date and time string</a>. The <code title=attr-input-max><a
+   href="#max4">max</a></code> attribute, if specified, must have a value
+   that is a <a href="#valid7">valid local date and time string</a>.
 
   <p>The <code title=attr-input-step><a href="#step0">step</a></code>
    attribute is expressed in seconds. The <a href="#step-"
@@ -30246,27 +30336,30 @@
 
   <p>When the element is <a href="#suffering3">suffering from a step
    mismatch</a>, the user agent may round the element's <span
-   title=concept-input-value>value</span> to the nearest date and time for
-   which the element would not <a href="#suffering3" title="suffering from a
-   step mismatch">suffer from a step mismatch</a>.
+   title=concept-input-value>value</span> to the nearest <a href="#local1"
+   title=concept-datetime-local>local date and time</a> for which the element
+   would not <a href="#suffering3" title="suffering from a step
+   mismatch">suffer from a step mismatch</a>.
 
   <p><strong>The <a href="#algorithm5"
    title=concept-input-value-string-number>algorithm to convert a string to a
    number</a>, given a string <var title="">input</var>, is as
-   follows:</strong> If <span title="parse a date and time">parsing a date
-   and time</span> from <var title="">input</var> results in an error, then
-   return an error; otherwise, return the number of milliseconds elapsed from
-   midnight on the morning of 1970-01-01 (the time represented by the value
-   "<code title="">1970-01-01T00:00:00.0</code>") to the parsed date and
-   time, ignoring leap seconds.
+   follows:</strong> If <a href="#parse1" title="parse a local date and time
+   string">parsing a date and time</a> from <var title="">input</var> results
+   in an error, then return an error; otherwise, return the number of
+   milliseconds elapsed from midnight on the morning of 1970-01-01 (the time
+   represented by the value "<code title="">1970-01-01T00:00:00.0</code>") to
+   the parsed <a href="#local1" title=concept-datetime-local>local date and
+   time</a>, ignoring leap seconds.
 
   <p><strong>The <a href="#algorithm6"
    title=concept-input-value-number-string>algorithm to convert a number to a
    string</a>, given a number <var title="">input</var>, is as
-   follows:</strong> Return a <span>valid date and time</span> that
-   represents the date and time that is <var title="">input</var>
-   milliseconds after midnight on the morning of 1970-01-01 (the time
-   represented by the value "<code title="">1970-01-01T00:00:00.0</code>").
+   follows:</strong> Return a <a href="#valid7">valid local date and time
+   string</a> that represents the date and time that is <var
+   title="">input</var> milliseconds after midnight on the morning of
+   1970-01-01 (the time represented by the value "<code
+   title="">1970-01-01T00:00:00.0</code>").
 
   <p>The following common <code><a href="#input0">input</a></code> element
    content attributes, DOM attributes, and methods apply to the element:
@@ -34719,7 +34812,7 @@
 
   <p>The <dfn id=icon title=attr-command-icon><code>icon</code></dfn>
    attribute gives a picture that represents the command. If the attribute is
-   specified, the attribute's value must contain a <a href="#valid9">valid
+   specified, the attribute's value must contain a <a href="#valid14">valid
    URL</a>.
 
   <p>The <dfn id=disabled9
@@ -36159,10 +36252,10 @@
    processing model is to be applied to that element.
 
   <p>The <code title=attr-template><a href="#template">template</a></code>
-   attribute, when specified, must be a <a href="#valid9">valid URL</a> to an
-   XML or HTML document, or a fragment identifier pointing at another part of
-   the document. If there is a fragment identifier present, then the element
-   with that ID in the target document must be a <code><a
+   attribute, when specified, must be a <a href="#valid14">valid URL</a> to
+   an XML or HTML document, or a fragment identifier pointing at another part
+   of the document. If there is a fragment identifier present, then the
+   element with that ID in the target document must be a <code><a
    href="#datatemplate0">datatemplate</a></code> element, otherwise, the root
    element must be a <code><a href="#datatemplate0">datatemplate</a></code>
    element.
@@ -36175,7 +36268,7 @@
   <p>The <dfn id=ref title=attr-ref><code>ref</code></dfn> attribute may be
    specified on any element on which the <code title=attr-template><a
    href="#template">template</a></code> attribute is specified. If it is
-   specified, it must be a <a href="#valid9">valid URL</a> to an XML or HTML
+   specified, it must be a <a href="#valid14">valid URL</a> to an XML or HTML
    document, or a fragment identifier pointing at another part of the
    document.
 
@@ -37262,13 +37355,13 @@
    name</dfn>. By default, a browsing context has no name (its name is not
    set).
 
-  <p>A <dfn id=valid10>valid browsing context name</dfn> is any string with
+  <p>A <dfn id=valid15>valid browsing context name</dfn> is any string with
    at least one character that does not start with a U+005F LOW LINE
    character. (Names starting with an underscore are reserved for special
    keywords.)
 
-  <p>A <dfn id=valid11>valid browsing context name or keyword</dfn> is any
-   string that is either a <a href="#valid10">valid browsing context name</a>
+  <p>A <dfn id=valid16>valid browsing context name or keyword</dfn> is any
+   string that is either a <a href="#valid15">valid browsing context name</a>
    or that is an <a href="#ascii">ASCII case-insensitive</a> match for one
    of: <code title="">_blank</code>, <code title="">_self</code>, <code
    title="">_parent</code>, or <code title="">_top</code>.
@@ -37526,7 +37619,7 @@
   <p>The method has four arguments, though they are all optional.
 
   <p>The first argument, <var title="">url</var>, must be a <a
-   href="#valid9">valid URL</a> for a page to load in the browsing context.
+   href="#valid14">valid URL</a> for a page to load in the browsing context.
    If no arguments are provided, or if the first argument is the empty
    string, then the <var title="">url</var> argument defaults to "<code><a
    href="#aboutblank">about:blank</a></code><!-- XXX xref -->". The argument
@@ -37536,7 +37629,7 @@
 
   <p>The second argument, <var title="">target</var>, specifies the <a
    href="#browsing3" title="browsing context name">name</a> of the browsing
-   context that is to be navigated. It must be a <a href="#valid11">valid
+   context that is to be navigated. It must be a <a href="#valid16">valid
    browsing context name or keyword</a>. If fewer than two arguments are
    provided, then the <var title="">name</var> argument defaults to the value
    "<code>_blank</code>".
@@ -37642,7 +37735,7 @@
        the <a href="#origin0">origin</a> is being determined.
 
      <li>
-      <p><a href="#parse1" title="parse a url">Parse</a> <var
+      <p><a href="#parse6" title="parse a url">Parse</a> <var
        title="">url</var>.
 
      <li>
@@ -40034,16 +40127,16 @@
     <p>When the current section is the explicit section or the online
      whitelist section, data lines must consist of zero or more U+0020 SPACE
      and U+0009 CHARACTER TABULATION (tab) characters, a <a
-     href="#valid9">valid URL</a> identifying a resource other than the
+     href="#valid14">valid URL</a> identifying a resource other than the
      manifest itself, and then zero or more U+0020 SPACE and U+0009 CHARACTER
      TABULATION (tab) characters.</p>
 
     <p>When the current section is the fallback section, data lines must
      consist of zero or more U+0020 SPACE and U+0009 CHARACTER TABULATION
-     (tab) characters, a <a href="#valid9">valid URL</a> identifying a
+     (tab) characters, a <a href="#valid14">valid URL</a> identifying a
      resource other than the manifest itself, one or more U+0020 SPACE and
      U+0009 CHARACTER TABULATION (tab) characters, another <a
-     href="#valid9">valid URL</a> identifying a resource other than the
+     href="#valid14">valid URL</a> identifying a resource other than the
      manifest itself, and then zero or more U+0020 SPACE and U+0009 CHARACTER
      TABULATION (tab) characters.</p>
 
@@ -40085,7 +40178,7 @@
 
   <h5 id=parsing1><span class=secno>5.7.3.3. </span>Parsing cache manifests</h5>
 
-  <p>When a user agent is to <dfn id=parse2>parse a manifest</dfn>, it means
+  <p>When a user agent is to <dfn id=parse7>parse a manifest</dfn>, it means
    that the user agent must run the following steps:
 
   <ol>
@@ -40427,7 +40520,7 @@
 
     <p>If the resource is labeled with the MIME type <code
      title="">text/cache-manifest</code>, parse <var title="">manifest</var>
-     according to the <a href="#parse2" title="parse a manifest">rules for
+     according to the <a href="#parse7" title="parse a manifest">rules for
      parsing manifests</a>, obtaining a list of <a href="#explicit"
      title=concept-appcache-explicit>explicit entries</a>, <a
      href="#fallback0" title=concept-appcache-fallback>fallback entries</a>
@@ -42452,7 +42545,7 @@
 
   <ol>
    <li>
-    <p><a href="#parse1" title="parse a url">Parse</a> the <a
+    <p><a href="#parse6" title="parse a url">Parse</a> the <a
      href="#url">URL</a>, and let <i>fragid</i> be the <a
      href="#ltfragmentgt" title=url-fragment><fragment></a> component
      of the URL.
@@ -43833,7 +43926,7 @@
 
   <p>The <dfn id=href6 title=attr-hyperlink-href><code>href</code></dfn>
    attribute on a hyperlink element must have a value that is a <a
-   href="#valid9">valid URL</a>. This URL is the <em>destination
+   href="#valid14">valid URL</a>. This URL is the <em>destination
    resource</em> of the hyperlink.
 
   <div class=note>
@@ -43854,7 +43947,7 @@
 
   <p>The <dfn id=target6
    title=attr-hyperlink-target><code>target</code></dfn> attribute, if
-   present, must be a <a href="#valid11">valid browsing context name or
+   present, must be a <a href="#valid16">valid browsing context name or
    keyword</a>. User agents use this name when <a
    href="#following0">following hyperlinks</a>.
 
@@ -48829,7 +48922,7 @@
    title="">url</var>)</code></dfn> constructor takes one argument, <var
    title="">url</var>, which specifies the <a href="#url">URL</a> to which to
    connect. When a <code><a href="#websocket0">WebSocket</a></code> object is
-   created, the UA must <a href="#parse1" title="parse a url">parse</a> this
+   created, the UA must <a href="#parse6" title="parse a url">parse</a> this
    argument and verify that the URL parses without failure and has a <a
    href="#ltschemegt" title=url-scheme><scheme></a> component whose
    value is either "<code title="">ws</code>" or "<code title="">wss</code>",
@@ -49733,7 +49826,7 @@
   <ol>
    <li>
     <p>If the value of the <var title="">targetOrigin</var> argument is not a
-     single U+002A ASTERISK character ("*"), and <a href="#parse1"
+     single U+002A ASTERISK character ("*"), and <a href="#parse6"
      title="parse a url">parsing</a> it as a <a href="#url">URL</a> fails,
      then throw a <code>SYNTAX_ERR</code> exception and abort the overall set
      of steps.</p>
@@ -49801,7 +49894,7 @@
 
    <li>
     <p>If the value of the <var title="">targetOrigin</var> argument is not a
-     single U+002A ASTERISK character ("*"), and <a href="#parse1"
+     single U+002A ASTERISK character ("*"), and <a href="#parse6"
      title="parse a url">parsing</a> it as a <a href="#url">URL</a> fails,
      then throw a <code>SYNTAX_ERR</code> exception and abort the overall set
      of steps.</p>
@@ -51268,7 +51361,7 @@
 
   <p>This specification defines the parsing rules for HTML documents, whether
    they are syntactically correct or not. Certain points in the parsing
-   algorithm are said to be <dfn id=parse3 title="parse error">parse
+   algorithm are said to be <dfn id=parse8 title="parse error">parse
    errors</dfn>. The error handling for parse errors is well-defined: user
    agents must either act as described below when encountering such problems,
    or must abort processing at the first error that they encounter for which
@@ -51799,7 +51892,7 @@
    column of the following table, it must instead use the encoding given in
    the cell in the second column of the same row. Any bytes that are treated
    differently due to this encoding aliasing must be considered <a
-   href="#parse3" title="parse error">parse errors</a>.
+   href="#parse8" title="parse error">parse errors</a>.
 
   <table>
    <caption>Character encoding overrides</caption>
@@ -51962,7 +52055,7 @@
 
   <p>All U+0000 NULL characters in the input must be replaced by U+FFFD
    REPLACEMENT CHARACTERs. Any occurrences of such characters is a <a
-   href="#parse3">parse error</a>.
+   href="#parse8">parse error</a>.
 
   <p>Any occurrences of any characters in the ranges U+0001 to U+0008,
    <!-- HT, LF allowed --> U+000B, <!-- FF, CR allowed --> U+000E to U+001F,
@@ -51974,7 +52067,7 @@
    U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE, U+5FFFF, U+6FFFE, U+6FFFF,
    U+7FFFE, U+7FFFF, U+8FFFE, U+8FFFF, U+9FFFE, U+9FFFF, U+AFFFE, U+AFFFF,
    U+BFFFE, U+BFFFF, U+CFFFE, U+CFFFF, U+DFFFE, U+DFFFF, U+EFFFE, U+EFFFF,
-   U+FFFFE, U+FFFFF, U+10FFFE, and U+10FFFF are <a href="#parse3"
+   U+FFFFE, U+FFFFF, U+10FFFE, and U+10FFFF are <a href="#parse8"
    title="parse error">parse errors</a>. (These are all control characters or
    permanently undefined Unicode characters.)
 
@@ -52605,16 +52698,16 @@
   <p>When a start tag token is emitted with its <i>self-closing flag</i> set,
    if the flag is not <dfn id=acknowledged title="acknowledge self-closing
    flag">acknowledged</dfn> when it is processed by the tree construction
-   stage, that is a <a href="#parse3">parse error</a>.
+   stage, that is a <a href="#parse8">parse error</a>.
 
   <p>When an end tag token is emitted, the <a href="#content4">content model
    flag</a> must be switched to the PCDATA state.
 
   <p>When an end tag token is emitted with attributes, that is a <a
-   href="#parse3">parse error</a>.
+   href="#parse8">parse error</a>.
 
   <p>When an end tag token is emitted with its <i>self-closing flag</i> set,
-   that is a <a href="#parse3">parse error</a>.
+   that is a <a href="#parse8">parse error</a>.
 
   <p>Before each step of the tokeniser, the user agent may check to see if
    either one of the scripts in the <a href="#list-of1">list of scripts that
@@ -52762,18 +52855,18 @@
 
      <dt>U+003E GREATER-THAN SIGN (>)
 
-     <dd><a href="#parse3">Parse error</a>. Emit a U+003C LESS-THAN SIGN
+     <dd><a href="#parse8">Parse error</a>. Emit a U+003C LESS-THAN SIGN
       character token and a U+003E GREATER-THAN SIGN character token. Switch
       to the <a href="#data-state0">data state</a>.
 
      <dt>U+003F QUESTION MARK (?)
 
-     <dd><a href="#parse3">Parse error</a>. Switch to the <a
+     <dd><a href="#parse8">Parse error</a>. Switch to the <a
       href="#bogus1">bogus comment state</a>.
 
      <dt>Anything else
 
-     <dd><a href="#parse3">Parse error</a>. Emit a U+003C LESS-THAN SIGN
+     <dd><a href="#parse8">Parse error</a>. Emit a U+003C LESS-THAN SIGN
       character token and reconsume the current input character in the <a
       href="#data-state0">data state</a>.
     </dl>
@@ -52832,18 +52925,18 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Switch to the <a
+   <dd><a href="#parse8">Parse error</a>. Switch to the <a
     href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit a U+003C LESS-THAN SIGN
+   <dd><a href="#parse8">Parse error</a>. Emit a U+003C LESS-THAN SIGN
     character token and a U+002F SOLIDUS character token. Reconsume the EOF
     character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Switch to the <a
+   <dd><a href="#parse8">Parse error</a>. Switch to the <a
     href="#bogus1">bogus comment state</a>.
   </dl>
 
@@ -52882,7 +52975,7 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -52931,12 +53024,12 @@
 
    <dt>U+003D EQUALS SIGN (=)
 
-   <dd><a href="#parse3">Parse error</a>. Treat it as per the "anything else"
+   <dd><a href="#parse8">Parse error</a>. Treat it as per the "anything else"
     entry below.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -52987,12 +53080,12 @@
 
    <dt>U+0027 APOSTROPHE (')
 
-   <dd><a href="#parse3">Parse error</a>. Treat it as per the "anything else"
+   <dd><a href="#parse8">Parse error</a>. Treat it as per the "anything else"
     entry below.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53005,7 +53098,7 @@
    the tag token, if appropriate), the complete attribute's name must be
    compared to the other attributes on the same token; if there is already an
    attribute on the token with the exact same name, then this is a <a
-   href="#parse3">parse error</a> and the new attribute must be dropped,
+   href="#parse8">parse error</a> and the new attribute must be dropped,
    along with the value that gets associated with it (if any).
 
   <h5 id=after><span class=secno>8.2.4.8. </span><dfn id=after4>After
@@ -53050,12 +53143,12 @@
 
    <dt>U+0027 APOSTROPHE (')
 
-   <dd><a href="#parse3">Parse error</a>. Treat it as per the "anything else"
+   <dd><a href="#parse8">Parse error</a>. Treat it as per the "anything else"
     entry below.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53099,17 +53192,17 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token. Switch
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token. Switch
     to the <a href="#data-state0">data state</a>.
 
    <dt>U+003D EQUALS SIGN (=)
 
-   <dd><a href="#parse3">Parse error</a>. Treat it as per the "anything else"
+   <dd><a href="#parse8">Parse error</a>. Treat it as per the "anything else"
     entry below.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53137,7 +53230,7 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53166,7 +53259,7 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53210,12 +53303,12 @@
 
    <dt>U+003D EQUALS SIGN (=)
 
-   <dd><a href="#parse3">Parse error</a>. Treat it as per the "anything else"
+   <dd><a href="#parse8">Parse error</a>. Treat it as per the "anything else"
     entry below.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53267,12 +53360,12 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Reconsume the character in the <a
+   <dd><a href="#parse8">Parse error</a>. Reconsume the character in the <a
     href="#before4">before attribute name state</a>.
   </dl>
 
@@ -53289,12 +53382,12 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the current tag token.
+   <dd><a href="#parse8">Parse error</a>. Emit the current tag token.
     Reconsume the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Reconsume the character in the <a
+   <dd><a href="#parse8">Parse error</a>. Reconsume the character in the <a
     href="#before4">before attribute name state</a>.
   </dl>
 
@@ -53342,7 +53435,7 @@
    the <a href="#cdata2">CDATA section state</a> (which is unrelated to the
    <a href="#content4">content model flag</a>'s CDATA state).
 
-  <p>Otherwise, this is a <a href="#parse3">parse error</a>. Switch to the <a
+  <p>Otherwise, this is a <a href="#parse8">parse error</a>. Switch to the <a
    href="#bogus1">bogus comment state</a>. The next character that is
    consumed, if any, is the first character that will be in the comment.
 
@@ -53358,12 +53451,12 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Emit the comment token. Switch to
+   <dd><a href="#parse8">Parse error</a>. Emit the comment token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the comment token. Reconsume
+   <dd><a href="#parse8">Parse error</a>. Emit the comment token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53384,12 +53477,12 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Emit the comment token. Switch to
+   <dd><a href="#parse8">Parse error</a>. Emit the comment token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the comment token. Reconsume
+   <dd><a href="#parse8">Parse error</a>. Emit the comment token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
@@ -53411,7 +53504,7 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the comment token. Reconsume
+   <dd><a href="#parse8">Parse error</a>. Emit the comment token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.</dd>
    <!-- For
    security reasons: otherwise, hostile user could put a <script> in
@@ -53437,7 +53530,7 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the comment token. Reconsume
+   <dd><a href="#parse8">Parse error</a>. Emit the comment token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.</dd>
    <!-- For
    security reasons: otherwise, hostile user could put a <script> in
@@ -53465,13 +53558,13 @@
 
    <dt>U+002D HYPHEN-MINUS (-)
 
-   <dd><a href="#parse3">Parse error</a>. Append a U+002D HYPHEN-MINUS (-)
+   <dd><a href="#parse8">Parse error</a>. Append a U+002D HYPHEN-MINUS (-)
     character to the comment token's data. Stay in the <a
     href="#comment8">comment end state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Emit the comment token. Reconsume
+   <dd><a href="#parse8">Parse error</a>. Emit the comment token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.</dd>
    <!-- For
    security reasons: otherwise, hostile user could put a <script> in
@@ -53481,7 +53574,7 @@
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Append two U+002D HYPHEN-MINUS (-)
+   <dd><a href="#parse8">Parse error</a>. Append two U+002D HYPHEN-MINUS (-)
     characters and the input character to the comment token's data. Switch to
     the <a href="#comment">comment state</a>.
   </dl>
@@ -53505,7 +53598,7 @@
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Reconsume the current character in
+   <dd><a href="#parse8">Parse error</a>. Reconsume the current character in
     the <a href="#before6">before DOCTYPE name state</a>.
   </dl>
 
@@ -53528,13 +53621,13 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Create a new DOCTYPE token. Set its
+   <dd><a href="#parse8">Parse error</a>. Create a new DOCTYPE token. Set its
     <i>force-quirks flag</i> to <i>on</i>. Emit the token. Switch to the <a
     href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Create a new DOCTYPE token. Set its
+   <dd><a href="#parse8">Parse error</a>. Create a new DOCTYPE token. Set its
     <i>force-quirks flag</i> to <i>on</i>. Emit the token. Reconsume the EOF
     character in the <a href="#data-state0">data state</a>.
 
@@ -53568,7 +53661,7 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
@@ -53602,7 +53695,7 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
@@ -53619,7 +53712,7 @@
      characters and switch to the <a href="#before8">before DOCTYPE system
      identifier state</a>.</p>
 
-    <p>Otherwise, this is the <a href="#parse3">parse error</a>. Set the
+    <p>Otherwise, this is the <a href="#parse8">parse error</a>. Set the
      DOCTYPE token's <i>force-quirks flag</i> to <i>on</i>. Switch to the <a
      href="#bogus2">bogus DOCTYPE state</a>.</p>
   </dl>
@@ -53656,19 +53749,19 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Switch to the <a
     href="#bogus2">bogus DOCTYPE state</a>.
   </dl>
@@ -53686,13 +53779,13 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
@@ -53716,13 +53809,13 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
@@ -53770,13 +53863,13 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Switch to the <a
     href="#bogus2">bogus DOCTYPE state</a>.
   </dl>
@@ -53813,19 +53906,19 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Switch to the <a
     href="#bogus2">bogus DOCTYPE state</a>.
   </dl>
@@ -53843,13 +53936,13 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
@@ -53873,13 +53966,13 @@
 
    <dt>U+003E GREATER-THAN SIGN (>)
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Switch to
     the <a href="#data-state0">data state</a>.
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
@@ -53915,13 +54008,13 @@
 
    <dt>EOF
 
-   <dd><a href="#parse3">Parse error</a>. Set the DOCTYPE token's
+   <dd><a href="#parse8">Parse error</a>. Set the DOCTYPE token's
     <i>force-quirks flag</i> to <i>on</i>. Emit that DOCTYPE token. Reconsume
     the EOF character in the <a href="#data-state0">data state</a>.
 
    <dt>Anything else
 
-   <dd><a href="#parse3">Parse error</a>. Switch to the <a
+   <dd><a href="#parse8">Parse error</a>. Switch to the <a
     href="#bogus2">bogus DOCTYPE state</a>. (This does <em>not</em> set the
     DOCTYPE token's <i>force-quirks flag</i> to <i>on</i>.)
   </dl>
@@ -54039,18 +54132,18 @@
 
     <p>If no characters match the range, then don't consume any characters
      (and unconsume the U+0023 NUMBER SIGN character and, if appropriate, the
-     X character). This is a <a href="#parse3">parse error</a>; nothing is
+     X character). This is a <a href="#parse8">parse error</a>; nothing is
      returned.</p>
 
     <p>Otherwise, if the next character is a U+003B SEMICOLON, consume that
-     too. If it isn't, there is a <a href="#parse3">parse error</a>.</p>
+     too. If it isn't, there is a <a href="#parse8">parse error</a>.</p>
 
     <p>If one or more characters match the range, then take them all and
      interpret the string of characters as a number (either hexadecimal or
      decimal as appropriate).</p>
 
     <p>If that number is one of the numbers in the first column of the
-     following table, then this is a <a href="#parse3">parse error</a>. Find
+     following table, then this is a <a href="#parse8">parse error</a>. Find
      the row with that number in the first column, and return a character
      token for the Unicode character given in the second column of that row.</p>
 
@@ -54308,7 +54401,7 @@
      0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF,
      0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF,
      0xFFFFE, 0xFFFFF, 0x10FFFE, or 0x10FFFF, or is higher than 0x10FFFF,
-     then this is a <a href="#parse3">parse error</a>; return a character
+     then this is a <a href="#parse8">parse error</a>; return a character
      token for the U+FFFD REPLACEMENT CHARACTER character instead.</p>
 
     <p>Otherwise, return a character token for the Unicode character whose
@@ -54322,11 +54415,11 @@
      href="#named0">named character references</a> table (in a <a
      href="#case-sensitive">case-sensitive</a> manner).</p>
 
-    <p>If no match can be made, then this is a <a href="#parse3">parse
+    <p>If no match can be made, then this is a <a href="#parse8">parse
      error</a>. No characters are consumed, and nothing is returned.</p>
 
     <p>If the last character matched is not a U+003B SEMICOLON (<code
-     title="">;</code>), there is a <a href="#parse3">parse error</a>.</p>
+     title="">;</code>), there is a <a href="#parse8">parse error</a>.</p>
 
     <p>If the character reference is being consumed <a href="#character8"
      title="character reference in attribute value state">as part of an
@@ -54445,7 +54538,7 @@
    href="#current5">current node</a>. If the newly created element has an
    <code title="">xmlns</code> attribute in the <a href="#xmlns">XMLNS
    namespace</a> whose value is not exactly the same as the element's
-   namespace, that is a <a href="#parse3">parse error</a>.
+   namespace, that is a <a href="#parse8">parse error</a>.
 
   <p>When the steps below require the user agent to <dfn id=adjust>adjust
    MathML attributes</dfn> for a token, then, if the token has an attribute
@@ -54777,7 +54870,7 @@
      title="">HTML</code>", or if the token's public identifier is neither
      missing nor equal to the string "<code>XSLT-compat</code>", or if the
      token's system identifier is not missing, then there is a <a
-     href="#parse3">parse error</a>. Conformance checkers may, instead of
+     href="#parse8">parse error</a>. 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
@@ -55045,7 +55138,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p>Set the document to <a href="#quirks">quirks mode</a>.</p>
 
@@ -55065,7 +55158,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A comment token
 
@@ -55156,7 +55249,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -55186,7 +55279,7 @@
    <dt>Any other end tag
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>Anything else
 
@@ -55226,7 +55319,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -55362,7 +55455,7 @@
    <dt>Any other end tag
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>Anything else
 
@@ -55388,7 +55481,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -55433,12 +55526,12 @@
    <dt>Any other end tag
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>Anything else
 
    <dd> <!-- can't get here with an EOF and a fragment case -->
-    <p><a href="#parse3">Parse error</a>. Act as if an end tag with the tag
+    <p><a href="#parse8">Parse error</a>. Act as if an end tag with the tag
      name "noscript" had been seen and reprocess the current token.</p>
   </dl>
 
@@ -55468,7 +55561,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -55497,7 +55590,7 @@
     "noframes", "script", "style", "title"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p>Push the node pointed to by the <a href="#head-element"><code
      title="">head</code> element pointer</a> onto the <a href="#stack">stack
@@ -55517,7 +55610,7 @@
    <dt>Any <!--other--> end tag
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>Anything else
 
@@ -55553,12 +55646,12 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. For each attribute on the token,
+    <p><a href="#parse8">Parse error</a>. For each attribute on the token,
      check to see if the attribute is already present on the top element of
      the <a href="#stack">stack of open elements</a>. If it is not, add the
      attribute and its corresponding value to that element.</p>
@@ -55574,7 +55667,7 @@
    <dt>A start tag whose tag name is "body"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p>If the second element on the <a href="#stack">stack of open
      elements</a> is not a <code><a href="#body0">body</a></code> element,
@@ -55602,7 +55695,7 @@
      href="#tr">tr</a></code> element, the <code><a
      href="#body0">body</a></code> element, or the <code><a
      href="#html">html</a></code> element, then this is a <a
-     href="#parse3">parse error</a>.</p>
+     href="#parse8">parse error</a>.</p>
     <!-- (some of those are
     fragment cases) -->
     <p><a href="#stops">Stop parsing</a>.</p>
@@ -55612,7 +55705,7 @@
    <dd>
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an" title="has an element in scope">have a <code>body</code>
-     element in scope</a>, this is a <a href="#parse3">parse error</a>;
+     element in scope</a>, this is a <a href="#parse8">parse error</a>;
      ignore the token.</p>
 
     <p>Otherwise, if there is a node in the <a href="#stack">stack of open
@@ -55627,7 +55720,7 @@
      href="#tr">tr</a></code> element, the <code><a
      href="#body0">body</a></code> element, or the <code><a
      href="#html">html</a></code> element, then this is a <a
-     href="#parse3">parse error</a>.</p>
+     href="#parse8">parse error</a>.</p>
     <!-- (some of those are fragment cases) -->
     <!-- the insertion mode here is forcibly "in body". -->
     <p>Switch the <span>insertion mode</span> to "<a href="#after10"
@@ -55698,7 +55791,7 @@
 
    <dd>
     <p>If the <a href="#form-element"><code title=form>form</code> element
-     pointer</a> is not null, then this is a <a href="#parse3">parse
+     pointer</a> is not null, then this is a <a href="#parse8">parse
      error</a>; ignore the token.</p>
 
     <p>Otherwise:</p>
@@ -55861,7 +55954,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an" title="has an element in scope">have an element in
      scope</a> with the same tag name as that of the token, then this is a <a
-     href="#parse3">parse error</a>; ignore the token.</p>
+     href="#parse8">parse error</a>; ignore the token.</p>
 
     <p>Otherwise, run these steps:</p>
 
@@ -55872,7 +55965,7 @@
      <li>
       <p>If the <a href="#current5">current node</a> is not an element with
        the same tag name as that of the token, then this is a <a
-       href="#parse3">parse error</a>.
+       href="#parse8">parse error</a>.
 
      <li>
       <p>Pop elements from the <a href="#stack">stack of open elements</a>
@@ -55891,7 +55984,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an" title="has an element in scope">have an element in
      scope</a> with the same tag name as that of the token, then this is a <a
-     href="#parse3">parse error</a>; ignore the token.</p>
+     href="#parse8">parse error</a>; ignore the token.</p>
 
     <p>Otherwise, run these steps:</p>
 
@@ -55902,7 +55995,7 @@
      <li>
       <p>If the <a href="#current5">current node</a> is not an element with
        the same tag name as that of the token, then this is a <a
-       href="#parse3">parse error</a>.
+       href="#parse8">parse error</a>.
 
      <li>
       <p>Pop elements from the <a href="#stack">stack of open elements</a>
@@ -55918,7 +56011,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an" title="has an element in scope">have an element in
      scope</a> with the same tag name as that of the token, then this is a <a
-     href="#parse3">parse error</a>; act as if a start tag with the tag name
+     href="#parse8">parse error</a>; act as if a start tag with the tag name
      <code><a href="#p">p</a></code> had been seen, then reprocess the
      current token.</p>
 
@@ -55932,7 +56025,7 @@
      <li>
       <p>If the <a href="#current5">current node</a> is not an element with
        the same tag name as that of the token, then this is a <a
-       href="#parse3">parse error</a>.
+       href="#parse8">parse error</a>.
 
      <li>
       <p>Pop elements from the <a href="#stack">stack of open elements</a>
@@ -55948,7 +56041,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an" title="has an element in scope">have an element in
      scope</a> with the same tag name as that of the token, then this is a <a
-     href="#parse3">parse error</a>; ignore the token.</p>
+     href="#parse8">parse error</a>; ignore the token.</p>
 
     <p>Otherwise, run these steps:</p>
 
@@ -55960,7 +56053,7 @@
      <li>
       <p>If the <a href="#current5">current node</a> is not an element with
        the same tag name as that of the token, then this is a <a
-       href="#parse3">parse error</a>.
+       href="#parse8">parse error</a>.
 
      <li>
       <p>Pop elements from the <a href="#stack">stack of open elements</a>
@@ -55977,7 +56070,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an" title="has an element in scope">have an element in
      scope</a> whose tag name is one of "h1", "h2", "h3", "h4", "h5", or
-     "h6", then this is a <a href="#parse3">parse error</a>; ignore the
+     "h6", then this is a <a href="#parse8">parse error</a>; ignore the
      token. <!--
     XXX quirk: Act as if a start tag with the tag name given in the
     token had been seen, then reprocess the current token. --></p>
@@ -55991,7 +56084,7 @@
      <li>
       <p>If the <a href="#current5">current node</a> is not an element with
        the same tag name as that of the token, then this is a <a
-       href="#parse3">parse error</a>.
+       href="#parse8">parse error</a>.
 
      <li>
       <p>Pop elements from the <a href="#stack">stack of open elements</a>
@@ -56016,7 +56109,7 @@
     <p>If the <a href="#list-of4">list of active formatting elements</a>
      contains an element whose tag name is "a" between the end of the list
      and the last marker on the list (or the start of the list if there is no
-     marker on the list), then this is a <a href="#parse3">parse error</a>;
+     marker on the list), then this is a <a href="#parse8">parse error</a>;
      act as if an end tag with the tag name "a" had been seen, then remove
      that element from the <a href="#list-of4">list of active formatting
      elements</a> and the <a href="#stack">stack of open elements</a> if the
@@ -56059,7 +56152,7 @@
 
     <p>If the <a href="#stack">stack of open elements</a> <a href="#have-an"
      title="has an element in scope">has a <code>nobr</code> element in
-     scope</a>, then this is a <a href="#parse3">parse error</a>; act as if
+     scope</a>, then this is a <a href="#parse8">parse error</a>; act as if
      an end tag with the tag name "nobr" had been seen, then once again <a
      href="#reconstruct">reconstruct the active formatting elements</a>, if
      any.</p>
@@ -56091,19 +56184,19 @@
       <p>If there is no such node, or, if that node is also in the <a
        href="#stack">stack of open elements</a> but the element is not <a
        href="#have-an" title="has an element in scope">in scope</a>, then
-       this is a <a href="#parse3">parse error</a>; ignore the token, and
+       this is a <a href="#parse8">parse error</a>; ignore the token, and
        abort these steps.</p>
 
       <p>Otherwise, if there is such a node, but that node is not in the <a
        href="#stack">stack of open elements</a>, then this is a <a
-       href="#parse3">parse error</a>; remove the element from the list, and
+       href="#parse8">parse error</a>; remove the element from the list, and
        abort these steps.</p>
 
       <p>Otherwise, there is a <var title="">formatting element</var> and
        that element is in <a href="#stack" title="stack of open elements">the
        stack</a> and is <a href="#have-an" title="has an element in scope">in
        scope</a>. If the element is not the <a href="#current5">current
-       node</a>, this is a <a href="#parse3">parse error</a>. In any case,
+       node</a>, this is a <a href="#parse8">parse error</a>. In any case,
        proceed with the algorithm as written in the following steps.</p>
 
      <li>
@@ -56237,7 +56330,7 @@
    <dd>
     <p>If the <a href="#stack">stack of open elements</a> <a href="#have-an"
      title="has an element in scope">has a <code>button</code> element in
-     scope</a>, then this is a <a href="#parse3">parse error</a>; act as if
+     scope</a>, then this is a <a href="#parse8">parse error</a>; act as if
      an end tag with the tag name "button" had been seen, then reprocess the
      token.</p>
 
@@ -56278,7 +56371,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an" title="has an element in scope">have an element in
      scope</a> with the same tag name as that of the token, then this is a <a
-     href="#parse3">parse error</a>; ignore the token.</p>
+     href="#parse8">parse error</a>; ignore the token.</p>
 
     <p>Otherwise, run these steps:</p>
 
@@ -56289,7 +56382,7 @@
      <li>
       <p>If the <a href="#current5">current node</a> is not an element with
        the same tag name as that of the token, then this is a <a
-       href="#parse3">parse error</a>.
+       href="#parse8">parse error</a>.
 
      <li>
       <p>Pop elements from the <a href="#stack">stack of open elements</a>
@@ -56367,7 +56460,7 @@
    <dt>A start tag whose tag name is "image"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Change the token's tag name to
+    <p><a href="#parse8">Parse error</a>. Change the token's tag name to
      "img" and reprocess it. (Don't ask.)</p>
     <!-- As of
     2005-12, studies showed that around 0.2% of pages used the
@@ -56415,7 +56508,7 @@
    <dt id=isindex>A start tag whose tag name is "isindex"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p>If the <a href="#form-element"><code title="">form</code> element
      pointer</a> is not null, then ignore the token.</p>
@@ -56518,7 +56611,7 @@
      switched back to the PCDATA state.</p>
 
     <p>If the next token is an end tag token with the tag name "textarea",
-     ignore it. Otherwise, this is a <a href="#parse3">parse error</a>.</p>
+     ignore it. Otherwise, this is a <a href="#parse8">parse error</a>.</p>
 
    <dt>A start tag whose tag name is one of: "iframe", "noembed"
 
@@ -56594,7 +56687,7 @@
      title="has an element in scope">has a <code>ruby</code> element in
      scope</a>, then <a href="#generate">generate implied end tags</a>. If
      the <a href="#current5">current node</a> is not then a <code><a
-     href="#ruby">ruby</a></code> element, this is a <a href="#parse3">parse
+     href="#ruby">ruby</a></code> element, this is a <a href="#parse8">parse
      error</a>; pop all the nodes from the <a href="#current5">current
      node</a> up to the node immediately before the bottommost <code><a
      href="#ruby">ruby</a></code> element on the <a href="#stack">stack of
@@ -56605,7 +56698,7 @@
    <dt>An end tag whose tag name is "br"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Act as if a start tag token with
+    <p><a href="#parse8">Parse error</a>. Act as if a start tag token with
      the tag name "br" had been seen. Ignore the end tag token.</p>
 
    <dt>A start tag whose tag name is "math"
@@ -56677,7 +56770,7 @@
    <span>scripting flag</span> is enabled</dt>-->
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
     <!-- end tags are commented out because since they can never end
     up on the stack anyway, the default end tag clause will
     automatically handle them. we don't want to have text in the spec
@@ -56717,7 +56810,7 @@
        <li>
         <p>If the tag name of the end tag token does not match the tag name
          of the <a href="#current5">current node</a>, this is a <a
-         href="#parse3">parse error</a>.
+         href="#parse8">parse error</a>.
 
        <li>
         <p>Pop all the nodes from the <a href="#current5">current node</a> up
@@ -56729,7 +56822,7 @@
       <p>Otherwise, if <var title="">node</var> is in neither the <a
        href="#formatting">formatting</a> category nor the <a
        href="#phrasing1">phrasing</a> category, then this is a <a
-       href="#parse3">parse error</a>; ignore the token, and abort these
+       href="#parse8">parse error</a>; ignore the token, and abort these
        steps.
 
      <li>
@@ -56759,7 +56852,7 @@
    <dt>An end-of-file token
 
    <dd> <!-- can't be the fragment case -->
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p>If the <a href="#current5">current node</a> is a <code><a
      href="#script1">script</a></code> element, mark the <code><a
@@ -56892,7 +56985,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "caption"
 
@@ -56942,7 +57035,7 @@
    <dt>A start tag whose tag name is "table"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Act as if an end tag token with the
+    <p><a href="#parse8">Parse error</a>. Act as if an end tag token with the
      tag name "table" had been seen, then, if that token wasn't ignored,
      reprocess the current token.</p>
 
@@ -56955,7 +57048,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have an element
      in table scope</a> with the same tag name as the token, this is a <a
-     href="#parse3">parse error</a>. Ignore the token. (<a
+     href="#parse8">parse error</a>. Ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise:</p>
@@ -56969,7 +57062,7 @@
     "colgroup", "html", "tbody", "td", "tfoot", "th", "thead", "tr"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is one of: "style", "script"
 
@@ -56993,7 +57086,7 @@
 
     <p>Otherwise:</p>
 
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p><a href="#insert0">Insert an HTML element</a> for the token.</p>
 
@@ -57012,7 +57105,7 @@
    <dd>
     <p>If the <a href="#current5">current node</a> is not the root <code><a
      href="#html">html</a></code> element, then this is a <a
-     href="#parse3">parse error</a>.</p>
+     href="#parse8">parse error</a>.</p>
 
     <p class=note>It can only be the <a href="#current5">current node</a> in
      the <a href="#fragment">fragment case</a>.</p>
@@ -57022,7 +57115,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Process the token <a
+    <p><a href="#parse8">Parse error</a>. Process the token <a
      href="#using10">using the rules for</a> the "<a href="#in-body"
      title="insertion mode: in body">in body</a>" <span>insertion
      mode</span>, except that if the <a href="#current5">current node</a> is
@@ -57061,7 +57154,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have an element
      in table scope</a> with the same tag name as the token, this is a <a
-     href="#parse3">parse error</a>. Ignore the token. (<a
+     href="#parse8">parse error</a>. Ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise:</p>
@@ -57070,7 +57163,7 @@
 
     <p>Now, if the <a href="#current5">current node</a> is not a <code><a
      href="#caption0">caption</a></code> element, then this is a <a
-     href="#parse3">parse error</a>.</p>
+     href="#parse8">parse error</a>.</p>
 
     <p>Pop elements from this stack until a <code><a
      href="#caption0">caption</a></code> element has been popped from the
@@ -57088,7 +57181,7 @@
    <dt>An end tag whose tag name is "table"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Act as if an end tag with the tag
+    <p><a href="#parse8">Parse error</a>. Act as if an end tag with the tag
      name "caption" had been seen, then, if that token wasn't ignored,
      reprocess the current token.</p>
 
@@ -57099,7 +57192,7 @@
     "html", "tbody", "td", "tfoot", "th", "thead", "tr"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>Anything else
 
@@ -57136,7 +57229,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -57161,7 +57254,7 @@
    <dd>
     <p>If the <a href="#current5">current node</a> is the root <code><a
      href="#html">html</a></code> element, then this is a <a
-     href="#parse3">parse error</a>; ignore the token. (<a
+     href="#parse8">parse error</a>; ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise, pop the <a href="#current5">current node</a> (which will be
@@ -57173,7 +57266,7 @@
    <dt>An end tag whose tag name is "col"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>An end-of-file token
 
@@ -57216,7 +57309,7 @@
    <dt>A start tag whose tag name is one of: "th", "td"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Act as if a start tag with the tag
+    <p><a href="#parse8">Parse error</a>. Act as if a start tag with the tag
      name "tr" had been seen, then reprocess the current token.</p>
 
    <dt>An end tag whose tag name is one of: "tbody", "tfoot", "thead"
@@ -57225,7 +57318,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have an element
      in table scope</a> with the same tag name as the token, this is a <a
-     href="#parse3">parse error</a>. Ignore the token.</p>
+     href="#parse8">parse error</a>. Ignore the token.</p>
 
     <p>Otherwise:</p>
 
@@ -57246,7 +57339,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have a
      <code>tbody</code>, <code>thead</code>, or <code>tfoot</code> element in
-     table scope</a>, this is a <a href="#parse3">parse error</a>. Ignore the
+     table scope</a>, this is a <a href="#parse8">parse error</a>. Ignore the
      token. (<a href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise:</p>
@@ -57262,7 +57355,7 @@
     "colgroup", "html", "td", "th", "tr"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>Anything else
 
@@ -57311,7 +57404,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have an element
      in table scope</a> with the same tag name as the token, this is a <a
-     href="#parse3">parse error</a>. Ignore the token. (<a
+     href="#parse8">parse error</a>. Ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise:</p>
@@ -57343,7 +57436,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have an element
      in table scope</a> with the same tag name as the token, this is a <a
-     href="#parse3">parse error</a>. Ignore the token.</p>
+     href="#parse8">parse error</a>. Ignore the token.</p>
 
     <p>Otherwise, act as if an end tag with the tag name "tr" had been seen,
      then reprocess the current token.</p>
@@ -57352,7 +57445,7 @@
     "colgroup", "html", "td", "th"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>Anything else
 
@@ -57387,7 +57480,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have an element
      in table scope</a> with the same tag name as that of the token, then
-     this is a <a href="#parse3">parse error</a> and the token must be
+     this is a <a href="#parse8">parse error</a> and the token must be
      ignored.</p>
 
     <p>Otherwise:</p>
@@ -57396,7 +57489,7 @@
 
     <p>Now, if the <a href="#current5">current node</a> is not an element
      with the same tag name as the token, then this is a <a
-     href="#parse3">parse error</a>.</p>
+     href="#parse8">parse error</a>.</p>
 
     <p>Pop elements from this stack until an element with the same tag name
      as the token has been popped from the stack.</p>
@@ -57416,7 +57509,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does <em>not</em>
      <a href="#have-an0" title="has an element in table scope">have a
      <code>td</code> or <code>th</code> element in table scope</a>, then this
-     is a <a href="#parse3">parse error</a>; ignore the token. (<a
+     is a <a href="#parse8">parse error</a>; ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise, <a href="#close5">close the cell</a> (see below) and
@@ -57426,7 +57519,7 @@
     "colgroup", "html"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>An end tag whose tag name is one of: "table", "tbody", "tfoot",
     "thead", "tr"
@@ -57437,7 +57530,7 @@
      in table scope</a> with the same tag name as that of the token (which
      can only happen for "tbody", "tfoot" and "thead", or, in the <a
      href="#fragment">fragment case</a>), then this is a <a
-     href="#parse3">parse error</a> and the token must be ignored.</p>
+     href="#parse8">parse error</a> and the token must be ignored.</p>
 
     <p>Otherwise, <a href="#close5">close the cell</a> (see below) and
      reprocess the current token.</p>
@@ -57499,7 +57592,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -57542,7 +57635,7 @@
     <p>If the <a href="#current5">current node</a> is an <code><a
      href="#optgroup">optgroup</a></code> element, then pop that node from
      the <a href="#stack">stack of open elements</a>. Otherwise, this is a <a
-     href="#parse3">parse error</a>; ignore the token.</p>
+     href="#parse8">parse error</a>; ignore the token.</p>
 
    <dt>An end tag whose tag name is "option"
 
@@ -57550,7 +57643,7 @@
     <p>If the <a href="#current5">current node</a> is an <code><a
      href="#option">option</a></code> element, then pop that node from the <a
      href="#stack">stack of open elements</a>. Otherwise, this is a <a
-     href="#parse3">parse error</a>; ignore the token.</p>
+     href="#parse8">parse error</a>; ignore the token.</p>
 
    <dt>An end tag whose tag name is "select"
 
@@ -57558,7 +57651,7 @@
     <p>If the <a href="#stack">stack of open elements</a> does not <a
      href="#have-an0" title="has an element in table scope">have an element
      in table scope</a> with the same tag name as the token, this is a <a
-     href="#parse3">parse error</a>. Ignore the token. (<a
+     href="#parse8">parse error</a>. Ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise:</p>
@@ -57572,13 +57665,13 @@
    <dt>A start tag whose tag name is "select"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Act as if the token had been an end
+    <p><a href="#parse8">Parse error</a>. Act as if the token had been an end
      tag with the tag name "select" instead.</p>
 
    <dt>A start tag whose tag name is one of: "input", "textarea"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Act as if an end tag with the tag
+    <p><a href="#parse8">Parse error</a>. Act as if an end tag with the tag
      name "select" had been seen, and reprocess the token.</p>
 
    <dt>An end-of-file token
@@ -57586,7 +57679,7 @@
    <dd>
     <p>If the <a href="#current5">current node</a> is not the root <code><a
      href="#html">html</a></code> element, then this is a <a
-     href="#parse3">parse error</a>.</p>
+     href="#parse8">parse error</a>.</p>
 
     <p class=note>It can only be the <a href="#current5">current node</a> in
      the <a href="#fragment">fragment case</a>.</p>
@@ -57596,7 +57689,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
   </dl>
 
   <h5 id=parsing-main-inselectintable><span class=secno>8.2.5.19. </span>The
@@ -57612,14 +57705,14 @@
     "tfoot", "thead", "tr", "td", "th"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Act as if an end tag with the tag
+    <p><a href="#parse8">Parse error</a>. Act as if an end tag with the tag
      name "select" had been seen, and reprocess the token.</p>
 
    <dt>An end tag whose tag name is one of: "caption", "table", "tbody",
     "tfoot", "thead", "tr", "td", "th"
 
    <dd>
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p>If the <a href="#stack">stack of open elements</a> <a
      href="#have-an0">has an element in table scope</a> with the same tag
@@ -57660,7 +57753,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if
     the <a href="#current5">current node</a> is an <code title="">mi</code>
@@ -57731,7 +57824,7 @@
    <dt>An end-of-file token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>.</p>
+    <p><a href="#parse8">Parse error</a>.</p>
 
     <p>Pop elements from the <a href="#stack">stack of open elements</a>
      until the <a href="#current5">current node</a> is in the <a
@@ -57847,7 +57940,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -57861,7 +57954,7 @@
    <dd>
     <p>If the parser was originally created as part of the <a
      href="#html-fragment0">HTML fragment parsing algorithm</a>, this is a <a
-     href="#parse3">parse error</a>; ignore the token. (<a
+     href="#parse8">parse error</a>; ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise, switch the <span>insertion mode</span> to "<a
@@ -57876,7 +57969,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Switch the <span>insertion
+    <p><a href="#parse8">Parse error</a>. Switch the <span>insertion
      mode</span> to "<a href="#in-body" title="insertion mode: in body">in
      body</a>" and reprocess the token.</p>
   </dl>
@@ -57908,7 +58001,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -57927,7 +58020,7 @@
    <dd>
     <p>If the <a href="#current5">current node</a> is the root <code><a
      href="#html">html</a></code> element, then this is a <a
-     href="#parse3">parse error</a>; ignore the token. (<a
+     href="#parse8">parse error</a>; ignore the token. (<a
      href="#fragment">fragment case</a>)</p>
 
     <p>Otherwise, pop the <a href="#current5">current node</a> from the <a
@@ -57963,7 +58056,7 @@
    <dd>
     <p>If the <a href="#current5">current node</a> is not the root <code><a
      href="#html">html</a></code> element, then this is a <a
-     href="#parse3">parse error</a>.</p>
+     href="#parse8">parse error</a>.</p>
 
     <p class=note>It can only be the <a href="#current5">current node</a> in
      the <a href="#fragment">fragment case</a>.</p>
@@ -57973,7 +58066,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
   </dl>
 
   <h5 id=parsing-main-afterframeset><span class=secno>8.2.5.23. </span>The
@@ -58004,7 +58097,7 @@
    <dt>A DOCTYPE token
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
 
    <dt>A start tag whose tag name is "html"
 
@@ -58034,7 +58127,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
   </dl>
 
   <p class=big-issue>This doesn't handle UAs that don't support frames, or
@@ -58078,7 +58171,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Switch the <span>insertion
+    <p><a href="#parse8">Parse error</a>. Switch the <span>insertion
      mode</span> to "<a href="#in-body" title="insertion mode: in body">in
      body</a>" and reprocess the token.</p>
   </dl>
@@ -58127,7 +58220,7 @@
    <dt>Anything else
 
    <dd>
-    <p><a href="#parse3">Parse error</a>. Ignore the token.</p>
+    <p><a href="#parse8">Parse error</a>. Ignore the token.</p>
   </dl>
 
   <h4 id=the-end><span class=secno>8.2.6 </span>The end</h4>

Modified: source
===================================================================
--- source	2008-09-30 08:19:38 UTC (rev 2250)
+++ source	2008-09-30 09:47:40 UTC (rev 2251)
@@ -1941,6 +1941,13 @@
 
   <h5>Specific moments in time</h5>
 
+  <p class="big-issue">This syntax is going to be tightened up and
+  made almost exactly the same as the <span>valid UTC date and time
+  string</span> syntax, with the exception of allowing time zones. In
+  fact what we might do is allow time zones in general, use the same
+  parser, etc, but require that UAs always use the UTC time zone when
+  synthesizing datetimes for form submission.</p>
+
   <p>A string is a <dfn>valid datetime</dfn> if it has four digits
   (representing the year), a literal hyphen, two digits (representing
   the month), a literal hyphen, two digits (representing the day),
@@ -2618,22 +2625,87 @@
 
   <h5>UTC dates and times</h5>
 
-  <p>A <dfn>UTC date and time</dfn> consists of a specific Gregorian
-  date expressed relative to the UTC timezone, consisting of a year, a
-  month, a day, an hour, a minute, a second, and a fraction of a
-  second. <a href="#refsGREGORIAN">[GREGORIAN]</a></p>
+  <p>A <dfn title="concept-datetime">UTC date and time</dfn> consists
+  of a specific Gregorian date expressed relative to the UTC timezone,
+  consisting of a year, a month, a day, an hour, a minute, a second,
+  and a fraction of a second. <a
+  href="#refsGREGORIAN">[GREGORIAN]</a></p>
 
-  <p class="big-issue">... <dfn>valid UTC date and time</dfn></p>
+  <p class="big-issue">... <dfn>valid UTC date and time string</dfn></p>
 
-  <p class="big-issue">... rules to <dfn>parse a UTC date and time</dfn></p>
+  <p class="big-issue">... rules to <dfn>parse a UTC date and time
+  string</dfn></p>
 
 
+  <h5>Local dates and times</h5>
+
+  <p>A <dfn title="concept-datetime-local">local date and time</dfn>
+  consists of a specific Gregorian date with no timezone information,
+  consisting of a year, a month, a day, an hour, a minute, a second,
+  and a fraction of a second. <a
+  href="#refsGREGORIAN">[GREGORIAN]</a></p>
+
+  <p class="big-issue">... <dfn>valid local date and time string</dfn></p>
+
+  <p class="big-issue">... rules to <dfn>parse a local date and time
+  string</dfn></p>
+
+
+  <h5>Dates</h5>
+
+  <p>A <dfn title="concept-date">date</dfn> consists of a specific
+  Gregorian date with no timezone information, consisting of a year, a
+  month, and a day. <a href="#refsGREGORIAN">[GREGORIAN]</a></p>
+
+  <p class="big-issue">... <dfn>valid date string</dfn></p>
+
+  <p class="big-issue">... rules to <dfn>parse a date string</dfn></p>
+
+
+  <h5>Months</h5>
+
+  <p>A <dfn title="concept-month">month</dfn> consists of a specific
+  Gregorian date with no timezone information and no date information
+  beyond a year and a month. <a
+  href="#refsGREGORIAN">[GREGORIAN]</a></p>
+
+  <p class="big-issue">... <dfn>valid month string</dfn></p>
+
+  <p class="big-issue">... rules to <dfn>parse a month string</dfn></p>
+
+
+  <h5>Weeks</h5>
+
+  <p>A <dfn title="concept-week">week</dfn> consists of a specific
+  Gregorian date with no timezone information and no date information
+  beyond a year and a week. <a
+  href="#refsGREGORIAN">[GREGORIAN]</a></p>
+
+  <!-- XXX ISO week information -->
+
+  <p class="big-issue">... <dfn>valid week string</dfn></p>
+
+  <p class="big-issue">... rules to <dfn>parse a week string</dfn></p>
+
+
+  <h5>Times</h5>
+
+  <p>A <dfn title="concept-time">time</dfn> consists of a specific
+  time with no timezone information, consisting of an hour, a minute,
+  a second, and a fraction of a second.</p>
+
+  <p class="big-issue">... <dfn>valid time string</dfn></p>
+
+  <p class="big-issue">... rules to <dfn>parse a time string</dfn></p>
+
+
   <h5>Time offsets</h5>
 
   <p class="big-issue"><dfn>valid time offset</dfn>, <dfn>rules for
   parsing time offsets</dfn>, <dfn>time offset serialization
-  rules</dfn>; in the format "5d4h3m2s1ms" or "3m 9.2s" or "00:00:00.00"
-  or similar.</p>
+  rules</dfn>; probably in the format "5d4h3m2.1s" or similar, with
+  all components being optional, and the last component's unit suffix
+  being optional if it's in seconds.</p>
 
 
 
@@ -9634,9 +9706,9 @@
    <pre><script src="game-engine.js"></script>
 <script type="text/x-game-map">
 ........U.........e
-o............x....e
-.....x.....xxx....e
-.x..xxx...xxxxx...e
+o............A....e
+.....A.....AAA....e
+.A..AAA...AAAAA...e
 </script></pre>
 
    <p>The data in this case might be used by the script to generate
@@ -14166,7 +14238,7 @@
  </ins>
 </aside></pre>
 
-   <!-- Those date's aren't random. They're the start and end of
+   <!-- Those dates aren't random. They're the start and end of
    something. Can you guess what? -->
 
   </div>
@@ -26264,6 +26336,11 @@
 
   <h5>States of the <code title="attr-input-type">type</code> attribute</h5>
 
+  <!-- XXX for things that say "express it as a valid foo", make sure
+  that valid foo is unambiguous, and if not, define a canonical
+  serialisation. e.g. should it be 2008-01-01T00:00 or
+  2008-01-01t00:00? should it be 1e2 or 100? -->
+
   <h6><dfn title="attr-input-type-text">Text</dfn> state</h6>
 
   <p>When an <code>input</code> element's <code
@@ -26522,33 +26599,35 @@
 
   <p>The <code>input</code> element represents a control for setting
   the element's <span title="concept-fe-value">value</span> to a
-  string representing a specific <span>UTC date and time</span>. User
-  agents may display the date and time in whatever timezone is
-  appropriate for the user.</p>
+  string representing a specific <span title="concept-datetime">UTC
+  date and time</span>. User agents may display the date and time in
+  whatever timezone is appropriate for the user.</p>
 
   <p>If the element is <i title="concept-input-mutable">mutable</i>,
-  the user should allow the user to change the date and time
-  represented by its <span title="concept-fe-value">value</span>, as
-  obtained by <span title="parse a UTC date and time">parsing a UTC
-  date and time</span> from it. User agents must not allow the user to
-  set the <span title="concept-fe-value">value</span> to a string that
-  is not a <span>valid UTC date and time</span>. If the user agent
-  provides a user interface for selecting a date and time, then the
-  <span title="concept-fe-value">value</span> must be set to a
-  <span>valid UTC date and time</span> representing the user's
+  the user should allow the user to change the <span
+  title="concept-datetime">UTC date and time</span> represented by its
+  <span title="concept-fe-value">value</span>, as obtained by <span
+  title="parse a UTC date and time string">parsing a UTC date and
+  time</span> from it. User agents must not allow the user to set the
+  <span title="concept-fe-value">value</span> to a string that is not
+  a <span>valid UTC date and time string</span>. If the user agent
+  provides a user interface for selecting a <span
+  title="concept-datetime">UTC date and time</span>, then the <span
+  title="concept-fe-value">value</span> must be set to a <span>valid
+  UTC date and time string</span> representing the user's
   selection. User agents should allow the user to set the <span
   title="concept-fe-value">value</span> to the empty string.</p>
 
   <p><strong>The <span>value sanitization algorithm</span> is as
   follows:</strong> If the <span title="concept-fe-value">value</span>
-  of the element is not a <span>valid UTC date and time</span>, then
-  set it to the empty string instead.</p>
+  of the element is not a <span>valid UTC date and time string</span>,
+  then set it to the empty string instead.</p>
 
   <p>The <code title="attr-input-min">min</code> attribute, if
-  specified, must have a value that is a <span>valid UTC date and
-  time</span>. The <code title="attr-input-max">max</code> attribute,
-  if specified, must have a value that is a <span>valid UTC date and
-  time</span>.</p>
+  specified, must have a value that is a <span>valid UTC date and time
+  string</span>. The <code title="attr-input-max">max</code>
+  attribute, if specified, must have a value that is a <span>valid UTC
+  date and time string</span>.</p>
 
   <p>The <code title="attr-input-step">step</code> attribute is
   expressed in seconds. The <span
@@ -26559,26 +26638,29 @@
 
   <p>When the element is <span>suffering from a step mismatch</span>,
   the user agent may round the element's <span
-  title="concept-input-value">value</span> to the nearest date and
-  time for which the element would not <span title="suffering from a
-  step mismatch">suffer from a step mismatch</span>.</p>
+  title="concept-input-value">value</span> to the nearest <span
+  title="concept-datetime">UTC date and time</span> for which the
+  element would not <span title="suffering from a step
+  mismatch">suffer from a step mismatch</span>.</p>
 
   <p><strong>The <span
   title="concept-input-value-string-number">algorithm to convert a
   string to a number</span>, given a string <var title="">input</var>,
-  is as follows:</strong> If <span title="parse a UTC date and
-  time">parsing a UTC date and time</span> from <var
+  is as follows:</strong> If <span title="parse a UTC date and time
+  string">parsing a UTC date and time</span> from <var
   title="">input</var> results in an error, then return an error;
   otherwise, return the number of milliseconds elapsed from midnight
   UTC on the morning of 1970-01-01 (the time represented by the value
-  "<code title="">1970-01-01T00:00:00.0Z</code>") to the parsed date
-  and time, ignoring leap seconds.</p>
+  "<code title="">1970-01-01T00:00:00.0Z</code>") to the parsed <span
+  title="concept-datetime">UTC date and time</span>, ignoring leap
+  seconds.</p>
 
   <p><strong>The <span
   title="concept-input-value-number-string">algorithm to convert a
   number to a string</span>, given a number <var title="">input</var>,
-  is as follows:</strong> Return a <span>valid UTC date and
-  time</span> that represents the date and time in UTC that is <var
+  is as follows:</strong> Return a <span>valid UTC date and time
+  string</span> that represents the <span
+  title="concept-datetime">date and time in UTC</span> that is <var
   title="">input</var> milliseconds after midnight UTC on the morning
   of 1970-01-01 (the time represented by the value "<code
   title="">1970-01-01T00:00:00.0Z</code>").</p>
@@ -26587,18 +26669,19 @@
   title="concept-input-value-string-date">algorithm to convert a
   string to a <code>Date</code> object</span>, given a string <var
   title="">input</var>, is as follows:</strong> If <span title="parse
-  a UTC date and time">parsing a UTC date and time</span> from <var
-  title="">input</var> results in an error, then return an error;
+  a UTC date and time string">parsing a UTC date and time</span> from
+  <var title="">input</var> results in an error, then return an error;
   otherwise, return a <code>Date</code> object representing the parsed
-  date and time.</p>
+  <span title="concept-datetime">UTC date and time</span>.</p>
 
   <p><strong>The <span
   title="concept-input-value-date-string">algorithm to convert a
   <code>Date</code> object to a string</span>, given a
   <code>Date</code> object <var title="">input</var>, is as
-  follows:</strong> Return a <span>valid UTC date and time</span> that
-  represents the date and time in UTC that is represented by <var
-  title="">input</var>.</p>
+  follows:</strong> Return a <span>valid UTC date and time
+  string</span> that represents the <span
+  title="concept-datetime">date and time in UTC</span> that is
+  represented by <var title="">input</var>.</p>
 
   <p>The following common <code>input</code> element content
   attributes, DOM attributes, and methods apply to the element:
@@ -26689,32 +26772,34 @@
 
   <p>The <code>input</code> element represents a control for setting
   the element's <span title="concept-fe-value">value</span> to a
-  string representing a <span>date and time</span>, with no time zone
-  information.</p>
+  string representing a <span title="concept-datetime-local">local
+  date and time</span>, with no time zone information.</p>
 
   <p>If the element is <i title="concept-input-mutable">mutable</i>,
-  the user should allow the user to change the date and time
-  represented by its <span title="concept-fe-value">value</span>, as
-  obtained by <span title="parse a date and time">parsing a date and
+  the user should allow the user to change the <span
+  title="concept-datetime-local">date and time</span> represented by
+  its <span title="concept-fe-value">value</span>, as obtained by
+  <span title="parse a local date and time string">parsing a date and
   time</span> from it. User agents must not allow the user to set the
   <span title="concept-fe-value">value</span> to a string that is not
-  a <span>valid date and time</span>. If the user agent provides a
-  user interface for selecting a date and time, then the <span
-  title="concept-fe-value">value</span> must be set to a <span>valid
-  date and time</span> representing the user's selection. User agents
-  should allow the user to set the <span
+  a <span>valid local date and time string</span>. If the user agent
+  provides a user interface for selecting a <span
+  title="concept-datetime-local">local date and time</span>, then the
+  <span title="concept-fe-value">value</span> must be set to a
+  <span>valid local date and time string</span> representing the
+  user's selection. User agents should allow the user to set the <span
   title="concept-fe-value">value</span> to the empty string.</p>
 
   <p><strong>The <span>value sanitization algorithm</span> is as
   follows:</strong> If the <span title="concept-fe-value">value</span>
-  of the element is not a <span>valid date and time</span>, then set
-  it to the empty string instead.</p>
+  of the element is not a <span>valid local date and time
+  string</span>, then set it to the empty string instead.</p>
 
   <p>The <code title="attr-input-min">min</code> attribute, if
-  specified, must have a value that is a <span>valid date and
-  time</span>. The <code title="attr-input-max">max</code> attribute,
-  if specified, must have a value that is a <span>valid date and
-  time</span>.</p>
+  specified, must have a value that is a <span>valid local date and
+  time string</span>. The <code title="attr-input-max">max</code>
+  attribute, if specified, must have a value that is a <span>valid
+  local date and time string</span>.</p>
 
   <p>The <code title="attr-input-step">step</code> attribute is
   expressed in seconds. The <span
@@ -26725,28 +26810,30 @@
 
   <p>When the element is <span>suffering from a step mismatch</span>,
   the user agent may round the element's <span
-  title="concept-input-value">value</span> to the nearest date and
-  time for which the element would not <span title="suffering from a
-  step mismatch">suffer from a step mismatch</span>.</p>
+  title="concept-input-value">value</span> to the nearest <span
+  title="concept-datetime-local">local date and time</span> for which
+  the element would not <span title="suffering from a step
+  mismatch">suffer from a step mismatch</span>.</p>
 
   <p><strong>The <span
   title="concept-input-value-string-number">algorithm to convert a
   string to a number</span>, given a string <var title="">input</var>,
-  is as follows:</strong> If <span title="parse a date and
-  time">parsing a date and time</span> from <var title="">input</var>
-  results in an error, then return an error; otherwise, return the
-  number of milliseconds elapsed from midnight on the morning of
-  1970-01-01 (the time represented by the value "<code
-  title="">1970-01-01T00:00:00.0</code>") to the parsed date and time,
-  ignoring leap seconds.</p>
+  is as follows:</strong> If <span title="parse a local date and time
+  string">parsing a date and time</span> from <var
+  title="">input</var> results in an error, then return an error;
+  otherwise, return the number of milliseconds elapsed from midnight
+  on the morning of 1970-01-01 (the time represented by the value
+  "<code title="">1970-01-01T00:00:00.0</code>") to the parsed <span
+  title="concept-datetime-local">local date and time</span>, ignoring
+  leap seconds.</p>
 
   <p><strong>The <span
   title="concept-input-value-number-string">algorithm to convert a
   number to a string</span>, given a number <var title="">input</var>,
-  is as follows:</strong> Return a <span>valid date and time</span>
-  that represents the date and time that is <var title="">input</var>
-  milliseconds after midnight on the morning of 1970-01-01 (the time
-  represented by the value "<code
+  is as follows:</strong> Return a <span>valid local date and time
+  string</span> that represents the date and time that is <var
+  title="">input</var> milliseconds after midnight on the morning of
+  1970-01-01 (the time represented by the value "<code
   title="">1970-01-01T00:00:00.0</code>").</p>
 
   <p>The following common <code>input</code> element content




More information about the Commit-Watchers mailing list