[html5] r2217 - [e] (0) Move the Scripting section up, so that the form controls and interactive [...]

whatwg at whatwg.org whatwg at whatwg.org
Thu Sep 18 17:17:49 PDT 2008


Author: ianh
Date: 2008-09-18 17:17:48 -0700 (Thu, 18 Sep 2008)
New Revision: 2217

Modified:
   index
   source
Log:
[e] (0) Move the Scripting section up, so that the form controls and interactive elements are next to each other.

Modified: index
===================================================================
--- index	2008-09-18 23:43:13 UTC (rev 2216)
+++ index	2008-09-19 00:17:48 UTC (rev 2217)
@@ -29,7 +29,7 @@
 
    <h1 id=html-5>HTML 5</h1>
 
-   <h2 class="no-num no-toc" id=draft>Draft Recommendation — 18
+   <h2 class="no-num no-toc" id=draft>Draft Recommendation — 19
     September 2008</h2>
 
    <p>You can take part in this work. <a
@@ -589,631 +589,631 @@
        <li><a href="#styling"><span class=secno>4.2.7 </span>Styling</a>
       </ul>
 
-     <li><a href="#sections"><span class=secno>4.3 </span>Sections</a>
+     <li><a href="#scripting1"><span class=secno>4.3 </span>Scripting</a>
       <ul class=toc>
-       <li><a href="#the-body"><span class=secno>4.3.1 </span>The
+       <li><a href="#script"><span class=secno>4.3.1 </span>The
+        <code>script</code> element</a>
+        <ul class=toc>
+         <li><a href="#scriptingLanguages"><span class=secno>4.3.1.1.
+          </span>Scripting languages</a>
+        </ul>
+
+       <li><a href="#the-noscript"><span class=secno>4.3.2 </span>The
+        <code>noscript</code> element</a>
+
+       <li><a href="#the-eventsource"><span class=secno>4.3.3 </span>The
+        <code>eventsource</code> element</a>
+      </ul>
+
+     <li><a href="#sections"><span class=secno>4.4 </span>Sections</a>
+      <ul class=toc>
+       <li><a href="#the-body"><span class=secno>4.4.1 </span>The
         <code>body</code> element</a>
 
-       <li><a href="#the-section"><span class=secno>4.3.2 </span>The
+       <li><a href="#the-section"><span class=secno>4.4.2 </span>The
         <code>section</code> element</a>
 
-       <li><a href="#the-nav"><span class=secno>4.3.3 </span>The
+       <li><a href="#the-nav"><span class=secno>4.4.3 </span>The
         <code>nav</code> element</a>
 
-       <li><a href="#the-article"><span class=secno>4.3.4 </span>The
+       <li><a href="#the-article"><span class=secno>4.4.4 </span>The
         <code>article</code> element</a>
 
-       <li><a href="#the-aside"><span class=secno>4.3.5 </span>The
+       <li><a href="#the-aside"><span class=secno>4.4.5 </span>The
         <code>aside</code> element</a>
 
-       <li><a href="#the-h1"><span class=secno>4.3.6 </span>The
+       <li><a href="#the-h1"><span class=secno>4.4.6 </span>The
         <code>h1</code>, <code>h2</code>, <code>h3</code>, <code>h4</code>,
         <code>h5</code>, and <code>h6</code> elements</a>
 
-       <li><a href="#the-header"><span class=secno>4.3.7 </span>The
+       <li><a href="#the-header"><span class=secno>4.4.7 </span>The
         <code>header</code> element</a>
 
-       <li><a href="#the-footer"><span class=secno>4.3.8 </span>The
+       <li><a href="#the-footer"><span class=secno>4.4.8 </span>The
         <code>footer</code> element</a>
 
-       <li><a href="#the-address"><span class=secno>4.3.9 </span>The
+       <li><a href="#the-address"><span class=secno>4.4.9 </span>The
         <code>address</code> element</a>
 
-       <li><a href="#headings"><span class=secno>4.3.10 </span>Headings and
+       <li><a href="#headings"><span class=secno>4.4.10 </span>Headings and
         sections</a>
         <ul class=toc>
-         <li><a href="#outlines"><span class=secno>4.3.10.1. </span>Creating
+         <li><a href="#outlines"><span class=secno>4.4.10.1. </span>Creating
           an outline</a>
 
-         <li><a href="#distinguishing"><span class=secno>4.3.10.2.
+         <li><a href="#distinguishing"><span class=secno>4.4.10.2.
           </span>Distinguishing site-wide headings from page headings</a>
         </ul>
       </ul>
 
-     <li><a href="#grouping"><span class=secno>4.4 </span>Grouping
+     <li><a href="#grouping"><span class=secno>4.5 </span>Grouping
       content</a>
       <ul class=toc>
-       <li><a href="#the-p"><span class=secno>4.4.1 </span>The <code>p</code>
+       <li><a href="#the-p"><span class=secno>4.5.1 </span>The <code>p</code>
         element</a>
 
-       <li><a href="#the-hr"><span class=secno>4.4.2 </span>The
+       <li><a href="#the-hr"><span class=secno>4.5.2 </span>The
         <code>hr</code> element</a>
 
-       <li><a href="#the-br"><span class=secno>4.4.3 </span>The
+       <li><a href="#the-br"><span class=secno>4.5.3 </span>The
         <code>br</code> element</a>
 
-       <li><a href="#the-pre"><span class=secno>4.4.4 </span>The
+       <li><a href="#the-pre"><span class=secno>4.5.4 </span>The
         <code>pre</code> element</a>
 
-       <li><a href="#the-dialog"><span class=secno>4.4.5 </span>The
+       <li><a href="#the-dialog"><span class=secno>4.5.5 </span>The
         <code>dialog</code> element</a>
 
-       <li><a href="#the-blockquote"><span class=secno>4.4.6 </span>The
+       <li><a href="#the-blockquote"><span class=secno>4.5.6 </span>The
         <code>blockquote</code> element</a>
 
-       <li><a href="#the-ol"><span class=secno>4.4.7 </span>The
+       <li><a href="#the-ol"><span class=secno>4.5.7 </span>The
         <code>ol</code> element</a>
 
-       <li><a href="#the-ul"><span class=secno>4.4.8 </span>The
+       <li><a href="#the-ul"><span class=secno>4.5.8 </span>The
         <code>ul</code> element</a>
 
-       <li><a href="#the-li"><span class=secno>4.4.9 </span>The
+       <li><a href="#the-li"><span class=secno>4.5.9 </span>The
         <code>li</code> element</a>
 
-       <li><a href="#the-dl"><span class=secno>4.4.10 </span>The
+       <li><a href="#the-dl"><span class=secno>4.5.10 </span>The
         <code>dl</code> element</a>
 
-       <li><a href="#the-dt"><span class=secno>4.4.11 </span>The
+       <li><a href="#the-dt"><span class=secno>4.5.11 </span>The
         <code>dt</code> element</a>
 
-       <li><a href="#the-dd"><span class=secno>4.4.12 </span>The
+       <li><a href="#the-dd"><span class=secno>4.5.12 </span>The
         <code>dd</code> element</a>
       </ul>
 
-     <li><a href="#text-level"><span class=secno>4.5 </span>Text-level
+     <li><a href="#text-level"><span class=secno>4.6 </span>Text-level
       semantics</a>
       <ul class=toc>
-       <li><a href="#the-a"><span class=secno>4.5.1 </span>The <code>a</code>
+       <li><a href="#the-a"><span class=secno>4.6.1 </span>The <code>a</code>
         element</a>
 
-       <li><a href="#the-q"><span class=secno>4.5.2 </span>The <code>q</code>
+       <li><a href="#the-q"><span class=secno>4.6.2 </span>The <code>q</code>
         element</a>
 
-       <li><a href="#the-cite"><span class=secno>4.5.3 </span>The
+       <li><a href="#the-cite"><span class=secno>4.6.3 </span>The
         <code>cite</code> element</a>
 
-       <li><a href="#the-em"><span class=secno>4.5.4 </span>The
+       <li><a href="#the-em"><span class=secno>4.6.4 </span>The
         <code>em</code> element</a>
 
-       <li><a href="#the-strong"><span class=secno>4.5.5 </span>The
+       <li><a href="#the-strong"><span class=secno>4.6.5 </span>The
         <code>strong</code> element</a>
 
-       <li><a href="#the-small"><span class=secno>4.5.6 </span>The
+       <li><a href="#the-small"><span class=secno>4.6.6 </span>The
         <code>small</code> element</a>
 
-       <li><a href="#the-mark"><span class=secno>4.5.7 </span>The
+       <li><a href="#the-mark"><span class=secno>4.6.7 </span>The
         <code>mark</code> element</a>
 
-       <li><a href="#the-dfn"><span class=secno>4.5.8 </span>The
+       <li><a href="#the-dfn"><span class=secno>4.6.8 </span>The
         <code>dfn</code> element</a>
 
-       <li><a href="#the-abbr"><span class=secno>4.5.9 </span>The
+       <li><a href="#the-abbr"><span class=secno>4.6.9 </span>The
         <code>abbr</code> element</a>
 
-       <li><a href="#the-time"><span class=secno>4.5.10 </span>The
+       <li><a href="#the-time"><span class=secno>4.6.10 </span>The
         <code>time</code> element</a>
 
-       <li><a href="#the-progress"><span class=secno>4.5.11 </span>The
+       <li><a href="#the-progress"><span class=secno>4.6.11 </span>The
         <code>progress</code> element</a>
 
-       <li><a href="#the-meter"><span class=secno>4.5.12 </span>The
+       <li><a href="#the-meter"><span class=secno>4.6.12 </span>The
         <code>meter</code> element</a>
 
-       <li><a href="#the-code"><span class=secno>4.5.13 </span>The
+       <li><a href="#the-code"><span class=secno>4.6.13 </span>The
         <code>code</code> element</a>
 
-       <li><a href="#the-var"><span class=secno>4.5.14 </span>The
+       <li><a href="#the-var"><span class=secno>4.6.14 </span>The
         <code>var</code> element</a>
 
-       <li><a href="#the-samp"><span class=secno>4.5.15 </span>The
+       <li><a href="#the-samp"><span class=secno>4.6.15 </span>The
         <code>samp</code> element</a>
 
-       <li><a href="#the-kbd"><span class=secno>4.5.16 </span>The
+       <li><a href="#the-kbd"><span class=secno>4.6.16 </span>The
         <code>kbd</code> element</a>
 
-       <li><a href="#the-sub"><span class=secno>4.5.17 </span>The
+       <li><a href="#the-sub"><span class=secno>4.6.17 </span>The
         <code>sub</code> and <code>sup</code> elements</a>
 
-       <li><a href="#the-span"><span class=secno>4.5.18 </span>The
+       <li><a href="#the-span"><span class=secno>4.6.18 </span>The
         <code>span</code> element</a>
 
-       <li><a href="#the-i"><span class=secno>4.5.19 </span>The
+       <li><a href="#the-i"><span class=secno>4.6.19 </span>The
         <code>i</code> element</a>
 
-       <li><a href="#the-b"><span class=secno>4.5.20 </span>The
+       <li><a href="#the-b"><span class=secno>4.6.20 </span>The
         <code>b</code> element</a>
 
-       <li><a href="#the-bdo"><span class=secno>4.5.21 </span>The
+       <li><a href="#the-bdo"><span class=secno>4.6.21 </span>The
         <code>bdo</code> element</a>
 
-       <li><a href="#the-ruby"><span class=secno>4.5.22 </span>The
+       <li><a href="#the-ruby"><span class=secno>4.6.22 </span>The
         <code>ruby</code> element</a>
 
-       <li><a href="#the-rt"><span class=secno>4.5.23 </span>The
+       <li><a href="#the-rt"><span class=secno>4.6.23 </span>The
         <code>rt</code> element</a>
 
-       <li><a href="#the-rp"><span class=secno>4.5.24 </span>The
+       <li><a href="#the-rp"><span class=secno>4.6.24 </span>The
         <code>rp</code> element</a>
 
-       <li><a href="#usage"><span class=secno>4.5.25 </span>Usage summary</a>
+       <li><a href="#usage"><span class=secno>4.6.25 </span>Usage summary</a>
         
 
-       <li><a href="#footnotes"><span class=secno>4.5.26 </span>Footnotes</a>
+       <li><a href="#footnotes"><span class=secno>4.6.26 </span>Footnotes</a>
         
       </ul>
 
-     <li><a href="#edits"><span class=secno>4.6 </span>Edits</a>
+     <li><a href="#edits"><span class=secno>4.7 </span>Edits</a>
       <ul class=toc>
-       <li><a href="#the-ins"><span class=secno>4.6.1 </span>The
+       <li><a href="#the-ins"><span class=secno>4.7.1 </span>The
         <code>ins</code> element</a>
 
-       <li><a href="#the-del"><span class=secno>4.6.2 </span>The
+       <li><a href="#the-del"><span class=secno>4.7.2 </span>The
         <code>del</code> element</a>
 
-       <li><a href="#attributes"><span class=secno>4.6.3 </span>Attributes
+       <li><a href="#attributes"><span class=secno>4.7.3 </span>Attributes
         common to <code>ins</code> and <code>del</code> elements</a>
 
-       <li><a href="#edits0"><span class=secno>4.6.4 </span>Edits and
+       <li><a href="#edits0"><span class=secno>4.7.4 </span>Edits and
         paragraphs</a>
 
-       <li><a href="#edits1"><span class=secno>4.6.5 </span>Edits and
+       <li><a href="#edits1"><span class=secno>4.7.5 </span>Edits and
         lists</a>
       </ul>
 
-     <li><a href="#embedded0"><span class=secno>4.7 </span>Embedded
+     <li><a href="#embedded0"><span class=secno>4.8 </span>Embedded
       content</a>
       <ul class=toc>
-       <li><a href="#the-figure"><span class=secno>4.7.1 </span>The
+       <li><a href="#the-figure"><span class=secno>4.8.1 </span>The
         <code>figure</code> element</a>
 
-       <li><a href="#the-img"><span class=secno>4.7.2 </span>The
+       <li><a href="#the-img"><span class=secno>4.8.2 </span>The
         <code>img</code> element</a>
         <ul class=toc>
-         <li><a href="#alt"><span class=secno>4.7.2.1. </span>Requirements
+         <li><a href="#alt"><span class=secno>4.8.2.1. </span>Requirements
           for providing text to act as an alternative for images</a>
           <ul class=toc>
-           <li><a href="#a-link"><span class=secno>4.7.2.1.1. </span>A link
+           <li><a href="#a-link"><span class=secno>4.8.2.1.1. </span>A link
             or button containing nothing but the image</a>
 
-           <li><a href="#a-phrase"><span class=secno>4.7.2.1.2. </span>A
+           <li><a href="#a-phrase"><span class=secno>4.8.2.1.2. </span>A
             phrase or paragraph with an alternative graphical representation:
             charts, diagrams, graphs, maps, illustrations</a>
 
-           <li><a href="#a-short"><span class=secno>4.7.2.1.3. </span>A short
+           <li><a href="#a-short"><span class=secno>4.8.2.1.3. </span>A short
             phrase or label with an alternative graphical representation:
             icons, logos</a>
 
-           <li><a href="#text-that"><span class=secno>4.7.2.1.4. </span>Text
+           <li><a href="#text-that"><span class=secno>4.8.2.1.4. </span>Text
             that has been rendered to a graphic for typographical effect</a>
 
-           <li><a href="#a-graphical"><span class=secno>4.7.2.1.5. </span>A
+           <li><a href="#a-graphical"><span class=secno>4.8.2.1.5. </span>A
             graphical representation of some of the surrounding text</a>
 
-           <li><a href="#a-purely"><span class=secno>4.7.2.1.6. </span>A
+           <li><a href="#a-purely"><span class=secno>4.8.2.1.6. </span>A
             purely decorative image that doesn't add any information but is
             still specific to the surrounding content</a>
 
-           <li><a href="#a-group"><span class=secno>4.7.2.1.7. </span>A group
+           <li><a href="#a-group"><span class=secno>4.8.2.1.7. </span>A group
             of images that form a single larger picture with no links</a>
 
-           <li><a href="#a-group0"><span class=secno>4.7.2.1.8. </span>A
+           <li><a href="#a-group0"><span class=secno>4.8.2.1.8. </span>A
             group of images that form a single larger picture with links</a>
 
-           <li><a href="#a-key"><span class=secno>4.7.2.1.9. </span>A key
+           <li><a href="#a-key"><span class=secno>4.8.2.1.9. </span>A key
             part of the content</a>
 
-           <li><a href="#an-image"><span class=secno>4.7.2.1.10. </span>An
+           <li><a href="#an-image"><span class=secno>4.8.2.1.10. </span>An
             image not intended for the user</a>
 
-           <li><a href="#an-image0"><span class=secno>4.7.2.1.11. </span>An
+           <li><a href="#an-image0"><span class=secno>4.8.2.1.11. </span>An
             image in an e-mail or document intended for a specific person who
             is known to be able to view images</a>
 
-           <li><a href="#general"><span class=secno>4.7.2.1.12.
+           <li><a href="#general"><span class=secno>4.8.2.1.12.
             </span>General guidelines</a>
           </ul>
         </ul>
 
-       <li><a href="#the-iframe"><span class=secno>4.7.3 </span>The
+       <li><a href="#the-iframe"><span class=secno>4.8.3 </span>The
         <code>iframe</code> element</a>
 
-       <li><a href="#the-embed"><span class=secno>4.7.4 </span>The
+       <li><a href="#the-embed"><span class=secno>4.8.4 </span>The
         <code>embed</code> element</a>
 
-       <li><a href="#the-object"><span class=secno>4.7.5 </span>The
+       <li><a href="#the-object"><span class=secno>4.8.5 </span>The
         <code>object</code> element</a>
 
-       <li><a href="#the-param"><span class=secno>4.7.6 </span>The
+       <li><a href="#the-param"><span class=secno>4.8.6 </span>The
         <code>param</code> element</a>
 
-       <li><a href="#video"><span class=secno>4.7.7 </span>The
+       <li><a href="#video"><span class=secno>4.8.7 </span>The
         <code>video</code> element</a>
         <ul class=toc>
-         <li><a href="#video0"><span class=secno>4.7.7.1. </span>Video and
+         <li><a href="#video0"><span class=secno>4.8.7.1. </span>Video and
           audio codecs for <code>video</code> elements</a>
         </ul>
 
-       <li><a href="#audio"><span class=secno>4.7.8 </span>The
+       <li><a href="#audio"><span class=secno>4.8.8 </span>The
         <code>audio</code> element</a>
         <ul class=toc>
-         <li><a href="#audio0"><span class=secno>4.7.8.1. </span>Audio codecs
+         <li><a href="#audio0"><span class=secno>4.8.8.1. </span>Audio codecs
           for <code>audio</code> elements</a>
         </ul>
 
-       <li><a href="#the-source"><span class=secno>4.7.9 </span>The
+       <li><a href="#the-source"><span class=secno>4.8.9 </span>The
         <code>source</code> element</a>
 
-       <li><a href="#media"><span class=secno>4.7.10 </span>Media
+       <li><a href="#media"><span class=secno>4.8.10 </span>Media
         elements</a>
         <ul class=toc>
-         <li><a href="#error"><span class=secno>4.7.10.1. </span>Error
+         <li><a href="#error"><span class=secno>4.8.10.1. </span>Error
           codes</a>
 
-         <li><a href="#location"><span class=secno>4.7.10.2. </span>Location
+         <li><a href="#location"><span class=secno>4.8.10.2. </span>Location
           of the media resource</a>
 
-         <li><a href="#network0"><span class=secno>4.7.10.3. </span>Network
+         <li><a href="#network0"><span class=secno>4.8.10.3. </span>Network
           states</a>
 
-         <li><a href="#loading"><span class=secno>4.7.10.4. </span>Loading
+         <li><a href="#loading"><span class=secno>4.8.10.4. </span>Loading
           the media resource</a>
 
-         <li><a href="#offsets"><span class=secno>4.7.10.5. </span>Offsets
+         <li><a href="#offsets"><span class=secno>4.8.10.5. </span>Offsets
           into the media resource</a>
 
-         <li><a href="#the-ready"><span class=secno>4.7.10.6. </span>The
+         <li><a href="#the-ready"><span class=secno>4.8.10.6. </span>The
           ready states</a>
 
-         <li><a href="#playing"><span class=secno>4.7.10.7. </span>Playing
+         <li><a href="#playing"><span class=secno>4.8.10.7. </span>Playing
           the media resource</a>
 
-         <li><a href="#seeking"><span class=secno>4.7.10.8.
+         <li><a href="#seeking"><span class=secno>4.8.10.8.
           </span>Seeking</a>
 
-         <li><a href="#cue-ranges"><span class=secno>4.7.10.9. </span>Cue
+         <li><a href="#cue-ranges"><span class=secno>4.8.10.9. </span>Cue
           ranges</a>
 
-         <li><a href="#user-interface"><span class=secno>4.7.10.10.
+         <li><a href="#user-interface"><span class=secno>4.8.10.10.
           </span>User interface</a>
 
-         <li><a href="#time-ranges"><span class=secno>4.7.10.11. </span>Time
+         <li><a href="#time-ranges"><span class=secno>4.8.10.11. </span>Time
           ranges</a>
 
-         <li><a href="#byte-ranges"><span class=secno>4.7.10.12. </span>Byte
+         <li><a href="#byte-ranges"><span class=secno>4.8.10.12. </span>Byte
           ranges</a>
 
-         <li><a href="#mediaevents"><span class=secno>4.7.10.13. </span>Event
+         <li><a href="#mediaevents"><span class=secno>4.8.10.13. </span>Event
           summary</a>
 
-         <li><a href="#security0"><span class=secno>4.7.10.14.
+         <li><a href="#security0"><span class=secno>4.8.10.14.
           </span>Security and privacy considerations</a>
         </ul>
 
-       <li><a href="#the-canvas"><span class=secno>4.7.11 </span>The
+       <li><a href="#the-canvas"><span class=secno>4.8.11 </span>The
         <code>canvas</code> element</a>
         <ul class=toc>
-         <li><a href="#the-2d"><span class=secno>4.7.11.1. </span>The 2D
+         <li><a href="#the-2d"><span class=secno>4.8.11.1. </span>The 2D
           context</a>
           <ul class=toc>
-           <li><a href="#the-canvas0"><span class=secno>4.7.11.1.1.
+           <li><a href="#the-canvas0"><span class=secno>4.8.11.1.1.
             </span>The canvas state</a>
 
-           <li><a href="#transformations"><span class=secno>4.7.11.1.2.
+           <li><a href="#transformations"><span class=secno>4.8.11.1.2.
             </span>Transformations</a>
 
-           <li><a href="#compositing"><span class=secno>4.7.11.1.3.
+           <li><a href="#compositing"><span class=secno>4.8.11.1.3.
             </span>Compositing</a>
 
-           <li><a href="#colors"><span class=secno>4.7.11.1.4. </span>Colors
+           <li><a href="#colors"><span class=secno>4.8.11.1.4. </span>Colors
             and styles</a>
 
-           <li><a href="#line-styles"><span class=secno>4.7.11.1.5.
+           <li><a href="#line-styles"><span class=secno>4.8.11.1.5.
             </span>Line styles</a>
 
-           <li><a href="#shadows"><span class=secno>4.7.11.1.6.
+           <li><a href="#shadows"><span class=secno>4.8.11.1.6.
             </span>Shadows</a>
 
-           <li><a href="#simple"><span class=secno>4.7.11.1.7. </span>Simple
+           <li><a href="#simple"><span class=secno>4.8.11.1.7. </span>Simple
             shapes (rectangles)</a>
 
-           <li><a href="#complex"><span class=secno>4.7.11.1.8.
+           <li><a href="#complex"><span class=secno>4.8.11.1.8.
             </span>Complex shapes (paths)</a>
 
-           <li><a href="#text"><span class=secno>4.7.11.1.9. </span>Text</a>
+           <li><a href="#text"><span class=secno>4.8.11.1.9. </span>Text</a>
 
-           <li><a href="#images"><span class=secno>4.7.11.1.10.
+           <li><a href="#images"><span class=secno>4.8.11.1.10.
             </span>Images</a>
 
-           <li><a href="#pixel"><span class=secno>4.7.11.1.11. </span>Pixel
+           <li><a href="#pixel"><span class=secno>4.8.11.1.11. </span>Pixel
             manipulation</a>
 
-           <li><a href="#drawing"><span class=secno>4.7.11.1.12.
+           <li><a href="#drawing"><span class=secno>4.8.11.1.12.
             </span>Drawing model</a>
           </ul>
 
-         <li><a href="#color"><span class=secno>4.7.11.2. </span>Color spaces
+         <li><a href="#color"><span class=secno>4.8.11.2. </span>Color spaces
           and color correction</a>
 
-         <li><a href="#security1"><span class=secno>4.7.11.3. </span>Security
+         <li><a href="#security1"><span class=secno>4.8.11.3. </span>Security
           with <code>canvas</code> elements</a>
         </ul>
 
-       <li><a href="#the-map"><span class=secno>4.7.12 </span>The
+       <li><a href="#the-map"><span class=secno>4.8.12 </span>The
         <code>map</code> element</a>
 
-       <li><a href="#the-area"><span class=secno>4.7.13 </span>The
+       <li><a href="#the-area"><span class=secno>4.8.13 </span>The
         <code>area</code> element</a>
 
-       <li><a href="#image-maps"><span class=secno>4.7.14 </span>Image
+       <li><a href="#image-maps"><span class=secno>4.8.14 </span>Image
         maps</a>
         <ul class=toc>
-         <li><a href="#authoring"><span class=secno>4.7.14.1.
+         <li><a href="#authoring"><span class=secno>4.8.14.1.
           </span>Authoring</a>
 
-         <li><a href="#processing"><span class=secno>4.7.14.2.
+         <li><a href="#processing"><span class=secno>4.8.14.2.
           </span>Processing model</a>
         </ul>
 
-       <li><a href="#mathml"><span class=secno>4.7.15 </span>MathML</a>
+       <li><a href="#mathml"><span class=secno>4.8.15 </span>MathML</a>
 
-       <li><a href="#svg"><span class=secno>4.7.16 </span>SVG</a>
+       <li><a href="#svg"><span class=secno>4.8.16 </span>SVG</a>
 
-       <li><a href="#dimension"><span class=secno>4.7.17 </span>Dimension
+       <li><a href="#dimension"><span class=secno>4.8.17 </span>Dimension
         attributes</a>
       </ul>
 
-     <li><a href="#tabular"><span class=secno>4.8 </span>Tabular data</a>
+     <li><a href="#tabular"><span class=secno>4.9 </span>Tabular data</a>
       <ul class=toc>
-       <li><a href="#table-intro"><span class=secno>4.8.1
+       <li><a href="#table-intro"><span class=secno>4.9.1
         </span>Introduction</a>
 
-       <li><a href="#the-table"><span class=secno>4.8.2 </span>The
+       <li><a href="#the-table"><span class=secno>4.9.2 </span>The
         <code>table</code> element</a>
 
-       <li><a href="#the-caption"><span class=secno>4.8.3 </span>The
+       <li><a href="#the-caption"><span class=secno>4.9.3 </span>The
         <code>caption</code> element</a>
 
-       <li><a href="#the-colgroup"><span class=secno>4.8.4 </span>The
+       <li><a href="#the-colgroup"><span class=secno>4.9.4 </span>The
         <code>colgroup</code> element</a>
 
-       <li><a href="#the-col"><span class=secno>4.8.5 </span>The
+       <li><a href="#the-col"><span class=secno>4.9.5 </span>The
         <code>col</code> element</a>
 
-       <li><a href="#the-tbody"><span class=secno>4.8.6 </span>The
+       <li><a href="#the-tbody"><span class=secno>4.9.6 </span>The
         <code>tbody</code> element</a>
 
-       <li><a href="#the-thead"><span class=secno>4.8.7 </span>The
+       <li><a href="#the-thead"><span class=secno>4.9.7 </span>The
         <code>thead</code> element</a>
 
-       <li><a href="#the-tfoot"><span class=secno>4.8.8 </span>The
+       <li><a href="#the-tfoot"><span class=secno>4.9.8 </span>The
         <code>tfoot</code> element</a>
 
-       <li><a href="#the-tr"><span class=secno>4.8.9 </span>The
+       <li><a href="#the-tr"><span class=secno>4.9.9 </span>The
         <code>tr</code> element</a>
 
-       <li><a href="#the-td"><span class=secno>4.8.10 </span>The
+       <li><a href="#the-td"><span class=secno>4.9.10 </span>The
         <code>td</code> element</a>
 
-       <li><a href="#the-th"><span class=secno>4.8.11 </span>The
+       <li><a href="#the-th"><span class=secno>4.9.11 </span>The
         <code>th</code> element</a>
 
-       <li><a href="#attributes0"><span class=secno>4.8.12 </span>Attributes
+       <li><a href="#attributes0"><span class=secno>4.9.12 </span>Attributes
         common to <code>td</code> and <code>th</code> elements</a>
 
-       <li><a href="#processing0"><span class=secno>4.8.13 </span>Processing
+       <li><a href="#processing0"><span class=secno>4.9.13 </span>Processing
         model</a>
         <ul class=toc>
-         <li><a href="#forming"><span class=secno>4.8.13.1. </span>Forming a
+         <li><a href="#forming"><span class=secno>4.9.13.1. </span>Forming a
           table</a>
 
          <li><a href="#header-and-data-cell-semantics"><span
-          class=secno>4.8.13.2. </span>Forming relationships between data
+          class=secno>4.9.13.2. </span>Forming relationships between data
           cells and header cells</a>
         </ul>
       </ul>
 
-     <li><a href="#forms"><span class=secno>4.9 </span>Forms</a>
+     <li><a href="#forms"><span class=secno>4.10 </span>Forms</a>
       <ul class=toc>
-       <li><a href="#the-form"><span class=secno>4.9.1 </span>The
+       <li><a href="#the-form"><span class=secno>4.10.1 </span>The
         <code>form</code> element</a>
 
-       <li><a href="#the-fieldset"><span class=secno>4.9.2 </span>The
+       <li><a href="#the-fieldset"><span class=secno>4.10.2 </span>The
         <code>fieldset</code> element</a>
 
-       <li><a href="#the-label"><span class=secno>4.9.3 </span>The
+       <li><a href="#the-label"><span class=secno>4.10.3 </span>The
         <code>label</code> element</a>
 
-       <li><a href="#the-input"><span class=secno>4.9.4 </span>The
+       <li><a href="#the-input"><span class=secno>4.10.4 </span>The
         <code>input</code> element</a>
         <ul class=toc>
-         <li><a href="#states"><span class=secno>4.9.4.1. </span>States of
+         <li><a href="#states"><span class=secno>4.10.4.1. </span>States of
           the <code title=attr-input-type>type</code> attribute</a>
           <ul class=toc>
-           <li><a href="#text-state"><span class=secno>4.9.4.1.1. </span>Text
-            state</a>
+           <li><a href="#text-state"><span class=secno>4.10.4.1.1.
+            </span>Text state</a>
 
-           <li><a href="#password"><span class=secno>4.9.4.1.2.
+           <li><a href="#password"><span class=secno>4.10.4.1.2.
             </span>Password state</a>
 
-           <li><a href="#e-mail"><span class=secno>4.9.4.1.3. </span>E-mail
+           <li><a href="#e-mail"><span class=secno>4.10.4.1.3. </span>E-mail
             state</a>
 
-           <li><a href="#url-state"><span class=secno>4.9.4.1.4. </span>URL
+           <li><a href="#url-state"><span class=secno>4.10.4.1.4. </span>URL
             state</a>
 
-           <li><a href="#date-and"><span class=secno>4.9.4.1.5. </span>Date
+           <li><a href="#date-and"><span class=secno>4.10.4.1.5. </span>Date
             and Time state</a>
 
-           <li><a href="#local"><span class=secno>4.9.4.1.6. </span>Local
+           <li><a href="#local"><span class=secno>4.10.4.1.6. </span>Local
             Date and Time state</a>
 
-           <li><a href="#date-state"><span class=secno>4.9.4.1.7. </span>Date
-            state</a>
+           <li><a href="#date-state"><span class=secno>4.10.4.1.7.
+            </span>Date state</a>
 
-           <li><a href="#month"><span class=secno>4.9.4.1.8. </span>Month
+           <li><a href="#month"><span class=secno>4.10.4.1.8. </span>Month
             state</a>
 
-           <li><a href="#week-state"><span class=secno>4.9.4.1.9. </span>Week
-            state</a>
+           <li><a href="#week-state"><span class=secno>4.10.4.1.9.
+            </span>Week state</a>
 
-           <li><a href="#time-state"><span class=secno>4.9.4.1.10.
+           <li><a href="#time-state"><span class=secno>4.10.4.1.10.
             </span>Time state</a>
 
-           <li><a href="#number"><span class=secno>4.9.4.1.11. </span>Number
+           <li><a href="#number"><span class=secno>4.10.4.1.11. </span>Number
             state</a>
 
-           <li><a href="#range"><span class=secno>4.9.4.1.12. </span>Range
+           <li><a href="#range"><span class=secno>4.10.4.1.12. </span>Range
             state</a>
 
-           <li><a href="#checkbox"><span class=secno>4.9.4.1.13.
+           <li><a href="#checkbox"><span class=secno>4.10.4.1.13.
             </span>Checkbox state</a>
 
-           <li><a href="#radio"><span class=secno>4.9.4.1.14. </span>Radio
+           <li><a href="#radio"><span class=secno>4.10.4.1.14. </span>Radio
             Button state</a>
 
-           <li><a href="#file-state"><span class=secno>4.9.4.1.15.
+           <li><a href="#file-state"><span class=secno>4.10.4.1.15.
             </span>File state</a>
 
-           <li><a href="#hidden"><span class=secno>4.9.4.1.16. </span>Hidden
+           <li><a href="#hidden"><span class=secno>4.10.4.1.16. </span>Hidden
             state</a>
 
-           <li><a href="#submit"><span class=secno>4.9.4.1.17. </span>Submit
+           <li><a href="#submit"><span class=secno>4.10.4.1.17. </span>Submit
             Button state</a>
 
-           <li><a href="#image"><span class=secno>4.9.4.1.18. </span>Image
+           <li><a href="#image"><span class=secno>4.10.4.1.18. </span>Image
             Button state</a>
 
-           <li><a href="#reset"><span class=secno>4.9.4.1.19. </span>Reset
+           <li><a href="#reset"><span class=secno>4.10.4.1.19. </span>Reset
             Button state</a>
 
-           <li><a href="#button"><span class=secno>4.9.4.1.20. </span>Button
+           <li><a href="#button"><span class=secno>4.10.4.1.20. </span>Button
             state</a>
 
-           <li><a href="#common3"><span class=secno>4.9.4.1.21. </span>Common
-            algorithms</a>
+           <li><a href="#common3"><span class=secno>4.10.4.1.21.
+            </span>Common algorithms</a>
           </ul>
 
-         <li><a href="#common4"><span class=secno>4.9.4.2. </span>Common
+         <li><a href="#common4"><span class=secno>4.10.4.2. </span>Common
           <code>input</code> element attributes</a>
           <ul class=toc>
-           <li><a href="#the-autocomplete"><span class=secno>4.9.4.2.1.
+           <li><a href="#the-autocomplete"><span class=secno>4.10.4.2.1.
             </span>The <code
             title=attr-input-autocomplete>autocomplete</code> attribute</a>
           </ul>
 
-         <li><a href="#common5"><span class=secno>4.9.4.3. </span>Common
+         <li><a href="#common5"><span class=secno>4.10.4.3. </span>Common
           <code>input</code> element APIs</a>
           <ul class=toc>
-           <li><a href="#value"><span class=secno>4.9.4.3.1. </span>Value
+           <li><a href="#value"><span class=secno>4.10.4.3.1. </span>Value
             manipulation</a>
 
-           <li><a href="#others..."><span class=secno>4.9.4.3.2.
+           <li><a href="#others..."><span class=secno>4.10.4.3.2.
             </span>Others...</a>
           </ul>
         </ul>
 
-       <li><a href="#the-button"><span class=secno>4.9.5 </span>The
+       <li><a href="#the-button"><span class=secno>4.10.5 </span>The
         <code>button</code> element</a>
 
-       <li><a href="#the-select"><span class=secno>4.9.6 </span>The
+       <li><a href="#the-select"><span class=secno>4.10.6 </span>The
         <code>select</code> element</a>
 
-       <li><a href="#the-datalist"><span class=secno>4.9.7 </span>The
+       <li><a href="#the-datalist"><span class=secno>4.10.7 </span>The
         <code>datalist</code> element</a>
 
-       <li><a href="#the-optgroup"><span class=secno>4.9.8 </span>The
+       <li><a href="#the-optgroup"><span class=secno>4.10.8 </span>The
         <code>optgroup</code> element</a>
 
-       <li><a href="#the-option"><span class=secno>4.9.9 </span>The
+       <li><a href="#the-option"><span class=secno>4.10.9 </span>The
         <code>option</code> element</a>
 
-       <li><a href="#the-textarea"><span class=secno>4.9.10 </span>The
+       <li><a href="#the-textarea"><span class=secno>4.10.10 </span>The
         <code>textarea</code> element</a>
 
-       <li><a href="#the-output"><span class=secno>4.9.11 </span>The
+       <li><a href="#the-output"><span class=secno>4.10.11 </span>The
         <code>output</code> element</a>
 
-       <li><a href="#association"><span class=secno>4.9.12 </span>Association
-        of controls and forms</a>
+       <li><a href="#association"><span class=secno>4.10.12
+        </span>Association of controls and forms</a>
 
-       <li><a href="#attributes1"><span class=secno>4.9.13 </span>Attributes
+       <li><a href="#attributes1"><span class=secno>4.10.13 </span>Attributes
         common to form controls</a>
         <ul class=toc>
-         <li><a href="#naming"><span class=secno>4.9.13.1. </span>Naming form
-          controls</a>
+         <li><a href="#naming"><span class=secno>4.10.13.1. </span>Naming
+          form controls</a>
 
-         <li><a href="#enabling"><span class=secno>4.9.13.2. </span>Enabling
+         <li><a href="#enabling"><span class=secno>4.10.13.2. </span>Enabling
           and disabling form controls</a>
 
-         <li><a href="#a-form"><span class=secno>4.9.13.3. </span>A form
+         <li><a href="#a-form"><span class=secno>4.10.13.3. </span>A form
           control's value</a>
 
-         <li><a href="#autofocusing"><span class=secno>4.9.13.4.
+         <li><a href="#autofocusing"><span class=secno>4.10.13.4.
           </span>Autofocusing a form control</a>
         </ul>
 
-       <li><a href="#attributes2"><span class=secno>4.9.14 </span>Attributes
+       <li><a href="#attributes2"><span class=secno>4.10.14 </span>Attributes
         for form submission</a>
 
-       <li><a href="#constraints"><span class=secno>4.9.15
+       <li><a href="#constraints"><span class=secno>4.10.15
         </span>Constraints</a>
         <ul class=toc>
-         <li><a href="#definitions"><span class=secno>4.9.15.1.
+         <li><a href="#definitions"><span class=secno>4.10.15.1.
           </span>Definitions</a>
 
-         <li><a href="#constraint"><span class=secno>4.9.15.2.
+         <li><a href="#constraint"><span class=secno>4.10.15.2.
           </span>Constraint validation</a>
 
-         <li><a href="#the-constraint"><span class=secno>4.9.15.3. </span>The
-          constraint validation API</a>
+         <li><a href="#the-constraint"><span class=secno>4.10.15.3.
+          </span>The constraint validation API</a>
         </ul>
 
-       <li><a href="#form-submission"><span class=secno>4.9.16 </span>Form
+       <li><a href="#form-submission"><span class=secno>4.10.16 </span>Form
         submission</a>
         <ul class=toc>
-         <li><a href="#url-encoded"><span class=secno>4.9.16.1.
+         <li><a href="#url-encoded"><span class=secno>4.10.16.1.
           </span>URL-encoded form data</a>
 
-         <li><a href="#multipart"><span class=secno>4.9.16.2.
+         <li><a href="#multipart"><span class=secno>4.10.16.2.
           </span>Multipart form data</a>
 
-         <li><a href="#plain"><span class=secno>4.9.16.3. </span>Plain text
+         <li><a href="#plain"><span class=secno>4.10.16.3. </span>Plain text
           form data</a>
         </ul>
 
-       <li><a href="#resetting"><span class=secno>4.9.17 </span>Resetting a
+       <li><a href="#resetting"><span class=secno>4.10.17 </span>Resetting a
         form</a>
 
-       <li><a href="#event"><span class=secno>4.9.18 </span>Event
+       <li><a href="#event"><span class=secno>4.10.18 </span>Event
         dispatch</a>
       </ul>
 
-     <li><a href="#scripting1"><span class=secno>4.10 </span>Scripting</a>
-      <ul class=toc>
-       <li><a href="#script"><span class=secno>4.10.1 </span>The
-        <code>script</code> element</a>
-        <ul class=toc>
-         <li><a href="#scriptingLanguages"><span class=secno>4.10.1.1.
-          </span>Scripting languages</a>
-        </ul>
-
-       <li><a href="#the-noscript"><span class=secno>4.10.2 </span>The
-        <code>noscript</code> element</a>
-
-       <li><a href="#the-eventsource"><span class=secno>4.10.3 </span>The
-        <code>eventsource</code> element</a>
-      </ul>
-
      <li><a href="#interactive-elements"><span class=secno>4.11
       </span>Interactive elements</a>
       <ul class=toc>
@@ -5378,7 +5378,7 @@
 
     <p class=example>Changing the base URL doesn't affect the image displayed
      by <code><a href="#img">img</a></code> elements, although subsequent
-     accesses of the <code title=dom-img-src><a href="#src0">src</a></code>
+     accesses of the <code title=dom-img-src><a href="#src4">src</a></code>
      DOM attribute from script will return a new <a href="#absolute">absolute
      URL</a> that might no longer correspond to the image being shown.</p>
   </dl>
@@ -8732,7 +8732,7 @@
    href="#a">a</a></code> elements, <code><a
    href="#button2">button</a></code> elements, or <code><a
    href="#input0">input</a></code> elements when their <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <a href="#radio1" title=attr-input-type-radio>Radio Button</a> state.
    Activation of those elements can happen in various (UA-defined) ways, for
    instance via the mouse or keyboard.
@@ -10561,8 +10561,9 @@
 people expect to have work and what is necessary.
 -->
 
-  <p>When a <code><a href="#meta0">meta</a></code> element is inserted into
-   the document, if its <code title=attr-meta-http-equiv><a
+  <p>When a <code><a href="#meta0">meta</a></code> element is <a
+   href="#inserted" title="insert an element into a document">inserted into
+   the document</a>, if its <code title=attr-meta-http-equiv><a
    href="#http-equiv">http-equiv</a></code> attribute is present and
    represents one of the above states, then the user agent must run the
    algorithm appropriate for that state, as described in the following list:
@@ -11132,8 +11133,881 @@
   .styleSheets, HTTP Link: headers, and the stuff about the alternative
   stylesheet API.</p> XXX that will all be covered by Anne's spec -->
 
-  <h3 id=sections><span class=secno>4.3 </span>Sections</h3>
+  <h3 id=scripting1><span class=secno>4.3 </span>Scripting</h3>
 
+  <p>Scripts allow authors to add interactivity to their documents.
+
+  <p>Authors are encouraged to use declarative alternatives to scripting
+   where possible, as declarative mechanisms are often more maintainable, and
+   many users disable scripting.
+
+  <div class=example>
+   <p>For example, instead of using script to show or hide a section to show
+    more details, the <code><a href="#details">details</a></code> element
+    could be used.</p>
+  </div>
+
+  <p>Authors are also encouraged to make their applications degrade
+   gracefully in the absence of scripting support.
+
+  <div class=example>
+   <p>For example, if an author provides a link in a table header to
+    dynamically resort the table, the link could also be made to function
+    without scripts by requesting the sorted table from the server.</p>
+  </div>
+
+  <h4 id=script><span class=secno>4.3.1 </span>The <dfn
+   id=script1><code>script</code></dfn> element</h4>
+
+  <dl class=element>
+   <dt>Categories
+
+   <dd><a href="#metadata0">Metadata content</a>.
+
+   <dd><a href="#phrasing0">Phrasing content</a>.
+
+   <dt>Contexts in which this element may be used:
+
+   <dd>Where <a href="#metadata0">metadata content</a> is expected.
+
+   <dd>Where <a href="#phrasing0">phrasing content</a> is expected.
+
+   <dt>Content model:
+
+   <dd>If there is no <code title=attr-script-src><a
+    href="#src">src</a></code> attribute, depends on the value of the <code
+    title=attr-script-type><a href="#type3">type</a></code> attribute.
+
+   <dd>If there <em>is</em> a <code title=attr-script-src><a
+    href="#src">src</a></code> attribute, the element must be empty.
+
+   <dt>Element-specific attributes:
+
+   <dd><code title=attr-script-src><a href="#src">src</a></code>
+
+   <dd><code title=attr-script-async><a href="#async">async</a></code>
+
+   <dd><code title=attr-script-defer><a href="#defer">defer</a></code>
+
+   <dd><code title=attr-script-type><a href="#type3">type</a></code>
+
+   <dd><code title=attr-script-charset><a href="#charset2">charset</a></code>
+
+   <dt>DOM interface:
+
+   <dd>
+    <pre
+     class=idl>interface <dfn id=htmlscriptelement>HTMLScriptElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
+           attribute DOMString <code title=dom-script-src><a href="#src0">src</a></code>;
+           attribute boolean <code title=dom-script-async><a href="#async0">async</a></code>;
+           attribute boolean <code title=dom-script-defer><a href="#defer0">defer</a></code>;
+           attribute DOMString <code title=dom-script-type><a href="#type4">type</a></code>;
+           attribute DOMString <code title=dom-script-charset><a href="#charset3">charset</a></code>;
+           attribute DOMString <code title=dom-script-text><a href="#text1">text</a></code>;
+};</pre>
+  </dl>
+
+  <p>The <code><a href="#script1">script</a></code> element allows authors to
+   include dynamic script and data blocks in their documents.
+
+  <p>When used to include dynamic scripts, the scripts may either be embedded
+   inline or may be imported from an external file using the <code
+   title=attr-script-src><a href="#src">src</a></code> attribute. If the
+   language is not that described by "<code title="">text/javascript</code>",
+   then the <code title=attr-script-type><a href="#type3">type</a></code>
+   attribute must be present. If the <code title=attr-script-type><a
+   href="#type3">type</a></code> attribute is present, its value must be the
+   type of the script's language.
+
+  <p>When used to include data blocks, the data must be embedded inline, the
+   format of the data must be given using the <code title=attr-script-type><a
+   href="#type3">type</a></code> attribute, and the <code
+   title=attr-script-src><a href="#src">src</a></code> attribute must not be
+   specified.
+
+  <p>The <dfn id=type3 title=attr-script-type><code>type</code></dfn>
+   attribute gives the language of the script or format of the data. If the
+   attribute is present, its value must be a valid MIME type, optionally with
+   parameters. The <code title="">charset</code> parameter must not be
+   specified. (The default, which is used if the attribute is absent, is
+   "<code title="">text/javascript</code>".) <a
+   href="#refsRFC2046">[RFC2046]</a>
+
+  <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="#valid8">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
+   title="">text/javascript</code>", if the attribute is absent.
+
+  <p>The <dfn id=charset2
+   title=attr-script-charset><code>charset</code></dfn> attribute gives the
+   character encoding of the external script resource. The attribute must not
+   be specified if the <code title=attr-script-src><a
+   href="#src">src</a></code> attribute is not present. If the attribute is
+   set, its value must be a valid character encoding name, and must be the
+   preferred name for that encoding. <a
+   href="#refsIANACHARSET">[IANACHARSET]</a>
+
+  <p>The encoding specified must be the encoding used by the script resource.
+   If the <code title=attr-script-charset><a
+   href="#charset2">charset</a></code> attribute is omitted, the character
+   encoding of the document will be used. If the script resource uses a
+   different encoding than the document, then the attribute must be
+   specified.
+
+  <p>The <dfn id=async title=attr-script-async><code>async</code></dfn> and
+   <dfn id=defer title=attr-script-defer><code>defer</code></dfn> attributes
+   are <a href="#boolean0" title="boolean attribute">boolean attributes</a>
+   that indicate how the script should be executed.
+
+  <p>There are three possible modes that can be selected using these
+   attributes. If the <code title=attr-script-async><a
+   href="#async">async</a></code> attribute is present, then the script will
+   be executed asynchronously, as soon as it is available. If the <code
+   title=attr-script-async><a href="#async">async</a></code> attribute is not
+   present but the <code title=attr-script-defer><a
+   href="#defer">defer</a></code> attribute is present, then the script is
+   executed when the page has finished parsing. If neither attribute is
+   present, then the script is fetched and executed immediately, before the
+   user agent continues parsing the page. The exact processing details for
+   these attributes is described below.
+
+  <p>The <code title=attr-script-defer><a href="#defer">defer</a></code>
+   attribute may be specified even if the <code title=attr-script-async><a
+   href="#async">async</a></code> attribute is specified, to cause legacy Web
+   browsers that only support <code title=attr-script-defer><a
+   href="#defer">defer</a></code> (and not <code title=attr-script-async><a
+   href="#async">async</a></code>) to fall back to the <code
+   title=attr-script-defer><a href="#defer">defer</a></code> behavior instead
+   of the synchronous blocking behavior that is the default.
+
+  <p>Changing the <code title=attr-script-src><a href="#src">src</a></code>,
+   <code title=attr-script-type><a href="#type3">type</a></code>, <code
+   title=attr-script-charset><a href="#charset2">charset</a></code>, <code
+   title=attr-script-async><a href="#async">async</a></code>, and <code
+   title=attr-script-defer><a href="#defer">defer</a></code> attributes
+   dynamically has no direct effect; these attribute are only used at
+   specific times described below (namely, when the element is <a
+   href="#inserted" title="insert an element into a document">inserted into
+   the document</a>).</p>
+  <!-- by implication, changes to the base URL also have no effect -->
+
+  <p><code><a href="#script1">script</a></code> elements have four associated
+   pieces of metadata. The first is a flag indicating whether or not the
+   script block has been <dfn id=already>"already executed"</dfn>. Initially,
+   <code><a href="#script1">script</a></code> elements must have this flag
+   unset (script blocks, when created, are not "already executed"). When a
+   <code><a href="#script1">script</a></code> element is cloned, the "already
+   executed" flag, if set, must be propagated to the clone when it is
+   created. The second is a flag indicating whether the element was <dfn
+   id=parser-inserted>"parser-inserted"</dfn>. This flag is set by the <a
+   href="#html-0">HTML parser</a> and is used to handle <code
+   title=dom-document-write-HTML><a
+   href="#document.write...">document.write()</a></code> calls. The third and
+   fourth pieces of metadata are <dfn id=the-scripts><var>the script's
+   type</var></dfn> and <dfn id=the-scripts0><var>the script's character
+   encoding</var></dfn>. They are determined when the script is run, based on
+   the attributes on the element at that time.
+
+  <p>When an <span>XML parser</span> creates a <code><a
+   href="#script1">script</a></code> element, it must be marked as being <a
+   href="#parser-inserted">"parser-inserted"</a>. When the element's end tag
+   is parsed, the user agent must <a href="#running" title="running a
+   script">run</a> the <code><a href="#script1">script</a></code> element.
+
+  <p class=note>Equivalent requirements exist for the <a href="#html-0">HTML
+   parser</a>, but they are detailed in that section instead.
+
+  <p>When a <code><a href="#script1">script</a></code> element that is marked
+   as neither having <a href="#already">"already executed"</a> nor being <a
+   href="#parser-inserted">"parser-inserted"</a> is <a href="#inserted"
+   title="insert an element into a document">inserted into a document</a>,
+   the user agent must <a href="#running" title="running a script">run</a>
+   the <code><a href="#script1">script</a></code> element.
+
+  <p><dfn id=running title="running a script">Running a script</dfn>: When a
+   <code><a href="#script1">script</a></code> element is to be run, the user
+   agent must act as follows:
+
+  <ol>
+   <li>
+    <p>If either:</p>
+
+    <ul class=brief>
+     <li>the <code><a href="#script1">script</a></code> element has a <code
+      title=attr-script-type><a href="#type3">type</a></code> attribute and
+      its value is the empty string, or
+
+     <li>the <code><a href="#script1">script</a></code> element has no <code
+      title=attr-script-type><a href="#type3">type</a></code> attribute but
+      it has a <code title=attr-script-language>language</code> attribute and
+      <em>that</em> attribute's value is the empty string, or
+
+     <li>the <code><a href="#script1">script</a></code> element has neither a
+      <code title=attr-script-type><a href="#type3">type</a></code> attribute
+      nor a <code title=attr-script-language>language</code> attribute, then
+    </ul>
+
+    <p>...let <var><a href="#the-scripts">the script's type</a></var> for
+     this <code><a href="#script1">script</a></code> element be "<code
+     title="">text/javascript</code>".</p>
+
+    <p>Otherwise, if the <code><a href="#script1">script</a></code> element
+     has a <code title=attr-script-type><a href="#type3">type</a></code>
+     attribute, let <var><a href="#the-scripts">the script's type</a></var>
+     for this <code><a href="#script1">script</a></code> element be the value
+     of that attribute.</p>
+
+    <p>Otherwise, the element has a <code
+     title=attr-script-language>language</code> attribute; let <var><a
+     href="#the-scripts">the script's type</a></var> for this <code><a
+     href="#script1">script</a></code> element be the concatenation of the
+     string "<code title="">text/</code>" followed by the value of the <code
+     title=attr-script-language>language</code> attribute.</p>
+    <!-- user agents already support, e.g., type="text/javascript1.3",
+    so we don't have to support that separately. -->
+    
+
+   <li>
+    <p>If the <code><a href="#script1">script</a></code> element has a <code
+     title=attr-script-charset><a href="#charset2">charset</a></code>
+     attribute, then let <var><a href="#the-scripts0">the script's character
+     encoding</a></var> for this <code><a href="#script1">script</a></code>
+     element be the encoding given by the <code title=attr-script-charset><a
+     href="#charset2">charset</a></code> attribute.</p>
+
+    <p>Otherwise, let <var><a href="#the-scripts0">the script's character
+     encoding</a></var> for this <code><a href="#script1">script</a></code>
+     element be the same as <a href="#character4" title="document's character
+     encoding">the encoding of the document itself</a>.</p>
+
+   <li>
+    <p>If the <code><a href="#script1">script</a></code> element is <a
+     href="#without">without script</a>, or if the <code><a
+     href="#script1">script</a></code> element was created by an <span>XML
+     parser</span> that itself was created as part of the processing of the
+     <code title=dom-innerHTML-XML><a href="#innerhtml1">innerHTML</a></code>
+     attribute's setter<!--
+    no need to worry about the HTML case, as the HTML parser handles
+    that for us -->,
+     or if the user agent does not <a href="#support">support the scripting
+     language</a> given by <var><a href="#the-scripts">the script's
+     type</a></var> for this <code><a href="#script1">script</a></code>
+     element, then the user agent must abort these steps at this point. The
+     script is not executed.</p>
+
+   <li>
+    <p>The user agent must set the element's <a href="#already">"already
+     executed"</a> flag.</p>
+
+   <li>
+    <p>If the element has a <code title=attr-script-src><a
+     href="#src">src</a></code> attribute, then the specified resource must
+     be <a href="#fetch" title=fetch>fetched</a>.</p>
+
+    <p>For historical reasons, if the <a href="#url">URL</a> is a <a
+     href="#the-javascript" title="javascript protocol"><code
+     title="">javascript:</code> URL</a>, then the user agent must not,
+     despite the requirements in the definition of the <a href="#fetch"
+     title=fetch>fetching</a> algorithm, actually execute the given script;
+     instead the user agent must act as if it had received an empty HTTP 400
+     response.</p>
+
+    <p>Once the fetching process has completed, and the script has <dfn
+     id=completed>completed loading</dfn>, the user agent will have to
+     complete <a href="#when-a" title="when a script completes loading">the
+     steps described below</a>. (If the parser is still active at that time,
+     those steps defer to the parser to handle the execution of pending
+     scripts.)</p>
+
+    <p>For performance reasons, user agents may start fetching the script as
+     soon as the attribute is set, instead, in the hope that the element will
+     be inserted into the document. Either way, once the element is <a
+     href="#inserted" title="insert an element into a document">inserted into
+     the document</a>, the load must have started. If the UA performs such
+     prefetching, but the element is never inserted in the document, or the
+     <code title=attr-script-src><a href="#src">src</a></code> attribute is
+     dynamically changed, then the user agent will not execute the script,
+     and the fetching process will have been effectively wasted.</p>
+
+   <li>
+    <p>Then, the first of the following options that describes the situation
+     must be followed:</p>
+
+    <dl class=switch>
+     <dt>If the document is still being parsed, and the element has a <code
+      title=attr-script-defer><a href="#defer">defer</a></code> attribute,
+      and the element does not have an <code title=attr-script-async><a
+      href="#async">async</a></code> attribute
+
+     <dd>The element must be added to the end of the <a href="#list-of">list
+      of scripts that will execute when the document has finished
+      parsing</a>. <span class=big-issue>This isn't compatible with IE for
+      inline deferred scripts, but then what IE does is pretty hard to pin
+      down exactly. Do we want to keep this like it is? Be more
+      compatible?</span> <!--XXX  
+     http://www.websiteoptimization.com/speed/tweak/defer/test/
+     internal deferred scripts execute before any external scripts execute, or before the LOAD if there are none
+     external deferred scripts execute before the LOAD
+     -->
+      
+
+     <dt>If the element has an <code title=attr-script-async><a
+      href="#async">async</a></code> attribute and a <code
+      title=attr-script-src><a href="#src">src</a></code> attribute
+
+     <dd>The element must be added to the end of the <a href="#list-of0">list
+      of scripts that will execute asynchronously</a>.
+
+     <dt>If the element has an <code title=attr-script-async><a
+      href="#async">async</a></code> attribute but no <code
+      title=attr-script-src><a href="#src">src</a></code> attribute, and the
+      <a href="#list-of0">list of scripts that will execute
+      asynchronously</a> is not empty
+
+     <dd>The element must be added to the end of the <a href="#list-of0">list
+      of scripts that will execute asynchronously</a>.
+
+     <dt>If the element has a <code title=attr-script-src><a
+      href="#src">src</a></code> attribute and has been flagged as <a
+      href="#parser-inserted">"parser-inserted"</a>
+
+     <dd>The element is the <span>pending external script</span>. (There can
+      only be one such script at a time.)
+
+     <dt>If the element has a <code title=attr-script-src><a
+      href="#src">src</a></code> attribute
+
+     <dd>The element must be added to the end of the <a href="#list-of1">list
+      of scripts that will execute as soon as possible</a>.
+
+     <dt>Otherwise
+
+     <dd>The user agent must immediately <a href="#executing0"
+      title="executing a script block">execute the script</a>, even if other
+      scripts are already executing.
+    </dl>
+  </ol>
+
+  <p><dfn id=when-a>When a script completes loading</dfn>: If the script's
+   element was added to one of the lists mentioned above and the document is
+   still being parsed, then the parser handles it. Otherwise, the UA must run
+   the following steps as the <a href="#tasks" title=concept-task>task</a>
+   that the <a href="#networking">networking task source</a> places on the <a
+   href="#task-queues">task queue</a>:
+
+  <dl class=switch>
+   <dt>If the script's element was added to the <dfn id=list-of>list of
+    scripts that will execute when the document has finished parsing</dfn>:
+
+   <dd>
+    <ol>
+     <li>
+      <p>If the script's element is not the first element in the list, then
+       do nothing yet. Stop going through these steps.</p>
+
+     <li>
+      <p>Otherwise, <a href="#executing0" title="executing a script
+       block">execute the script</a> (that is, the script associated with the
+       first element in the list).</p>
+
+     <li>
+      <p>Remove the script's element from the list (i.e. shift out the first
+       entry in the list).</p>
+
+     <li>
+      <p>If there are any more entries in the list, and if the script
+       associated with the element that is now the first in the list is
+       already loaded, then jump back to step two to execute it.</p>
+    </ol>
+
+   <dt>If the script's element was added to the <dfn id=list-of0>list of
+    scripts that will execute asynchronously</dfn>:
+
+   <dd>
+    <ol>
+     <li>
+      <p>If the script is not the first element in the list, then do nothing
+       yet. Stop going through these steps.</p>
+
+     <li>
+      <p><a href="#executing0" title="executing a script block">Execute the
+       script</a> (the script associated with the first element in the list).</p>
+
+     <li>
+      <p>Remove the script's element from the list (i.e. shift out the first
+       entry in the list).</p>
+
+     <li>
+      <p>If there are any more scripts in the list, and the element now at
+       the head of the list had no <code title=attr-script-src><a
+       href="#src">src</a></code> attribute when it was added to the list, or
+       had one, but its associated script has finished loading, then jump
+       back to step two to execute the script associated with this element.</p>
+    </ol>
+
+   <dt>If the script's element was added to the <dfn id=list-of1>list of
+    scripts that will execute as soon as possible</dfn>:
+
+   <dd>
+    <ol>
+     <li>
+      <p><a href="#executing0" title="executing a script block">Execute the
+       script</a>.</p>
+
+     <li>
+      <p>Remove the script's element from the list.</p>
+    </ol>
+  </dl>
+
+  <p>Fetching an external script must <a href="#delays">delay the <code
+   title=event-load>load</code> event</a>.
+
+  <p><dfn id=executing0 title="executing a script block">Executing a script
+   block</dfn>: When the steps above require that the script be executed, the
+   user agent must act as follows:
+
+  <dl class=switch>
+   <dt>If the load resulted in an error (for example a DNS error, or an HTTP
+    404 error)
+
+   <dd>
+    <p>Executing the script must just consist of <a href="#firing5"
+     title="fire an error event">firing an <code
+     title=event-error>error</code> event</a> at the element.
+
+   <dt>If the load was successful
+
+   <dd>
+    <ol>
+     <li>
+      <p>If the <code><a href="#script1">script</a></code> element's
+       <code>Document</code> is the <a href="#active">active document</a> in
+       its <a href="#browsing1">browsing context</a>, the user agent must
+       execute the script:</p>
+
+      <dl class=switch>
+       <dt>If the script is from an external file
+
+       <dd>
+        <p>That file must be used as the file to execute.</p>
+
+        <p>The file must be interpreted using the character encoding given by
+         <var><a href="#the-scripts0">the script's character
+         encoding</a></var>, regardless of any metadata given by the file's
+         <a href="#content-type5" title=Content-Type>Content-Type
+         metadata</a>.</p>
+
+        <p class=big-issue>This means that a UTF-16 document will always
+         assume external scripts are UTF-16...? This applies, e.g., to
+         document's created using createDocument()... It also means changing
+         document.charSet will affect the character encoding used to
+         interpret scripts, is that really what happens?</p>
+
+       <dt>If the script is inline
+
+       <dd>
+        <p>For scripting languages that consist of pure text, user agents
+         must use the value of the DOM <code title=dom-script-text><a
+         href="#text1">text</a></code> attribute (defined below) as the
+         script to execute, and for XML-based scripting languages, user
+         agents must use all the child nodes of the <code><a
+         href="#script1">script</a></code> element as the script to execute.</p>
+      </dl>
+      <!-- SCRIPT EXEC -->
+      <p>In any case, the user agent must execute the script according to the
+       semantics defined by the language associated with <var><a
+       href="#the-scripts">the script's type</a></var> (see the <a
+       href="#scriptingLanguages">scripting languages</a> section below).</p>
+
+      <p>The <a href="#script2">script execution context</a> of the script
+       must be the <code><a href="#window">Window</a></code> object of that
+       <a href="#browsing1">browsing context</a>.</p>
+
+      <p>The <a href="#script4">script document context</a> of the script
+       must be the <code>Document</code> object that owns the <code><a
+       href="#script1">script</a></code> element.</p>
+
+      <p class=note>The element's attributes' values might have changed
+       between when the element was inserted into the document and when the
+       script has finished loading, as may its other attributes; similarly,
+       the element itself might have been taken back out of the DOM, or had
+       other changes made. These changes do not in any way affect the above
+       steps; only the values of the attributes at the time the <code><a
+       href="#script1">script</a></code> element is first inserted into the
+       document matter.</p>
+
+     <li>
+      <p>Then, the user agent must <a href="#firing4">fire a <code
+       title=event-load>load</code> event</a> at the <code><a
+       href="#script1">script</a></code> element.</p>
+    </ol>
+  </dl>
+
+  <p>The DOM attributes <dfn id=src0
+   title=dom-script-src><code>src</code></dfn>, <dfn id=type4
+   title=dom-script-type><code>type</code></dfn>, <dfn id=charset3
+   title=dom-script-charset><code>charset</code></dfn>, <dfn id=async0
+   title=dom-script-async><code>async</code></dfn>, and <dfn id=defer0
+   title=dom-script-defer><code>defer</code></dfn>, each must <a
+   href="#reflect">reflect</a> the respective content attributes of the same
+   name.
+
+  <p>The DOM attribute <dfn id=text1
+   title=dom-script-text><code>text</code></dfn> must return a concatenation
+   of the contents of all the <a href="#text-node" title="text node">text
+   nodes</a> that are direct children of the <code><a
+   href="#script1">script</a></code> element (ignoring any other nodes such
+   as comments or elements), in tree order. On setting, it must act the same
+   way as the <code><a href="#textcontent">textContent</a></code> DOM
+   attribute.
+
+  <div class=example>
+   <p>In this example, two <code><a href="#script1">script</a></code>
+    elements are used. One embeds an external script, and the other includes
+    some data.</p>
+
+   <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
+</script></pre>
+
+   <p>The data in this case might be used by the script to generate the map
+    of a video game. The data doesn't have to be used that way, though; maybe
+    the map data is actually embedded in other parts of the page's markup,
+    and the data block here is just used by the site's search engine to help
+    users who are looking for particular features in their game maps.</p>
+  </div>
+
+  <h5 id=scriptingLanguages><span class=secno>4.3.1.1. </span>Scripting
+   languages</h5>
+
+  <p>A user agent is said to <dfn id=support>support the scripting
+   language</dfn> if <var><a href="#the-scripts">the script's type</a></var>
+   matches the MIME type of a scripting language that the user agent
+   implements.
+
+  <p>The following lists some MIME types and the languages to which they
+   refer:
+
+  <dl>
+   <dt><code>text/javascript</code>
+
+   <dt><code>text/javascript1.1</code>
+
+   <dt><code>text/javascript1.2</code>
+
+   <dt><code>text/javascript1.3</code>
+
+   <dd>ECMAScript. <a href="#refsECMA262">[ECMA262]</a>
+
+   <dt><code>text/javascript;e4x=1</code>
+
+   <dd>ECMAScript with ECMAScript for XML. <a
+    href="#refsECMA357">[ECMA357]</a>
+  </dl>
+
+  <p>User agents may support other MIME types and other languages.
+
+  <p>When examining types to determine if they support the language, user
+   agents must not ignore unknown MIME parameters — types with unknown
+   parameters must be assumed to be unsupported.</p>
+  <!--
+   XXX we should reference #refsRFC4329 http://www.ietf.org/rfc/rfc4329
+  -->
+
+  <h4 id=the-noscript><span class=secno>4.3.2 </span>The <dfn
+   id=noscript><code>noscript</code></dfn> element</h4>
+
+  <dl class=element>
+   <dt>Categories
+
+   <dd><a href="#metadata0">Metadata content</a>.
+
+   <dd><a href="#phrasing0">Phrasing content</a>.
+
+   <dt>Contexts in which this element may be used:
+
+   <dd>In a <code><a href="#head">head</a></code> element of an <a
+    href="#html-" title="HTML documents">HTML document</a>, if there are no
+    ancestor <code><a href="#noscript">noscript</a></code> elements.
+
+   <dd>Where <a href="#phrasing0">phrasing content</a> is expected in <a
+    href="#html-">HTML documents</a>, if there are no ancestor <code><a
+    href="#noscript">noscript</a></code> elements.
+
+   <dt>Content model:
+
+   <dd><a href="#without">Without script</a>, in a <code><a
+    href="#head">head</a></code> element: in any order, zero or more <code><a
+    href="#link">link</a></code> elements, zero or more <code><a
+    href="#style1">style</a></code> elements, and zero or more <code><a
+    href="#meta0">meta</a></code> elements.
+
+   <dd><a href="#without">Without script</a>, not in a <code><a
+    href="#head">head</a></code> element: <a
+    href="#transparent0">transparent</a>, but there must be no <code><a
+    href="#noscript">noscript</a></code> element descendants.
+
+   <dd><a href="#with-script">With script</a>: text that conforms to the
+    requirements given in the prose.
+
+   <dt>Element-specific attributes:
+
+   <dd>None.
+
+   <dt>DOM interface:
+
+   <dd>Uses <code><a href="#htmlelement">HTMLElement</a></code>.
+  </dl>
+
+  <p>The <code><a href="#noscript">noscript</a></code> element does not
+   represent anything. It is used to present different markup to user agents
+   that support scripting and those that don't support scripting, by
+   affecting how the document is parsed.
+
+  <p>The <code><a href="#noscript">noscript</a></code> element must not be
+   used in <a href="#xml-documents">XML documents</a>.
+
+  <p class=note><strong>The <code><a href="#noscript">noscript</a></code>
+   element is only effective in the <span title="">HTML
+   serialization</span><!-- XXX
+  xref -->, it has no effect in the <span
+   title="">XML serialization</span><!-- XXX xref -->.</strong>
+
+  <p>When used in <a href="#html-">HTML documents</a>, the allowed content
+   model is as follows:
+
+  <p>In a <code><a href="#head">head</a></code> element, if the <code><a
+   href="#noscript">noscript</a></code> element is <a href="#without">without
+   script</a>, then the content model of a <code><a
+   href="#noscript">noscript</a></code> element must contain only <code><a
+   href="#link">link</a></code>, <code><a href="#style1">style</a></code>,
+   and <code><a href="#meta0">meta</a></code> elements. If the <code><a
+   href="#noscript">noscript</a></code> element is <a
+   href="#with-script">with script</a>, then the content model of a <code><a
+   href="#noscript">noscript</a></code> element is text, except that invoking
+   the <a href="#html-fragment0">HTML fragment parsing algorithm</a> with the
+   <code><a href="#noscript">noscript</a></code> element as the <var
+   title="">context</var> element and the text contents as the <var
+   title="">input</var> must result in a list of nodes that consists only of
+   <code><a href="#link">link</a></code>, <code><a
+   href="#style1">style</a></code>, and <code><a
+   href="#meta0">meta</a></code> elements.
+
+  <p>Outside of <code><a href="#head">head</a></code> elements, if the
+   <code><a href="#noscript">noscript</a></code> element is <a
+   href="#without">without script</a>, then the content model of a <code><a
+   href="#noscript">noscript</a></code> element is <a
+   href="#transparent0">transparent</a>, with the additional restriction that
+   a <code><a href="#noscript">noscript</a></code> element must not have a
+   <code><a href="#noscript">noscript</a></code> element as an ancestor (that
+   is, <code><a href="#noscript">noscript</a></code> can't be nested).
+
+  <p>Outside of <code><a href="#head">head</a></code> elements, if the
+   <code><a href="#noscript">noscript</a></code> element is <a
+   href="#with-script">with script</a>, then the content model of a <code><a
+   href="#noscript">noscript</a></code> element is text, except that the text
+   must be such that running the following algorithm results in a conforming
+   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="#parse2">parse error</a>:
+
+  <ol>
+   <li>Remove every <code><a href="#script1">script</a></code> element from
+    the document.
+
+   <li>Make a list of every <code><a href="#noscript">noscript</a></code>
+    element in the document. For every <code><a
+    href="#noscript">noscript</a></code> element in that list, perform the
+    following steps:
+    <ol>
+     <li>Let the <var title="">parent element</var> be the parent element of
+      the <code><a href="#noscript">noscript</a></code> element.
+
+     <li>Take all the children of the <var title="">parent element</var> that
+      come before the <code><a href="#noscript">noscript</a></code> element,
+      and call these elements <var title="">the before children</var>.
+
+     <li>Take all the children of the <var title="">parent element</var> that
+      come <em>after</em> the <code><a href="#noscript">noscript</a></code>
+      element, and call these elements <var title="">the after
+      children</var>.
+
+     <li>Let <var title="">s</var> be the concatenation of all the <a
+      href="#text-node">text node</a> children of the <code><a
+      href="#noscript">noscript</a></code> element.
+
+     <li>Set the <code title=dom-innerHTML-HTML><a
+      href="#innerhtml0">innerHTML</a></code> attribute of the <var
+      title="">parent element</var> to the value of <var title="">s</var>.
+      (This, as a side-effect, causes the <code><a
+      href="#noscript">noscript</a></code> element to be removed from the
+      document.)
+
+     <li>Insert <var title="">the before children</var> at the start of the
+      <var title="">parent element</var>, preserving their original relative
+      order.
+
+     <li>Insert <var title="">the after children</var> at the end of the <var
+      title="">parent element</var>, preserving their original relative
+      order.
+    </ol>
+  </ol>
+
+  <p>The <code><a href="#noscript">noscript</a></code> element has no other
+   requirements. In particular, children of the <code><a
+   href="#noscript">noscript</a></code> element are not exempt from form
+   submission, scripting, and so forth, even when the element is <a
+   href="#with-script">with script</a>.
+
+  <p class=note>All these contortions are required because, for historical
+   reasons, the <code><a href="#noscript">noscript</a></code> element is
+   handled differently by the <a href="#html-0">HTML parser</a> based on
+   whether <a href="#scripting3" title="scripting flag">scripting was enabled
+   or not</a> when the parser was invoked. The element is not allowed in XML,
+   because in XML the parser is not affected by such state, and thus the
+   element would not have the desired effect.
+
+  <p class=note>The <code><a href="#noscript">noscript</a></code> element
+   interacts poorly with the <code title=dom-document-designMode><a
+   href="#designMode">designMode</a></code> feature. Authors are encouraged
+   to not use <code><a href="#noscript">noscript</a></code> elements on pages
+   that will have <code title=dom-document-designMode><a
+   href="#designMode">designMode</a></code> enabled.
+
+  <h4 id=the-eventsource><span class=secno>4.3.3 </span>The <dfn
+   id=eventsource><code>eventsource</code></dfn> element</h4>
+
+  <dl class=element>
+   <dt>Categories
+
+   <dd><a href="#metadata0">Metadata content</a>.
+
+   <dd><a href="#phrasing0">Phrasing content</a>.
+
+   <dt>Contexts in which this element may be used:
+
+   <dd>Where <a href="#metadata0">metadata content</a> is expected.
+
+   <dd>Where <a href="#phrasing0">phrasing content</a> is expected.
+
+   <dt>Content model:
+
+   <dd>Empty.
+
+   <dt>Element-specific attributes:
+
+   <dd><code title=attr-eventsource-src><a href="#src1">src</a></code>
+
+   <dt>DOM interface:
+
+   <dd>
+    <pre
+     class=idl>interface <dfn id=htmleventsourceelement>HTMLEventSourceElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
+           attribute DOMString <a href="#src2" title=dom-eventsource-src>src</a>;
+};</pre>
+  </dl>
+
+  <p>The <code><a href="#eventsource">eventsource</a></code> element
+   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="#valid8">valid URL</a>
+   identifying a resource that uses the <code>text/event-stream</code>
+   format.
+
+  <p>When an <code><a href="#eventsource">eventsource</a></code> element with
+   a <code title=attr-eventsource-src><a href="#src1">src</a></code>
+   attribute specified is <a href="#inserted" title="insert an element into a
+   document">inserted into the document</a>, and when an <code><a
+   href="#eventsource">eventsource</a></code> element that is already in the
+   document<!--XXX xref--> has a <code title=attr-eventsource-src><a
+   href="#src1">src</a></code> attribute added, the user agent must run the
+   <a href="#add-declared">add declared event source</a> algorithm.
+
+  <p>While an <code><a href="#eventsource">eventsource</a></code> element is
+   in a document<!--
+  XXX xref -->, if its <code
+   title=attr-eventsource-src><a href="#src1">src</a></code> attribute is
+   mutated, the user agent must must run the <a href="#remove1">remove
+   declared event source</a> algorithm followed by the <a
+   href="#add-declared">add declared event source</a> algorithm.
+
+  <p>When an <code><a href="#eventsource">eventsource</a></code> element with
+   a <code title=attr-eventsource-src><a href="#src1">src</a></code>
+   attribute specified is removed from a document<!-- XXX xref -->, and when
+   an <code><a href="#eventsource">eventsource</a></code> element that is in
+   a document<!--XXX
+  xref--> with a <code title=attr-eventsource-src><a
+   href="#src1">src</a></code> attribute specified has its <code
+   title=attr-eventsource-src><a href="#src1">src</a></code> attribute
+   removed, the user agent must run the <a href="#remove1">remove declared
+   event source</a> algorithm.</p>
+  <!-- changing the base URL doesn't trigger these algorithms -->
+
+  <p>When it is created, an <code><a
+   href="#eventsource">eventsource</a></code> element must have its
+   <i>current declared event source</i> set to "undefined".
+
+  <p>The <dfn id=add-declared>add declared event source</dfn> algorithm is as
+   follows:
+
+  <ol>
+   <li><a href="#resolve" title="resolve a url">Resolve</a> the <a
+    href="#url">URL</a> specified by the <code><a
+    href="#eventsource">eventsource</a></code> element's <code
+    title=attr-eventsource-src><a href="#src1">src</a></code> attribute.
+
+   <li>If that fails, then set the element's <i>current declared event
+    source</i> to "undefined" and abort these steps.
+
+   <li>Otherwise, act as if the <code
+    title=dom-remoteEventTarget-addEventSource><a
+    href="#addeventsource">addEventSource()</a></code> method on the <code><a
+    href="#eventsource">eventsource</a></code> element had been invoked with
+    the resulting <a href="#absolute">absolute URL</a>.
+
+   <li>Let the element's <i>current declared event source</i> be that <a
+    href="#absolute">absolute URL</a>.
+  </ol>
+
+  <p>The <dfn id=remove1>remove declared event source</dfn> algorithm is as
+   follows:
+
+  <ol>
+   <li>If the element's <i>current declared event source</i> is "undefined",
+    abort these steps.
+
+   <li>Otherwise, act as if the <code
+    title=dom-remoteEventTarget-removeEventSource><a
+    href="#removeeventsource">removeEventSource()</a></code> method on the
+    <code><a href="#eventsource">eventsource</a></code> element had been
+    invoked with the element's <i>current declared event source</i>.
+
+   <li>Let the element's <i>current declared event source</i> be "undefined".
+  </ol>
+
+  <p>There can be more than one <code><a
+   href="#eventsource">eventsource</a></code> element per document, but
+   authors should take care to avoid opening multiple connections to the same
+   server as HTTP recommends a limit to the number of simultaneous
+   connections that a user agent can open per server.</p>
+  <!-- XXX should we make 'load', 'error', 'abort' events fire on this
+  element? -->
+
+  <p>The <dfn id=src2 title=dom-eventsource-src><code>src</code></dfn> DOM
+   attribute must <a href="#reflect">reflect</a> the content attribute of the
+   same name.
+
+  <h3 id=sections><span class=secno>4.4 </span>Sections</h3>
+
   <p id=applyToSection>Some elements, for example <code><a
    href="#address">address</a></code> elements, are scoped to their nearest
    ancestor <a href="#sectioning0">sectioning content</a>. For such elements
@@ -11143,7 +12017,7 @@
    href="#sectioning0">sectioning content</a> ancestor is <var
    title="">e</var>.
 
-  <h4 id=the-body><span class=secno>4.3.1 </span>The <dfn
+  <h4 id=the-body><span class=secno>4.4.1 </span>The <dfn
    id=body0><code>body</code></dfn> element</h4>
 
   <dl class=element>
@@ -11186,7 +12060,7 @@
    element in the DOM, as per the definition of the term, and not any
    arbitrary <code><a href="#body0">body</a></code> element.
 
-  <h4 id=the-section><span class=secno>4.3.2 </span>The <dfn
+  <h4 id=the-section><span class=secno>4.4.2 </span>The <dfn
    id=section><code>section</code></dfn> element</h4>
 
   <dl class=element>
@@ -11223,7 +12097,7 @@
    site's home page could be split into sections for an introduction, news
    items, contact information.
 
-  <h4 id=the-nav><span class=secno>4.3.3 </span>The <dfn
+  <h4 id=the-nav><span class=secno>4.4.3 </span>The <dfn
    id=nav><code>nav</code></dfn> element</h4>
 
   <dl class=element>
@@ -11291,7 +12165,7 @@
 </body></pre>
   </div>
 
-  <h4 id=the-article><span class=secno>4.3.4 </span>The <dfn
+  <h4 id=the-article><span class=secno>4.4.4 </span>The <dfn
    id=article><code>article</code></dfn> element</h4>
 
   <dl class=element>
@@ -11351,7 +12225,7 @@
    href="#address">address</a></code> element) does not apply to nested
    <code><a href="#article">article</a></code> elements.
 
-  <h4 id=the-aside><span class=secno>4.3.5 </span>The <dfn
+  <h4 id=the-aside><span class=secno>4.4.5 </span>The <dfn
    id=aside><code>aside</code></dfn> element</h4>
 
   <dl class=element>
@@ -11421,7 +12295,7 @@
 ...</pre>
   </div>
 
-  <h4 id=the-h1><span class=secno>4.3.6 </span>The <dfn
+  <h4 id=the-h1><span class=secno>4.4.6 </span>The <dfn
    id=h1><code>h1</code></dfn>, <dfn id=h2><code>h2</code></dfn>, <dfn
    id=h3><code>h3</code></dfn>, <dfn id=h4><code>h4</code></dfn>, <dfn
    id=h5><code>h5</code></dfn>, and <dfn id=h6><code>h6</code></dfn> elements</h4>
@@ -11460,7 +12334,7 @@
    the highest rank, the <code><a href="#h6">h6</a></code> element has the
    lowest rank, and two elements with the same name have equal rank.
 
-  <h4 id=the-header><span class=secno>4.3.7 </span>The <dfn
+  <h4 id=the-header><span class=secno>4.4.7 </span>The <dfn
    id=header><code>header</code></dfn> element</h4>
 
   <dl class=element>
@@ -11561,7 +12435,7 @@
 </header></pre>
   </div>
 
-  <h4 id=the-footer><span class=secno>4.3.8 </span>The <dfn
+  <h4 id=the-footer><span class=secno>4.4.8 </span>The <dfn
    id=footer><code>footer</code></dfn> element</h4>
 
   <dl class=element>
@@ -11619,7 +12493,7 @@
 </body></pre>
   </div>
 
-  <h4 id=the-address><span class=secno>4.3.9 </span>The <dfn
+  <h4 id=the-address><span class=secno>4.4.9 </span>The <dfn
    id=address><code>address</code></dfn> element</h4>
 
   <dl class=element>
@@ -11702,7 +12576,7 @@
    element, does not apply to its ancestor elements, e.g. the page's <code><a
    href="#body0">body</a></code>.
 
-  <h4 id=headings><span class=secno>4.3.10 </span><dfn id=headings0>Headings
+  <h4 id=headings><span class=secno>4.4.10 </span><dfn id=headings0>Headings
    and sections</dfn></h4>
 
   <p>The <code><a href="#h1">h1</a></code>–<code><a
@@ -11814,7 +12688,7 @@
     produce the same outline in compliant user agents.</p>
   </div>
 
-  <h5 id=outlines><span class=secno>4.3.10.1. </span>Creating an outline</h5>
+  <h5 id=outlines><span class=secno>4.4.10.1. </span>Creating an outline</h5>
 
   <p>This section defines an algorithm for creating an outline for a <a
    href="#sectioning0">sectioning content</a> element or a <a
@@ -12149,7 +13023,7 @@
 }</pre>
   </div>
 
-  <h5 id=distinguishing><span class=secno>4.3.10.2. </span>Distinguishing
+  <h5 id=distinguishing><span class=secno>4.4.10.2. </span>Distinguishing
    site-wide headings from page headings</h5>
 
   <p>Given the <a href="#outline">outline</a> of a document, but ignoring any
@@ -12192,10 +13066,10 @@
    original single page becomes the heading of the site, repeated on every
    page.
 
-  <h3 id=grouping><span class=secno>4.4 </span>Grouping content</h3>
+  <h3 id=grouping><span class=secno>4.5 </span>Grouping content</h3>
   <!-- XXX ew, find a better section name -->
 
-  <h4 id=the-p><span class=secno>4.4.1 </span>The <dfn
+  <h4 id=the-p><span class=secno>4.5.1 </span>The <dfn
    id=p><code>p</code></dfn> element</h4>
 
   <dl class=element>
@@ -12277,7 +13151,7 @@
 </section></pre>
   </div>
 
-  <h4 id=the-hr><span class=secno>4.4.2 </span>The <dfn
+  <h4 id=the-hr><span class=secno>4.5.2 </span>The <dfn
    id=hr><code>hr</code></dfn> element</h4>
 
   <dl class=element>
@@ -12307,7 +13181,7 @@
    in a story, or a transition to another topic within a section of a
    reference book.
 
-  <h4 id=the-br><span class=secno>4.4.3 </span>The <dfn
+  <h4 id=the-br><span class=secno>4.5.3 </span>The <dfn
    id=br><code>br</code></dfn> element</h4>
 
   <dl class=element>
@@ -12382,7 +13256,7 @@
   content shouldn't go over the wire, though. We need to make it
   illegal while still defining what it means. Maybe. -->
 
-  <h4 id=the-pre><span class=secno>4.4.4 </span>The <dfn
+  <h4 id=the-pre><span class=secno>4.5.4 </span>The <dfn
    id=pre><code>pre</code></dfn> element</h4>
 
   <dl class=element>
@@ -12488,7 +13362,7 @@
 ~cdr 11dec07</pre></pre>
   </div>
 
-  <h4 id=the-dialog><span class=secno>4.4.5 </span>The <dfn
+  <h4 id=the-dialog><span class=secno>4.5.5 </span>The <dfn
    id=dialog><code>dialog</code></dfn> element</h4>
 
   <dl class=element>
@@ -12555,7 +13429,7 @@
    and <code><a href="#blockquote">blockquote</a></code> elements for other
    ways to cite or quote.
 
-  <h4 id=the-blockquote><span class=secno>4.4.6 </span>The <dfn
+  <h4 id=the-blockquote><span class=secno>4.5.6 </span>The <dfn
    id=blockquote><code>blockquote</code></dfn> element</h4>
 
   <dl class=element>
@@ -12622,7 +13496,7 @@
    href="#blockquote">blockquote</a></code> elements, but with the <code><a
    href="#dialog">dialog</a></code> element.
 
-  <h4 id=the-ol><span class=secno>4.4.7 </span>The <dfn
+  <h4 id=the-ol><span class=secno>4.5.7 </span>The <dfn
    id=ol><code>ol</code></dfn> element</h4>
 
   <dl class=element>
@@ -12738,7 +13612,7 @@
 </ol></pre>
   </div>
 
-  <h4 id=the-ul><span class=secno>4.4.8 </span>The <dfn
+  <h4 id=the-ul><span class=secno>4.5.8 </span>The <dfn
    id=ul><code>ul</code></dfn> element</h4>
 
   <dl class=element>
@@ -12804,7 +13678,7 @@
 </ul></pre>
   </div>
 
-  <h4 id=the-li><span class=secno>4.4.9 </span>The <dfn
+  <h4 id=the-li><span class=secno>4.5.9 </span>The <dfn
    id=li><code>li</code></dfn> element</h4>
 
   <dl class=element>
@@ -12925,7 +13799,7 @@
    title="">:enabled</code> and <code title="">:disabled</code>
    pseudo-classes in the same way as the first such child element does.
 
-  <h4 id=the-dl><span class=secno>4.4.10 </span>The <dfn
+  <h4 id=the-dl><span class=secno>4.5.10 </span>The <dfn
    id=dl><code>dl</code></dfn> element</h4>
 
   <dl class=element>
@@ -13086,7 +13960,7 @@
    speaker/line pair comes after the next). For an example of how to mark up
    dialogue, see the <code><a href="#dialog">dialog</a></code> element.
 
-  <h4 id=the-dt><span class=secno>4.4.11 </span>The <dfn
+  <h4 id=the-dt><span class=secno>4.5.11 </span>The <dfn
    id=dt><code>dt</code></dfn> element</h4>
 
   <dl class=element>
@@ -13150,7 +14024,7 @@
 </dialog></pre>
    <!-- with thanks to http://bash.org/?854262 --></div>
 
-  <h4 id=the-dd><span class=secno>4.4.12 </span>The <dfn
+  <h4 id=the-dd><span class=secno>4.5.12 </span>The <dfn
    id=dd><code>dd</code></dfn> element</h4>
 
   <dl class=element>
@@ -13186,10 +14060,10 @@
    discourse, or quote, part in a conversation (<code><a
    href="#dialog">dialog</a></code> element).
 
-  <h3 id=text-level><span class=secno>4.5 </span>Text-level semantics</h3>
+  <h3 id=text-level><span class=secno>4.6 </span>Text-level semantics</h3>
   <!-- XXX ew, find a better section name -->
 
-  <h4 id=the-a><span class=secno>4.5.1 </span>The <dfn
+  <h4 id=the-a><span class=secno>4.6.1 </span>The <dfn
    id=a><code>a</code></dfn> element</h4>
 
   <dl class=element>
@@ -13240,7 +14114,7 @@
   readonly attribute DOMTokenList <a href="#rellist0" title=dom-a-relList>relList</a>;
            attribute DOMString <a href="#media4" title=dom-a-media>media</a>;
            attribute DOMString <a href="#hreflang1" title=dom-a-hreflang>hreflang</a>;
-           attribute DOMString <a href="#type3" title=dom-a-type>type</a>;
+           attribute DOMString <a href="#type5" title=dom-a-type>type</a>;
 };</pre>
     <!-- XXX also support the URL decomposition attributes -->
     <p>The <code title=command-ro><a href="#command2">Command</a></code>
@@ -13356,7 +14230,7 @@
    title=dom-a-target><code>target</code></dfn>, <dfn id=rel1
    title=dom-a-rel><code>rel</code></dfn>, <dfn id=media4
    title=dom-a-media><code>media</code></dfn>, <dfn id=hreflang1
-   title=dom-a-hreflang><code>hreflang</code></dfn>, and <dfn id=type3
+   title=dom-a-hreflang><code>hreflang</code></dfn>, and <dfn id=type5
    title=dom-a-type><code>type</code></dfn>, must each <a
    href="#reflect">reflect</a> the respective content attributes of the same
    name.
@@ -13392,7 +14266,7 @@
 </aside></pre>
   </div>
 
-  <h4 id=the-q><span class=secno>4.5.2 </span>The <dfn
+  <h4 id=the-q><span class=secno>4.6.2 </span>The <dfn
    id=q><code>q</code></dfn> element</h4>
 
   <dl class=element>
@@ -13474,7 +14348,7 @@
    <pre><p>His best argument: <q>I disagree!</q></p></pre>
   </div>
 
-  <h4 id=the-cite><span class=secno>4.5.3 </span>The <dfn
+  <h4 id=the-cite><span class=secno>4.6.3 </span>The <dfn
    id=cite2><code>cite</code></dfn> element</h4>
 
   <dl class=element>
@@ -13600,7 +14474,7 @@
   ...</pre>
   </div>
 
-  <h4 id=the-em><span class=secno>4.5.4 </span>The <dfn
+  <h4 id=the-em><span class=secno>4.6.4 </span>The <dfn
    id=em><code>em</code></dfn> element</h4>
 
   <dl class=element>
@@ -13679,7 +14553,7 @@
 
   -->
 
-  <h4 id=the-strong><span class=secno>4.5.5 </span>The <dfn
+  <h4 id=the-strong><span class=secno>4.6.5 </span>The <dfn
    id=strong><code>strong</code></dfn> element</h4>
 
   <dl class=element>
@@ -13727,7 +14601,7 @@
 ten meters.</strong></strong> You have been warned.</p></pre>
   </div>
 
-  <h4 id=the-small><span class=secno>4.5.6 </span>The <dfn
+  <h4 id=the-small><span class=secno>4.6.6 </span>The <dfn
    id=small><code>small</code></dfn> element</h4>
 
   <dl class=element>
@@ -13787,7 +14661,7 @@
    <pre><p><strong><small>Continued use of this service will result in a kiss.</small></strong></p></pre>
   </div>
 
-  <h4 id=the-mark><span class=secno>4.5.7 </span>The <dfn
+  <h4 id=the-mark><span class=secno>4.6.7 </span>The <dfn
    id=mark><code>mark</code></dfn> element</h4>
 
   <dl class=element>
@@ -13934,7 +14808,7 @@
 wormhole connection.</mark></p></pre>
   </div>
 
-  <h4 id=the-dfn><span class=secno>4.5.8 </span>The <dfn
+  <h4 id=the-dfn><span class=secno>4.6.8 </span>The <dfn
    id=dfn><code>dfn</code></dfn> element</h4>
 
   <dl class=element>
@@ -14031,7 +14905,7 @@
 - mpt
 -->
 
-  <h4 id=the-abbr><span class=secno>4.5.9 </span>The <dfn
+  <h4 id=the-abbr><span class=secno>4.6.9 </span>The <dfn
    id=abbr><code>abbr</code></dfn> element</h4>
 
   <dl class=element>
@@ -14123,7 +14997,7 @@
 <abbr>HTMLWG</abbr>.</p></pre>
   </div>
 
-  <h4 id=the-time><span class=secno>4.5.10 </span>The <dfn
+  <h4 id=the-time><span class=secno>4.6.10 </span>The <dfn
    id=time><code>time</code></dfn> element</h4>
 
   <dl class=element>
@@ -14273,7 +15147,7 @@
    for marking event dates in hCalendar markup. Thus the DOM APIs are likely
    to be used as ways to generate interactive calendar widgets or some such.
 
-  <h4 id=the-progress><span class=secno>4.5.11 </span>The <dfn
+  <h4 id=the-progress><span class=secno>4.6.11 </span>The <dfn
    id=progress><code>progress</code></dfn> element</h4>
 
   <dl class=element>
@@ -14465,7 +15339,7 @@
    attribute must return &#x2212;1. Otherwise, it must return the result of
    dividing the current value by the maximum value.
 
-  <h4 id=the-meter><span class=secno>4.5.12 </span>The <dfn
+  <h4 id=the-meter><span class=secno>4.6.12 </span>The <dfn
    id=meter><code>meter</code></dfn> element</h4>
   <!-- Keep this after <progress> and NOT close to <time> -->
 
@@ -14870,7 +15744,7 @@
 should we make the contents accessible in some way, e.g. as a tooltip?
 -->
 
-  <h4 id=the-code><span class=secno>4.5.13 </span>The <dfn
+  <h4 id=the-code><span class=secno>4.6.13 </span>The <dfn
    id=code><code>code</code></dfn> element</h4>
 
   <dl class=element>
@@ -14937,7 +15811,7 @@
   <p class=note>See the <code><a href="#pre">pre</a></code> element for more
    details.
 
-  <h4 id=the-var><span class=secno>4.5.14 </span>The <dfn
+  <h4 id=the-var><span class=secno>4.6.14 </span>The <dfn
    id=var><code>var</code></dfn> element</h4>
 
   <dl class=element>
@@ -14976,7 +15850,7 @@
 flavours of ice cream to be available for purchase!</p></pre>
   </div>
 
-  <h4 id=the-samp><span class=secno>4.5.15 </span>The <dfn
+  <h4 id=the-samp><span class=secno>4.6.15 </span>The <dfn
    id=samp><code>samp</code></dfn> element</h4>
 
   <dl class=element>
@@ -15026,7 +15900,7 @@
 <samp class="prompt">jdoe at demo:~$</samp> <samp class="cursor">_</samp></samp></pre></pre>
   </div>
 
-  <h4 id=the-kbd><span class=secno>4.5.16 </span>The <dfn
+  <h4 id=the-kbd><span class=secno>4.6.16 </span>The <dfn
    id=kbd><code>kbd</code></dfn> element</h4>
 
   <dl class=element>
@@ -15087,7 +15961,7 @@
 </p></pre>
   </div>
 
-  <h4 id=the-sub><span class=secno>4.5.17 </span>The <dfn
+  <h4 id=the-sub><span class=secno>4.6.17 </span>The <dfn
    id=sub><code>sub</code></dfn> and <dfn id=sup><code>sup</code></dfn>
    elements</h4>
 
@@ -15158,7 +16032,7 @@
    <pre>f(<var>x</var>, <var>n</var>) = log<sub>4</sub><var>x</var><sup><var>n</var></sup></pre>
   </div>
 
-  <h4 id=the-span><span class=secno>4.5.18 </span>The <dfn
+  <h4 id=the-span><span class=secno>4.6.18 </span>The <dfn
    id=span><code>span</code></dfn> element</h4>
 
   <dl class=element>
@@ -15203,7 +16077,7 @@
   </div>
 -->
 
-  <h4 id=the-i><span class=secno>4.5.19 </span>The <dfn
+  <h4 id=the-i><span class=secno>4.6.19 </span>The <dfn
    id=i><code>i</code></dfn> element</h4>
 
   <dl class=element>
@@ -15282,7 +16156,7 @@
    restyled. Thus, it is not the case that content in <code><a
    href="#i">i</a></code> elements will necessarily be italicized.
 
-  <h4 id=the-b><span class=secno>4.5.20 </span>The <dfn
+  <h4 id=the-b><span class=secno>4.6.20 </span>The <dfn
    id=b><code>b</code></dfn> element</h4>
 
   <dl class=element>
@@ -15369,7 +16243,7 @@
    restyled. Thus, it is not the case that content in <code><a
    href="#b">b</a></code> elements will necessarily be boldened.
 
-  <h4 id=the-bdo><span class=secno>4.5.21 </span>The <dfn
+  <h4 id=the-bdo><span class=secno>4.6.21 </span>The <dfn
    id=bdo><code>bdo</code></dfn> element</h4>
 
   <dl class=element>
@@ -15425,7 +16299,7 @@
    <a href="#refsCSS21">[CSS21]</a></p>
   <!-- XXX need examples -->
 
-  <h4 id=the-ruby><span class=secno>4.5.22 </span>The <dfn
+  <h4 id=the-ruby><span class=secno>4.6.22 </span>The <dfn
    id=ruby><code>ruby</code></dfn> element</h4>
 
   <dl class=element>
@@ -15481,7 +16355,7 @@
     rendered in a smaller font above it." src="images/sample-ruby.png"></p>
   </div>
 
-  <h4 id=the-rt><span class=secno>4.5.23 </span>The <dfn
+  <h4 id=the-rt><span class=secno>4.6.23 </span>The <dfn
    id=rt><code>rt</code></dfn> element</h4>
 
   <dl class=element>
@@ -15519,7 +16393,7 @@
    <code><a href="#ruby">ruby</a></code> element represents the same thing as
    its children.
 
-  <h4 id=the-rp><span class=secno>4.5.24 </span>The <dfn
+  <h4 id=the-rp><span class=secno>4.6.24 </span>The <dfn
    id=rp><code>rp</code></dfn> element</h4>
 
   <dl class=element>
@@ -15582,14 +16456,14 @@
     lang=ja>... &#x658e; (&#x3055;&#x3044;) &#x85e4; (&#x3068;&#x3046;) &#x4fe1; (&#x306e;&#x3076;) &#x7537; (&#x304a;) ...</pre>
   </div>
 
-  <h4 id=usage><span class=secno>4.5.25 </span>Usage summary</h4>
+  <h4 id=usage><span class=secno>4.6.25 </span>Usage summary</h4>
 
   <p class=big-issue>We need to summarize the various elements, in particular
    to distinguish b/i/em/strong/var/q/mark/cite.</p>
   <!-- XXX when you do this, also reorder the elements in this section
   to bring the related ones closer together. -->
 
-  <h4 id=footnotes><span class=secno>4.5.26 </span>Footnotes</h4>
+  <h4 id=footnotes><span class=secno>4.6.26 </span>Footnotes</h4>
 
   <p>HTML does not have a dedicated mechanism for marking up footnotes. Here
    are the recommended alternatives.
@@ -15670,12 +16544,12 @@
 </aside></pre>
   </div>
 
-  <h3 id=edits><span class=secno>4.6 </span>Edits</h3>
+  <h3 id=edits><span class=secno>4.7 </span>Edits</h3>
 
   <p>The <code><a href="#ins">ins</a></code> and <code><a
    href="#del">del</a></code> elements represent edits to the document.
 
-  <h4 id=the-ins><span class=secno>4.6.1 </span>The <dfn
+  <h4 id=the-ins><span class=secno>4.7.1 </span>The <dfn
    id=ins><code>ins</code></dfn> element</h4>
 
   <dl class=element>
@@ -15770,7 +16644,7 @@
    something. Can you guess what? -->
    </div>
 
-  <h4 id=the-del><span class=secno>4.6.2 </span>The <dfn
+  <h4 id=the-del><span class=secno>4.7.2 </span>The <dfn
    id=del><code>del</code></dfn> element</h4>
 
   <dl class=element>
@@ -15807,7 +16681,7 @@
   <p><code><a href="#del">del</a></code> elements should not cross <a
    href="#paragraph" title=paragraph>implied paragraph</a> boundaries.
 
-  <h4 id=attributes><span class=secno>4.6.3 </span>Attributes common to
+  <h4 id=attributes><span class=secno>4.7.3 </span>Attributes common to
    <code><a href="#ins">ins</a></code> and <code><a
    href="#del">del</a></code> elements</h4>
 
@@ -15857,7 +16731,7 @@
    DOM attribute must <a href="#reflect">reflect</a> the element's <code
    title="">datetime</code> content attribute.
 
-  <h4 id=edits0><span class=secno>4.6.4 </span>Edits and paragraphs</h4>
+  <h4 id=edits0><span class=secno>4.7.4 </span>Edits and paragraphs</h4>
 
   <p>Since the <code><a href="#ins">ins</a></code> and <code><a
    href="#del">del</a></code> elements do not affect <a href="#paragraph"
@@ -15920,7 +16794,7 @@
    that cross across any <a href="#paragraph" title=paragraph>implied
    paragraphs</a>.
 
-  <h4 id=edits1><span class=secno>4.6.5 </span>Edits and lists</h4>
+  <h4 id=edits1><span class=secno>4.7.5 </span>Edits and lists</h4>
 
   <p>The content models of the <code><a href="#ol">ol</a></code> and <code><a
    href="#ul">ul</a></code> elements do not allow <code><a
@@ -15973,9 +16847,9 @@
 </ul></pre>
   </div>
 
-  <h3 id=embedded0><span class=secno>4.7 </span>Embedded content</h3>
+  <h3 id=embedded0><span class=secno>4.8 </span>Embedded content</h3>
 
-  <h4 id=the-figure><span class=secno>4.7.1 </span>The <dfn
+  <h4 id=the-figure><span class=secno>4.8.1 </span>The <dfn
    id=figure><code>figure</code></dfn> element</h4>
 
   <dl class=element>
@@ -16113,7 +16987,7 @@
 </figure></pre>
   </div>
 
-  <h4 id=the-img><span class=secno>4.7.2 </span>The <dfn
+  <h4 id=the-img><span class=secno>4.8.2 </span>The <dfn
    id=img><code>img</code></dfn> element</h4>
 
   <dl class=element>
@@ -16133,7 +17007,7 @@
 
    <dd><code title=attr-img-alt><a href="#alt0">alt</a></code>
 
-   <dd><code title=attr-img-src><a href="#src">src</a></code>
+   <dd><code title=attr-img-src><a href="#src3">src</a></code>
 
    <dd><code title=attr-hyperlink-usemap><a href="#usemap1">usemap</a></code>
 
@@ -16152,7 +17026,7 @@
  NamedConstructor=<a href="#image2" title=dom-image-wh>Image</a>(in unsigned long width, in unsigned long height)]
 interface <dfn id=htmlimageelement>HTMLImageElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
            attribute DOMString <a href="#alt1" title=dom-img-alt>alt</a>;
-           attribute DOMString <a href="#src0" title=dom-img-src>src</a>;
+           attribute DOMString <a href="#src4" title=dom-img-src>src</a>;
            attribute DOMString <a href="#usemap" title=dom-img-useMap>useMap</a>;
            attribute boolean <a href="#ismap0" title=dom-img-isMap>isMap</a>;
            attribute unsigned long <a href="#width" title=dom-img-width>width</a>;
@@ -16163,14 +17037,14 @@
 
   <p>An <code><a href="#img">img</a></code> element represents an image.
 
-  <p>The image given by the <dfn id=src
+  <p>The image given by the <dfn id=src3
    title=attr-img-src><code>src</code></dfn> attribute is the embedded
    content, and the value of the <dfn id=alt0
    title=attr-img-alt><code>alt</code></dfn> attribute is the <code><a
    href="#img">img</a></code> element's <a href="#fallback">fallback
    content</a>.
 
-  <p>The <code title=attr-img-src><a href="#src">src</a></code> attribute
+  <p>The <code title=attr-img-src><a href="#src3">src</a></code> attribute
    must be present, and must contain a <a href="#valid8">valid URL</a>
    referencing a non-interactive, optionally animated, image resource that is
    neither paged nor scripted.
@@ -16200,13 +17074,13 @@
   <hr>
 
   <p>When an <code><a href="#img">img</a></code> is created with a <code
-   title=attr-img-src><a href="#src">src</a></code> attribute, and whenever
-   the <code title=attr-img-src><a href="#src">src</a></code> attribute is
+   title=attr-img-src><a href="#src3">src</a></code> attribute, and whenever
+   the <code title=attr-img-src><a href="#src3">src</a></code> attribute is
    set subsequently, the user agent must <a href="#fetch">fetch</a> the
    resource specifed by the <code title=attr-img-src><a
-   href="#src">src</a></code> attribute's value, unless the user agent cannot
-   support images, or its support for images has been disabled, or the user
-   agent only fetches elements on demand.</p>
+   href="#src3">src</a></code> attribute's value, unless the user agent
+   cannot support images, or its support for images has been disabled, or the
+   user agent only fetches elements on demand.</p>
   <!-- Note how this does NOT happen when the base URL changes. -->
 
   <p>Fetching the image must <a href="#delays">delay the <code
@@ -16274,11 +17148,11 @@
   <hr>
 
   <p>What an <code><a href="#img">img</a></code> element represents depends
-   on the <code title=attr-img-src><a href="#src">src</a></code> attribute
+   on the <code title=attr-img-src><a href="#src3">src</a></code> attribute
    and the <code title=attr-img-alt><a href="#alt0">alt</a></code> attribute.
 
   <dl class=switch>
-   <dt>If the <code title=attr-img-src><a href="#src">src</a></code>
+   <dt>If the <code title=attr-img-src><a href="#src3">src</a></code>
     attribute is set and the <code title=attr-img-alt><a
     href="#alt0">alt</a></code> attribute is set to the empty string
 
@@ -16288,14 +17162,14 @@
 
     <p>If the image is <i>available</i> and the user agent is configured to
      display that image, then the element represents the image specified by
-     the <code title=attr-img-src><a href="#src">src</a></code> attribute.</p>
+     the <code title=attr-img-src><a href="#src3">src</a></code> attribute.</p>
 
     <p>Otherwise, the element represents nothing, and may be omitted
      completely from the rendering. User agents may provide the user with a
      notification that an image is present but has been omitted from the
      rendering.</p>
 
-   <dt>If the <code title=attr-img-src><a href="#src">src</a></code>
+   <dt>If the <code title=attr-img-src><a href="#src3">src</a></code>
     attribute is set and the <code title=attr-img-alt><a
     href="#alt0">alt</a></code> attribute is set to a value that isn't empty
 
@@ -16306,14 +17180,14 @@
 
     <p>If the image is <i>available</i> and the user agent is configured to
      display that image, then the element represents the image specified by
-     the <code title=attr-img-src><a href="#src">src</a></code> attribute.</p>
+     the <code title=attr-img-src><a href="#src3">src</a></code> attribute.</p>
 
     <p>Otherwise, the element represents the text given by the <code
      title=attr-img-alt><a href="#alt0">alt</a></code> attribute. User agents
      may provide the user with a notification that an image is present but
      has been omitted from the rendering.</p>
 
-   <dt>If the <code title=attr-img-src><a href="#src">src</a></code>
+   <dt>If the <code title=attr-img-src><a href="#src3">src</a></code>
     attribute is set and the <code title=attr-img-alt><a
     href="#alt0">alt</a></code> attribute is not
 
@@ -16322,7 +17196,7 @@
      equivalent of the image available.</p>
 
     <p>If the image is <i>available</i>, the element represents the image
-     specified by the <code title=attr-img-src><a href="#src">src</a></code>
+     specified by the <code title=attr-img-src><a href="#src3">src</a></code>
      attribute.</p>
 
     <p>If the image is not <i>available</i> or if the user agent is not
@@ -16366,7 +17240,7 @@
        associated according to the outline.
     </ol>
 
-   <dt>If the <code title=attr-img-src><a href="#src">src</a></code>
+   <dt>If the <code title=attr-img-src><a href="#src3">src</a></code>
     attribute is not set and either the <code title=attr-img-alt><a
     href="#alt0">alt</a></code> attribute is set to the empty string or the
     <code title=attr-img-alt><a href="#alt0">alt</a></code> attribute is not
@@ -16422,7 +17296,7 @@
    href="#dimension0">dimension attributes</a>.
 
   <p>The DOM attributes <dfn id=alt1
-   title=dom-img-alt><code>alt</code></dfn>, <dfn id=src0
+   title=dom-img-alt><code>alt</code></dfn>, <dfn id=src4
    title=dom-img-src><code>src</code></dfn>, <dfn id=usemap
    title=dom-img-useMap><code>useMap</code></dfn>, and <dfn id=ismap0
    title=dom-img-isMap><code>isMap</code></dfn> each must <a
@@ -16442,7 +17316,7 @@
   <p>The DOM attribute <dfn id=complete
    title=dom-img-complete><code>complete</code></dfn> must return true if the
    user agent has fetched the image specified in the <code
-   title=attr-img-src><a href="#src">src</a></code> attribute, and it is a
+   title=attr-img-src><a href="#src3">src</a></code> attribute, and it is a
    valid image, even if the final <a href="#tasks"
    title=concept-task>task</a> queued by the <a href="#networking">networking
    task source</a> for the <a href="#fetch" title=fetch>fetching</a> of the
@@ -16573,14 +17447,14 @@
 </article></pre>
   </div>
 
-  <h5 id=alt><span class=secno>4.7.2.1. </span>Requirements for providing
+  <h5 id=alt><span class=secno>4.8.2.1. </span>Requirements for providing
    text to act as an alternative for images</h5>
 
   <p>The requirements for the <code title=attr-img-alt><a
    href="#alt0">alt</a></code> attribute depend on what the image is intended
    to represent, as described in the following sections.
 
-  <h6 id=a-link><span class=secno>4.7.2.1.1. </span>A link or button
+  <h6 id=a-link><span class=secno>4.8.2.1.1. </span>A link or button
    containing nothing but the image</h6>
 
   <p>When an <a href="#a">a</a> element that is a <a
@@ -16626,7 +17500,7 @@
 <button name="cmyk"><strong><img src="cyan" alt="CMYK profile"><img src="magenta" alt=""><img src="yellow" alt=""><img src="black" alt=""></strong></button></pre>
   </div>
 
-  <h6 id=a-phrase><span class=secno>4.7.2.1.2. </span>A phrase or paragraph
+  <h6 id=a-phrase><span class=secno>4.8.2.1.2. </span>A phrase or paragraph
    with an alternative graphical representation: charts, diagrams, graphs,
    maps, illustrations</h6>
 
@@ -16643,7 +17517,7 @@
   <p>The text must be given in the <code title=attr-img-alt><a
    href="#alt0">alt</a></code> attribute, and must convey the same message as
    the image specified in the <code title=attr-img-src><a
-   href="#src">src</a></code> attribute.
+   href="#src3">src</a></code> attribute.
 
   <p>It is important to realize that the alternative text is a
    <em>replacement</em> for the image, not a description of the image.
@@ -16691,7 +17565,7 @@
 </p></pre>
   </div>
 
-  <h6 id=a-short><span class=secno>4.7.2.1.3. </span>A short phrase or label
+  <h6 id=a-short><span class=secno>4.8.2.1.3. </span>A short phrase or label
    with an alternative graphical representation: icons, logos</h6>
 
   <p>A document can contain information in iconic form. The icon is intended
@@ -16814,7 +17688,7 @@
     never been there in the first place.</p>
   </div>
 
-  <h6 id=text-that><span class=secno>4.7.2.1.4. </span>Text that has been
+  <h6 id=text-that><span class=secno>4.8.2.1.4. </span>Text that has been
    rendered to a graphic for typographical effect</h6>
 
   <p>Sometimes, an image just consists of text, and the purpose of the image
@@ -16835,7 +17709,7 @@
    <pre><h1><strong><img src="earthdayheader.png" alt="Earth Day"></strong></h1></pre>
   </div>
 
-  <h6 id=a-graphical><span class=secno>4.7.2.1.5. </span>A graphical
+  <h6 id=a-graphical><span class=secno>4.8.2.1.5. </span>A graphical
    representation of some of the surrounding text</h6>
 
   <p>In many cases, the image is actually just supplementary, and its
@@ -16913,7 +17787,7 @@
 <strong><p><img src="rendering-mode-pie-chart.png" alt=""></p></strong></pre>
   </div>
 
-  <h6 id=a-purely><span class=secno>4.7.2.1.6. </span>A purely decorative
+  <h6 id=a-purely><span class=secno>4.8.2.1.6. </span>A purely decorative
    image that doesn't add any information but is still specific to the
    surrounding content</h6>
 
@@ -16950,7 +17824,7 @@
 The island of Shalott.</p></pre>
   </div>
 
-  <h6 id=a-group><span class=secno>4.7.2.1.7. </span>A group of images that
+  <h6 id=a-group><span class=secno>4.8.2.1.7. </span>A group of images that
    form a single larger picture with no links</h6>
 
   <p>When a picture has been sliced into smaller image files that are then
@@ -16983,7 +17857,7 @@
   ><img src="0" alt=""></strong></meter></p></pre>
   </div>
 
-  <h6 id=a-group0><span class=secno>4.7.2.1.8. </span>A group of images that
+  <h6 id=a-group0><span class=secno>4.8.2.1.8. </span>A group of images that
    form a single larger picture with links</h6>
 
   <p>Generally, <a href="#image3" title="image map">image maps</a> should be
@@ -17009,7 +17883,7 @@
   ><a href="?go=right"><img src="fsm-right.png" alt="Right side."></a></p></strong></pre>
   </div>
 
-  <h6 id=a-key><span class=secno>4.7.2.1.9. </span>A key part of the content</h6>
+  <h6 id=a-key><span class=secno>4.8.2.1.9. </span>A key part of the content</h6>
 
   <p>In some cases, the image is a critical part of the content. This could
    be the case, for instance, on a page that is part of a photo gallery. The
@@ -17258,7 +18132,7 @@
      title=attr-img-alt><a href="#alt0">alt</a></code> attribute.</p>
   </dl>
 
-  <h6 id=an-image><span class=secno>4.7.2.1.10. </span>An image not intended
+  <h6 id=an-image><span class=secno>4.8.2.1.10. </span>An image not intended
    for the user</h6>
 
   <p>Generally authors should avoid using <code><a href="#img">img</a></code>
@@ -17269,7 +18143,7 @@
    page views, then the <code title=attr-img-alt><a
    href="#alt0">alt</a></code> attribute must be the empty string.
 
-  <h6 id=an-image0><span class=secno>4.7.2.1.11. </span>An image in an e-mail
+  <h6 id=an-image0><span class=secno>4.8.2.1.11. </span>An image in an e-mail
    or document intended for a specific person who is known to be able to view
    images</h6>
 
@@ -17283,7 +18157,7 @@
    images, or should the e-mail be forwarded on to other users whose
    abilities might not include easily seeing images.
 
-  <h6 id=general><span class=secno>4.7.2.1.12. </span>General guidelines</h6>
+  <h6 id=general><span class=secno>4.8.2.1.12. </span>General guidelines</h6>
 
   <p>The most general rule for writing alternative text is that the intent is
    that replacing every image with the text of its <code
@@ -17309,7 +18183,7 @@
    instead of the image is typically a good start for writing the alternative
    text.
 
-  <h4 id=the-iframe><span class=secno>4.7.3 </span>The <dfn
+  <h4 id=the-iframe><span class=secno>4.8.3 </span>The <dfn
    id=iframe><code>iframe</code></dfn> element</h4>
 
   <dl class=element>
@@ -17327,7 +18201,7 @@
 
    <dt>Element-specific attributes:
 
-   <dd><code title=attr-iframe-src><a href="#src1">src</a></code>
+   <dd><code title=attr-iframe-src><a href="#src5">src</a></code>
 
    <dd><code title=attr-iframe-name><a href="#name1">name</a></code>
 
@@ -17345,7 +18219,7 @@
    <dd>
     <pre
      class=idl>interface <dfn id=htmliframeelement>HTMLIFrameElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
-           attribute DOMString <a href="#src2" title=dom-iframe-src>src</a>;
+           attribute DOMString <a href="#src6" title=dom-iframe-src>src</a>;
            attribute DOMString <a href="#name2" title=dom-iframe-name>name</a>;
            attribute DOMString <a href="#sandbox0" title=dom-iframe-sandbox>sandbox</a>;
            attribute boolean <a href="#seamless1" title=dom-iframe-seamless>seamless</a>;
@@ -17366,7 +18240,7 @@
   <p>The <code><a href="#iframe">iframe</a></code> element introduces a new
    nested <a href="#browsing1">browsing context</a>.
 
-  <p>The <dfn id=src1 title=attr-iframe-src><code>src</code></dfn> attribute
+  <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="#valid8">valid URL</a>. When the browsing context is created, if the
@@ -17380,9 +18254,9 @@
    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="#src1">src</a></code> attribute will not change.
+   href="#src5">src</a></code> attribute will not change.
 
-  <p>Whenever the <code title=attr-iframe-src><a href="#src1">src</a></code>
+  <p>Whenever the <code title=attr-iframe-src><a href="#src5">src</a></code>
    attribute is set, the nested <a href="#browsing1">browsing context</a>
    must be <a href="#navigate" title=navigate>navigated</a> to the <a
    href="#url">URL</a> given by that attribute's value, with the <code><a
@@ -17392,7 +18266,7 @@
   <!-- It doesn't happen when the base
   URL is changed, though. -->
 
-  <p>If the <code title=attr-iframe-src><a href="#src1">src</a></code>
+  <p>If the <code title=attr-iframe-src><a href="#src5">src</a></code>
    attribute is not set when the element is created, the browsing context
    will remain at the initial <code><a
    href="#aboutblank">about:blank</a></code><!-- XXX xref --> page.
@@ -17733,14 +18607,14 @@
   <p class=note>The <a href="#html-0">HTML parser</a> treats markup inside
    <code><a href="#iframe">iframe</a></code> elements as text.
 
-  <p>The DOM attributes <dfn id=src2
+  <p>The DOM attributes <dfn id=src6
    title=dom-iframe-src><code>src</code></dfn>, <dfn id=name2
    title=dom-iframe-name><code>name</code></dfn>, <dfn id=sandbox0
    title=dom-iframe-sandbox><code>sandbox</code></dfn>, and <dfn id=seamless1
    title=dom-iframe-seamless><code>seamless</code></dfn> must <a
    href="#reflect">reflect</a> the content attributes of the same name.
 
-  <h4 id=the-embed><span class=secno>4.7.4 </span>The <dfn
+  <h4 id=the-embed><span class=secno>4.8.4 </span>The <dfn
    id=embed><code>embed</code></dfn> element</h4>
   <!--
  XXX we have all kinds of quirks we should define, as e.g. shown in:
@@ -17773,9 +18647,9 @@
 
    <dt>Element-specific attributes:
 
-   <dd><code title=attr-embed-src><a href="#src3">src</a></code>
+   <dd><code title=attr-embed-src><a href="#src7">src</a></code>
 
-   <dd><code title=attr-embed-type><a href="#type4">type</a></code>
+   <dd><code title=attr-embed-type><a href="#type6">type</a></code>
 
    <dd><code title=attr-dim-width><a href="#width4">width</a></code>
 
@@ -17788,8 +18662,8 @@
    <dd>
     <pre
      class=idl>interface <dfn id=htmlembedelement>HTMLEmbedElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
-           attribute DOMString <a href="#src4" title=dom-embed-src>src</a>;
-           attribute DOMString <a href="#type5" title=dom-embed-type>type</a>;
+           attribute DOMString <a href="#src8" title=dom-embed-src>src</a>;
+           attribute DOMString <a href="#type7" title=dom-embed-type>type</a>;
            attribute unsigned long <a href="#width5" title=dom-dim-width>width</a>;
            attribute unsigned long <a href="#height4" title=dom-dim-height>height</a>;
 };</pre>
@@ -17803,25 +18677,25 @@
    integration point for an external (typically non-HTML) application or
    interactive content.
 
-  <p>The <dfn id=src3 title=attr-embed-src><code>src</code></dfn> attribute
+  <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="#valid8">valid URL</a>.
 
-  <p>The <dfn id=type4 title=attr-embed-type><code>type</code></dfn>
+  <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.
    The value must be a valid MIME type, optionally with parameters. If both
-   the <code title=attr-embed-type><a href="#type4">type</a></code> attribute
-   and the <code title=attr-embed-src><a href="#src3">src</a></code>
+   the <code title=attr-embed-type><a href="#type6">type</a></code> attribute
+   and the <code title=attr-embed-src><a href="#src7">src</a></code>
    attribute are present, then the <code title=attr-embed-type><a
-   href="#type4">type</a></code> attribute must specify the same type as the
+   href="#type6">type</a></code> attribute must specify the same type as the
    <a href="#content-type5" title=Content-Type>explicit Content-Type
    metadata</a> of the resource given by the <code title=attr-embed-src><a
-   href="#src3">src</a></code> attribute. <a
+   href="#src7">src</a></code> attribute. <a
    href="#refsRFC2046">[RFC2046]</a>
 
   <p>When the element is created with neither a <code title=attr-embed-src><a
-   href="#src3">src</a></code> attribute nor a <code title=attr-embed-type><a
-   href="#type4">type</a></code> attribute, and when attributes are removed
+   href="#src7">src</a></code> attribute nor a <code title=attr-embed-type><a
+   href="#type6">type</a></code> attribute, and when attributes are removed
    such that neither attribute is present on the element anymore, any plugins
    instantiated for the element must be removed, and the <code><a
    href="#embed">embed</a></code> element represents nothing.
@@ -17845,11 +18719,11 @@
    to the user if an option to do so is provided.
 
   <p>When the element is created with a <code title=attr-embed-src><a
-   href="#src3">src</a></code> attribute, and whenever the <code
-   title=attr-embed-src><a href="#src3">src</a></code> attribute is
+   href="#src7">src</a></code> attribute, and whenever the <code
+   title=attr-embed-src><a href="#src7">src</a></code> attribute is
    subsequently set, and whenever the <code title=attr-embed-type><a
-   href="#type4">type</a></code> attribute is set or removed while the
-   element has a <code title=attr-embed-src><a href="#src3">src</a></code>
+   href="#type6">type</a></code> attribute is set or removed while the
+   element has a <code title=attr-embed-src><a href="#src7">src</a></code>
    attribute, if the element is not in a sandboxed browsing context, user
    agents should <a href="#fetch">fetch</a> the specified resource, find and
    instantiate an appropriate <a href="#plugin">plugin</a> based on the <a
@@ -17867,8 +18741,8 @@
   <ol>
    <li>
     <p>If the element has a <code title=attr-embed-type><a
-     href="#type4">type</a></code> attribute, then the value of the <code
-     title=attr-embed-type><a href="#type4">type</a></code> attribute is the
+     href="#type6">type</a></code> attribute, then the value of the <code
+     title=attr-embed-type><a href="#type6">type</a></code> attribute is the
      <span>content's type</span>.
 
    <li>
@@ -17908,17 +18782,17 @@
    contain plugin data).
 
   <p>When the element is created with a <code title=attr-embed-type><a
-   href="#type4">type</a></code> attribute and no <code
-   title=attr-embed-src><a href="#src3">src</a></code> attribute, and
-   whenever the <code title=attr-embed-type><a href="#type4">type</a></code>
+   href="#type6">type</a></code> attribute and no <code
+   title=attr-embed-src><a href="#src7">src</a></code> attribute, and
+   whenever the <code title=attr-embed-type><a href="#type6">type</a></code>
    attribute is subsequently set, so long as no <code title=attr-embed-src><a
-   href="#src3">src</a></code> attribute is set, and whenever the <code
-   title=attr-embed-src><a href="#src3">src</a></code> attribute is removed
+   href="#src7">src</a></code> attribute is set, and whenever the <code
+   title=attr-embed-src><a href="#src7">src</a></code> attribute is removed
    when the element has a <code title=attr-embed-type><a
-   href="#type4">type</a></code> attribute, if the element is not in a
+   href="#type6">type</a></code> attribute, if the element is not in a
    sandboxed browsing context, user agents should find and instantiate an
    appropriate <a href="#plugin">plugin</a> based on the value of the <code
-   title=attr-embed-type><a href="#type4">type</a></code> attribute.
+   title=attr-embed-type><a href="#type6">type</a></code> attribute.
 
   <p>Any (namespace-less) attribute may be specified on the <code><a
    href="#embed">embed</a></code> element, so long as its name is <a
@@ -17948,13 +18822,13 @@
   <p>The <code><a href="#embed">embed</a></code> element supports <a
    href="#dimension0">dimension attributes</a>.
 
-  <p>The DOM attributes <dfn id=src4
-   title=dom-embed-src><code>src</code></dfn> and <dfn id=type5
+  <p>The DOM attributes <dfn id=src8
+   title=dom-embed-src><code>src</code></dfn> and <dfn id=type7
    title=dom-embed-type><code>type</code></dfn> each must <a
    href="#reflect">reflect</a> the respective content attributes of the same
    name.
 
-  <h4 id=the-object><span class=secno>4.7.5 </span>The <dfn
+  <h4 id=the-object><span class=secno>4.8.5 </span>The <dfn
    id=object><code>object</code></dfn> element</h4>
 
   <dl class=element>
@@ -17975,7 +18849,7 @@
 
    <dd><code title=attr-object-data><a href="#data">data</a></code>
 
-   <dd><code title=attr-object-type><a href="#type6">type</a></code>
+   <dd><code title=attr-object-type><a href="#type8">type</a></code>
 
    <dd><code title=attr-object-name><a href="#name3">name</a></code>
 
@@ -17991,7 +18865,7 @@
     <pre
      class=idl>interface <dfn id=htmlobjectelement>HTMLObjectElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
            attribute DOMString <a href="#data0" title=dom-object-data>data</a>;
-           attribute DOMString <a href="#type7" title=dom-object-type>type</a>;
+           attribute DOMString <a href="#type9" title=dom-object-type>type</a>;
            attribute DOMString <a href="#name4" title=dom-object-name>name</a>;
            attribute DOMString <a href="#usemap0" title=dom-object-useMap>useMap</a>;
            attribute unsigned long <a href="#width5" title=dom-dim-width>width</a>;
@@ -18020,14 +18894,14 @@
    attribute, if present, specifies the address of the resource. If present,
    the attribute must be a <a href="#valid8">valid URL</a>.
 
-  <p>The <dfn id=type6 title=attr-object-type><code>type</code></dfn>
+  <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
    attribute must be a valid MIME type, optionally with parameters. <a
    href="#refsRFC2046">[RFC2046]</a>
 
   <p>One or both of the <code title=attr-object-data><a
    href="#data">data</a></code> and <code title=attr-object-type><a
-   href="#type6">type</a></code> attributes must be present.
+   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="#valid9">valid browsing context
@@ -18041,7 +18915,7 @@
    neither <code title=attr-object-classid>classid</code> attribute nor the
    <code title=attr-object-data><a href="#data">data</a></code> attribute are
    present, whenever the <code title=attr-object-type><a
-   href="#type6">type</a></code> attribute changes or is removed, the user
+   href="#type8">type</a></code> attribute changes or is removed, the user
    agent must run the following steps to determine what the <code><a
    href="#object">object</a></code> element represents:</p>
   <!-- Changing
@@ -18079,7 +18953,7 @@
 
     <ol>
      <li>
-      <p>If the <code title=attr-object-type><a href="#type6">type</a></code>
+      <p>If the <code title=attr-object-type><a href="#type8">type</a></code>
        attribute is present and its value is not a type that the user agent
        supports, and is not a type that the user agent can find a <a
        href="#plugin">plugin</a> for, then the user agent may jump to the
@@ -18126,15 +19000,15 @@
        <li>
         <p>If the <var title="">resource type</var> is unknown or "<code
          title="">application/octet-stream</code>" and there is a <code
-         title=attr-object-type><a href="#type6">type</a></code> attribute
+         title=attr-object-type><a href="#type8">type</a></code> attribute
          present on the <code><a href="#object">object</a></code> element,
          then change the <var title="">resource type</var> to instead be the
          type specified in that <code title=attr-object-type><a
-         href="#type6">type</a></code> attribute.</p>
+         href="#type8">type</a></code> attribute.</p>
 
         <p>Otherwise, if the <var title="">resource type</var> is "<code
          title="">application/octet-stream</code>" but there is no <code
-         title=attr-object-type><a href="#type6">type</a></code> attribute on
+         title=attr-object-type><a href="#type8">type</a></code> attribute on
          the <code><a href="#object">object</a></code> element, then change
          the <var title="">resource type</var> to be unknown, so that the
          sniffing rules in the next step are invoked.</p>
@@ -18232,11 +19106,11 @@
    <li>
     <p>If the <code title=attr-object-data><a href="#data">data</a></code>
      attribute is absent but the <code title=attr-object-type><a
-     href="#type6">type</a></code> attribute is present, <a
+     href="#type8">type</a></code> attribute is present, <a
      href="#sandboxPluginObject">plugins aren't being sandboxed</a>, and the
      user agent can find a <a href="#plugin">plugin</a> suitable according to
      the value of the <code title=attr-object-type><a
-     href="#type6">type</a></code> attribute, then that <a
+     href="#type8">type</a></code> attribute, then that <a
      href="#plugin">plugin</a> <a href="#object-plugin">should be used</a>.
      If no suitable <a href="#plugin">plugin</a> can be found, or if the <a
      href="#plugin">plugin</a> reports an error, jump to the next step
@@ -18308,7 +19182,7 @@
    href="#dimension0">dimension attributes</a>.
 
   <p>The DOM attributes <dfn id=data0
-   title=dom-object-data><code>data</code></dfn>, <dfn id=type7
+   title=dom-object-data><code>data</code></dfn>, <dfn id=type9
    title=dom-object-type><code>type</code></dfn>, <dfn id=name4
    title=dom-object-name><code>name</code></dfn>, and <dfn id=usemap0
    title=dom-object-useMap><code>useMap</code></dfn> each must <a
@@ -18343,7 +19217,7 @@
 </figure></pre>
   </div>
 
-  <h4 id=the-param><span class=secno>4.7.6 </span>The <dfn
+  <h4 id=the-param><span class=secno>4.8.6 </span>The <dfn
    id=param><code>param</code></dfn> element</h4>
 
   <dl class=element>
@@ -18399,7 +19273,7 @@
    href="#reflect">reflect</a> the respective content attributes of the same
    name.
 
-  <h4 id=video><span class=secno>4.7.7 </span>The <dfn
+  <h4 id=video><span class=secno>4.8.7 </span>The <dfn
    id=video1><code>video</code></dfn> element</h4>
 
   <dl class=element>
@@ -18418,17 +19292,17 @@
    <dt>Content model:
 
    <dd>If the element has a <code title=attr-media-src><a
-    href="#src7">src</a></code> attribute: <a
+    href="#src11">src</a></code> attribute: <a
     href="#transparent0">transparent</a>.
 
    <dd>If the element does not have a <code title=attr-media-src><a
-    href="#src7">src</a></code> attribute: one or more <code><a
+    href="#src11">src</a></code> attribute: one or more <code><a
     href="#source">source</a></code> elements, then, <a
     href="#transparent0">transparent</a>.
 
    <dt>Element-specific attributes:
 
-   <dd><code title=attr-media-src><a href="#src7">src</a></code>
+   <dd><code title=attr-media-src><a href="#src11">src</a></code>
 
    <dd><code title=attr-video-poster><a href="#poster">poster</a></code>
 
@@ -18489,7 +19363,7 @@
    href="#media7">media element</a> whose <a href="#media9">media data</a> is
    ostensibly video data, possibly with associated audio data.
 
-  <p>The <code title=attr-media-src><a href="#src7">src</a></code>, <code
+  <p>The <code title=attr-media-src><a href="#src11">src</a></code>, <code
    title=attr-media-autoplay><a href="#autoplay">autoplay</a></code>, <code
    title=attr-media-start><a href="#start2">start</a></code>, <code
    title=attr-media-loopstart><a href="#loopstart">loopstart</a></code>,
@@ -18719,7 +19593,7 @@
    experience. So far, browsers seem to be making the controls overlay-only,
    thus somewhat sidestepping the issue.
 
-  <h5 id=video0><span class=secno>4.7.7.1. </span>Video and audio codecs for
+  <h5 id=video0><span class=secno>4.8.7.1. </span>Video and audio codecs for
    <code><a href="#video1">video</a></code> elements</h5>
 
   <p>User agents may support any video and audio codecs and container
@@ -18739,7 +19613,7 @@
   <p class=note>Certain user agents might support no codecs at all, e.g. text
    browsers running over SSH connections.
 
-  <h4 id=audio><span class=secno>4.7.8 </span>The <dfn
+  <h4 id=audio><span class=secno>4.8.8 </span>The <dfn
    id=audio1><code>audio</code></dfn> element</h4>
 
   <dl class=element>
@@ -18758,17 +19632,17 @@
    <dt>Content model:
 
    <dd>If the element has a <code title=attr-media-src><a
-    href="#src7">src</a></code> attribute: <a
+    href="#src11">src</a></code> attribute: <a
     href="#transparent0">transparent</a>.
 
    <dd>If the element does not have a <code title=attr-media-src><a
-    href="#src7">src</a></code> attribute: one or more <code><a
+    href="#src11">src</a></code> attribute: one or more <code><a
     href="#source">source</a></code> elements, then, <a
     href="#transparent0">transparent</a>.
 
    <dt>Element-specific attributes:
 
-   <dd><code title=attr-media-src><a href="#src7">src</a></code>
+   <dd><code title=attr-media-src><a href="#src11">src</a></code>
 
    <dd><code title=attr-media-autoplay><a
     href="#autoplay">autoplay</a></code>
@@ -18820,7 +19694,7 @@
    href="#media7">media element</a> whose <a href="#media9">media data</a> is
    ostensibly audio data.
 
-  <p>The <code title=attr-media-src><a href="#src7">src</a></code>, <code
+  <p>The <code title=attr-media-src><a href="#src11">src</a></code>, <code
    title=attr-media-autoplay><a href="#autoplay">autoplay</a></code>, <code
    title=attr-media-start><a href="#start2">start</a></code>, <code
    title=attr-media-loopstart><a href="#loopstart">loopstart</a></code>,
@@ -18851,12 +19725,12 @@
    href="#htmlaudioelement">HTMLAudioElement</a></code> object (a new
    <code><a href="#audio1">audio</a></code> element). If the <var
    title="">src</var> argument is present, the object created must have its
-   <code title=dom-media-src><a href="#src8">src</a></code> content attribute
-   set to the provided value, and the user agent must invoke the <code
-   title=dom-media-load><a href="#load">load()</a></code> method on the
+   <code title=dom-media-src><a href="#src12">src</a></code> content
+   attribute set to the provided value, and the user agent must invoke the
+   <code title=dom-media-load><a href="#load">load()</a></code> method on the
    object before returning.
 
-  <h5 id=audio0><span class=secno>4.7.8.1. </span>Audio codecs for <code><a
+  <h5 id=audio0><span class=secno>4.8.8.1. </span>Audio codecs for <code><a
    href="#audio1">audio</a></code> elements</h5>
 
   <p>User agents may support any audio codecs and container formats.
@@ -18866,7 +19740,7 @@
   <!-- XXX mention that this spec doesn't require native support or
   plugin support, either is fine -->
 
-  <h4 id=the-source><span class=secno>4.7.9 </span>The <dfn
+  <h4 id=the-source><span class=secno>4.8.9 </span>The <dfn
    id=source><code>source</code></dfn> element</h4>
 
   <dl class=element>
@@ -18885,9 +19759,9 @@
 
    <dt>Element-specific attributes:
 
-   <dd><code title=attr-source-src><a href="#src5">src</a></code>
+   <dd><code title=attr-source-src><a href="#src9">src</a></code>
 
-   <dd><code title=attr-source-type><a href="#type8">type</a></code>
+   <dd><code title=attr-source-type><a href="#type10">type</a></code>
 
    <dd><code title=attr-source-media><a href="#media5">media</a></code>
 
@@ -18899,8 +19773,8 @@
    <dd>
     <pre
      class=idl>interface <dfn id=htmlsourceelement>HTMLSourceElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
-           attribute DOMString <a href="#src6" title=dom-source-src>src</a>;
-           attribute DOMString <a href="#type9" title=dom-source-type>type</a>;
+           attribute DOMString <a href="#src10" title=dom-source-src>src</a>;
+           attribute DOMString <a href="#type11" title=dom-source-type>type</a>;
            attribute DOMString <a href="#media6" title=dom-source-media>media</a>;
            attribute float <a href="#pixelratio0" title=dom-source-pixelRatio>pixelRatio</a>;
 };</pre>
@@ -18911,11 +19785,11 @@
    resources</a> for <a href="#media7" title="media element">media
    elements</a>.
 
-  <p>The <dfn id=src5 title=attr-source-src><code>src</code></dfn> attribute
+  <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="#valid8">valid URL</a>. This attribute must be present.
 
-  <p>The <dfn id=type8 title=attr-source-type><code>type</code></dfn>
+  <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
    help the user agent determine if it can play this <a href="#media10">media
    resource</a> before fetching it. Its value must be a MIME type. The <code
@@ -18926,7 +19800,7 @@
   <div class=example>
    <p>The following list shows some examples of how to use the <code
     title="">codecs=</code> MIME parameter in the <code
-    title=attr-source-type><a href="#type8">type</a></code> attribute.</p>
+    title=attr-source-type><a href="#type10">type</a></code> attribute.</p>
 
    <dl>
     <dt>H.264 Simple baseline profile video (main and extended video
@@ -19047,11 +19921,11 @@
    it. Its value must be a valid <a href="#mq">media query</a>. <a
    href="#refsMQ">[MQ]</a>
 
-  <p>Either the <code title=attr-source-type><a href="#type8">type</a></code>
-   attribute, the <code title=attr-source-media><a
-   href="#media5">media</a></code> attribute or both, must be specified,
-   unless this is the last <code><a href="#source">source</a></code> element
-   child of the parent element.
+  <p>Either the <code title=attr-source-type><a
+   href="#type10">type</a></code> attribute, the <code
+   title=attr-source-media><a href="#media5">media</a></code> attribute or
+   both, must be specified, unless this is the last <code><a
+   href="#source">source</a></code> element child of the parent element.
 
   <p>The <dfn id=pixelratio
    title=attr-source-pixelratio><code>pixelratio</code></dfn> attribute
@@ -19085,8 +19959,8 @@
    href="#media7">media element</a>'s own <a href="#media12">media element
    new resource task source</a>.
 
-  <p>The DOM attributes <dfn id=src6
-   title=dom-source-src><code>src</code></dfn>, <dfn id=type9
+  <p>The DOM attributes <dfn id=src10
+   title=dom-source-src><code>src</code></dfn>, <dfn id=type11
    title=dom-source-type><code>type</code></dfn>, and <dfn id=media6
    title=dom-source-media><code>media</code></dfn> must <a
    href="#reflect">reflect</a> the respective content attributes of the same
@@ -19097,7 +19971,7 @@
    href="#reflect">reflect</a> the <code title=attr-source-pixelratio><a
    href="#pixelratio">pixelratio</a></code> content attribute.
 
-  <h4 id=media><span class=secno>4.7.10 </span>Media elements</h4>
+  <h4 id=media><span class=secno>4.8.10 </span>Media elements</h4>
 
   <p><dfn id=media7 title="media element">Media elements</dfn> implement the
    following interface:
@@ -19109,7 +19983,7 @@
   readonly attribute <a href="#mediaerror">MediaError</a> <a href="#error0" title=dom-media-error>error</a>;
 
   // network state
-           attribute DOMString <a href="#src8" title=dom-media-src>src</a>;
+           attribute DOMString <a href="#src12" title=dom-media-src>src</a>;
   readonly attribute DOMString <a href="#currentsrc" title=dom-media-currentSrc>currentSrc</a>;
   const unsigned short <a href="#empty" title=dom-media-EMPTY>EMPTY</a> = 0;
   const unsigned short <a href="#loading0" title=dom-media-LOADING>LOADING</a> = 1;
@@ -19164,7 +20038,7 @@
 };</pre>
 
   <p>The <dfn id=media8>media element attributes</dfn>, <code
-   title=attr-media-src><a href="#src7">src</a></code>, <code
+   title=attr-media-src><a href="#src11">src</a></code>, <code
    title=attr-media-autoplay><a href="#autoplay">autoplay</a></code>, <code
    title=attr-media-start><a href="#start2">start</a></code>, <code
    title=attr-media-loopstart><a href="#loopstart">loopstart</a></code>,
@@ -19223,7 +20097,7 @@
    title="queue a task">queued</a> in this section and its subsections is the
    <a href="#media11">media element event task source</a>.
 
-  <h5 id=error><span class=secno>4.7.10.1. </span>Error codes</h5>
+  <h5 id=error><span class=secno>4.8.10.1. </span>Error codes</h5>
 
   <p>All <a href="#media7" title="media element">media elements</a> have an
    associated error status, which records the last error the element
@@ -19267,15 +20141,15 @@
     href="#media10">media resource</a>.
   </dl>
 
-  <h5 id=location><span class=secno>4.7.10.2. </span>Location of the media
+  <h5 id=location><span class=secno>4.8.10.2. </span>Location of the media
    resource</h5>
 
-  <p>The <dfn id=src7 title=attr-media-src><code>src</code></dfn> content
+  <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="#valid8">valid URL</a>.
 
-  <p>If the <code title=attr-media-src><a href="#src7">src</a></code>
+  <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
    document and whose <code title=dom-media-networkState><a
    href="#networkstate">networkState</a></code> is in the <code
@@ -19289,13 +20163,13 @@
    new resource task source</a>.
 
   <p class=note>If a <code title=attr-media-src><a
-   href="#src7">src</a></code> attribute is specified, the resource it
+   href="#src11">src</a></code> attribute is specified, the resource it
    specifies is the <a href="#media10">media resource</a> that will be used.
    Otherwise, the resource specified by the first suitable <code><a
    href="#source">source</a></code> element child of the <a
    href="#media7">media element</a> is the one used.
 
-  <p>The <dfn id=src8 title=dom-media-src><code>src</code></dfn> DOM
+  <p>The <dfn id=src12 title=dom-media-src><code>src</code></dfn> DOM
    attribute on <a href="#media7" title="media element">media elements</a>
    must <a href="#reflect">reflect</a> the content attribute of the same
    name.
@@ -19311,7 +20185,7 @@
 
    <li>
     <p>If the <a href="#media7">media element</a> has a <code
-     title=attr-media-src><a href="#src7">src</a></code> attribute, then <a
+     title=attr-media-src><a href="#src11">src</a></code> attribute, then <a
      href="#resolve" title="resolve a url">resolve</a> the <a
      href="#url">URL</a> given in that attribute. If that is successful, then
      the resulting <a href="#absolute">absolute URL</a> is the address of the
@@ -19342,15 +20216,15 @@
      <li><var title="">candidate</var> is null, or
 
      <li>the <var title="">candidate</var> element has no <code
-      title=attr-source-src><a href="#src5">src</a></code> attribute, or
+      title=attr-source-src><a href="#src9">src</a></code> attribute, or
 
      <li><a href="#resolve" title="resolve a url">resolving</a> the <a
       href="#url">URL</a> given by the <var title="">candidate</var>
-      element's <code title=attr-source-src><a href="#src5">src</a></code>
+      element's <code title=attr-source-src><a href="#src9">src</a></code>
       attribute fails, or
 
      <li>the <var title="">candidate</var> element has a <code
-      title=attr-source-type><a href="#type8">type</a></code> attribute and
+      title=attr-source-type><a href="#type10">type</a></code> attribute and
       that attribute's value, when parsed as a MIME type, does not represent
       a type that the user agent can render (including any codecs described
       by the <code title="">codec</code> parameter), or <a
@@ -19369,7 +20243,7 @@
     <p>Otherwise, the result of <a href="#resolve" title="resolve a
      url">resolving</a> the <a href="#url">URL</a> given in that <var
      title="">candidate</var> element's <code title=attr-source-src><a
-     href="#src5">src</a></code> attribute is the address of the <a
+     href="#src9">src</a></code> attribute is the address of the <a
      href="#media10">media resource</a>; jump to the last step.</p>
 
    <li>
@@ -19402,7 +20276,7 @@
    href="#absolute">absolute URL</a> that is the address of the <a
    href="#chosen">chosen media resource</a> otherwise.
 
-  <h5 id=network0><span class=secno>4.7.10.3. </span>Network states</h5>
+  <h5 id=network0><span class=secno>4.8.10.3. </span>Network states</h5>
 
   <p>As <a href="#media7" title="media element">media elements</a> interact
    with the network, they go through several states. The <dfn id=networkstate
@@ -19456,7 +20330,7 @@
    the <code title=dom-media-networkState><a
    href="#networkstate">networkState</a></code> attribute changes value.
 
-  <h5 id=loading><span class=secno>4.7.10.4. </span>Loading the media
+  <h5 id=loading><span class=secno>4.8.10.4. </span>Loading the media
    resource</h5>
 
   <p>All <a href="#media7" title="media element">media elements</a> have a
@@ -19876,8 +20750,9 @@
   <p>If a <a href="#media7">media element</a> whose <code
    title=dom-media-networkState><a
    href="#networkstate">networkState</a></code> has the value <code
-   title=dom-media-EMPTY><a href="#empty">EMPTY</a></code> is inserted into a
-   document, the user agent must <a href="#queue">queue a task</a> that
+   title=dom-media-EMPTY><a href="#empty">EMPTY</a></code> is <a
+   href="#inserted" title="insert an element into a document">inserted into a
+   document</a>, the user agent must <a href="#queue">queue a task</a> that
    implicitly invokes the <code title=dom-media-load><a
    href="#load">load()</a></code> method on the <a href="#media7">media
    element</a>, and ignores any resulting exceptions. The <a
@@ -19932,7 +20807,7 @@
    end up being not included in the range(s) of objects returned by the same
    attributes at a later time.
 
-  <h5 id=offsets><span class=secno>4.7.10.5. </span>Offsets into the media
+  <h5 id=offsets><span class=secno>4.8.10.5. </span>Offsets into the media
    resource</h5>
 
   <p>The <dfn id=duration
@@ -20132,7 +21007,7 @@
      end.
   </ol>
 
-  <h5 id=the-ready><span class=secno>4.7.10.6. </span>The ready states</h5>
+  <h5 id=the-ready><span class=secno>4.8.10.6. </span>The ready states</h5>
 
   <p><a href="#media7" title="media element">Media elements</a> have a
    <i>ready state</i>, which describes to what degree they are ready to be
@@ -20295,7 +21170,7 @@
    title=dom-media-autoplay><code>autoplay</code></dfn> DOM attribute must <a
    href="#reflect">reflect</a> the content attribute of the same name.
 
-  <h5 id=playing><span class=secno>4.7.10.7. </span>Playing the media
+  <h5 id=playing><span class=secno>4.8.10.7. </span>Playing the media
    resource</h5>
 
   <p>The <dfn id=paused title=dom-media-paused><code>paused</code></dfn>
@@ -20609,7 +21484,7 @@
    href="#media10">media resource</a>, if any, that the user agent has so far
    rendered, at the time the attribute is evaluated.
 
-  <h5 id=seeking><span class=secno>4.7.10.8. </span>Seeking</h5>
+  <h5 id=seeking><span class=secno>4.8.10.8. </span>Seeking</h5>
 
   <p>The <dfn id=seeking0 title=dom-media-seeking><code>seeking</code></dfn>
    attribute must initially have the value false.
@@ -20737,7 +21612,7 @@
    href="#duration">duration</a></code> attribute's value (which would equal
    the time of the last frame).
 
-  <h5 id=cue-ranges><span class=secno>4.7.10.9. </span>Cue ranges</h5>
+  <h5 id=cue-ranges><span class=secno>4.8.10.9. </span>Cue ranges</h5>
 
   <p><a href="#media7" title="media element">Media elements</a> have a set of
    <dfn id=cue-ranges0 title="cue range">cue ranges</dfn>. Each cue range is
@@ -20905,7 +21780,7 @@
    of objects implementing these interfaces is the entry point for the
    callback represented by the object.
 
-  <h5 id=user-interface><span class=secno>4.7.10.10. </span>User interface</h5>
+  <h5 id=user-interface><span class=secno>4.8.10.10. </span>User interface</h5>
 
   <p>The <dfn id=controls
    title=attr-media-controls><code>controls</code></dfn> attribute is a <a
@@ -20973,7 +21848,7 @@
    href="#volumechange">volumechange</a></code> at the <a
    href="#media7">media element</a>.
 
-  <h5 id=time-ranges><span class=secno>4.7.10.11. </span>Time ranges</h5>
+  <h5 id=time-ranges><span class=secno>4.8.10.11. </span>Time ranges</h5>
 
   <p>Objects implementing the <code><a
    href="#timeranges">TimeRanges</a></code> interface represent a list of
@@ -21025,7 +21900,7 @@
    of <a href="#media7" title="media element">media elements</a> must be the
    same as that element's <a href="#media10">media resource</a>'s timeline.
 
-  <h5 id=byte-ranges><span class=secno>4.7.10.12. </span>Byte ranges</h5>
+  <h5 id=byte-ranges><span class=secno>4.8.10.12. </span>Byte ranges</h5>
 
   <p>Objects implementing the <code><a
    href="#byteranges">ByteRanges</a></code> interface represent a list of
@@ -21074,7 +21949,7 @@
    aren't empty, and don't touch (adjacent ranges are folded into one bigger
    range).
 
-  <h5 id=mediaevents><span class=secno>4.7.10.13. </span>Event summary</h5>
+  <h5 id=mediaevents><span class=secno>4.8.10.13. </span>Event summary</h5>
 
   <p>The following events fire on <a href="#media7" title="media
    element">media elements</a> as part of the processing model described
@@ -21420,7 +22295,7 @@
      <td>
   </table>
 
-  <h5 id=security0><span class=secno>4.7.10.14. </span>Security and privacy
+  <h5 id=security0><span class=secno>4.8.10.14. </span>Security and privacy
    considerations</h5>
 
   <p class=big-issue>Talk about making sure interactive media files (e.g.
@@ -21428,7 +22303,7 @@
    not exposing any sensitive data like metadata from tracks in the media
    files (intranet snooping risk)
 
-  <h4 id=the-canvas><span class=secno>4.7.11 </span>The <dfn
+  <h4 id=the-canvas><span class=secno>4.8.11 </span>The <dfn
    id=canvas><code>canvas</code></dfn> element</h4>
 
   <dl class=element>
@@ -21664,7 +22539,7 @@
    allow authors to more carefully control compression settings, image
    metadata, etc.
 
-  <h5 id=the-2d><span class=secno>4.7.11.1. </span>The 2D context</h5>
+  <h5 id=the-2d><span class=secno>4.8.11.1. </span>The 2D context</h5>
 
   <p>When the <code title=dom-canvas-getContext><a
    href="#getcontext">getContext()</a></code> method of a <code><a
@@ -21837,7 +22712,7 @@
    value of the <code title="">currentColor</code> keyword is fully opaque
    black. <a href="#refsCSS3COLOR">[CSS3COLOR]</a>
 
-  <h6 id=the-canvas0><span class=secno>4.7.11.1.1. </span>The canvas state</h6>
+  <h6 id=the-canvas0><span class=secno>4.8.11.1.1. </span>The canvas state</h6>
 
   <p>Each context maintains a stack of drawing states. <dfn id=drawing0
    title="drawing state">Drawing states</dfn> consist of:
@@ -21909,7 +22784,7 @@
 > But how would it interact with normal calls to ctx.restore()?
   -->
 
-  <h6 id=transformations><span class=secno>4.7.11.1.2. </span><dfn
+  <h6 id=transformations><span class=secno>4.8.11.1.2. </span><dfn
    id=transformations0
    title=dom-context-2d-transformation>Transformations</dfn></h6>
 
@@ -21991,7 +22866,7 @@
    title="">dx</var>, <var title="">dy</var>)</code> method with the same
    arguments.
 
-  <h6 id=compositing><span class=secno>4.7.11.1.3. </span>Compositing</h6>
+  <h6 id=compositing><span class=secno>4.8.11.1.3. </span>Compositing</h6>
 
   <p>All drawing operations are affected by the global compositing
    attributes, <code title=dom-context-2d-globalAlpha><a
@@ -22132,7 +23007,7 @@
    href="#globalcompositeoperation">globalCompositeOperation</a></code>
    attribute must initially have the value <code>source-over</code>.
 
-  <h6 id=colors><span class=secno>4.7.11.1.4. </span>Colors and styles</h6>
+  <h6 id=colors><span class=secno>4.8.11.1.4. </span>Colors and styles</h6>
 
   <p>The <dfn id=strokestyle
    title=dom-context-2d-strokeStyle><code>strokeStyle</code></dfn> attribute
@@ -22408,7 +23283,7 @@
       canvas then using that canvas as the pattern.
   -->
 
-  <h6 id=line-styles><span class=secno>4.7.11.1.5. </span>Line styles</h6>
+  <h6 id=line-styles><span class=secno>4.8.11.1.5. </span>Line styles</h6>
 
   <p>The <dfn id=linewidth
    title=dom-context-2d-lineWidth><code>lineWidth</code></dfn> attribute
@@ -22525,7 +23400,7 @@
 > allowing whatever behavior the graphics library has.)
   -->
 
-  <h6 id=shadows><span class=secno>4.7.11.1.6. </span><dfn
+  <h6 id=shadows><span class=secno>4.8.11.1.6. </span><dfn
    id=shadows0>Shadows</dfn></h6>
 
   <p>All drawing operations are affected by the four global shadow
@@ -22643,7 +23518,7 @@
      part of the drawing model described below.</p>
   </ol>
 
-  <h6 id=simple><span class=secno>4.7.11.1.7. </span>Simple shapes
+  <h6 id=simple><span class=secno>4.8.11.1.7. </span>Simple shapes
    (rectangles)</h6>
 
   <p>There are three methods that immediately draw rectangles to the bitmap.
@@ -22704,7 +23579,7 @@
    will draw a line instead (the path for the outline is just a straight line
    along the non-zero dimension).
 
-  <h6 id=complex><span class=secno>4.7.11.1.8. </span>Complex shapes (paths)</h6>
+  <h6 id=complex><span class=secno>4.8.11.1.8. </span>Complex shapes (paths)</h6>
 
   <p>The context always has a current path. There is only one current path,
    it is not part of the <span title=dom-context-2d->drawing state</span>.
@@ -22969,7 +23844,7 @@
    itself are considered to be inside the path. If either of the arguments is
    infinite or NaN, then the method must return false.
 
-  <h6 id=text><span class=secno>4.7.11.1.9. </span>Text</h6>
+  <h6 id=text><span class=secno>4.8.11.1.9. </span>Text</h6>
   <!-- a v3 feature -->
 
   <p>The <dfn id=font title=dom-context-2d-font><code>font</code></dfn> DOM
@@ -23465,7 +24340,7 @@
    This would be provided in preference to a dedicated way of doing multiline
    layout.
 
-  <h6 id=images><span class=secno>4.7.11.1.10. </span>Images</h6>
+  <h6 id=images><span class=secno>4.8.11.1.10. </span>Images</h6>
 
   <p>To draw images onto the canvas, the <dfn id=drawimage
    title=dom-context-2d-drawImage><code>drawImage</code></dfn> method can be
@@ -23568,7 +24443,7 @@
   of the target element, not the rendered image (e.g. height/width
   attributes don't affect it -->
 
-  <h6 id=pixel><span class=secno>4.7.11.1.11. </span><dfn id=pixel2>Pixel
+  <h6 id=pixel><span class=secno>4.8.11.1.11. </span><dfn id=pixel2>Pixel
    manipulation</dfn></h6>
 
   <p>The <dfn id=createimagedata
@@ -23894,7 +24769,7 @@
 </html></pre>
   </div>
 
-  <h6 id=drawing><span class=secno>4.7.11.1.12. </span>Drawing model</h6>
+  <h6 id=drawing><span class=secno>4.8.11.1.12. </span>Drawing model</h6>
 
   <p>When a shape or image is painted, user agents must follow these steps,
    in the order given (or act as if they do):
@@ -23935,7 +24810,7 @@
   <p class="big-issue">Well, one day.</p>
 -->
 
-  <h5 id=color><span class=secno>4.7.11.2. </span>Color spaces and color
+  <h5 id=color><span class=secno>4.8.11.2. </span>Color spaces and color
    correction</h5>
 
   <p>The <code><a href="#canvas">canvas</a></code> APIs must perform color
@@ -23980,7 +24855,7 @@
    href="#todataurl">toDataURL()</a></code> method to the canvas, given the
    appropriate dimensions, has no visible effect.
 
-  <h5 id=security1><span class=secno>4.7.11.3. </span>Security with <code><a
+  <h5 id=security1><span class=secno>4.8.11.3. </span>Security with <code><a
    href="#canvas">canvas</a></code> elements</h5>
 
   <p><strong>Information leakage</strong> can occur if scripts from one <a
@@ -24064,7 +24939,7 @@
    title=attr-canvas-height><a href="#height0">height</a></code> attributes
    doesn't reset the <i>origin-clean</i> flag.
 
-  <h4 id=the-map><span class=secno>4.7.12 </span>The <dfn
+  <h4 id=the-map><span class=secno>4.8.12 </span>The <dfn
    id=map><code>map</code></dfn> element</h4>
 
   <dl class=element>
@@ -24122,7 +24997,7 @@
    title=dom-map-name><code>name</code></dfn> must <a
    href="#reflect">reflect</a> the content attribute of the same name.
 
-  <h4 id=the-area><span class=secno>4.7.13 </span>The <dfn
+  <h4 id=the-area><span class=secno>4.8.13 </span>The <dfn
    id=area><code>area</code></dfn> element</h4>
 
   <dl class=element>
@@ -24177,7 +25052,7 @@
   readonly attribute DOMTokenList <a href="#rellist1" title=dom-area-relList>relList</a>;
            attribute DOMString <a href="#media13" title=dom-area-media>media</a>;
            attribute DOMString <a href="#hreflang2" title=dom-area-hreflang>hreflang</a>;
-           attribute DOMString <a href="#type10" title=dom-area-type>type</a>;
+           attribute DOMString <a href="#type12" title=dom-area-type>type</a>;
 };</pre>
   </dl>
 
@@ -24383,7 +25258,7 @@
    title=dom-area-ping><code>ping</code></dfn>, <dfn id=rel2
    title=dom-area-rel><code>rel</code></dfn>, <dfn id=media13
    title=dom-area-media><code>media</code></dfn>, <dfn id=hreflang2
-   title=dom-area-hreflang><code>hreflang</code></dfn>, and <dfn id=type10
+   title=dom-area-hreflang><code>hreflang</code></dfn>, and <dfn id=type12
    title=dom-area-type><code>type</code></dfn>, each must <a
    href="#reflect">reflect</a> the respective content attributes of the same
    name.
@@ -24399,7 +25274,7 @@
    href="#reflect">reflect</a> the <code title=attr-hyperlink-rel><a
    href="#rel3">rel</a></code> content attribute.
 
-  <h4 id=image-maps><span class=secno>4.7.14 </span>Image maps</h4>
+  <h4 id=image-maps><span class=secno>4.8.14 </span>Image maps</h4>
   <!-- TESTS
   http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/smallcats%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%3E%0A%3Cmap%20name%3Da%3E%0A%20%3Carea%20onclick%3Dw%28%271%27%29%20coords%3D%270%25%200%25%20100%25%20100%25%27%20href%3Djavascript%3A%3E%0A%3C/map%3E
   http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0A%3Cbody%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/smallcats%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/sample%22%20usemap%3D%23a%20onclick%3Dw%28%27img%27%29%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3Cmap%20name%3Da%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%20%3Carea%20onclick%3Dw%28%271%27%29%20coords%3D%270%200%2050%2050%27%20href%3Djavascript%3A%20onfocus%3D%22w%28document.activeElement.tagName%29%22%3E%0A%3C/map%3E%0A%3Cscript%3E%0A%20var%20x%20%3D%20document.getElementsByTagName%28%27img%27%29%5B0%5D%3B%0A%20x.parentNode.appendChild%28x%29%3B%0A%20document.getElementsByTagName%28%27area%27%29%5B0%5D.focus%28%29%3B%0A%3C/script%3E
@@ -24407,7 +25282,7 @@
   http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0D%0A%3Cp%3E%3Cimg%20src%3D%22http%3A//hixie.ch/resources/images/astrophy/128%22%20usemap%3D%23a%3E%0D%0A%3Cmap%20name%3Da%3E%3Carea%20shape%3Dcirc%20coords%3D%2220%2C20%2C10%25%22%20href%3D%23%3E%3Carea%20shape%3Dcirc%20coords%3D%2220%2C20%2C10%22%20href%3D%23%3E%3C/map%3E%0D%0A%3Cscript%3Edocument.write%28document.getElementsByTagName%28%27area%27%29%5B0%5D.coords%29%3C/script%3E
   -->
 
-  <h5 id=authoring><span class=secno>4.7.14.1. </span>Authoring</h5>
+  <h5 id=authoring><span class=secno>4.8.14.1. </span>Authoring</h5>
 
   <p>An <dfn id=image3>image map</dfn> allows geometric areas on an image to
    be associated with <a href="#hyperlinks" title=hyperlink>hyperlinks</a>.
@@ -24448,7 +25323,7 @@
 </p></pre>
   </div>
 
-  <h5 id=processing><span class=secno>4.7.14.2. </span>Processing model</h5>
+  <h5 id=processing><span class=secno>4.8.14.2. </span>Processing model</h5>
 
   <p>If an <code><a href="#img">img</a></code> element or an <code><a
    href="#object">object</a></code> element representing an image has a <code
@@ -24723,7 +25598,7 @@
    then the user agent must act as if it had rerun the algorithms for image
    maps.
 
-  <h4 id=mathml><span class=secno>4.7.15 </span>MathML</h4>
+  <h4 id=mathml><span class=secno>4.8.15 </span>MathML</h4>
 
   <p>The <code>math</code> element from the <a href="#mathml0">MathML
    namespace</a> falls into the <a href="#embedded1">embedded content</a>
@@ -24748,7 +25623,7 @@
    form, interactive HTML user agents are encouraged to provide a way to
    export any MathML fragment as a namespace-well-formed XML fragment.
 
-  <h4 id=svg><span class=secno>4.7.16 </span>SVG</h4>
+  <h4 id=svg><span class=secno>4.8.16 </span>SVG</h4>
 
   <p>The <code>svg</code> element from the <a href="#svg-namespace">SVG
    namespace</a> falls into the <a href="#embedded1">embedded content</a>
@@ -24758,7 +25633,7 @@
    interactive HTML user agents are encouraged to provide a way to export any
    SVG fragment as a namespace-well-formed XML fragment.
 
-  <h4 id=dimension><span class=secno>4.7.17 </span><dfn
+  <h4 id=dimension><span class=secno>4.8.17 </span><dfn
    id=dimension0>Dimension attributes</dfn></h4>
 
   <p>The <dfn id=width4 title=attr-dim-width><code>width</code></dfn> and
@@ -24800,16 +25675,16 @@
    href="#video1">video</a></code> elements must <a
    href="#reflect">reflect</a> the content attributes of the same name.
 
-  <h3 id=tabular><span class=secno>4.8 </span>Tabular data</h3>
+  <h3 id=tabular><span class=secno>4.9 </span>Tabular data</h3>
 
-  <h4 id=table-intro><span class=secno>4.8.1 </span>Introduction</h4>
+  <h4 id=table-intro><span class=secno>4.9.1 </span>Introduction</h4>
 
   <p><em>This section is non-normative.</em>
 
   <p class=big-issue>...examples, how to write tables accessibly, a brief
    mention of the table model, etc...
 
-  <h4 id=the-table><span class=secno>4.8.2 </span>The <dfn
+  <h4 id=the-table><span class=secno>4.9.2 </span>The <dfn
    id=table><code>table</code></dfn> element</h4>
 
   <dl class=element>
@@ -25109,7 +25984,7 @@
      href="#rows">rows</a></code> collection from its parent.</p>
   </ol>
 
-  <h4 id=the-caption><span class=secno>4.8.3 </span>The <dfn
+  <h4 id=the-caption><span class=secno>4.9.3 </span>The <dfn
    id=caption0><code>caption</code></dfn> element</h4>
 
   <dl class=element>
@@ -25143,7 +26018,7 @@
   <p>The <code><a href="#caption0">caption</a></code> element takes part in
    the <a href="#table0">table model</a>.
 
-  <h4 id=the-colgroup><span class=secno>4.8.4 </span>The <dfn
+  <h4 id=the-colgroup><span class=secno>4.9.4 </span>The <dfn
    id=colgroup><code>colgroup</code></dfn> element</h4>
 
   <dl class=element>
@@ -25197,7 +26072,7 @@
    same name. The value must be <a href="#limited0">limited to only positive
    non-zero numbers</a>.
 
-  <h4 id=the-col><span class=secno>4.8.5 </span>The <dfn
+  <h4 id=the-col><span class=secno>4.9.5 </span>The <dfn
    id=col><code>col</code></dfn> element</h4>
 
   <dl class=element>
@@ -25251,7 +26126,7 @@
    same name. The value must be <a href="#limited0">limited to only positive
    non-zero numbers</a>.
 
-  <h4 id=the-tbody><span class=secno>4.8.6 </span>The <dfn
+  <h4 id=the-tbody><span class=secno>4.9.6 </span>The <dfn
    id=tbody><code>tbody</code></dfn> element</h4>
 
   <dl class=element>
@@ -25339,7 +26214,7 @@
    href="#rows0">rows</a></code> collection, the method must instead raise an
    <code>INDEX_SIZE_ERR</code> exception.
 
-  <h4 id=the-thead><span class=secno>4.8.7 </span>The <dfn
+  <h4 id=the-thead><span class=secno>4.9.7 </span>The <dfn
    id=thead0><code>thead</code></dfn> element</h4>
 
   <dl class=element>
@@ -25382,7 +26257,7 @@
   <p>The <code><a href="#thead0">thead</a></code> element takes part in the
    <a href="#table0">table model</a>.
 
-  <h4 id=the-tfoot><span class=secno>4.8.8 </span>The <dfn
+  <h4 id=the-tfoot><span class=secno>4.9.8 </span>The <dfn
    id=tfoot0><code>tfoot</code></dfn> element</h4>
 
   <dl class=element>
@@ -25434,7 +26309,7 @@
   <p>The <code><a href="#tfoot0">tfoot</a></code> element takes part in the
    <a href="#table0">table model</a>.
 
-  <h4 id=the-tr><span class=secno>4.8.9 </span>The <dfn
+  <h4 id=the-tr><span class=secno>4.9.9 </span>The <dfn
    id=tr><code>tr</code></dfn> element</h4>
 
   <dl class=element>
@@ -25551,7 +26426,7 @@
    href="#cells">cells</a></code> collection, the method must instead raise
    an <code>INDEX_SIZE_ERR</code> exception.
 
-  <h4 id=the-td><span class=secno>4.8.10 </span>The <dfn
+  <h4 id=the-td><span class=secno>4.9.10 </span>The <dfn
    id=td><code>td</code></dfn> element</h4>
 
   <dl class=element>
@@ -25613,7 +26488,7 @@
    attribute must <a href="#reflect">reflect</a> the content attribute of the
    same name.
 
-  <h4 id=the-th><span class=secno>4.8.11 </span>The <dfn
+  <h4 id=the-th><span class=secno>4.9.11 </span>The <dfn
    id=th><code>th</code></dfn> element</h4>
 
   <dl class=element>
@@ -25705,7 +26580,7 @@
    attribute must <a href="#reflect">reflect</a> the content attribute of the
    same name.
 
-  <h4 id=attributes0><span class=secno>4.8.12 </span>Attributes common to
+  <h4 id=attributes0><span class=secno>4.9.12 </span>Attributes common to
    <code><a href="#td">td</a></code> and <code><a href="#th">th</a></code>
    elements</h4>
 
@@ -25751,7 +26626,7 @@
    title=dom-tr-cells><a href="#cells">cells</a></code> collection. If there
    is no such parent element, then the attribute must return 0.
 
-  <h4 id=processing0><span class=secno>4.8.13 </span>Processing model</h4>
+  <h4 id=processing0><span class=secno>4.9.13 </span>Processing model</h4>
 
   <p>The various table elements and their content attributes together define
    the <dfn id=table0>table model</dfn>.
@@ -25855,7 +26730,7 @@
    represented by <code><a href="#table">table</a></code> elements and their
    descendants. Documents must not have table model errors.
 
-  <h5 id=forming><span class=secno>4.8.13.1. </span>Forming a table</h5>
+  <h5 id=forming><span class=secno>4.9.13.1. </span>Forming a table</h5>
 
   <p>To determine which elements correspond to which slots in a <a
    href="#table1" title=concept-table>table</a> associated with a <code><a
@@ -26358,7 +27233,7 @@
    title="">x</var> < <var title="">cell<sub
    title="">x</sub></var>+<var title="">width</var></span>.
 
-  <h5 id=header-and-data-cell-semantics><span class=secno>4.8.13.2.
+  <h5 id=header-and-data-cell-semantics><span class=secno>4.9.13.2.
    </span>Forming relationships between data cells and header cells</h5>
 
   <p>Each data cell can be assigned zero or more header cells. The <dfn
@@ -26643,7 +27518,7 @@
    data cells</a> when analyzing data in a <a href="#table1"
    title=concept-table>table</a>.
 
-  <h3 id=forms><span class=secno>4.9 </span>Forms</h3>
+  <h3 id=forms><span class=secno>4.10 </span>Forms</h3>
 
   <p>Forms allow unscripted client-server interaction: given a form, a user
    can provide data, submit it to the server, and have the server act on it
@@ -26700,7 +27575,7 @@
    attributes, <dfn id=buttons title=concept-button>buttons</dfn>. The prose
    below defines when an element is a button.
 
-  <h4 id=the-form><span class=secno>4.9.1 </span>The <dfn
+  <h4 id=the-form><span class=secno>4.10.1 </span>The <dfn
    id=form><code>form</code></dfn> element</h4>
 
   <dl class=element>
@@ -26798,7 +27673,7 @@
    href="#form-owner">form owner</a> is the <code><a
    href="#form">form</a></code> element, with the exception of <code><a
    href="#input0">input</a></code> elements whose <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <span title=attr-input-type-image-state>Image Button</span> state,
    which must, for historical reasons, be excluded from this particular
    collection.
@@ -26856,7 +27731,7 @@
    <code title=event-formchange>formchange</code> events</a> from the
    <code><a href="#form">form</a></code> element.
 
-  <h4 id=the-fieldset><span class=secno>4.9.2 </span>The <dfn
+  <h4 id=the-fieldset><span class=secno>4.10.2 </span>The <dfn
    id=fieldset><code>fieldset</code></dfn> element</h4>
 
   <dl class=element>
@@ -26894,7 +27769,7 @@
   readonly attribute <a href="#htmlformelement">HTMLFormElement</a> <a href="#form1" title=dom-fae-form>form</a>;
            attribute DOMString <a href="#name12" title=dom-fe-name>name</a>;
 
-  readonly attribute DOMString <a href="#type11" title=dom-fieldset-type>type</a>;
+  readonly attribute DOMString <a href="#type13" title=dom-fieldset-type>type</a>;
 
   readonly attribute <a href="#htmlformcontrolscollection0">HTMLFormControlsCollection</a> <a href="#elements4" title=dom-fieldset-elements>elements</a>;
 
@@ -26930,7 +27805,7 @@
    title=dom-fieldset-disabled><code>disabled</code></dfn> DOM attribute must
    <a href="#reflect">reflect</a> the content attribute of the same name.
 
-  <p>The <dfn id=type11 title=dom-fieldset-type><code>type</code></dfn> DOM
+  <p>The <dfn id=type13 title=dom-fieldset-type><code>type</code></dfn> DOM
    attribute must return the string "<code title="">fieldset</code>".
 
   <p>The <dfn id=elements4
@@ -26952,7 +27827,7 @@
    href="#setcustomvalidity">setCustomValidity()</a></code> methods, are part
    of the <a href="#constraint0">constraint validation API</a>.
 
-  <h4 id=the-label><span class=secno>4.9.3 </span>The <dfn
+  <h4 id=the-label><span class=secno>4.10.3 </span>The <dfn
    id=label><code>label</code></dfn> element</h4>
 
   <dl class=element>
@@ -27056,7 +27931,7 @@
    elements</span>, on getting, must return that <code>NodeList</code>
    object.
 
-  <h4 id=the-input><span class=secno>4.9.4 </span>The <dfn
+  <h4 id=the-input><span class=secno>4.10.4 </span>The <dfn
    id=input0><code>input</code></dfn> element</h4>
 
   <dl class=element>
@@ -27130,7 +28005,7 @@
 
    <dd><code title=attr-fs-target><a href="#target3">target</a></code>
 
-   <dd><code title=attr-input-type><a href="#type12">type</a></code>
+   <dd><code title=attr-input-type><a href="#type14">type</a></code>
 
    <dd><code title=attr-input-value><a href="#value8">value</a></code>
 
@@ -27160,10 +28035,10 @@
            attribute boolean <a href="#readonly" title=dom-input-readOnly>readOnly</a>;
            attribute boolean <a href="#required" title=dom-input-required>required</a>;
            attribute unsigned long <a href="#size" title=dom-input-size>size</a>;
-           attribute DOMString <a href="#src9" title=dom-input-src>src</a>;
+           attribute DOMString <a href="#src13" title=dom-input-src>src</a>;
            attribute DOMString <a href="#step" title=dom-input-step>step</a>;
            attribute DOMString <a href="#target4" title=dom-fs-target>target</a>;
-           attribute DOMString <a href="#type13" title=dom-input-type>type</a>;
+           attribute DOMString <a href="#type15" title=dom-input-type>type</a>;
            attribute DOMString <a href="#defaultvalue" title=dom-input-defaultValue>defaultValue</a>;
            attribute DOMString <a href="#value9" title=dom-input-value>value</a>;
            attribute DOMTimeStamp <a href="#valueasdate" title=dom-input-valueAsDate>valueAsDate</a>;
@@ -27188,7 +28063,7 @@
    data field, usually with a form control to allow the user to edit the
    data.
 
-  <p>The <dfn id=type12 title=attr-input-type><code>type</code></dfn>
+  <p>The <dfn id=type14 title=attr-input-type><code>type</code></dfn>
    attribute controls the data type (and associated control) of the element.
    It is an <a href="#enumerated">enumerated attribute</a>. The following
    table lists the keywords and states for the attribute — the keywords
@@ -27208,10 +28083,10 @@
 
    <tbody>
     <tr>
-     <td> <dfn id=text1
+     <td> <dfn id=text2
       title=attr-input-type-text-keyword><code>text</code></dfn>
 
-     <td> <a href="#text2" title=attr-input-type-text>Text</a>
+     <td> <a href="#text3" title=attr-input-type-text>Text</a>
 
      <td> Text with no line breaks
 
@@ -27419,7 +28294,7 @@
      <td> A button
   </table>
 
-  <p>The <i>missing value default</i> is the <a href="#text2"
+  <p>The <i>missing value default</i> is the <a href="#text3"
    title=attr-input-type-text>Text</a> state.
 
   <p>Which of the <code title=attr-input-accept>accept</code>, <code
@@ -27440,7 +28315,7 @@
    <code title=attr-input-step>step</code>, and <code title=attr-fs-target><a
    href="#target3">target</a></code> attributes apply to an <code><a
    href="#input0">input</a></code> element depends on the state of its <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute.
+   title=attr-input-type><a href="#type14">type</a></code> attribute.
    Similarly, the <code title=dom-input-checked><a
    href="#checked1">checked</a></code>, <code title=dom-input-valueAsDate><a
    href="#valueasdate">valueAsDate</a></code>, <code
@@ -27460,7 +28335,7 @@
     <tr>
      <td>
 
-     <th> <a href="#text2" title=attr-input-type-text>Text</a>
+     <th> <a href="#text3" title=attr-input-type-text>Text</a>
 
      <th> <a href="#password1" title=attr-input-type-password>Password</a>
 
@@ -28629,11 +29504,11 @@
   </table>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute changes
+   title=attr-input-type><a href="#type14">type</a></code> attribute changes
    state, and when the element is first created, the element's rendering and
    behaviour must change to the new state's accordingly and the <dfn
    id=control0>control initialization algorithm</dfn> defined for the <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute's new
+   title=attr-input-type><a href="#type14">type</a></code> attribute's new
    state must be invoked.
 
   <p>Each <code><a href="#input0">input</a></code> element has a <a
@@ -28683,7 +29558,7 @@
    created, after invoking the <a href="#control0">control initialization
    algorithm</a>, the <dfn id=default2>default value change algorithm</dfn>
    defined for the <code title=attr-input-type><a
-   href="#type12">type</a></code> attribute's current state must be invoked.
+   href="#type14">type</a></code> attribute's current state must be invoked.
 
   <p>The <a href="#reset5" title=concept-form-reset-control>reset
    algorithm</a> for <code><a href="#input0">input</a></code> elements is to
@@ -28691,7 +29566,7 @@
    back to false (not <i title=concept-input-dirty><a
    href="#dirty0">dirty</a></i>), and then invoke the <a
    href="#default2">default value change algorithm</a> defined for the <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute's
+   title=attr-input-type><a href="#type14">type</a></code> attribute's
    current state.
 
   <p>The <code title=attr-fae-form><a href="#form0">form</a></code> attribute
@@ -28712,9 +29587,9 @@
    title=dom-input-min><code>min</code></dfn>, <dfn id=pattern
    title=dom-input-pattern><code>pattern</code></dfn>, <dfn id=required
    title=dom-input-required><code>required</code></dfn>, <dfn id=size
-   title=dom-input-size><code>size</code></dfn>, <dfn id=src9
+   title=dom-input-size><code>size</code></dfn>, <dfn id=src13
    title=dom-input-src><code>src</code></dfn>, <dfn id=step
-   title=dom-input-step><code>step</code></dfn>, and <dfn id=type13
+   title=dom-input-step><code>step</code></dfn>, and <dfn id=type15
    title=dom-input-type><code>type</code></dfn> DOM attributes must <a
    href="#reflect">reflect</a> the content attributes with the same names.
 
@@ -28745,27 +29620,27 @@
    href="#setcustomvalidity">setCustomValidity()</a></code> methods, are part
    of the <a href="#constraint0">constraint validation API</a>.
 
-  <h5 id=states><span class=secno>4.9.4.1. </span>States of the <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute</h5>
+  <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>
 
-  <h6 id=text-state><span class=secno>4.9.4.1.1. </span><dfn id=text2
+  <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>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is
+   title=attr-input-type><a href="#type14">type</a></code> attribute is
    absent, has the value <code title=attr-input-type-text-keyword><a
-   href="#text1">text</a></code>, or has an invalid value, it is in the <a
-   href="#text2" title=attr-input-type-text>Text</a> state.
+   href="#text2">text</a></code>, or has an invalid value, it is in the <a
+   href="#text3" title=attr-input-type-text>Text</a> state.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
-   the <a href="#text2" title=attr-input-type-text>Text</a> state, the
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
+   the <a href="#text3" title=attr-input-type-text>Text</a> state, the
    element represents a one line plain text edit control for the element's <a
    href="#value12" title=concept-fe-value>value</a>.
 
   <p>If an <code><a href="#input0">input</a></code> element whose <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
-   the <a href="#text2" title=attr-input-type-text>Text</a> state is <i
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
+   the <a href="#text3" title=attr-input-type-text>Text</a> state is <i
    title=concept-input-mutable><a href="#mutable">mutable</a></i>, its <a
    href="#value12" title=concept-fe-value>value</a> should be editable by the
    user. User agents must not allow users to insert U+000A LINE FEED (LF) or
@@ -28773,12 +29648,12 @@
    title=concept-fe-value>value</a> of such <code><a
    href="#input0">input</a></code> elements.
 
-  <p><strong>The <a href="#text2" title=attr-input-type-text>Text</a> state's
+  <p><strong>The <a href="#text3" title=attr-input-type-text>Text</a> state's
    <a href="#control0">control initialization algorithm</a> is as
    follows:</strong> <a href="#strip">Strip line breaks from the value</a>.</p>
   <!-- XXX autocomplete? -->
 
-  <p><strong>The <a href="#text2" title=attr-input-type-text>Text</a> state's
+  <p><strong>The <a href="#text3" title=attr-input-type-text>Text</a> state's
    <a href="#default2">default value change algorithm</a> is as
    follows:</strong> If the <code><a href="#input0">input</a></code> element
    is not <i title=concept-input-dirty><a href="#dirty0">dirty</a></i> then
@@ -28787,15 +29662,15 @@
    href="#value8">value</a></code> content attribute and <a
    href="#strip">strip line breaks from the value</a>.
 
-  <p><strong>The <a href="#text2" title=attr-input-type-text>Text</a> state's
+  <p><strong>The <a href="#text3" title=attr-input-type-text>Text</a> state's
    <a href="#value10"><code title=dom-input-value>value</code> setter
    algorithm</a> is as follows:</strong> Set the <a href="#value12"
    title=concept-fe-value>value</a> of the element to the new value and <a
    href="#strip">strip line breaks from the value</a>.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
-   the <a href="#text2" title=attr-input-type-text>Text</a> state, the
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
+   the <a href="#text3" title=attr-input-type-text>Text</a> state, the
    following common <code><a href="#input0">input</a></code> element content
    attributes, DOM attributes, and methods apply to the element: <code
    title=attr-input-autocomplete><a
@@ -28812,8 +29687,8 @@
    href="#selectedoption">selectedOption</a></code> DOM attributes.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
-   the <a href="#text2" title=attr-input-type-text>Text</a> state, the
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
+   the <a href="#text3" title=attr-input-type-text>Text</a> state, the
    following content attributes must not be specified and do not apply to the
    element: <code class=no-backref title=attr-input-accept>accept</code>,
    <code class=no-backref title=attr-input-alt>alt</code>, <code
@@ -28829,8 +29704,8 @@
    title=attr-fs-action><a href="#action">action</a></code>.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
-   the <a href="#text2" title=attr-input-type-text>Text</a> state, the
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
+   the <a href="#text3" title=attr-input-type-text>Text</a> state, the
    following DOM attributes and methods do not apply to the element: <code
    class=no-backref title=dom-input-checked><a
    href="#checked1">checked</a></code>, <code class=no-backref
@@ -28841,17 +29716,17 @@
    class=no-backref title=dom-input-stepDown><a
    href="#stepdown">stepDown()</a></code>.
 
-  <h6 id=password><span class=secno>4.9.4.1.2. </span><dfn id=password1
+  <h6 id=password><span class=secno>4.10.4.1.2. </span><dfn id=password1
    title=attr-input-type-password>Password</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-password-keyword><a
    href="#password0">password</a></code>, it is in the <a href="#password1"
    title=attr-input-type-password>Password</a> state.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <a href="#password1" title=attr-input-type-password>Password</a>
    state, the element represents a one line plain text edit control for the
    element's <a href="#value12" title=concept-fe-value>value</a>. The user
@@ -28859,7 +29734,7 @@
    see it.
 
   <p>If an <code><a href="#input0">input</a></code> element whose <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <a href="#password1" title=attr-input-type-password>Password</a> state
    is <i title=concept-input-mutable><a href="#mutable">mutable</a></i>, its
    <a href="#value12" title=concept-fe-value>value</a> should be editable by
@@ -28891,7 +29766,7 @@
    href="#strip">strip line breaks from the value</a>.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <a href="#password1" title=attr-input-type-password>Password</a>
    state, the following common <code><a href="#input0">input</a></code>
    element content attributes apply to the element: <code
@@ -28905,7 +29780,7 @@
    title=attr-input-size>size</code>.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <a href="#password1" title=attr-input-type-password>Password</a>
    state, the following content attributes must not be specified and do not
    apply to the element: <code class=no-backref
@@ -28924,7 +29799,7 @@
    title=attr-fs-action><a href="#action">action</a></code>.
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <a href="#password1" title=attr-input-type-password>Password</a>
    state, the following DOM attributes and methods do not apply to the
    element: <code class=no-backref title=dom-input-checked><a
@@ -28939,44 +29814,44 @@
    class=no-backref title=dom-input-stepDown><a
    href="#stepdown">stepDown()</a></code>.
 
-  <h6 id=e-mail><span class=secno>4.9.4.1.3. </span><dfn id=e-mail0
+  <h6 id=e-mail><span class=secno>4.10.4.1.3. </span><dfn id=e-mail0
    title=attr-input-type-email>E-mail</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-email-keyword><a
    href="#email">email</a></code>, it is in the <a href="#e-mail0"
    title=attr-input-type-email>E-mail</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=url-state><span class=secno>4.9.4.1.4. </span><dfn id=url2
+  <h6 id=url-state><span class=secno>4.10.4.1.4. </span><dfn id=url2
    title=attr-input-type-url>URL</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-url-keyword><a
    href="#url1">url</a></code>, it is in the <a href="#url2"
    title=attr-input-type-url>URL</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=date-and><span class=secno>4.9.4.1.5. </span><dfn id=date-and0
+  <h6 id=date-and><span class=secno>4.10.4.1.5. </span><dfn id=date-and0
    title=attr-input-type-datetime>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="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-datetime-keyword><a
    href="#datetime3">datetime</a></code>, it is in the <a href="#date-and0"
    title=attr-input-type-datetime>Date and Time</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=local><span class=secno>4.9.4.1.6. </span><dfn id=local0
+  <h6 id=local><span class=secno>4.10.4.1.6. </span><dfn id=local0
    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="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-datetime-local-keyword><a
    href="#datetime-local">datetime-local</a></code>, it is in the <a
    href="#local0" title=attr-input-type-datetime-local>Local Date and
@@ -28984,77 +29859,77 @@
 
   <p class=big-issue>...
 
-  <h6 id=date-state><span class=secno>4.9.4.1.7. </span><dfn id=date2
+  <h6 id=date-state><span class=secno>4.10.4.1.7. </span><dfn id=date2
    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="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-date-keyword><a
    href="#date1">date</a></code>, it is in the <a href="#date2"
    title=attr-input-type-date>Date</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=month><span class=secno>4.9.4.1.8. </span><dfn id=month1
+  <h6 id=month><span class=secno>4.10.4.1.8. </span><dfn id=month1
    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="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-month-keyword><a
    href="#month0">month</a></code>, it is in the <a href="#month1"
    title=attr-input-type-month>Month</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=week-state><span class=secno>4.9.4.1.9. </span><dfn id=week0
+  <h6 id=week-state><span class=secno>4.10.4.1.9. </span><dfn id=week0
    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="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-week-keyword><a
    href="#week">week</a></code>, it is in the <a href="#week0"
    title=attr-input-type-week>Week</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=time-state><span class=secno>4.9.4.1.10. </span><dfn id=time3
+  <h6 id=time-state><span class=secno>4.10.4.1.10. </span><dfn id=time3
    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="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-time-keyword><a
    href="#time2">time</a></code>, it is in the <a href="#time3"
    title=attr-input-type-time>Time</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=number><span class=secno>4.9.4.1.11. </span><dfn id=number2
+  <h6 id=number><span class=secno>4.10.4.1.11. </span><dfn id=number2
    title=attr-input-type-number>Number</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-number-keyword><a
    href="#number1">number</a></code>, it is in the <a href="#number2"
    title=attr-input-type-number>Number</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=range><span class=secno>4.9.4.1.12. </span><dfn id=range1
+  <h6 id=range><span class=secno>4.10.4.1.12. </span><dfn id=range1
    title=attr-input-type-range>Range</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-range-keyword><a
    href="#range0">range</a></code>, it is in the <a href="#range1"
    title=attr-input-type-range>Range</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=checkbox><span class=secno>4.9.4.1.13. </span><dfn id=checkbox1
+  <h6 id=checkbox><span class=secno>4.10.4.1.13. </span><dfn id=checkbox1
    title=attr-input-type-checkbox>Checkbox</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-checkbox-keyword><a
    href="#checkbox0">checkbox</a></code>, it is in the <a href="#checkbox1"
    title=attr-input-type-checkbox>Checkbox</a> state.
@@ -29064,11 +29939,11 @@
   <p class=big-issue>... <dfn id=checked
    title=concept-input-checked-checkbox>checked</dfn>
 
-  <h6 id=radio><span class=secno>4.9.4.1.14. </span><dfn id=radio1
+  <h6 id=radio><span class=secno>4.10.4.1.14. </span><dfn id=radio1
    title=attr-input-type-radio>Radio Button</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-radio-keyword><a
    href="#radio0">radio</a></code>, it is in the <a href="#radio1"
    title=attr-input-type-radio>Radio Button</a> state.
@@ -29078,11 +29953,11 @@
   <p class=big-issue>... <dfn id=checked0
    title=concept-input-checked-radio>checked</dfn>
 
-  <h6 id=file-state><span class=secno>4.9.4.1.15. </span><dfn id=file0
+  <h6 id=file-state><span class=secno>4.10.4.1.15. </span><dfn id=file0
    title=attr-input-type-file>File</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-file-keyword><a
    href="#file">file</a></code>, it is in the <a href="#file0"
    title=attr-input-type-file>File</a> state.
@@ -29092,22 +29967,22 @@
   <p class=big-issue>... <dfn id=selected
    title=concept-input-type-file-selected>selected file</dfn>
 
-  <h6 id=hidden><span class=secno>4.9.4.1.16. </span><dfn id=hidden1
+  <h6 id=hidden><span class=secno>4.10.4.1.16. </span><dfn id=hidden1
    title=attr-input-type-hidden>Hidden</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-hidden-keyword><a
    href="#hidden0">hidden</a></code>, it is in the <a href="#hidden1"
    title=attr-input-type-hidden>Hidden</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=submit><span class=secno>4.9.4.1.17. </span><dfn id=submit2
+  <h6 id=submit><span class=secno>4.10.4.1.17. </span><dfn id=submit2
    title=attr-input-type-submit>Submit Button</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-submit-keyword><a
    href="#submit1">submit</a></code>, it is in the <a href="#submit2"
    title=attr-input-type-submit>Submit Button</a> state.
@@ -29117,11 +29992,11 @@
 rel="" on submit buttons?
 -->
 
-  <h6 id=image><span class=secno>4.9.4.1.18. </span><dfn id=image5
+  <h6 id=image><span class=secno>4.10.4.1.18. </span><dfn id=image5
    title=attr-input-type-image>Image Button</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-image-keyword><a
    href="#image4">image</a></code>, it is in the <a href="#image5"
    title=attr-input-type-image>Image Button</a> state.
@@ -29131,46 +30006,46 @@
   <p class=big-issue>... image: <dfn id=selected0
    title=concept-input-type-image-coordinate>selected coordinate</dfn>
 
-  <h6 id=reset><span class=secno>4.9.4.1.19. </span><dfn id=reset2
+  <h6 id=reset><span class=secno>4.10.4.1.19. </span><dfn id=reset2
    title=attr-input-type-reset>Reset Button</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-reset-keyword><a
    href="#reset1">reset</a></code>, it is in the <a href="#reset2"
    title=attr-input-type-reset>Reset Button</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=button><span class=secno>4.9.4.1.20. </span><dfn id=button1
+  <h6 id=button><span class=secno>4.10.4.1.20. </span><dfn id=button1
    title=attr-input-type-button>Button</dfn> state</h6>
 
   <p>When an <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute has the
+   title=attr-input-type><a href="#type14">type</a></code> attribute has the
    value <code title=attr-input-type-button-keyword><a
    href="#button0">button</a></code>, it is in the <a href="#button1"
    title=attr-input-type-button>Button</a> state.
 
   <p class=big-issue>...
 
-  <h6 id=common3><span class=secno>4.9.4.1.21. </span>Common algorithms</h6>
+  <h6 id=common3><span class=secno>4.10.4.1.21. </span>Common algorithms</h6>
 
   <p>When a user agent is to <dfn id=strip>strip line breaks from the
    value</dfn>, the user agent must remove any U+000A LINE FEED (LF) and
    U+000D CARRIAGE RETURN (CR) characters from <a href="#value12"
    title=concept-fe-value>value</a>.
 
-  <h5 id=common4><span class=secno>4.9.4.2. </span>Common <code><a
+  <h5 id=common4><span class=secno>4.10.4.2. </span>Common <code><a
    href="#input0">input</a></code> element attributes</h5>
 
   <p>These attributes only apply to an <code><a
    href="#input0">input</a></code> element if its <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in a
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in a
    state whose definition declares that the attribute applies. When an
    attribute doesn't apply to an <code><a href="#input0">input</a></code>
    element, user agents must <a href="#ignored">ignore</a> the attribute.
 
-  <h6 id=the-autocomplete><span class=secno>4.9.4.2.1. </span>The <code
+  <h6 id=the-autocomplete><span class=secno>4.10.4.2.1. </span>The <code
    title=attr-input-autocomplete><a
    href="#autocomplete0">autocomplete</a></code> attribute</h6>
   <!--XXX IE also applies it to <form> elements. It doesn't apply it
@@ -29232,10 +30107,10 @@
    accessible, as there are significant security implications for the user if
    support for this attribute is disabled.
 
-  <h5 id=common5><span class=secno>4.9.4.3. </span>Common <code><a
+  <h5 id=common5><span class=secno>4.10.4.3. </span>Common <code><a
    href="#input0">input</a></code> element APIs</h5>
 
-  <h6 id=value><span class=secno>4.9.4.3.1. </span>Value manipulation</h6>
+  <h6 id=value><span class=secno>4.10.4.3.1. </span>Value manipulation</h6>
 
   <p>The <dfn id=value9 title=dom-input-value><code>value</code></dfn> DOM
    attribute allows secripts to manipulate the <span
@@ -29244,7 +30119,7 @@
    current <span title=concept-input-value>value</span> of the element. On
    setting, it must run the <dfn id=value10><code
    title=dom-input-value>value</code> setter algorithm</dfn> defined for the
-   element's <code title=attr-input-type><a href="#type12">type</a></code>
+   element's <code title=attr-input-type><a href="#type14">type</a></code>
    attribute's current state.
 
   <hr>
@@ -29257,7 +30132,7 @@
   <p>On getting, if the <code title=dom-input-valueAsDate><a
    href="#valueasdate">valueAsDate</a></code> attribute applies, as defined
    for the <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute's
+   title=attr-input-type><a href="#type14">type</a></code> attribute's
    current state, then run the <dfn id=valueasdate0><code
    title=dom-input-valueAsDate>valueAsDate</code> getter algorithm</dfn>
    defined for that state. Otherwise, return a Not-a-Number (NaN) value.
@@ -29265,7 +30140,7 @@
   <p>On setting, if the <code title=dom-input-valueAsDate><a
    href="#valueasdate">valueAsDate</a></code> attribute applies, as defined
    for the <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute's
+   title=attr-input-type><a href="#type14">type</a></code> attribute's
    current state, then run the <dfn id=valueasdate1><code
    title=dom-input-valueAsDate>valueAsDate</code> setter algorithm</dfn>
    defined for that state. Otherwise, do nothing.
@@ -29280,7 +30155,7 @@
   <p>On getting, if the <code title=dom-input-valueAsNumber><a
    href="#valueasnumber">valueAsNumber</a></code> attribute applies, as
    defined for the <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute's
+   title=attr-input-type><a href="#type14">type</a></code> attribute's
    current state, then run the <dfn id=valueasnumber0><code
    title=dom-input-valueAsNumber>valueAsNumber</code> getter algorithm</dfn>
    defined for that state. Otherwise, return the <span
@@ -29290,7 +30165,7 @@
   <p>On setting, if the <code title=dom-input-valueAsNumber><a
    href="#valueasnumber">valueAsNumber</a></code> attribute applies, as
    defined for the <code><a href="#input0">input</a></code> element's <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute's
+   title=attr-input-type><a href="#type14">type</a></code> attribute's
    current state, then run the <dfn id=valueasnumber1><code
    title=dom-input-valueAsNumber>valueAsNumber</code> setter algorithm</dfn>
    defined for that state. Otherwise, the <span
@@ -29298,7 +30173,7 @@
    possible representation of the given value that is a <a
    href="#valid1">valid floating point number</a> in base ten.
 
-  <h6 id=others...><span class=secno>4.9.4.3.2. </span>Others...</h6>
+  <h6 id=others...><span class=secno>4.10.4.3.2. </span>Others...</h6>
 
   <p class=big-issue>... <dfn id=checked1
    title=dom-input-checked><code>checked</code></dfn>
@@ -29315,7 +30190,7 @@
   <p class=big-issue>... <dfn id=stepdown
    title=dom-input-stepDown><code>stepDown()</code></dfn>
 
-  <h4 id=the-button><span class=secno>4.9.5 </span>The <dfn
+  <h4 id=the-button><span class=secno>4.10.5 </span>The <dfn
    id=button2><code>button</code></dfn> element</h4>
 
   <dl class=element>
@@ -29409,7 +30284,7 @@
    href="#setcustomvalidity">setCustomValidity()</a></code> methods, are part
    of the <a href="#constraint0">constraint validation API</a>.
 
-  <h4 id=the-select><span class=secno>4.9.6 </span>The <dfn
+  <h4 id=the-select><span class=secno>4.10.6 </span>The <dfn
    id=select><code>select</code></dfn> element</h4>
 
   <dl class=element>
@@ -29506,7 +30381,7 @@
    href="#setcustomvalidity">setCustomValidity()</a></code> methods, are part
    of the <a href="#constraint0">constraint validation API</a>.
 
-  <h4 id=the-datalist><span class=secno>4.9.7 </span>The <dfn
+  <h4 id=the-datalist><span class=secno>4.10.7 </span>The <dfn
    id=datalist><code>datalist</code></dfn> element</h4>
 
   <dl class=element>
@@ -29539,7 +30414,7 @@
 
   <p class=big-issue>...
 
-  <h4 id=the-optgroup><span class=secno>4.9.8 </span>The <dfn
+  <h4 id=the-optgroup><span class=secno>4.10.8 </span>The <dfn
    id=optgroup><code>optgroup</code></dfn> element</h4>
 
   <dl class=element>
@@ -29573,7 +30448,7 @@
 
   <p class=big-issue>...
 
-  <h4 id=the-option><span class=secno>4.9.9 </span>The <dfn
+  <h4 id=the-option><span class=secno>4.10.9 </span>The <dfn
    id=option><code>option</code></dfn> element</h4>
 
   <dl class=element>
@@ -29640,7 +30515,7 @@
    <code><a href="#option">option</a></code> element). ... argument
    processing ...
 
-  <h4 id=the-textarea><span class=secno>4.9.10 </span>The <dfn
+  <h4 id=the-textarea><span class=secno>4.10.10 </span>The <dfn
    id=textarea><code>textarea</code></dfn> element</h4>
 
   <dl class=element>
@@ -29749,7 +30624,7 @@
    href="#setcustomvalidity">setCustomValidity()</a></code> methods, are part
    of the <a href="#constraint0">constraint validation API</a>.
 
-  <h4 id=the-output><span class=secno>4.9.11 </span>The <dfn
+  <h4 id=the-output><span class=secno>4.10.11 </span>The <dfn
    id=output><code>output</code></dfn> element</h4>
 
   <dl class=element>
@@ -29817,7 +30692,7 @@
    href="#setcustomvalidity">setCustomValidity()</a></code> methods, are part
    of the <a href="#constraint0">constraint validation API</a>.
 
-  <h4 id=association><span class=secno>4.9.12 </span>Association of controls
+  <h4 id=association><span class=secno>4.10.12 </span>Association of controls
    and forms</h4>
   <!-- XXX consider xreffing the 'ID' term in this section -->
 
@@ -29848,9 +30723,10 @@
    form, its <a href="#form-owner">form owner</a> must be set to that form.
 
   <p>When a <a href="#form-associated">form-associated element</a>'s ancestor
-   chain changes, e.g. because it or one of its ancestors was inserted or
-   removed from a <code>Document</code>, then the user agent must <a
-   href="#reset3">reset the form owner</a> of that element.
+   chain changes, e.g. because it or one of its ancestors was <a
+   href="#inserted" title="insert an element into a document">inserted</a> or
+   removed<!--XXX--> from a <code>Document</code>, then the user agent must
+   <a href="#reset3">reset the form owner</a> of that element.
 
   <p>When a <a href="#form-associated">form-associated element</a>'s <code
    title=attr-fae-form><a href="#form0">form</a></code> attribute is added,
@@ -29918,10 +30794,10 @@
    getting, must return the element's <a href="#form-owner">form owner</a>,
    or null if there isn't one.
 
-  <h4 id=attributes1><span class=secno>4.9.13 </span><dfn
+  <h4 id=attributes1><span class=secno>4.10.13 </span><dfn
    id=attributes4>Attributes common to form controls</dfn></h4>
 
-  <h5 id=naming><span class=secno>4.9.13.1. </span>Naming form controls</h5>
+  <h5 id=naming><span class=secno>4.10.13.1. </span>Naming form controls</h5>
 
   <p class=big-issue>... <dfn id=name11 title=attr-fe-name>name</dfn> content
    attribute
@@ -29929,7 +30805,7 @@
   <p class=big-issue>... <dfn id=name12 title=dom-fe-name>name</dfn> DOM
    attribute
 
-  <h5 id=enabling><span class=secno>4.9.13.2. </span>Enabling and disabling
+  <h5 id=enabling><span class=secno>4.10.13.2. </span>Enabling and disabling
    form controls</h5>
 
   <p class=big-issue>... <dfn id=disabled4
@@ -29943,12 +30819,12 @@
   <p class=big-issue>... <dfn id=disabled6
    title=dom-fe-disabled>disabled</dfn> DOM attribute
 
-  <h5 id=a-form><span class=secno>4.9.13.3. </span>A form control's value</h5>
+  <h5 id=a-form><span class=secno>4.10.13.3. </span>A form control's value</h5>
 
   <p class=big-issue>... <dfn id=value12 title=concept-fe-value>value</dfn></p>
   <!-- XXX autocomplete: define somewhere that the value may be set from a stored value -->
 
-  <h5 id=autofocusing><span class=secno>4.9.13.4. </span>Autofocusing a form
+  <h5 id=autofocusing><span class=secno>4.10.13.4. </span>Autofocusing a form
    control</h5>
 
   <p class=big-issue>... <dfn id=autofocus
@@ -29958,7 +30834,7 @@
    title=dom-fe-autofocus>autofocus</dfn> DOM attribute</p>
   <!-- If the element is <span>focusable</span>, run the <span>focusing steps</step> for that element. -->
 
-  <h4 id=attributes2><span class=secno>4.9.14 </span><dfn
+  <h4 id=attributes2><span class=secno>4.10.14 </span><dfn
    id=attributes5>Attributes for form submission</dfn></h4>
 
   <p class=big-issue>... <dfn id=action title=attr-fs-action>action</dfn>
@@ -30003,14 +30879,14 @@
    href="#form">form</a></code> elements and on elements that represent
    buttons that submit forms, e.g. an <code><a
    href="#input0">input</a></code> element whose <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    the <span title=attr-input-type-submit-state>Submit Button</span> state.
    The attributes on the buttons, when omitted, default to the values given
    on the corresponding the <code><a href="#form">form</a></code> element.
 
-  <h4 id=constraints><span class=secno>4.9.15 </span>Constraints</h4>
+  <h4 id=constraints><span class=secno>4.10.15 </span>Constraints</h4>
 
-  <h5 id=definitions><span class=secno>4.9.15.1. </span>Definitions</h5>
+  <h5 id=definitions><span class=secno>4.10.15.1. </span>Definitions</h5>
 
   <p>An element is a <dfn id=candidate>candidate for constraint
    validation</dfn> if the following conditions apply for that element:
@@ -30022,7 +30898,7 @@
   <p class=big-issue>An element <dfn id=satisfies
    title=concept-fv-valid>satisfies its constraints</dfn> if ...
 
-  <h5 id=constraint><span class=secno>4.9.15.2. </span>Constraint validation</h5>
+  <h5 id=constraint><span class=secno>4.10.15.2. </span>Constraint validation</h5>
 
   <p>When the user agent is required to <dfn id=statically>statically
    validate the constraints</dfn> of <code><a href="#form">form</a></code>
@@ -30122,7 +30998,7 @@
     <p>Return a <i>negative</i> result.
   </ol>
 
-  <h5 id=the-constraint><span class=secno>4.9.15.3. </span>The <dfn
+  <h5 id=the-constraint><span class=secno>4.10.15.3. </span>The <dfn
    id=constraint0>constraint validation API</dfn></h5>
 
   <p class=big-issue><dfn id=willvalidate
@@ -30135,7 +31011,7 @@
    id=setcustomvalidity
    title=dom-cva-setCustomValidity><code>setCustomValidity()</code></dfn>
 
-  <h4 id=form-submission><span class=secno>4.9.16 </span>Form submission</h4>
+  <h4 id=form-submission><span class=secno>4.10.16 </span>Form submission</h4>
   <!-- XXX http://lxr.mozilla.org/mozilla/source/content/html/content/src/nsHTMLFormElement.cpp -->
 
   <p>When a form <var title="">form</var> is <dfn id=submitted
@@ -30205,21 +31081,21 @@
 
        <li>The <var title="">field</var> element is an <code><a
         href="#input0">input</a></code> element whose <code
-        title=attr-input-type><a href="#type12">type</a></code> attribute is
+        title=attr-input-type><a href="#type14">type</a></code> attribute is
         in the <span title=attr-input-type-checkbox-state>Checkbox</span>
         state and the control is not <a href="#checked"
         title=concept-input-checked-checkbox>checked</a>.
 
        <li>The <var title="">field</var> element is an <code><a
         href="#input0">input</a></code> element whose <code
-        title=attr-input-type><a href="#type12">type</a></code> attribute is
+        title=attr-input-type><a href="#type14">type</a></code> attribute is
         in the <span title=attr-input-type-radio-state>Radio Button</span>
         state and the control is not <a href="#checked0"
         title=concept-input-checked-radio>checked</a>.
 
        <li>The <var title="">field</var> element is an <code><a
         href="#input0">input</a></code> element whose <code
-        title=attr-input-type><a href="#type12">type</a></code> attribute is
+        title=attr-input-type><a href="#type14">type</a></code> attribute is
         in the <span title=attr-input-type-file-state>File Upload</span>
         state but the control does not have any files selected.
       </ul>
@@ -30229,7 +31105,7 @@
      <li>
       <p>If the <var title="">field</var> element is an <code><a
        href="#input0">input</a></code> element whose <code
-       title=attr-input-type><a href="#type12">type</a></code> attribute is
+       title=attr-input-type><a href="#type14">type</a></code> attribute is
        in the <span title=attr-input-type-image-state>Image Button</span>
        state, then run these further nested substeps:</p>
 
@@ -30309,7 +31185,7 @@
      <li>
       <p>Otherwise, if the <var title="">field</var> element is an <code><a
        href="#input0">input</a></code> element whose <code
-       title=attr-input-type><a href="#type12">type</a></code> attribute is
+       title=attr-input-type><a href="#type14">type</a></code> attribute is
        in the <span title=attr-input-type-file-state>File Upload</span>
        state, then for each file <a href="#selected"
        title=concept-input-type-file-selected>selected</a> in the <code><a
@@ -30703,7 +31579,8 @@
     </dl>
   </ol>
 
-  <h5 id=url-encoded><span class=secno>4.9.16.1. </span>URL-encoded form data</h5>
+  <h5 id=url-encoded><span class=secno>4.10.16.1. </span>URL-encoded form
+   data</h5>
 
   <p>The <dfn id=applicationx-www-form-urlencoded><code
    title="">application/x-www-form-urlencoded</code> encoding algorithm</dfn>
@@ -30718,7 +31595,7 @@
    encoding. -->
   </ol>
 
-  <h5 id=multipart><span class=secno>4.9.16.2. </span>Multipart form data</h5>
+  <h5 id=multipart><span class=secno>4.10.16.2. </span>Multipart form data</h5>
 
   <p>The <dfn id=multipartform-data><code title="">multipart/form-data</code>
    encoding algorithm</dfn> is as follows:
@@ -30732,7 +31609,7 @@
    encoding. -->
   </ol>
 
-  <h5 id=plain><span class=secno>4.9.16.3. </span>Plain text form data</h5>
+  <h5 id=plain><span class=secno>4.10.16.3. </span>Plain text form data</h5>
 
   <p>The <dfn id=textplain><code title="">text/plain</code> encoding
    algorithm</dfn> is as follows:
@@ -30746,7 +31623,7 @@
    encoding. -->
   </ol>
 
-  <h4 id=resetting><span class=secno>4.9.17 </span>Resetting a form</h4>
+  <h4 id=resetting><span class=secno>4.10.17 </span>Resetting a form</h4>
 
   <p>When a form <var title="">form</var> is <dfn id=reset4
    title=concept-form-reset>reset</dfn>, the user agent must invoke the <a
@@ -30761,7 +31638,7 @@
    defines its own <dfn id=reset5 title=concept-form-reset-control>reset
    algorithm</dfn>.
 
-  <h4 id=event><span class=secno>4.9.18 </span>Event dispatch</h4>
+  <h4 id=event><span class=secno>4.10.18 </span>Event dispatch</h4>
 
   <p>When the user agent is to <dfn id=broadcast>broadcast <code
    title=event-forminput>forminput</code> events</dfn> or <dfn
@@ -30790,879 +31667,6 @@
      event</a> named <var title="">event name</var> at the element.
   </ol>
 
-  <h3 id=scripting1><span class=secno>4.10 </span>Scripting</h3>
-
-  <p>Scripts allow authors to add interactivity to their documents.
-
-  <p>Authors are encouraged to use declarative alternatives to scripting
-   where possible, as declarative mechanisms are often more maintainable, and
-   many users disable scripting.
-
-  <div class=example>
-   <p>For example, instead of using script to show or hide a section to show
-    more details, the <code><a href="#details">details</a></code> element
-    could be used.</p>
-  </div>
-
-  <p>Authors are also encouraged to make their applications degrade
-   gracefully in the absence of scripting support.
-
-  <div class=example>
-   <p>For example, if an author provides a link in a table header to
-    dynamically resort the table, the link could also be made to function
-    without scripts by requesting the sorted table from the server.</p>
-  </div>
-
-  <h4 id=script><span class=secno>4.10.1 </span>The <dfn
-   id=script1><code>script</code></dfn> element</h4>
-
-  <dl class=element>
-   <dt>Categories
-
-   <dd><a href="#metadata0">Metadata content</a>.
-
-   <dd><a href="#phrasing0">Phrasing content</a>.
-
-   <dt>Contexts in which this element may be used:
-
-   <dd>Where <a href="#metadata0">metadata content</a> is expected.
-
-   <dd>Where <a href="#phrasing0">phrasing content</a> is expected.
-
-   <dt>Content model:
-
-   <dd>If there is no <code title=attr-script-src><a
-    href="#src10">src</a></code> attribute, depends on the value of the <code
-    title=attr-script-type><a href="#type14">type</a></code> attribute.
-
-   <dd>If there <em>is</em> a <code title=attr-script-src><a
-    href="#src10">src</a></code> attribute, the element must be empty.
-
-   <dt>Element-specific attributes:
-
-   <dd><code title=attr-script-src><a href="#src10">src</a></code>
-
-   <dd><code title=attr-script-async><a href="#async">async</a></code>
-
-   <dd><code title=attr-script-defer><a href="#defer">defer</a></code>
-
-   <dd><code title=attr-script-type><a href="#type14">type</a></code>
-
-   <dd><code title=attr-script-charset><a href="#charset2">charset</a></code>
-
-   <dt>DOM interface:
-
-   <dd>
-    <pre
-     class=idl>interface <dfn id=htmlscriptelement>HTMLScriptElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
-           attribute DOMString <code title=dom-script-src><a href="#src11">src</a></code>;
-           attribute boolean <code title=dom-script-async><a href="#async0">async</a></code>;
-           attribute boolean <code title=dom-script-defer><a href="#defer0">defer</a></code>;
-           attribute DOMString <code title=dom-script-type><a href="#type15">type</a></code>;
-           attribute DOMString <code title=dom-script-charset><a href="#charset3">charset</a></code>;
-           attribute DOMString <code title=dom-script-text><a href="#text3">text</a></code>;
-};</pre>
-  </dl>
-
-  <p>The <code><a href="#script1">script</a></code> element allows authors to
-   include dynamic script and data blocks in their documents.
-
-  <p>When used to include dynamic scripts, the scripts may either be embedded
-   inline or may be imported from an external file using the <code
-   title=attr-script-src><a href="#src10">src</a></code> attribute. If the
-   language is not that described by "<code title="">text/javascript</code>",
-   then the <code title=attr-script-type><a href="#type14">type</a></code>
-   attribute must be present. If the <code title=attr-script-type><a
-   href="#type14">type</a></code> attribute is present, its value must be the
-   type of the script's language.
-
-  <p>When used to include data blocks, the data must be embedded inline, the
-   format of the data must be given using the <code title=attr-script-type><a
-   href="#type14">type</a></code> attribute, and the <code
-   title=attr-script-src><a href="#src10">src</a></code> attribute must not
-   be specified.
-
-  <p>The <dfn id=type14 title=attr-script-type><code>type</code></dfn>
-   attribute gives the language of the script or format of the data. If the
-   attribute is present, its value must be a valid MIME type, optionally with
-   parameters. The <code title="">charset</code> parameter must not be
-   specified. (The default, which is used if the attribute is absent, is
-   "<code title="">text/javascript</code>".) <a
-   href="#refsRFC2046">[RFC2046]</a>
-
-  <p>The <dfn id=src10 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="#valid8">valid
-   URL</a> identifying a script resource of the type given by the <code
-   title=attr-script-type><a href="#type14">type</a></code> attribute, if the
-   attribute is present, or of the type "<code
-   title="">text/javascript</code>", if the attribute is absent.
-
-  <p>The <dfn id=charset2
-   title=attr-script-charset><code>charset</code></dfn> attribute gives the
-   character encoding of the external script resource. The attribute must not
-   be specified if the <code title=attr-script-src><a
-   href="#src10">src</a></code> attribute is not present. If the attribute is
-   set, its value must be a valid character encoding name, and must be the
-   preferred name for that encoding. <a
-   href="#refsIANACHARSET">[IANACHARSET]</a>
-
-  <p>The encoding specified must be the encoding used by the script resource.
-   If the <code title=attr-script-charset><a
-   href="#charset2">charset</a></code> attribute is omitted, the character
-   encoding of the document will be used. If the script resource uses a
-   different encoding than the document, then the attribute must be
-   specified.
-
-  <p>The <dfn id=async title=attr-script-async><code>async</code></dfn> and
-   <dfn id=defer title=attr-script-defer><code>defer</code></dfn> attributes
-   are <a href="#boolean0" title="boolean attribute">boolean attributes</a>
-   that indicate how the script should be executed.
-
-  <p>There are three possible modes that can be selected using these
-   attributes. If the <code title=attr-script-async><a
-   href="#async">async</a></code> attribute is present, then the script will
-   be executed asynchronously, as soon as it is available. If the <code
-   title=attr-script-async><a href="#async">async</a></code> attribute is not
-   present but the <code title=attr-script-defer><a
-   href="#defer">defer</a></code> attribute is present, then the script is
-   executed when the page has finished parsing. If neither attribute is
-   present, then the script is fetched and executed immediately, before the
-   user agent continues parsing the page. The exact processing details for
-   these attributes is described below.
-
-  <p>The <code title=attr-script-defer><a href="#defer">defer</a></code>
-   attribute may be specified even if the <code title=attr-script-async><a
-   href="#async">async</a></code> attribute is specified, to cause legacy Web
-   browsers that only support <code title=attr-script-defer><a
-   href="#defer">defer</a></code> (and not <code title=attr-script-async><a
-   href="#async">async</a></code>) to fall back to the <code
-   title=attr-script-defer><a href="#defer">defer</a></code> behavior instead
-   of the synchronous blocking behavior that is the default.
-
-  <p>Changing the <code title=attr-script-src><a
-   href="#src10">src</a></code>, <code title=attr-script-type><a
-   href="#type14">type</a></code>, <code title=attr-script-charset><a
-   href="#charset2">charset</a></code>, <code title=attr-script-async><a
-   href="#async">async</a></code>, and <code title=attr-script-defer><a
-   href="#defer">defer</a></code> attributes dynamically has no direct
-   effect; these attribute are only used at specific times described below
-   (namely, when the element is inserted into the document).</p>
-  <!-- by implication, changes to the base URL also
-  have no effect -->
-
-  <p><code><a href="#script1">script</a></code> elements have four associated
-   pieces of metadata. The first is a flag indicating whether or not the
-   script block has been <dfn id=already>"already executed"</dfn>. Initially,
-   <code><a href="#script1">script</a></code> elements must have this flag
-   unset (script blocks, when created, are not "already executed"). When a
-   <code><a href="#script1">script</a></code> element is cloned, the "already
-   executed" flag, if set, must be propagated to the clone when it is
-   created. The second is a flag indicating whether the element was <dfn
-   id=parser-inserted>"parser-inserted"</dfn>. This flag is set by the <a
-   href="#html-0">HTML parser</a> and is used to handle <code
-   title=dom-document-write-HTML><a
-   href="#document.write...">document.write()</a></code> calls. The third and
-   fourth pieces of metadata are <dfn id=the-scripts><var>the script's
-   type</var></dfn> and <dfn id=the-scripts0><var>the script's character
-   encoding</var></dfn>. They are determined when the script is run, based on
-   the attributes on the element at that time.
-
-  <p>When an <span>XML parser</span> creates a <code><a
-   href="#script1">script</a></code> element, it must be marked as being <a
-   href="#parser-inserted">"parser-inserted"</a>. When the element's end tag
-   is parsed, the user agent must <a href="#running" title="running a
-   script">run</a> the <code><a href="#script1">script</a></code> element.
-
-  <p class=note>Equivalent requirements exist for the <a href="#html-0">HTML
-   parser</a>, but they are detailed in that section instead.
-
-  <p>When a <code><a href="#script1">script</a></code> element that is marked
-   as neither having <a href="#already">"already executed"</a> nor being <a
-   href="#parser-inserted">"parser-inserted"</a> is <span>inserted into a
-   document</span><!-- XXX xref -->, the user agent must <a href="#running"
-   title="running a script">run</a> the <code><a
-   href="#script1">script</a></code> element.
-
-  <p><dfn id=running title="running a script">Running a script</dfn>: When a
-   <code><a href="#script1">script</a></code> element is to be run, the user
-   agent must act as follows:
-
-  <ol>
-   <li>
-    <p>If either:</p>
-
-    <ul class=brief>
-     <li>the <code><a href="#script1">script</a></code> element has a <code
-      title=attr-script-type><a href="#type14">type</a></code> attribute and
-      its value is the empty string, or
-
-     <li>the <code><a href="#script1">script</a></code> element has no <code
-      title=attr-script-type><a href="#type14">type</a></code> attribute but
-      it has a <code title=attr-script-language>language</code> attribute and
-      <em>that</em> attribute's value is the empty string, or
-
-     <li>the <code><a href="#script1">script</a></code> element has neither a
-      <code title=attr-script-type><a href="#type14">type</a></code>
-      attribute nor a <code title=attr-script-language>language</code>
-      attribute, then
-    </ul>
-
-    <p>...let <var><a href="#the-scripts">the script's type</a></var> for
-     this <code><a href="#script1">script</a></code> element be "<code
-     title="">text/javascript</code>".</p>
-
-    <p>Otherwise, if the <code><a href="#script1">script</a></code> element
-     has a <code title=attr-script-type><a href="#type14">type</a></code>
-     attribute, let <var><a href="#the-scripts">the script's type</a></var>
-     for this <code><a href="#script1">script</a></code> element be the value
-     of that attribute.</p>
-
-    <p>Otherwise, the element has a <code
-     title=attr-script-language>language</code> attribute; let <var><a
-     href="#the-scripts">the script's type</a></var> for this <code><a
-     href="#script1">script</a></code> element be the concatenation of the
-     string "<code title="">text/</code>" followed by the value of the <code
-     title=attr-script-language>language</code> attribute.</p>
-    <!-- user agents already support, e.g., type="text/javascript1.3",
-    so we don't have to support that separately. -->
-    
-
-   <li>
-    <p>If the <code><a href="#script1">script</a></code> element has a <code
-     title=attr-script-charset><a href="#charset2">charset</a></code>
-     attribute, then let <var><a href="#the-scripts0">the script's character
-     encoding</a></var> for this <code><a href="#script1">script</a></code>
-     element be the encoding given by the <code title=attr-script-charset><a
-     href="#charset2">charset</a></code> attribute.</p>
-
-    <p>Otherwise, let <var><a href="#the-scripts0">the script's character
-     encoding</a></var> for this <code><a href="#script1">script</a></code>
-     element be the same as <a href="#character4" title="document's character
-     encoding">the encoding of the document itself</a>.</p>
-
-   <li>
-    <p>If the <code><a href="#script1">script</a></code> element is <a
-     href="#without">without script</a>, or if the <code><a
-     href="#script1">script</a></code> element was created by an <span>XML
-     parser</span> that itself was created as part of the processing of the
-     <code title=dom-innerHTML-XML><a href="#innerhtml1">innerHTML</a></code>
-     attribute's setter<!--
-    no need to worry about the HTML case, as the HTML parser handles
-    that for us -->,
-     or if the user agent does not <a href="#support">support the scripting
-     language</a> given by <var><a href="#the-scripts">the script's
-     type</a></var> for this <code><a href="#script1">script</a></code>
-     element, then the user agent must abort these steps at this point. The
-     script is not executed.</p>
-
-   <li>
-    <p>The user agent must set the element's <a href="#already">"already
-     executed"</a> flag.</p>
-
-   <li>
-    <p>If the element has a <code title=attr-script-src><a
-     href="#src10">src</a></code> attribute, then the specified resource must
-     be <a href="#fetch" title=fetch>fetched</a>.</p>
-
-    <p>For historical reasons, if the <a href="#url">URL</a> is a <a
-     href="#the-javascript" title="javascript protocol"><code
-     title="">javascript:</code> URL</a>, then the user agent must not,
-     despite the requirements in the definition of the <a href="#fetch"
-     title=fetch>fetching</a> algorithm, actually execute the given script;
-     instead the user agent must act as if it had received an empty HTTP 400
-     response.</p>
-
-    <p>Once the fetching process has completed, and the script has <dfn
-     id=completed>completed loading</dfn>, the user agent will have to
-     complete <a href="#when-a" title="when a script completes loading">the
-     steps described below</a>. (If the parser is still active at that time,
-     those steps defer to the parser to handle the execution of pending
-     scripts.)</p>
-
-    <p>For performance reasons, user agents may start fetching the script as
-     soon as the attribute is set, instead, in the hope that the element will
-     be inserted into the document. Either way, once the element is inserted
-     into the document, the load must have started. If the UA performs such
-     prefetching, but the element is never inserted in the document, or the
-     <code title=attr-script-src><a href="#src10">src</a></code> attribute is
-     dynamically changed, then the user agent will not execute the script,
-     and the fetching process will have been effectively wasted.</p>
-
-   <li>
-    <p>Then, the first of the following options that describes the situation
-     must be followed:</p>
-
-    <dl class=switch>
-     <dt>If the document is still being parsed, and the element has a <code
-      title=attr-script-defer><a href="#defer">defer</a></code> attribute,
-      and the element does not have an <code title=attr-script-async><a
-      href="#async">async</a></code> attribute
-
-     <dd>The element must be added to the end of the <a href="#list-of">list
-      of scripts that will execute when the document has finished
-      parsing</a>. <span class=big-issue>This isn't compatible with IE for
-      inline deferred scripts, but then what IE does is pretty hard to pin
-      down exactly. Do we want to keep this like it is? Be more
-      compatible?</span> <!--XXX  
-     http://www.websiteoptimization.com/speed/tweak/defer/test/
-     internal deferred scripts execute before any external scripts execute, or before the LOAD if there are none
-     external deferred scripts execute before the LOAD
-     -->
-      
-
-     <dt>If the element has an <code title=attr-script-async><a
-      href="#async">async</a></code> attribute and a <code
-      title=attr-script-src><a href="#src10">src</a></code> attribute
-
-     <dd>The element must be added to the end of the <a href="#list-of0">list
-      of scripts that will execute asynchronously</a>.
-
-     <dt>If the element has an <code title=attr-script-async><a
-      href="#async">async</a></code> attribute but no <code
-      title=attr-script-src><a href="#src10">src</a></code> attribute, and
-      the <a href="#list-of0">list of scripts that will execute
-      asynchronously</a> is not empty
-
-     <dd>The element must be added to the end of the <a href="#list-of0">list
-      of scripts that will execute asynchronously</a>.
-
-     <dt>If the element has a <code title=attr-script-src><a
-      href="#src10">src</a></code> attribute and has been flagged as <a
-      href="#parser-inserted">"parser-inserted"</a>
-
-     <dd>The element is the <span>pending external script</span>. (There can
-      only be one such script at a time.)
-
-     <dt>If the element has a <code title=attr-script-src><a
-      href="#src10">src</a></code> attribute
-
-     <dd>The element must be added to the end of the <a href="#list-of1">list
-      of scripts that will execute as soon as possible</a>.
-
-     <dt>Otherwise
-
-     <dd>The user agent must immediately <a href="#executing0"
-      title="executing a script block">execute the script</a>, even if other
-      scripts are already executing.
-    </dl>
-  </ol>
-
-  <p><dfn id=when-a>When a script completes loading</dfn>: If the script's
-   element was added to one of the lists mentioned above and the document is
-   still being parsed, then the parser handles it. Otherwise, the UA must run
-   the following steps as the <a href="#tasks" title=concept-task>task</a>
-   that the <a href="#networking">networking task source</a> places on the <a
-   href="#task-queues">task queue</a>:
-
-  <dl class=switch>
-   <dt>If the script's element was added to the <dfn id=list-of>list of
-    scripts that will execute when the document has finished parsing</dfn>:
-
-   <dd>
-    <ol>
-     <li>
-      <p>If the script's element is not the first element in the list, then
-       do nothing yet. Stop going through these steps.</p>
-
-     <li>
-      <p>Otherwise, <a href="#executing0" title="executing a script
-       block">execute the script</a> (that is, the script associated with the
-       first element in the list).</p>
-
-     <li>
-      <p>Remove the script's element from the list (i.e. shift out the first
-       entry in the list).</p>
-
-     <li>
-      <p>If there are any more entries in the list, and if the script
-       associated with the element that is now the first in the list is
-       already loaded, then jump back to step two to execute it.</p>
-    </ol>
-
-   <dt>If the script's element was added to the <dfn id=list-of0>list of
-    scripts that will execute asynchronously</dfn>:
-
-   <dd>
-    <ol>
-     <li>
-      <p>If the script is not the first element in the list, then do nothing
-       yet. Stop going through these steps.</p>
-
-     <li>
-      <p><a href="#executing0" title="executing a script block">Execute the
-       script</a> (the script associated with the first element in the list).</p>
-
-     <li>
-      <p>Remove the script's element from the list (i.e. shift out the first
-       entry in the list).</p>
-
-     <li>
-      <p>If there are any more scripts in the list, and the element now at
-       the head of the list had no <code title=attr-script-src><a
-       href="#src10">src</a></code> attribute when it was added to the list,
-       or had one, but its associated script has finished loading, then jump
-       back to step two to execute the script associated with this element.</p>
-    </ol>
-
-   <dt>If the script's element was added to the <dfn id=list-of1>list of
-    scripts that will execute as soon as possible</dfn>:
-
-   <dd>
-    <ol>
-     <li>
-      <p><a href="#executing0" title="executing a script block">Execute the
-       script</a>.</p>
-
-     <li>
-      <p>Remove the script's element from the list.</p>
-    </ol>
-  </dl>
-
-  <p>Fetching an external script must <a href="#delays">delay the <code
-   title=event-load>load</code> event</a>.
-
-  <p><dfn id=executing0 title="executing a script block">Executing a script
-   block</dfn>: When the steps above require that the script be executed, the
-   user agent must act as follows:
-
-  <dl class=switch>
-   <dt>If the load resulted in an error (for example a DNS error, or an HTTP
-    404 error)
-
-   <dd>
-    <p>Executing the script must just consist of <a href="#firing5"
-     title="fire an error event">firing an <code
-     title=event-error>error</code> event</a> at the element.
-
-   <dt>If the load was successful
-
-   <dd>
-    <ol>
-     <li>
-      <p>If the <code><a href="#script1">script</a></code> element's
-       <code>Document</code> is the <a href="#active">active document</a> in
-       its <a href="#browsing1">browsing context</a>, the user agent must
-       execute the script:</p>
-
-      <dl class=switch>
-       <dt>If the script is from an external file
-
-       <dd>
-        <p>That file must be used as the file to execute.</p>
-
-        <p>The file must be interpreted using the character encoding given by
-         <var><a href="#the-scripts0">the script's character
-         encoding</a></var>, regardless of any metadata given by the file's
-         <a href="#content-type5" title=Content-Type>Content-Type
-         metadata</a>.</p>
-
-        <p class=big-issue>This means that a UTF-16 document will always
-         assume external scripts are UTF-16...? This applies, e.g., to
-         document's created using createDocument()... It also means changing
-         document.charSet will affect the character encoding used to
-         interpret scripts, is that really what happens?</p>
-
-       <dt>If the script is inline
-
-       <dd>
-        <p>For scripting languages that consist of pure text, user agents
-         must use the value of the DOM <code title=dom-script-text><a
-         href="#text3">text</a></code> attribute (defined below) as the
-         script to execute, and for XML-based scripting languages, user
-         agents must use all the child nodes of the <code><a
-         href="#script1">script</a></code> element as the script to execute.</p>
-      </dl>
-      <!-- SCRIPT EXEC -->
-      <p>In any case, the user agent must execute the script according to the
-       semantics defined by the language associated with <var><a
-       href="#the-scripts">the script's type</a></var> (see the <a
-       href="#scriptingLanguages">scripting languages</a> section below).</p>
-
-      <p>The <a href="#script2">script execution context</a> of the script
-       must be the <code><a href="#window">Window</a></code> object of that
-       <a href="#browsing1">browsing context</a>.</p>
-
-      <p>The <a href="#script4">script document context</a> of the script
-       must be the <code>Document</code> object that owns the <code><a
-       href="#script1">script</a></code> element.</p>
-
-      <p class=note>The element's attributes' values might have changed
-       between when the element was inserted into the document and when the
-       script has finished loading, as may its other attributes; similarly,
-       the element itself might have been taken back out of the DOM, or had
-       other changes made. These changes do not in any way affect the above
-       steps; only the values of the attributes at the time the <code><a
-       href="#script1">script</a></code> element is first inserted into the
-       document matter.</p>
-
-     <li>
-      <p>Then, the user agent must <a href="#firing4">fire a <code
-       title=event-load>load</code> event</a> at the <code><a
-       href="#script1">script</a></code> element.</p>
-    </ol>
-  </dl>
-
-  <p>The DOM attributes <dfn id=src11
-   title=dom-script-src><code>src</code></dfn>, <dfn id=type15
-   title=dom-script-type><code>type</code></dfn>, <dfn id=charset3
-   title=dom-script-charset><code>charset</code></dfn>, <dfn id=async0
-   title=dom-script-async><code>async</code></dfn>, and <dfn id=defer0
-   title=dom-script-defer><code>defer</code></dfn>, each must <a
-   href="#reflect">reflect</a> the respective content attributes of the same
-   name.
-
-  <p>The DOM attribute <dfn id=text3
-   title=dom-script-text><code>text</code></dfn> must return a concatenation
-   of the contents of all the <a href="#text-node" title="text node">text
-   nodes</a> that are direct children of the <code><a
-   href="#script1">script</a></code> element (ignoring any other nodes such
-   as comments or elements), in tree order. On setting, it must act the same
-   way as the <code><a href="#textcontent">textContent</a></code> DOM
-   attribute.
-
-  <div class=example>
-   <p>In this example, two <code><a href="#script1">script</a></code>
-    elements are used. One embeds an external script, and the other includes
-    some data.</p>
-
-   <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
-</script></pre>
-
-   <p>The data in this case might be used by the script to generate the map
-    of a video game. The data doesn't have to be used that way, though; maybe
-    the map data is actually embedded in other parts of the page's markup,
-    and the data block here is just used by the site's search engine to help
-    users who are looking for particular features in their game maps.</p>
-  </div>
-
-  <h5 id=scriptingLanguages><span class=secno>4.10.1.1. </span>Scripting
-   languages</h5>
-
-  <p>A user agent is said to <dfn id=support>support the scripting
-   language</dfn> if <var><a href="#the-scripts">the script's type</a></var>
-   matches the MIME type of a scripting language that the user agent
-   implements.
-
-  <p>The following lists some MIME types and the languages to which they
-   refer:
-
-  <dl>
-   <dt><code>text/javascript</code>
-
-   <dt><code>text/javascript1.1</code>
-
-   <dt><code>text/javascript1.2</code>
-
-   <dt><code>text/javascript1.3</code>
-
-   <dd>ECMAScript. <a href="#refsECMA262">[ECMA262]</a>
-
-   <dt><code>text/javascript;e4x=1</code>
-
-   <dd>ECMAScript with ECMAScript for XML. <a
-    href="#refsECMA357">[ECMA357]</a>
-  </dl>
-
-  <p>User agents may support other MIME types and other languages.
-
-  <p>When examining types to determine if they support the language, user
-   agents must not ignore unknown MIME parameters — types with unknown
-   parameters must be assumed to be unsupported.</p>
-  <!--
-   XXX we should reference #refsRFC4329 http://www.ietf.org/rfc/rfc4329
-  -->
-
-  <h4 id=the-noscript><span class=secno>4.10.2 </span>The <dfn
-   id=noscript><code>noscript</code></dfn> element</h4>
-
-  <dl class=element>
-   <dt>Categories
-
-   <dd><a href="#metadata0">Metadata content</a>.
-
-   <dd><a href="#phrasing0">Phrasing content</a>.
-
-   <dt>Contexts in which this element may be used:
-
-   <dd>In a <code><a href="#head">head</a></code> element of an <a
-    href="#html-" title="HTML documents">HTML document</a>, if there are no
-    ancestor <code><a href="#noscript">noscript</a></code> elements.
-
-   <dd>Where <a href="#phrasing0">phrasing content</a> is expected in <a
-    href="#html-">HTML documents</a>, if there are no ancestor <code><a
-    href="#noscript">noscript</a></code> elements.
-
-   <dt>Content model:
-
-   <dd><a href="#without">Without script</a>, in a <code><a
-    href="#head">head</a></code> element: in any order, zero or more <code><a
-    href="#link">link</a></code> elements, zero or more <code><a
-    href="#style1">style</a></code> elements, and zero or more <code><a
-    href="#meta0">meta</a></code> elements.
-
-   <dd><a href="#without">Without script</a>, not in a <code><a
-    href="#head">head</a></code> element: <a
-    href="#transparent0">transparent</a>, but there must be no <code><a
-    href="#noscript">noscript</a></code> element descendants.
-
-   <dd><a href="#with-script">With script</a>: text that conforms to the
-    requirements given in the prose.
-
-   <dt>Element-specific attributes:
-
-   <dd>None.
-
-   <dt>DOM interface:
-
-   <dd>Uses <code><a href="#htmlelement">HTMLElement</a></code>.
-  </dl>
-
-  <p>The <code><a href="#noscript">noscript</a></code> element does not
-   represent anything. It is used to present different markup to user agents
-   that support scripting and those that don't support scripting, by
-   affecting how the document is parsed.
-
-  <p>The <code><a href="#noscript">noscript</a></code> element must not be
-   used in <a href="#xml-documents">XML documents</a>.
-
-  <p class=note><strong>The <code><a href="#noscript">noscript</a></code>
-   element is only effective in the <span title="">HTML
-   serialization</span><!-- XXX
-  xref -->, it has no effect in the <span
-   title="">XML serialization</span><!-- XXX xref -->.</strong>
-
-  <p>When used in <a href="#html-">HTML documents</a>, the allowed content
-   model is as follows:
-
-  <p>In a <code><a href="#head">head</a></code> element, if the <code><a
-   href="#noscript">noscript</a></code> element is <a href="#without">without
-   script</a>, then the content model of a <code><a
-   href="#noscript">noscript</a></code> element must contain only <code><a
-   href="#link">link</a></code>, <code><a href="#style1">style</a></code>,
-   and <code><a href="#meta0">meta</a></code> elements. If the <code><a
-   href="#noscript">noscript</a></code> element is <a
-   href="#with-script">with script</a>, then the content model of a <code><a
-   href="#noscript">noscript</a></code> element is text, except that invoking
-   the <a href="#html-fragment0">HTML fragment parsing algorithm</a> with the
-   <code><a href="#noscript">noscript</a></code> element as the <var
-   title="">context</var> element and the text contents as the <var
-   title="">input</var> must result in a list of nodes that consists only of
-   <code><a href="#link">link</a></code>, <code><a
-   href="#style1">style</a></code>, and <code><a
-   href="#meta0">meta</a></code> elements.
-
-  <p>Outside of <code><a href="#head">head</a></code> elements, if the
-   <code><a href="#noscript">noscript</a></code> element is <a
-   href="#without">without script</a>, then the content model of a <code><a
-   href="#noscript">noscript</a></code> element is <a
-   href="#transparent0">transparent</a>, with the additional restriction that
-   a <code><a href="#noscript">noscript</a></code> element must not have a
-   <code><a href="#noscript">noscript</a></code> element as an ancestor (that
-   is, <code><a href="#noscript">noscript</a></code> can't be nested).
-
-  <p>Outside of <code><a href="#head">head</a></code> elements, if the
-   <code><a href="#noscript">noscript</a></code> element is <a
-   href="#with-script">with script</a>, then the content model of a <code><a
-   href="#noscript">noscript</a></code> element is text, except that the text
-   must be such that running the following algorithm results in a conforming
-   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="#parse2">parse error</a>:
-
-  <ol>
-   <li>Remove every <code><a href="#script1">script</a></code> element from
-    the document.
-
-   <li>Make a list of every <code><a href="#noscript">noscript</a></code>
-    element in the document. For every <code><a
-    href="#noscript">noscript</a></code> element in that list, perform the
-    following steps:
-    <ol>
-     <li>Let the <var title="">parent element</var> be the parent element of
-      the <code><a href="#noscript">noscript</a></code> element.
-
-     <li>Take all the children of the <var title="">parent element</var> that
-      come before the <code><a href="#noscript">noscript</a></code> element,
-      and call these elements <var title="">the before children</var>.
-
-     <li>Take all the children of the <var title="">parent element</var> that
-      come <em>after</em> the <code><a href="#noscript">noscript</a></code>
-      element, and call these elements <var title="">the after
-      children</var>.
-
-     <li>Let <var title="">s</var> be the concatenation of all the <a
-      href="#text-node">text node</a> children of the <code><a
-      href="#noscript">noscript</a></code> element.
-
-     <li>Set the <code title=dom-innerHTML-HTML><a
-      href="#innerhtml0">innerHTML</a></code> attribute of the <var
-      title="">parent element</var> to the value of <var title="">s</var>.
-      (This, as a side-effect, causes the <code><a
-      href="#noscript">noscript</a></code> element to be removed from the
-      document.)
-
-     <li>Insert <var title="">the before children</var> at the start of the
-      <var title="">parent element</var>, preserving their original relative
-      order.
-
-     <li>Insert <var title="">the after children</var> at the end of the <var
-      title="">parent element</var>, preserving their original relative
-      order.
-    </ol>
-  </ol>
-
-  <p>The <code><a href="#noscript">noscript</a></code> element has no other
-   requirements. In particular, children of the <code><a
-   href="#noscript">noscript</a></code> element are not exempt from form
-   submission, scripting, and so forth, even when the element is <a
-   href="#with-script">with script</a>.
-
-  <p class=note>All these contortions are required because, for historical
-   reasons, the <code><a href="#noscript">noscript</a></code> element is
-   handled differently by the <a href="#html-0">HTML parser</a> based on
-   whether <a href="#scripting3" title="scripting flag">scripting was enabled
-   or not</a> when the parser was invoked. The element is not allowed in XML,
-   because in XML the parser is not affected by such state, and thus the
-   element would not have the desired effect.
-
-  <p class=note>The <code><a href="#noscript">noscript</a></code> element
-   interacts poorly with the <code title=dom-document-designMode><a
-   href="#designMode">designMode</a></code> feature. Authors are encouraged
-   to not use <code><a href="#noscript">noscript</a></code> elements on pages
-   that will have <code title=dom-document-designMode><a
-   href="#designMode">designMode</a></code> enabled.
-
-  <h4 id=the-eventsource><span class=secno>4.10.3 </span>The <dfn
-   id=eventsource><code>eventsource</code></dfn> element</h4>
-
-  <dl class=element>
-   <dt>Categories
-
-   <dd><a href="#metadata0">Metadata content</a>.
-
-   <dd><a href="#phrasing0">Phrasing content</a>.
-
-   <dt>Contexts in which this element may be used:
-
-   <dd>Where <a href="#metadata0">metadata content</a> is expected.
-
-   <dd>Where <a href="#phrasing0">phrasing content</a> is expected.
-
-   <dt>Content model:
-
-   <dd>Empty.
-
-   <dt>Element-specific attributes:
-
-   <dd><code title=attr-eventsource-src><a href="#src12">src</a></code>
-
-   <dt>DOM interface:
-
-   <dd>
-    <pre
-     class=idl>interface <dfn id=htmleventsourceelement>HTMLEventSourceElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
-           attribute DOMString <a href="#src13" title=dom-eventsource-src>src</a>;
-};</pre>
-  </dl>
-
-  <p>The <code><a href="#eventsource">eventsource</a></code> element
-   represents a target for events generated by a remote server.
-
-  <p>The <dfn id=src12 title=attr-eventsource-src><code>src</code></dfn>
-   attribute, if specified, must give a <a href="#valid8">valid URL</a>
-   identifying a resource that uses the <code>text/event-stream</code>
-   format.
-
-  <p>When an <code><a href="#eventsource">eventsource</a></code> element with
-   a <code title=attr-eventsource-src><a href="#src12">src</a></code>
-   attribute specified is inserted into the document<!-- XXX xref -->, and
-   when an <code><a href="#eventsource">eventsource</a></code> element that
-   is already in the document<!--XXX xref--> has a <code
-   title=attr-eventsource-src><a href="#src12">src</a></code> attribute
-   added, the user agent must run the <a href="#add-declared">add declared
-   event source</a> algorithm.
-
-  <p>While an <code><a href="#eventsource">eventsource</a></code> element is
-   in a document<!--
-  XXX xref -->, if its <code
-   title=attr-eventsource-src><a href="#src12">src</a></code> attribute is
-   mutated, the user agent must must run the <a href="#remove1">remove
-   declared event source</a> algorithm followed by the <a
-   href="#add-declared">add declared event source</a> algorithm.
-
-  <p>When an <code><a href="#eventsource">eventsource</a></code> element with
-   a <code title=attr-eventsource-src><a href="#src12">src</a></code>
-   attribute specified is removed from a document<!-- XXX xref -->, and when
-   an <code><a href="#eventsource">eventsource</a></code> element that is in
-   a document<!--XXX
-  xref--> with a <code title=attr-eventsource-src><a
-   href="#src12">src</a></code> attribute specified has its <code
-   title=attr-eventsource-src><a href="#src12">src</a></code> attribute
-   removed, the user agent must run the <a href="#remove1">remove declared
-   event source</a> algorithm.</p>
-  <!-- changing the base URL doesn't trigger these algorithms -->
-
-  <p>When it is created, an <code><a
-   href="#eventsource">eventsource</a></code> element must have its
-   <i>current declared event source</i> set to "undefined".
-
-  <p>The <dfn id=add-declared>add declared event source</dfn> algorithm is as
-   follows:
-
-  <ol>
-   <li><a href="#resolve" title="resolve a url">Resolve</a> the <a
-    href="#url">URL</a> specified by the <code><a
-    href="#eventsource">eventsource</a></code> element's <code
-    title=attr-eventsource-src><a href="#src12">src</a></code> attribute.
-
-   <li>If that fails, then set the element's <i>current declared event
-    source</i> to "undefined" and abort these steps.
-
-   <li>Otherwise, act as if the <code
-    title=dom-remoteEventTarget-addEventSource><a
-    href="#addeventsource">addEventSource()</a></code> method on the <code><a
-    href="#eventsource">eventsource</a></code> element had been invoked with
-    the resulting <a href="#absolute">absolute URL</a>.
-
-   <li>Let the element's <i>current declared event source</i> be that <a
-    href="#absolute">absolute URL</a>.
-  </ol>
-
-  <p>The <dfn id=remove1>remove declared event source</dfn> algorithm is as
-   follows:
-
-  <ol>
-   <li>If the element's <i>current declared event source</i> is "undefined",
-    abort these steps.
-
-   <li>Otherwise, act as if the <code
-    title=dom-remoteEventTarget-removeEventSource><a
-    href="#removeeventsource">removeEventSource()</a></code> method on the
-    <code><a href="#eventsource">eventsource</a></code> element had been
-    invoked with the element's <i>current declared event source</i>.
-
-   <li>Let the element's <i>current declared event source</i> be "undefined".
-  </ol>
-
-  <p>There can be more than one <code><a
-   href="#eventsource">eventsource</a></code> element per document, but
-   authors should take care to avoid opening multiple connections to the same
-   server as HTTP recommends a limit to the number of simultaneous
-   connections that a user agent can open per server.</p>
-  <!-- XXX should we make 'load', 'error', 'abort' events fire on this
-  element? -->
-
-  <p>The <dfn id=src13 title=dom-eventsource-src><code>src</code></dfn> DOM
-   attribute must <a href="#reflect">reflect</a> the content attribute of the
-   same name.
-
   <h3 id=interactive-elements><span class=secno>4.11 </span>Interactive
    elements</h3>
 
@@ -32539,7 +32543,7 @@
      title="">i</var>)</a></code></strong>: The <a href="#url">URL</a> of the
      row's image is the <a href="#absolute">absolute URL</a> obtained by <a
      href="#resolve" title="resolve a url">resolving</a> the value of the
-     <code title=attr-img-src><a href="#src">src</a></code> attribute of the
+     <code title=attr-img-src><a href="#src3">src</a></code> attribute of the
      first <code><a href="#img">img</a></code> element child of the row's
      first cell's element, if there is one and resolving its attribute is
      successful. Otherwise, the <a href="#url">URL</a> of the row's image is
@@ -32802,7 +32806,7 @@
      href="#getrowimage">getRowImage(<var title="">i</var>)</a></code> must
      return the <a href="#absolute">absolute URL</a> obtained from <a
      href="#resolve" title="resolve a url">resolving</a> the value of the
-     <code title=attr-img-src><a href="#src">src</a></code> attribute of the
+     <code title=attr-img-src><a href="#src3">src</a></code> attribute of the
      first <code><a href="#img">img</a></code> element descendant (in the
      real DOM) of the row's element, that is not also a descendant of another
      element in the filtered view that is a descendant of the row's element,
@@ -32992,7 +32996,7 @@
    <dd>
     <p>If the first element child of a cell's element is an <code><a
      href="#input0">input</a></code> element that has a <code
-     title=attr-input-type><a href="#type12">type</a></code> attribute with
+     title=attr-input-type><a href="#type14">type</a></code> attribute with
      the value <code title="">checkbox</code>, then the cell acts as a check
      box cell.</p>
 
@@ -33025,9 +33029,9 @@
    <dd>
     <p>If the first element child of a cell's element is an <code><a
      href="#input0">input</a></code> element that has a <code
-     title=attr-input-type><a href="#type12">type</a></code> attribute with
+     title=attr-input-type><a href="#type14">type</a></code> attribute with
      the value <code title="">text</code> or that has no <code
-     title=attr-input-type><a href="#type12">type</a></code> attribute at
+     title=attr-input-type><a href="#type14">type</a></code> attribute at
      all, then the cell acts as an editable cell.</p>
 
     <p>The <code title=dom-provider-getCellData><a
@@ -33057,12 +33061,16 @@
    <code><a href="#datagrid0">datagrid</a></code> element</h5>
 
   <p>A <code><a href="#datagrid0">datagrid</a></code> must be disabled until
-   its end tag has been parsed (in the case of a <code><a
-   href="#datagrid0">datagrid</a></code> element in the original document
-   markup) or until it has been inserted into the document (in the case of a
-   dynamically created element). After that point, the element must fire a
-   single <code title=event-load><a href="#load0">load</a></code> event at
-   itself, which doesn't bubble and cannot be canceled.
+   its end tag has been
+   parsed<!-- XXX do we define that? what if the end tag is never
+  seen, but the element is popped off the stack?-->
+   (in the case of a <code><a href="#datagrid0">datagrid</a></code> element
+   in the original document markup) or until it has been <a href="#inserted"
+   title="insert an element into a document">inserted into the document</a>
+   (in the case of a dynamically created element). After that point, the
+   element must fire a single <code title=event-load><a
+   href="#load0">load</a></code> event at itself, which doesn't bubble and
+   cannot be canceled.
 
   <p class=big-issue>The end-tag parsing thing should be moved to the parsing
    section.
@@ -34851,7 +34859,7 @@
   <p>The <a href="#icon1" title=command-facet-Icon>Icon</a> of the command is
    the <a href="#absolute">absolute URL</a> obtained from <a href="#resolve"
    title="resolve a url">resolving</a> the value of the <code
-   title=attr-img-src><a href="#src">src</a></code> attribute of the first
+   title=attr-img-src><a href="#src3">src</a></code> attribute of the first
    <code><a href="#img">img</a></code> element descendant of the element, if
    there is such an element and resolving its attribute is successful.
    Otherwise, there is no <a href="#icon1" title=command-facet-Icon>Icon</a>
@@ -34900,7 +34908,7 @@
    command</dfn></h5>
 
   <p>An <code><a href="#input0">input</a></code> element whose <code
-   title=attr-input-type><a href="#type12">type</a></code> attribute is in
+   title=attr-input-type><a href="#type14">type</a></code> attribute is in
    one of the <a href="#submit2" title=attr-input-type-submit>Submit
    Button</a>, <a href="#reset2" title=attr-input-type-reset>Reset
    Button</a>, <a href="#button1" title=attr-input-type-button>Button</a>, <a
@@ -34910,10 +34918,10 @@
 
   <p>The <a href="#type22" title=command-facet-Type>Type</a> of the command
    is "radio" if the <code title=attr-input-type><a
-   href="#type12">type</a></code> attribute is in the <code
+   href="#type14">type</a></code> attribute is in the <code
    title=attr-input-type-radio><a href="#radio1">Radio Button</a></code>
    state, "checkbox" if the <code title=attr-input-type><a
-   href="#type12">type</a></code> attribute is in the <code
+   href="#type14">type</a></code> attribute is in the <code
    title=attr-input-type-checkbox><a href="#checkbox1">Checkbox</a></code>
    state, and "command" otherwise.
 
@@ -35130,7 +35138,7 @@
   <p>The <a href="#icon1" title=command-facet-Icon>Icon</a> of the command is
    the <a href="#absolute">absolute URL</a> obtained from <a href="#resolve"
    title="resolve a url">resolving</a> the value of the <code
-   title=attr-img-src><a href="#src">src</a></code> attribute of the first
+   title=attr-img-src><a href="#src3">src</a></code> attribute of the first
    <code><a href="#img">img</a></code> element descendant of the element, if
    there is such an element and resolving its attribute is successful.
    Otherwise, the <a href="#icon1" title=command-facet-Icon>Icon</a> is a
@@ -37249,7 +37257,7 @@
 
    <li>Processing of inline <code title="javascript protocol"><a
     href="#the-javascript">javascript:</a></code> URLs (e.g. the <code
-    title=attr-img-src><a href="#src">src</a></code> attribute of <code><a
+    title=attr-img-src><a href="#src3">src</a></code> attribute of <code><a
     href="#img">img</a></code> elements, or an <code title="">@import</code>
     rule in a CSS <code><a href="#style1">style</a></code> element block).
 
@@ -37400,7 +37408,8 @@
 
    <dd>
     <p>Some elements have tasks that trigger in response to DOM manipulation,
-     e.g. when that element is inserted into the document.</p>
+     e.g. when that element is <a href="#inserted" title="insert an element
+     into a document">inserted into the document</a>.</p>
   </dl>
 
   <p>When a user agent is to <dfn id=queue>queue a task</dfn>, it must add
@@ -37509,17 +37518,17 @@
 
   <div class=example>
    <p>So for example a <code title="">javascript:</code> URL for a <code
-    title=attr-img-src><a href="#src">src</a></code> attribute of an <code><a
-    href="#img">img</a></code> element would be evaluated in the context of
-    an empty object as soon as the attribute is set; it would then be sniffed
-    to determine the image type and decoded as an image.</p>
+    title=attr-img-src><a href="#src3">src</a></code> attribute of an
+    <code><a href="#img">img</a></code> element would be evaluated in the
+    context of an empty object as soon as the attribute is set; it would then
+    be sniffed to determine the image type and decoded as an image.</p>
 
    <p>A <code title="">javascript:</code> URL in an <code
     title=attr-a-href>href</code> attribute of an <code><a
     href="#a">a</a></code> element would only be evaluated when the link was
     <a href="#following0" title="following hyperlinks">followed</a>.</p>
 
-   <p>The <code title=attr-iframe-src><a href="#src1">src</a></code>
+   <p>The <code title=attr-iframe-src><a href="#src5">src</a></code>
     attribute of an <code><a href="#iframe">iframe</a></code> element would
     be evaluated in the context of the <code><a
     href="#iframe">iframe</a></code>'s own <a href="#browsing1">browsing
@@ -41379,15 +41388,17 @@
   <p>If the root element, as parsed according to the XML specifications cited
    above, is found to be an <code><a href="#html">html</a></code> element
    with an attribute <code title=attr-html-manifest><a
-   href="#manifest">manifest</a></code>, then, as soon as the element is
-   inserted into the DOM, the user agent must <a href="#resolve"
-   title="resolve a url">resolve</a> the value of that attribute, and if that
-   is successful, must run the <a href="#application2"
+   href="#manifest">manifest</a></code>, then, as soon as the element is <a
+   href="#inserted" title="insert an element into a document">inserted into
+   the document</a>, the user agent must <a href="#resolve" title="resolve a
+   url">resolve</a> the value of that attribute, and if that is successful,
+   must run the <a href="#application2"
    title=concept-appcache-init-with-attribute>application cache selection
    algorithm</a> with the resulting <a href="#absolute">absolute URL</a> as
    the manifest URL. Otherwise, if the attribute is absent or resolving it
-   fails, then as soon as the root element is inserted into the DOM, the user
-   agent must run the <a href="#application3"
+   fails, then as soon as the root element is <a href="#inserted"
+   title="insert an element into a document">inserted into the document</a>,
+   the user agent must run the <a href="#application3"
    title=concept-appcache-init-no-attribute>application cache selection
    algorithm</a> with no manifest.
 
@@ -41477,7 +41488,7 @@
    href="#html">html</a></code> element, append an <code><a
    href="#img">img</a></code> to the <code><a href="#body0">body</a></code>
    element, and set the <code title=attr-img-src><a
-   href="#src">src</a></code> attribute of the <code><a
+   href="#src3">src</a></code> attribute of the <code><a
    href="#img">img</a></code> element to the address of the image.</p>
   <!-- next three paragraphs are similar to the navigate-text section,
   keep them in sync -->
@@ -41514,7 +41525,7 @@
    href="#html">html</a></code> element, append an <code><a
    href="#embed">embed</a></code> to the <code><a
    href="#body0">body</a></code> element, and set the <code
-   title=attr-embed-src><a href="#src3">src</a></code> attribute of the
+   title=attr-embed-src><a href="#src7">src</a></code> attribute of the
    <code><a href="#embed">embed</a></code> element to the address of the
    resource.</p>
   <!-- next three paragraphs are similar to the navigate-text section,
@@ -45945,7 +45956,7 @@
    the text of the selection added to it as the data associated with the
    <code title="">text/plain</code> format. Otherwise, if it is an <code><a
    href="#img">img</a></code> element being dragged, then the value of the
-   element's <code title=dom-img-src><a href="#src0">src</a></code> DOM
+   element's <code title=dom-img-src><a href="#src4">src</a></code> DOM
    attribute must be added, associated with the <code
    title="">text/uri-list</code> format. Otherwise, if it is an <code><a
    href="#a">a</a></code> element being dragged, then the value of the
@@ -47921,8 +47932,8 @@
    addresses can have multiple clients (due to sharing a proxy server). It is
    better to include a unique identifier in the document when it is served
    and then pass that identifier as part of the URL in the <code
-   title=attr-eventsource-src><a href="#src12">src</a></code> attribute of
-   the <code><a href="#eventsource">eventsource</a></code> element.
+   title=attr-eventsource-src><a href="#src1">src</a></code> attribute of the
+   <code><a href="#eventsource">eventsource</a></code> element.
 
   <p>Implementations that support HTTP's per-server connection limitation
    might run into trouble when opening multiple pages from a site if each
@@ -49937,7 +49948,7 @@
 
     <div class=example>
      <p>In the following example, the <code title=attr-input-type><a
-      href="#type12">type</a></code> attribute is given with the
+      href="#type14">type</a></code> attribute is given with the
       single-quoted attribute value syntax:</p>
 
      <pre><input <em>type='checkbox'</em>></pre>

Modified: source
===================================================================
--- source	2008-09-18 23:43:13 UTC (rev 2216)
+++ source	2008-09-19 00:17:48 UTC (rev 2217)
@@ -8363,11 +8363,12 @@
 people expect to have work and what is necessary.
 -->
 
-  <p>When a <code>meta</code> element is inserted into the document,
-  if its <code title="attr-meta-http-equiv">http-equiv</code>
-  attribute is present and represents one of the above states, then
-  the user agent must run the algorithm appropriate for that state, as
-  described in the following list:</p>
+  <p>When a <code>meta</code> element is <span title="insert an
+  element into a document">inserted into the document</span>, if its
+  <code title="attr-meta-http-equiv">http-equiv</code> attribute is
+  present and represents one of the above states, then the user agent
+  must run the algorithm appropriate for that state, as described in
+  the following list:</p>
 
   <dl>
 
@@ -8892,6 +8893,918 @@
 
 
 
+
+  <h3>Scripting</h3>
+
+  <p>Scripts allow authors to add interactivity to their documents.</p>
+
+  <p>Authors are encouraged to use declarative alternatives to
+  scripting where possible, as declarative mechanisms are often more
+  maintainable, and many users disable scripting.</p>
+
+  <div class="example">
+   <p>For example, instead of using script to show or hide a section
+   to show more details, the <code>details</code> element could be
+   used.</p>
+  </div>
+
+  <p>Authors are also encouraged to make their applications degrade
+  gracefully in the absence of scripting support.</p>
+
+  <div class="example">
+   <p>For example, if an author provides a link in a table header to
+   dynamically resort the table, the link could also be made to
+   function without scripts by requesting the sorted table from the
+   server.</p>
+  </div>
+
+
+  <h4 id="script">The <dfn><code>script</code></dfn> element</h4>
+
+  <dl class="element">
+   <dt>Categories</dt>
+   <dd><span>Metadata content</span>.</dd>
+   <dd><span>Phrasing content</span>.</dd>
+   <dt>Contexts in which this element may be used:</dt>
+   <dd>Where <span>metadata content</span> is expected.</dd>
+   <dd>Where <span>phrasing content</span> is expected.</dd>
+   <dt>Content model:</dt>
+   <dd>If there is no <code title="attr-script-src">src</code>
+   attribute, depends on the value of the <code
+   title="attr-script-type">type</code> attribute.</dd>
+   <dd>If there <em>is</em> a <code title="attr-script-src">src</code>
+   attribute, the element must be empty.</dd>
+   <dt>Element-specific attributes:</dt>
+   <dd><code title="attr-script-src">src</code></dd>
+   <dd><code title="attr-script-async">async</code></dd>
+   <dd><code title="attr-script-defer">defer</code></dd>
+   <dd><code title="attr-script-type">type</code></dd>
+   <dd><code title="attr-script-charset">charset</code></dd>
+   <dt>DOM interface:</dt>
+   <dd>
+<pre class="idl">interface <dfn>HTMLScriptElement</dfn> : <span>HTMLElement</span> {
+           attribute DOMString <code title="dom-script-src">src</code>;
+           attribute boolean <code title="dom-script-async">async</code>;
+           attribute boolean <code title="dom-script-defer">defer</code>;
+           attribute DOMString <code title="dom-script-type">type</code>;
+           attribute DOMString <code title="dom-script-charset">charset</code>;
+           attribute DOMString <code title="dom-script-text">text</code>;
+};</pre>
+   </dd>
+  </dl>
+
+  <p>The <code>script</code> element allows authors to include dynamic
+  script and data blocks in their documents.</p>
+
+  <p>When used to include dynamic scripts, the scripts may either be
+  embedded inline or may be imported from an external file using the
+  <code title="attr-script-src">src</code> attribute. If the language
+  is not that described by "<code title="">text/javascript</code>",
+  then the <code title="attr-script-type">type</code> attribute must
+  be present. If the <code title="attr-script-type">type</code>
+  attribute is present, its value must be the type of the script's
+  language.</p>
+
+  <p>When used to include data blocks, the data must be embedded
+  inline, the format of the data must be given using the <code
+  title="attr-script-type">type</code> attribute, and the <code
+  title="attr-script-src">src</code> attribute must not be
+  specified.</p>
+
+  <p>The <dfn title="attr-script-type"><code>type</code></dfn>
+  attribute gives the language of the script or format of the data. If
+  the attribute is present, its value must be a valid MIME type,
+  optionally with parameters. The <code title="">charset</code>
+  parameter must not be specified. (The default, which is used if the
+  attribute is absent, is "<code title="">text/javascript</code>".) <a
+  href="#refsRFC2046">[RFC2046]</a></p>
+
+  <p>The <dfn 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 <span>valid
+  URL</span> identifying a script resource of the type given by the
+  <code title="attr-script-type">type</code> attribute, if the
+  attribute is present, or of the type "<code
+  title="">text/javascript</code>", if the attribute is absent.</p>
+
+  <p>The <dfn title="attr-script-charset"><code>charset</code></dfn>
+  attribute gives the character encoding of the external script
+  resource. The attribute must not be specified if the <code
+  title="attr-script-src">src</code> attribute is not present. If the
+  attribute is set, its value must be a valid character encoding name,
+  and must be the preferred name for that encoding. <a
+  href="#refsIANACHARSET">[IANACHARSET]</a></p>
+
+  <p>The encoding specified must be the encoding used by the script
+  resource. If the <code title="attr-script-charset">charset</code>
+  attribute is omitted, the character encoding of the document will be
+  used. If the script resource uses a different encoding than the
+  document, then the attribute must be specified.</p>
+
+  <p>The <dfn title="attr-script-async"><code>async</code></dfn> and
+  <dfn title="attr-script-defer"><code>defer</code></dfn> attributes
+  are <span title="boolean attribute">boolean attributes</span> that
+  indicate how the script should be executed.</p>
+
+  <p>There are three possible modes that can be selected using these
+  attributes. If the <code title="attr-script-async">async</code>
+  attribute is present, then the script will be executed
+  asynchronously, as soon as it is available. If the <code
+  title="attr-script-async">async</code> attribute is not present but
+  the <code title="attr-script-defer">defer</code> attribute is
+  present, then the script is executed when the page has finished
+  parsing. If neither attribute is present, then the script is
+  fetched and executed immediately, before the user agent continues
+  parsing the page. The exact processing details for these attributes
+  is described below.</p>
+
+  <p>The <code title="attr-script-defer">defer</code> attribute may be
+  specified even if the <code title="attr-script-async">async</code>
+  attribute is specified, to cause legacy Web browsers that only
+  support <code title="attr-script-defer">defer</code> (and not <code
+  title="attr-script-async">async</code>) to fall back to the <code
+  title="attr-script-defer">defer</code> behavior instead of the
+  synchronous blocking behavior that is the default.</p>
+
+  <p>Changing the <code title="attr-script-src">src</code>, <code
+  title="attr-script-type">type</code>, <code
+  title="attr-script-charset">charset</code>, <code
+  title="attr-script-async">async</code>, and <code
+  title="attr-script-defer">defer</code> attributes dynamically has no
+  direct effect; these attribute are only used at specific times
+  described below (namely, when the element is <span title="insert an
+  element into a document">inserted into the document</span>).</p>
+  <!-- by implication, changes to the base URL also have no effect -->
+
+  <p><code>script</code> elements have four associated pieces of
+  metadata. The first is a flag indicating whether or not the script
+  block has been <dfn>"already executed"</dfn>. Initially,
+  <code>script</code> elements must have this flag unset (script
+  blocks, when created, are not "already executed"). When a
+  <code>script</code> element is cloned, the "already executed" flag,
+  if set, must be propagated to the clone when it is created. The
+  second is a flag indicating whether the element was
+  <dfn>"parser-inserted"</dfn>. This flag is set by the <span>HTML
+  parser</span> and is used to handle <code
+  title="dom-document-write-HTML">document.write()</code> calls. The
+  third and fourth pieces of metadata are <dfn><var>the script's
+  type</var></dfn> and <dfn><var>the script's character
+  encoding</var></dfn>. They are determined when the script is run,
+  based on the attributes on the element at that time.</p>
+
+  <p>When an <span>XML parser</span> creates a <code>script</code>
+  element, it must be marked as being
+  <span>"parser-inserted"</span>. When the element's end tag is
+  parsed, the user agent must <span title="running a
+  script">run</span> the <code>script</code> element.</p>
+
+  <p class="note">Equivalent requirements exist for the <span>HTML
+  parser</span>, but they are detailed in that section instead.</p>
+
+  <p>When a <code>script</code> element that is marked as neither
+  having <span>"already executed"</span> nor being
+  <span>"parser-inserted"</span> is <span title="insert an element
+  into a document">inserted into a document</span>, the user agent
+  must <span title="running a script">run</span> the
+  <code>script</code> element.</p>
+
+  <p><dfn title="running a script">Running a script</dfn>: When a
+  <code>script</code> element is to be run, the user agent must act as
+  follows:</p>
+
+  <ol>
+
+   <li>
+
+    <p>If either:</p>
+
+    <ul class="brief">
+
+     <li>the <code>script</code> element has a <code
+     title="attr-script-type">type</code> attribute and its value is
+     the empty string, or</li>
+
+     <li>the <code>script</code> element has no <code
+     title="attr-script-type">type</code> attribute but it has a <code
+     title="attr-script-language">language</code> attribute and
+     <em>that</em> attribute's value is the empty string, or</li>
+
+     <li>the <code>script</code> element has neither a <code
+     title="attr-script-type">type</code> attribute nor a <code
+     title="attr-script-language">language</code> attribute, then</li>
+
+    </ul>
+
+    <p>...let <var>the script's type</var> for this
+    <code>script</code> element be "<code
+    title="">text/javascript</code>".</p>
+
+    <p>Otherwise, if the <code>script</code> element has a <code
+    title="attr-script-type">type</code> attribute, let <var>the
+    script's type</var> for this <code>script</code> element be the
+    value of that attribute.</p>
+
+    <p>Otherwise, the element has a <code
+    title="attr-script-language">language</code> attribute; let
+    <var>the script's type</var> for this <code>script</code> element
+    be the concatenation of the string "<code title="">text/</code>"
+    followed by the value of the <code
+    title="attr-script-language">language</code> attribute.</p>
+    <!-- user agents already support, e.g., type="text/javascript1.3",
+    so we don't have to support that separately. -->
+
+   </li>
+
+   <li>
+
+    <p>If the <code>script</code> element has a <code
+    title="attr-script-charset">charset</code> attribute, then let
+    <var>the script's character encoding</var> for this
+    <code>script</code> element be the encoding given by the <code
+    title="attr-script-charset">charset</code> attribute.</p>
+
+    <p>Otherwise, let <var>the script's character encoding</var> for
+    this <code>script</code> element be the same as <span
+    title="document's character encoding">the encoding of the document
+    itself</span>.</p>
+
+   </li>
+
+   <li>
+
+    <p>If the <code>script</code> element is <span>without
+    script</span>, or if the <code>script</code> element was created
+    by an <span>XML parser</span> that itself was created as part of
+    the processing of the <code
+    title="dom-innerHTML-XML">innerHTML</code> attribute's setter<!--
+    no need to worry about the HTML case, as the HTML parser handles
+    that for us -->, or if the user agent does not <span>support the
+    scripting language</span> given by <var>the script's type</var>
+    for this <code>script</code> element, then the user agent must
+    abort these steps at this point. The script is not executed.</p>
+
+   </li>
+
+   <li>
+
+    <p>The user agent must set the element's <span>"already
+    executed"</span> flag.</p>
+
+   </li>
+
+   <li>
+
+    <p>If the element has a <code title="attr-script-src">src</code>
+    attribute, then the specified resource must be <span
+    title="fetch">fetched</span>.</p>
+
+    <p>For historical reasons, if the <span>URL</span> is a <span
+    title="javascript protocol"><code title="">javascript:</code>
+    URL</span>, then the user agent must not, despite the requirements
+    in the definition of the <span title="fetch">fetching</span>
+    algorithm, actually execute the given script; instead the user
+    agent must act as if it had received an empty HTTP 400
+    response.</p>
+
+    <p>Once the fetching process has completed, and the script has
+    <dfn>completed loading</dfn>, the user agent will have to complete
+    <span title="when a script completes loading">the steps described
+    below</span>. (If the parser is still active at that time, those
+    steps defer to the parser to handle the execution of pending
+    scripts.)</p>
+
+    <p>For performance reasons, user agents may start fetching the
+    script as soon as the attribute is set, instead, in the hope that
+    the element will be inserted into the document. Either way, once
+    the element is <span title="insert an element into a
+    document">inserted into the document</span>, the load must have
+    started. If the UA performs such prefetching, but the element is
+    never inserted in the document, or the <code
+    title="attr-script-src">src</code> attribute is dynamically
+    changed, then the user agent will not execute the script, and the
+    fetching process will have been effectively wasted.</p>
+
+   </li>
+
+   <li>
+
+    <p>Then, the first of the following options that describes the
+    situation must be followed:</p>
+
+    <dl class="switch">
+
+     <dt>If the document is still being parsed, and the element has a
+     <code title="attr-script-defer">defer</code> attribute, and the
+     element does not have an <code
+     title="attr-script-async">async</code> attribute</dt>
+
+     <dd>The element must be added to the end of the <span>list of
+     scripts that will execute when the document has finished
+     parsing</span>.
+ 
+     <span class="big-issue">This isn't compatible with IE for inline
+     deferred scripts, but then what IE does is pretty hard to pin down
+     exactly. Do we want to keep this like it is? Be more compatible?</span>
+     <!--XXX  
+     http://www.websiteoptimization.com/speed/tweak/defer/test/
+     internal deferred scripts execute before any external scripts execute, or before the LOAD if there are none
+     external deferred scripts execute before the LOAD
+     -->
+
+     </dd>
+
+
+     <dt>If the element has an <code
+     title="attr-script-async">async</code> attribute and a <code
+     title="attr-script-src">src</code> attribute</dt>
+
+     <dd>The element must be added to the end of the <span>list of
+     scripts that will execute asynchronously</span>.</dd>
+
+
+     <dt>If the element has an <code
+     title="attr-script-async">async</code> attribute but no <code
+     title="attr-script-src">src</code> attribute, and the <span>list
+     of scripts that will execute asynchronously</span> is not
+     empty</dt>
+
+     <dd>The element must be added to the end of the <span>list of
+     scripts that will execute asynchronously</span>.</dd>
+
+
+     <dt>If the element has a <code title="attr-script-src">src</code>
+     attribute and has been flagged as
+     <span>"parser-inserted"</span></dt>
+
+     <dd>The element is the <span>pending external
+     script</span>. (There can only be one such script at a
+     time.)</dd>
+
+
+     <dt>If the element has a <code title="attr-script-src">src</code>
+     attribute</dt>
+
+     <dd>The element must be added to the end of the <span>list of
+     scripts that will execute as soon as possible</span>.</dd>
+
+
+     <dt>Otherwise</dt>
+
+     <dd>The user agent must immediately <span title="executing a
+     script block">execute the script</span>, even if other scripts
+     are already executing.</dd>
+
+    </dl>
+
+   </li>
+
+  </ol>
+
+  <p><dfn>When a script completes loading</dfn>: If the script's
+  element was added to one of the lists mentioned above and the
+  document is still being parsed, then the parser handles
+  it. Otherwise, the UA must run the following steps as the <span
+  title="concept-task">task</span> that the <span>networking task
+  source</span> places on the <span>task queue</span>:</p>
+
+  <dl class="switch">
+
+   <dt>If the script's element was added to the <dfn>list of scripts
+   that will execute when the document has finished parsing</dfn>:</dt>
+
+   <dd>
+
+    <ol>
+
+     <li>
+
+      <p>If the script's element is not the first element in the list,
+      then do nothing yet. Stop going through these steps.</p>
+
+     </li>
+
+     <li>
+
+      <p>Otherwise, <span title="executing a script block">execute the
+      script</span> (that is, the script associated with the first
+      element in the list).</p>
+
+     </li>
+
+     <li>
+
+      <p>Remove the script's element from the list (i.e. shift out the
+      first entry in the list).</p>
+
+     </li>
+
+     <li>
+
+      <p>If there are any more entries in the list, and if the script
+      associated with the element that is now the first in the list is
+      already loaded, then jump back to step two to execute it.</p>
+
+     </li>
+
+    </ol>
+
+   </dd>
+
+   <dt>If the script's element was added to the <dfn>list of scripts
+   that will execute asynchronously</dfn>:</dt>
+
+   <dd>
+
+    <ol>
+
+     <li>
+
+      <p>If the script is not the first element in the list, then do
+      nothing yet. Stop going through these steps.</p>
+
+     </li>
+
+     <li>
+
+      <p><span title="executing a script block">Execute the
+      script</span> (the script associated with the first element in
+      the list).</p>
+
+     </li>
+
+     <li>
+
+      <p>Remove the script's element from the list (i.e. shift out the
+      first entry in the list).</p>
+
+     </li>
+
+     <li>
+
+      <p>If there are any more scripts in the list, and the element
+      now at the head of the list had no <code
+      title="attr-script-src">src</code> attribute when it was added
+      to the list, or had one, but its associated script has finished
+      loading, then jump back to step two to execute the script
+      associated with this element.</p>
+
+     </li>
+
+    </ol>
+
+   </dd>
+
+   <dt>If the script's element was added to the <dfn>list of scripts
+   that will execute as soon as possible</dfn>:</dt>
+
+   <dd>
+
+    <ol>
+
+     <li>
+
+      <p><span title="executing a script block">Execute the
+      script</span>.</p>
+
+     </li>
+
+     <li>
+
+      <p>Remove the script's element from the list.</p>
+
+     </li>
+
+    </ol>
+
+   </dd>
+
+  </dl>
+
+  <p>Fetching an external script must <span>delay the <code
+  title="event-load">load</code> event</span>.</p>
+
+  <p><dfn title="executing a script block">Executing a script
+  block</dfn>: When the steps above require that the script be
+  executed, the user agent must act as follows:</p>
+
+  <dl class="switch">
+
+   <dt>If the load resulted in an error (for example a DNS error, or
+   an HTTP 404 error)</dt>
+
+   <dd><p>Executing the script must just consist of <span title="fire
+   an error event">firing an <code title="event-error">error</code>
+   event</span> at the element.</p></dd>
+
+   <dt>If the load was successful</dt>
+
+   <dd>
+
+    <ol>
+
+     <li>
+
+      <p>If the <code>script</code> element's <code>Document</code> is
+      the <span>active document</span> in its <span>browsing
+      context</span>, the user agent must execute the script:</p>
+
+      <dl class="switch">
+
+       <dt>If the script is from an external file</dt>
+
+       <dd>
+
+        <p>That file must be used as the file to execute.</p>
+
+        <p>The file must be interpreted using the character encoding
+        given by <var>the script's character encoding</var>, regardless
+        of any metadata given by the file's <span
+        title="Content-Type">Content-Type metadata</span>.</p>
+
+        <p class="big-issue">This means that a UTF-16 document will
+        always assume external scripts are UTF-16...? This applies,
+        e.g., to document's created using createDocument()... It also
+        means changing document.charSet will affect the character
+        encoding used to interpret scripts, is that really what
+        happens?</p>
+
+       </dd>
+
+       <dt>If the script is inline</dt>
+
+       <dd>
+
+        <p>For scripting languages that consist of pure text, user
+        agents must use the value of the DOM <code
+        title="dom-script-text">text</code> attribute (defined below) as
+        the script to execute, and for XML-based scripting languages,
+        user agents must use all the child nodes of the
+        <code>script</code> element as the script to execute.</p>
+
+       </dd>
+
+      </dl>
+
+      <!-- SCRIPT EXEC -->
+      <p>In any case, the user agent must execute the script according to
+      the semantics defined by the language associated with <var>the
+      script's type</var> (see the <a href="#scriptingLanguages">scripting
+      languages</a> section below).</p>
+
+      <p>The <span>script execution context</span> of the script must
+      be the <code>Window</code> object of that <span>browsing
+      context</span>.</p>
+
+      <p>The <span>script document context</span> of the script must
+      be the <code>Document</code> object that owns the
+      <code>script</code> element.</p>
+
+      <p class="note">The element's attributes' values might have changed
+      between when the element was inserted into the document and when the
+      script has finished loading, as may its other attributes; similarly,
+      the element itself might have been taken back out of the DOM, or had
+      other changes made. These changes do not in any way affect the above
+      steps; only the values of the attributes at the time the
+      <code>script</code> element is first inserted into the document
+      matter.</p>
+
+     </li>
+
+     <li>
+
+      <p>Then, the user agent must <span>fire a <code
+      title="event-load">load</code> event</span> at the
+      <code>script</code> element.</p>
+
+     </li>
+
+    </ol>
+
+   </dd>
+
+  </dl>
+
+  <p>The DOM attributes <dfn
+  title="dom-script-src"><code>src</code></dfn>, <dfn
+  title="dom-script-type"><code>type</code></dfn>, <dfn
+  title="dom-script-charset"><code>charset</code></dfn>, <dfn
+  title="dom-script-async"><code>async</code></dfn>, and <dfn
+  title="dom-script-defer"><code>defer</code></dfn>, each must
+  <span>reflect</span> the respective content attributes of the same
+  name.</p>
+
+  <p>The DOM attribute <dfn
+  title="dom-script-text"><code>text</code></dfn> must return a
+  concatenation of the contents of all the <span title="text
+  node">text nodes</span> that are direct children of the
+  <code>script</code> element (ignoring any other nodes such as
+  comments or elements), in tree order. On setting, it must act the
+  same way as the <code>textContent</code> DOM attribute.</p>
+
+
+  <div class="example">
+
+   <p>In this example, two <code>script</code> elements are used. One
+   embeds an external script, and the other includes some data.</p>
+
+   <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
+</script></pre>
+
+   <p>The data in this case might be used by the script to generate
+   the map of a video game. The data doesn't have to be used that way,
+   though; maybe the map data is actually embedded in other parts of
+   the page's markup, and the data block here is just used by the
+   site's search engine to help users who are looking for particular
+   features in their game maps.</p>
+
+  </div>
+
+
+
+  <h5 id="scriptingLanguages">Scripting languages</h5>
+
+  <p>A user agent is said to <dfn>support the scripting language</dfn>
+  if <var>the script's type</var> matches the MIME type of a scripting
+  language that the user agent implements.</p>
+
+  <p>The following lists some MIME types and the languages to which
+  they refer:</p>
+
+  <dl>
+
+   <dt><code>text/javascript</code></dt>
+   <dt><code>text/javascript1.1</code></dt>
+   <dt><code>text/javascript1.2</code></dt>
+   <dt><code>text/javascript1.3</code></dt>
+   <dd>ECMAScript. <a href="#refsECMA262">[ECMA262]</a></dd>
+
+   <dt><code>text/javascript;e4x=1</code></dt>
+   <dd>ECMAScript with ECMAScript for XML. <a href="#refsECMA357">[ECMA357]</a></dd>
+
+  </dl>
+
+  <p>User agents may support other MIME types and other languages.</p>
+
+  <p>When examining types to determine if they support the language,
+  user agents must not ignore unknown MIME parameters — types
+  with unknown parameters must be assumed to be unsupported.</p>
+
+  <!--
+   XXX we should reference #refsRFC4329 http://www.ietf.org/rfc/rfc4329
+  -->
+
+
+
+  <h4>The <dfn><code>noscript</code></dfn> element</h4>
+
+  <dl class="element">
+   <dt>Categories</dt>
+   <dd><span>Metadata content</span>.</dd>
+   <dd><span>Phrasing content</span>.</dd>
+   <dt>Contexts in which this element may be used:</dt>
+   <dd>In a <code>head</code> element of an <span title="HTML documents">HTML document</span>, if there are no ancestor <code>noscript</code> elements.</dd>
+   <dd>Where <span>phrasing content</span> is expected in <span>HTML documents</span>, if there are no ancestor <code>noscript</code> elements.</dd>
+   <dt>Content model:</dt>
+   <dd><span>Without script</span>, in a <code>head</code> element: in any order, zero or more <code>link</code> elements, zero or more <code>style</code> elements, and zero or more <code>meta</code> elements.</dd>
+   <dd><span>Without script</span>, not in a <code>head</code> element: <span>transparent</span>, but there must be no <code>noscript</code> element descendants.</dd>
+   <dd><span>With script</span>: text that conforms to the requirements given in the prose.</dd>
+   <dt>Element-specific attributes:</dt>
+   <dd>None.</dd>
+   <dt>DOM interface:</dt>
+   <dd>Uses <code>HTMLElement</code>.</dd>
+  </dl>
+
+  <p>The <code>noscript</code> element does not represent anything. It
+  is used to present different markup to user agents that support
+  scripting and those that don't support scripting, by affecting how
+  the document is parsed.</p>
+
+  <p>The <code>noscript</code> element must not be used in <span>XML
+  documents</span>.</p>
+
+  <p class="note"><strong>The <code>noscript</code> element is only
+  effective in the <span title="">HTML serialization</span><!-- XXX
+  xref -->, it has no effect in the <span title="">XML
+  serialization</span><!-- XXX xref -->.</strong></p>
+
+  <p>When used in <span>HTML documents</span>, the allowed content
+  model is as follows:</p>
+
+  <p>In a <code>head</code> element, if the <code>noscript</code>
+  element is <span>without script</span>, then the content model of a
+  <code>noscript</code> element must contain only <code>link</code>,
+  <code>style</code>, and <code>meta</code> elements. If the
+  <code>noscript</code> element is <span>with script</span>, then the
+  content model of a <code>noscript</code> element is text, except
+  that invoking the <span>HTML fragment parsing algorithm</span> with
+  the <code>noscript</code> element as the <var title="">context</var>
+  element and the text contents as the <var title="">input</var> must
+  result in a list of nodes that consists only of <code>link</code>,
+  <code>style</code>, and <code>meta</code> elements.</p>
+
+  <p>Outside of <code>head</code> elements, if the
+  <code>noscript</code> element is <span>without script</span>, then
+  the content model of a <code>noscript</code> element is
+  <span>transparent</span>, with the additional restriction that a
+  <code>noscript</code> element must not have a <code>noscript</code>
+  element as an ancestor (that is, <code>noscript</code> can't be
+  nested).</p>
+
+  <p>Outside of <code>head</code> elements, if the
+  <code>noscript</code> element is <span>with script</span>, then the
+  content model of a <code>noscript</code> element is text, except
+  that the text must be such that running the following algorithm
+  results in a conforming document with no <code>noscript</code>
+  elements and no <code>script</code> elements, and such that no step
+  in the algorithm causes an <span>HTML parser</span> to flag a
+  <span>parse error</span>:</p>
+
+  <ol>
+
+   <li>Remove every <code>script</code> element from the
+   document.</li>
+
+   <li>Make a list of every <code>noscript</code> element in the
+   document. For every <code>noscript</code> element in that list,
+   perform the following steps:
+
+    <ol>
+
+     <li>Let the <var title="">parent element</var> be the parent
+     element of the <code>noscript</code> element.</li>
+
+     <li>Take all the children of the <var title="">parent element</var>
+     that come before the <code>noscript</code> element, and call these
+     elements <var title="">the before children</var>.</li>
+
+     <li>Take all the children of the <var title="">parent element</var>
+     that come <em>after</em> the <code>noscript</code> element, and
+     call these elements <var title="">the after children</var>.</li>
+
+     <li>Let <var title="">s</var> be the concatenation of all the
+     <span>text node</span> children of the <code>noscript</code>
+     element.</li>
+
+     <li>Set the <code title="dom-innerHTML-HTML">innerHTML</code>
+     attribute of the <var title="">parent element</var> to the value
+     of <var title="">s</var>. (This, as a side-effect, causes the
+     <code>noscript</code> element to be removed from the
+     document.)</li>
+
+     <li>Insert <var title="">the before children</var> at the start of
+     the <var title="">parent element</var>, preserving their original
+     relative order.</li>
+
+     <li>Insert <var title="">the after children</var> at the end of the
+     <var title="">parent element</var>, preserving their original
+     relative order.</li>
+
+    </ol>
+
+   </li>
+
+  </ol>
+
+  <p>The <code>noscript</code> element has no other requirements. In
+  particular, children of the <code>noscript</code> element are not
+  exempt from form submission, scripting, and so forth, even when the
+  element is <span>with script</span>.</p>
+
+  <p class="note">All these contortions are required because, for
+  historical reasons, the <code>noscript</code> element is handled
+  differently by the <span>HTML parser</span> based on whether <span
+  title="scripting flag">scripting was enabled or not</span> when the
+  parser was invoked. The element is not allowed in XML, because in
+  XML the parser is not affected by such state, and thus the element
+  would not have the desired effect.</p>
+
+  <p class="note">The <code>noscript</code> element interacts poorly
+  with the <code title="dom-document-designMode">designMode</code>
+  feature. Authors are encouraged to not use <code>noscript</code>
+  elements on pages that will have <code
+  title="dom-document-designMode">designMode</code> enabled.</p>
+
+
+  <h4>The <dfn><code>eventsource</code></dfn> element</h4>
+
+  <dl class="element">
+   <dt>Categories</dt>
+   <dd><span>Metadata content</span>.</dd>
+   <dd><span>Phrasing content</span>.</dd>
+   <dt>Contexts in which this element may be used:</dt>
+   <dd>Where <span>metadata content</span> is expected.</dd>
+   <dd>Where <span>phrasing content</span> is expected.</dd>
+   <dt>Content model:</dt>
+   <dd>Empty.</dd>
+   <dt>Element-specific attributes:</dt>
+   <dd><code title="attr-eventsource-src">src</code></dd>
+   <dt>DOM interface:</dt>
+   <dd>
+<pre class="idl">interface <dfn>HTMLEventSourceElement</dfn> : <span>HTMLElement</span> {
+           attribute DOMString <span title="dom-eventsource-src">src</span>;
+};</pre>
+   </dd>
+  </dl>
+
+  <p>The <code>eventsource</code> element represents a target for
+  events generated by a remote server.</p>
+
+  <p>The <dfn title="attr-eventsource-src"><code>src</code></dfn>
+  attribute, if specified, must give a <span>valid URL</span>
+  identifying a resource that uses the <code>text/event-stream</code>
+  format.</p>
+
+  <p>When an <code>eventsource</code> element with a <code
+  title="attr-eventsource-src">src</code> attribute specified is <span
+  title="insert an element into a document">inserted into the
+  document</span>, and when an <code>eventsource</code> element that
+  is already in the document<!--XXX xref--> has a <code
+  title="attr-eventsource-src">src</code> attribute added, the user
+  agent must run the <span>add declared event source</span>
+  algorithm.</p>
+
+  <p>While an <code>eventsource</code> element is in a document<!--
+  XXX xref -->, if its <code title="attr-eventsource-src">src</code>
+  attribute is mutated, the user agent must must run the <span>remove
+  declared event source</span> algorithm followed by the <span>add
+  declared event source</span> algorithm.</p>
+
+  <p>When an <code>eventsource</code> element with a <code
+  title="attr-eventsource-src">src</code> attribute specified is
+  removed from a document<!-- XXX xref -->, and when an
+  <code>eventsource</code> element that is in a document<!--XXX
+  xref--> with a <code title="attr-eventsource-src">src</code>
+  attribute specified has its <code
+  title="attr-eventsource-src">src</code> attribute removed, the user
+  agent must run the <span>remove declared event source</span>
+  algorithm.</p>
+
+  <!-- changing the base URL doesn't trigger these algorithms -->
+
+  <p>When it is created, an <code>eventsource</code> element must
+  have its <i>current declared event source</i> set to
+  "undefined".</p>
+
+  <p>The <dfn>add declared event source</dfn> algorithm is as
+  follows:</p>
+
+  <ol>
+
+   <li><span title="resolve a url">Resolve</span> the <span>URL</span>
+   specified by the <code>eventsource</code> element's <code
+   title="attr-eventsource-src">src</code> attribute.</li>
+
+   <li>If that fails, then set the element's <i>current declared event
+   source</i> to "undefined" and abort these steps.</li>
+
+   <li>Otherwise, act as if the <code
+   title="dom-remoteEventTarget-addEventSource">addEventSource()</code>
+   method on the <code>eventsource</code> element had been invoked
+   with the resulting <span>absolute URL</span>.</li>
+
+   <li>Let the element's <i>current declared event source</i> be that
+   <span>absolute URL</span>.</li>
+
+  </ol>
+
+  <p>The <dfn>remove declared event source</dfn> algorithm is as
+  follows:</p>
+
+  <ol>
+
+   <li>If the element's <i>current declared event source</i> is
+   "undefined", abort these steps.</li>
+
+   <li>Otherwise, act as if the <code
+   title="dom-remoteEventTarget-removeEventSource">removeEventSource()</code>
+   method on the <code>eventsource</code> element had been invoked
+   with the element's <i>current declared event source</i>.</li>
+
+   <li>Let the element's <i>current declared event source</i> be
+   "undefined".</li>
+
+  </ol>
+
+  <p>There can be more than one <code>eventsource</code> element per
+  document, but authors should take care to avoid opening multiple
+  connections to the same server as HTTP recommends a limit to the
+  number of simultaneous connections that a user agent can open per
+  server.</p>
+
+  <!-- XXX should we make 'load', 'error', 'abort' events fire on this
+  element? -->
+
+  <p>The <dfn title="dom-eventsource-src"><code>src</code></dfn> DOM
+  attribute must <span>reflect</span> the content attribute of the
+  same name.</p>
+
+
+
   <h3>Sections</h3>
 
   <p id="applyToSection">Some elements, for example
@@ -17235,13 +18148,13 @@
 
   <p>If a <span>media element</span> whose <code
   title="dom-media-networkState">networkState</code> has the value
-  <code title="dom-media-EMPTY">EMPTY</code> is inserted into a
-  document, the user agent must <span>queue a task</span> that
-  implicitly invokes the <code title="dom-media-load">load()</code>
-  method on the <span>media element</span>, and ignores any resulting
-  exceptions. The <span>task source</span> for this task is the
-  <span>media element</span>'s own <span>media element new resource
-  task source</span>.</p>
+  <code title="dom-media-EMPTY">EMPTY</code> is <span title="insert an
+  element into a document">inserted into a document</span>, the user
+  agent must <span>queue a task</span> that implicitly invokes the
+  <code title="dom-media-load">load()</code> method on the <span>media
+  element</span>, and ignores any resulting exceptions. The <span>task
+  source</span> for this task is the <span>media element</span>'s own
+  <span>media element new resource task source</span>.</p>
 
   <p>The <dfn
   title="dom-media-bufferingRate"><code>bufferingRate</code></dfn>
@@ -26163,9 +27076,10 @@
   <span>form owner</span> must be set to that form.</p>
 
   <p>When a <span>form-associated element</span>'s ancestor chain
-  changes, e.g. because it or one of its ancestors was inserted or
-  removed from a <code>Document</code>, then the user agent must
-  <span>reset the form owner</span> of that element.</p>
+  changes, e.g. because it or one of its ancestors was <span
+  title="insert an element into a document">inserted</span> or
+  removed<!--XXX--> from a <code>Document</code>, then the user agent
+  must <span>reset the form owner</span> of that element.</p>
 
   <p>When a <span>form-associated element</span>'s <code
   title="attr-fae-form">form</code> attribute is added, removed, or
@@ -27098,917 +28012,6 @@
 
 
 
-  <h3>Scripting</h3>
-
-  <p>Scripts allow authors to add interactivity to their documents.</p>
-
-  <p>Authors are encouraged to use declarative alternatives to
-  scripting where possible, as declarative mechanisms are often more
-  maintainable, and many users disable scripting.</p>
-
-  <div class="example">
-   <p>For example, instead of using script to show or hide a section
-   to show more details, the <code>details</code> element could be
-   used.</p>
-  </div>
-
-  <p>Authors are also encouraged to make their applications degrade
-  gracefully in the absence of scripting support.</p>
-
-  <div class="example">
-   <p>For example, if an author provides a link in a table header to
-   dynamically resort the table, the link could also be made to
-   function without scripts by requesting the sorted table from the
-   server.</p>
-  </div>
-
-
-  <h4 id="script">The <dfn><code>script</code></dfn> element</h4>
-
-  <dl class="element">
-   <dt>Categories</dt>
-   <dd><span>Metadata content</span>.</dd>
-   <dd><span>Phrasing content</span>.</dd>
-   <dt>Contexts in which this element may be used:</dt>
-   <dd>Where <span>metadata content</span> is expected.</dd>
-   <dd>Where <span>phrasing content</span> is expected.</dd>
-   <dt>Content model:</dt>
-   <dd>If there is no <code title="attr-script-src">src</code>
-   attribute, depends on the value of the <code
-   title="attr-script-type">type</code> attribute.</dd>
-   <dd>If there <em>is</em> a <code title="attr-script-src">src</code>
-   attribute, the element must be empty.</dd>
-   <dt>Element-specific attributes:</dt>
-   <dd><code title="attr-script-src">src</code></dd>
-   <dd><code title="attr-script-async">async</code></dd>
-   <dd><code title="attr-script-defer">defer</code></dd>
-   <dd><code title="attr-script-type">type</code></dd>
-   <dd><code title="attr-script-charset">charset</code></dd>
-   <dt>DOM interface:</dt>
-   <dd>
-<pre class="idl">interface <dfn>HTMLScriptElement</dfn> : <span>HTMLElement</span> {
-           attribute DOMString <code title="dom-script-src">src</code>;
-           attribute boolean <code title="dom-script-async">async</code>;
-           attribute boolean <code title="dom-script-defer">defer</code>;
-           attribute DOMString <code title="dom-script-type">type</code>;
-           attribute DOMString <code title="dom-script-charset">charset</code>;
-           attribute DOMString <code title="dom-script-text">text</code>;
-};</pre>
-   </dd>
-  </dl>
-
-  <p>The <code>script</code> element allows authors to include dynamic
-  script and data blocks in their documents.</p>
-
-  <p>When used to include dynamic scripts, the scripts may either be
-  embedded inline or may be imported from an external file using the
-  <code title="attr-script-src">src</code> attribute. If the language
-  is not that described by "<code title="">text/javascript</code>",
-  then the <code title="attr-script-type">type</code> attribute must
-  be present. If the <code title="attr-script-type">type</code>
-  attribute is present, its value must be the type of the script's
-  language.</p>
-
-  <p>When used to include data blocks, the data must be embedded
-  inline, the format of the data must be given using the <code
-  title="attr-script-type">type</code> attribute, and the <code
-  title="attr-script-src">src</code> attribute must not be
-  specified.</p>
-
-  <p>The <dfn title="attr-script-type"><code>type</code></dfn>
-  attribute gives the language of the script or format of the data. If
-  the attribute is present, its value must be a valid MIME type,
-  optionally with parameters. The <code title="">charset</code>
-  parameter must not be specified. (The default, which is used if the
-  attribute is absent, is "<code title="">text/javascript</code>".) <a
-  href="#refsRFC2046">[RFC2046]</a></p>
-
-  <p>The <dfn 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 <span>valid
-  URL</span> identifying a script resource of the type given by the
-  <code title="attr-script-type">type</code> attribute, if the
-  attribute is present, or of the type "<code
-  title="">text/javascript</code>", if the attribute is absent.</p>
-
-  <p>The <dfn title="attr-script-charset"><code>charset</code></dfn>
-  attribute gives the character encoding of the external script
-  resource. The attribute must not be specified if the <code
-  title="attr-script-src">src</code> attribute is not present. If the
-  attribute is set, its value must be a valid character encoding name,
-  and must be the preferred name for that encoding. <a
-  href="#refsIANACHARSET">[IANACHARSET]</a></p>
-
-  <p>The encoding specified must be the encoding used by the script
-  resource. If the <code title="attr-script-charset">charset</code>
-  attribute is omitted, the character encoding of the document will be
-  used. If the script resource uses a different encoding than the
-  document, then the attribute must be specified.</p>
-
-  <p>The <dfn title="attr-script-async"><code>async</code></dfn> and
-  <dfn title="attr-script-defer"><code>defer</code></dfn> attributes
-  are <span title="boolean attribute">boolean attributes</span> that
-  indicate how the script should be executed.</p>
-
-  <p>There are three possible modes that can be selected using these
-  attributes. If the <code title="attr-script-async">async</code>
-  attribute is present, then the script will be executed
-  asynchronously, as soon as it is available. If the <code
-  title="attr-script-async">async</code> attribute is not present but
-  the <code title="attr-script-defer">defer</code> attribute is
-  present, then the script is executed when the page has finished
-  parsing. If neither attribute is present, then the script is
-  fetched and executed immediately, before the user agent continues
-  parsing the page. The exact processing details for these attributes
-  is described below.</p>
-
-  <p>The <code title="attr-script-defer">defer</code> attribute may be
-  specified even if the <code title="attr-script-async">async</code>
-  attribute is specified, to cause legacy Web browsers that only
-  support <code title="attr-script-defer">defer</code> (and not <code
-  title="attr-script-async">async</code>) to fall back to the <code
-  title="attr-script-defer">defer</code> behavior instead of the
-  synchronous blocking behavior that is the default.</p>
-
-  <p>Changing the <code title="attr-script-src">src</code>, <code
-  title="attr-script-type">type</code>, <code
-  title="attr-script-charset">charset</code>, <code
-  title="attr-script-async">async</code>, and <code
-  title="attr-script-defer">defer</code> attributes dynamically has no
-  direct effect; these attribute are only used at specific times
-  described below (namely, when the element is inserted into the
-  document).</p> <!-- by implication, changes to the base URL also
-  have no effect -->
-
-  <p><code>script</code> elements have four associated pieces of
-  metadata. The first is a flag indicating whether or not the script
-  block has been <dfn>"already executed"</dfn>. Initially,
-  <code>script</code> elements must have this flag unset (script
-  blocks, when created, are not "already executed"). When a
-  <code>script</code> element is cloned, the "already executed" flag,
-  if set, must be propagated to the clone when it is created. The
-  second is a flag indicating whether the element was
-  <dfn>"parser-inserted"</dfn>. This flag is set by the <span>HTML
-  parser</span> and is used to handle <code
-  title="dom-document-write-HTML">document.write()</code> calls. The
-  third and fourth pieces of metadata are <dfn><var>the script's
-  type</var></dfn> and <dfn><var>the script's character
-  encoding</var></dfn>. They are determined when the script is run,
-  based on the attributes on the element at that time.</p>
-
-  <p>When an <span>XML parser</span> creates a <code>script</code>
-  element, it must be marked as being
-  <span>"parser-inserted"</span>. When the element's end tag is
-  parsed, the user agent must <span title="running a
-  script">run</span> the <code>script</code> element.</p>
-
-  <p class="note">Equivalent requirements exist for the <span>HTML
-  parser</span>, but they are detailed in that section instead.</p>
-
-  <p>When a <code>script</code> element that is marked as neither
-  having <span>"already executed"</span> nor being
-  <span>"parser-inserted"</span> is <span>inserted into a
-  document</span><!-- XXX xref -->, the user agent must <span
-  title="running a script">run</span> the <code>script</code>
-  element.</p>
-
-  <p><dfn title="running a script">Running a script</dfn>: When a
-  <code>script</code> element is to be run, the user agent must act as
-  follows:</p>
-
-  <ol>
-
-   <li>
-
-    <p>If either:</p>
-
-    <ul class="brief">
-
-     <li>the <code>script</code> element has a <code
-     title="attr-script-type">type</code> attribute and its value is
-     the empty string, or</li>
-
-     <li>the <code>script</code> element has no <code
-     title="attr-script-type">type</code> attribute but it has a <code
-     title="attr-script-language">language</code> attribute and
-     <em>that</em> attribute's value is the empty string, or</li>
-
-     <li>the <code>script</code> element has neither a <code
-     title="attr-script-type">type</code> attribute nor a <code
-     title="attr-script-language">language</code> attribute, then</li>
-
-    </ul>
-
-    <p>...let <var>the script's type</var> for this
-    <code>script</code> element be "<code
-    title="">text/javascript</code>".</p>
-
-    <p>Otherwise, if the <code>script</code> element has a <code
-    title="attr-script-type">type</code> attribute, let <var>the
-    script's type</var> for this <code>script</code> element be the
-    value of that attribute.</p>
-
-    <p>Otherwise, the element has a <code
-    title="attr-script-language">language</code> attribute; let
-    <var>the script's type</var> for this <code>script</code> element
-    be the concatenation of the string "<code title="">text/</code>"
-    followed by the value of the <code
-    title="attr-script-language">language</code> attribute.</p>
-    <!-- user agents already support, e.g., type="text/javascript1.3",
-    so we don't have to support that separately. -->
-
-   </li>
-
-   <li>
-
-    <p>If the <code>script</code> element has a <code
-    title="attr-script-charset">charset</code> attribute, then let
-    <var>the script's character encoding</var> for this
-    <code>script</code> element be the encoding given by the <code
-    title="attr-script-charset">charset</code> attribute.</p>
-
-    <p>Otherwise, let <var>the script's character encoding</var> for
-    this <code>script</code> element be the same as <span
-    title="document's character encoding">the encoding of the document
-    itself</span>.</p>
-
-   </li>
-
-   <li>
-
-    <p>If the <code>script</code> element is <span>without
-    script</span>, or if the <code>script</code> element was created
-    by an <span>XML parser</span> that itself was created as part of
-    the processing of the <code
-    title="dom-innerHTML-XML">innerHTML</code> attribute's setter<!--
-    no need to worry about the HTML case, as the HTML parser handles
-    that for us -->, or if the user agent does not <span>support the
-    scripting language</span> given by <var>the script's type</var>
-    for this <code>script</code> element, then the user agent must
-    abort these steps at this point. The script is not executed.</p>
-
-   </li>
-
-   <li>
-
-    <p>The user agent must set the element's <span>"already
-    executed"</span> flag.</p>
-
-   </li>
-
-   <li>
-
-    <p>If the element has a <code title="attr-script-src">src</code>
-    attribute, then the specified resource must be <span
-    title="fetch">fetched</span>.</p>
-
-    <p>For historical reasons, if the <span>URL</span> is a <span
-    title="javascript protocol"><code title="">javascript:</code>
-    URL</span>, then the user agent must not, despite the requirements
-    in the definition of the <span title="fetch">fetching</span>
-    algorithm, actually execute the given script; instead the user
-    agent must act as if it had received an empty HTTP 400
-    response.</p>
-
-    <p>Once the fetching process has completed, and the script has
-    <dfn>completed loading</dfn>, the user agent will have to complete
-    <span title="when a script completes loading">the steps described
-    below</span>. (If the parser is still active at that time, those
-    steps defer to the parser to handle the execution of pending
-    scripts.)</p>
-
-    <p>For performance reasons, user agents may start fetching the
-    script as soon as the attribute is set, instead, in the hope that
-    the element will be inserted into the document. Either way, once
-    the element is inserted into the document, the load must have
-    started. If the UA performs such prefetching, but the element is
-    never inserted in the document, or the <code
-    title="attr-script-src">src</code> attribute is dynamically
-    changed, then the user agent will not execute the script, and the
-    fetching process will have been effectively wasted.</p>
-
-   </li>
-
-   <li>
-
-    <p>Then, the first of the following options that describes the
-    situation must be followed:</p>
-
-    <dl class="switch">
-
-     <dt>If the document is still being parsed, and the element has a
-     <code title="attr-script-defer">defer</code> attribute, and the
-     element does not have an <code
-     title="attr-script-async">async</code> attribute</dt>
-
-     <dd>The element must be added to the end of the <span>list of
-     scripts that will execute when the document has finished
-     parsing</span>.
- 
-     <span class="big-issue">This isn't compatible with IE for inline
-     deferred scripts, but then what IE does is pretty hard to pin down
-     exactly. Do we want to keep this like it is? Be more compatible?</span>
-     <!--XXX  
-     http://www.websiteoptimization.com/speed/tweak/defer/test/
-     internal deferred scripts execute before any external scripts execute, or before the LOAD if there are none
-     external deferred scripts execute before the LOAD
-     -->
-
-     </dd>
-
-
-     <dt>If the element has an <code
-     title="attr-script-async">async</code> attribute and a <code
-     title="attr-script-src">src</code> attribute</dt>
-
-     <dd>The element must be added to the end of the <span>list of
-     scripts that will execute asynchronously</span>.</dd>
-
-
-     <dt>If the element has an <code
-     title="attr-script-async">async</code> attribute but no <code
-     title="attr-script-src">src</code> attribute, and the <span>list
-     of scripts that will execute asynchronously</span> is not
-     empty</dt>
-
-     <dd>The element must be added to the end of the <span>list of
-     scripts that will execute asynchronously</span>.</dd>
-
-
-     <dt>If the element has a <code title="attr-script-src">src</code>
-     attribute and has been flagged as
-     <span>"parser-inserted"</span></dt>
-
-     <dd>The element is the <span>pending external
-     script</span>. (There can only be one such script at a
-     time.)</dd>
-
-
-     <dt>If the element has a <code title="attr-script-src">src</code>
-     attribute</dt>
-
-     <dd>The element must be added to the end of the <span>list of
-     scripts that will execute as soon as possible</span>.</dd>
-
-
-     <dt>Otherwise</dt>
-
-     <dd>The user agent must immediately <span title="executing a
-     script block">execute the script</span>, even if other scripts
-     are already executing.</dd>
-
-    </dl>
-
-   </li>
-
-  </ol>
-
-  <p><dfn>When a script completes loading</dfn>: If the script's
-  element was added to one of the lists mentioned above and the
-  document is still being parsed, then the parser handles
-  it. Otherwise, the UA must run the following steps as the <span
-  title="concept-task">task</span> that the <span>networking task
-  source</span> places on the <span>task queue</span>:</p>
-
-  <dl class="switch">
-
-   <dt>If the script's element was added to the <dfn>list of scripts
-   that will execute when the document has finished parsing</dfn>:</dt>
-
-   <dd>
-
-    <ol>
-
-     <li>
-
-      <p>If the script's element is not the first element in the list,
-      then do nothing yet. Stop going through these steps.</p>
-
-     </li>
-
-     <li>
-
-      <p>Otherwise, <span title="executing a script block">execute the
-      script</span> (that is, the script associated with the first
-      element in the list).</p>
-
-     </li>
-
-     <li>
-
-      <p>Remove the script's element from the list (i.e. shift out the
-      first entry in the list).</p>
-
-     </li>
-
-     <li>
-
-      <p>If there are any more entries in the list, and if the script
-      associated with the element that is now the first in the list is
-      already loaded, then jump back to step two to execute it.</p>
-
-     </li>
-
-    </ol>
-
-   </dd>
-
-   <dt>If the script's element was added to the <dfn>list of scripts
-   that will execute asynchronously</dfn>:</dt>
-
-   <dd>
-
-    <ol>
-
-     <li>
-
-      <p>If the script is not the first element in the list, then do
-      nothing yet. Stop going through these steps.</p>
-
-     </li>
-
-     <li>
-
-      <p><span title="executing a script block">Execute the
-      script</span> (the script associated with the first element in
-      the list).</p>
-
-     </li>
-
-     <li>
-
-      <p>Remove the script's element from the list (i.e. shift out the
-      first entry in the list).</p>
-
-     </li>
-
-     <li>
-
-      <p>If there are any more scripts in the list, and the element
-      now at the head of the list had no <code
-      title="attr-script-src">src</code> attribute when it was added
-      to the list, or had one, but its associated script has finished
-      loading, then jump back to step two to execute the script
-      associated with this element.</p>
-
-     </li>
-
-    </ol>
-
-   </dd>
-
-   <dt>If the script's element was added to the <dfn>list of scripts
-   that will execute as soon as possible</dfn>:</dt>
-
-   <dd>
-
-    <ol>
-
-     <li>
-
-      <p><span title="executing a script block">Execute the
-      script</span>.</p>
-
-     </li>
-
-     <li>
-
-      <p>Remove the script's element from the list.</p>
-
-     </li>
-
-    </ol>
-
-   </dd>
-
-  </dl>
-
-  <p>Fetching an external script must <span>delay the <code
-  title="event-load">load</code> event</span>.</p>
-
-  <p><dfn title="executing a script block">Executing a script
-  block</dfn>: When the steps above require that the script be
-  executed, the user agent must act as follows:</p>
-
-  <dl class="switch">
-
-   <dt>If the load resulted in an error (for example a DNS error, or
-   an HTTP 404 error)</dt>
-
-   <dd><p>Executing the script must just consist of <span title="fire
-   an error event">firing an <code title="event-error">error</code>
-   event</span> at the element.</p></dd>
-
-   <dt>If the load was successful</dt>
-
-   <dd>
-
-    <ol>
-
-     <li>
-
-      <p>If the <code>script</code> element's <code>Document</code> is
-      the <span>active document</span> in its <span>browsing
-      context</span>, the user agent must execute the script:</p>
-
-      <dl class="switch">
-
-       <dt>If the script is from an external file</dt>
-
-       <dd>
-
-        <p>That file must be used as the file to execute.</p>
-
-        <p>The file must be interpreted using the character encoding
-        given by <var>the script's character encoding</var>, regardless
-        of any metadata given by the file's <span
-        title="Content-Type">Content-Type metadata</span>.</p>
-
-        <p class="big-issue">This means that a UTF-16 document will
-        always assume external scripts are UTF-16...? This applies,
-        e.g., to document's created using createDocument()... It also
-        means changing document.charSet will affect the character
-        encoding used to interpret scripts, is that really what
-        happens?</p>
-
-       </dd>
-
-       <dt>If the script is inline</dt>
-
-       <dd>
-
-        <p>For scripting languages that consist of pure text, user
-        agents must use the value of the DOM <code
-        title="dom-script-text">text</code> attribute (defined below) as
-        the script to execute, and for XML-based scripting languages,
-        user agents must use all the child nodes of the
-        <code>script</code> element as the script to execute.</p>
-
-       </dd>
-
-      </dl>
-
-      <!-- SCRIPT EXEC -->
-      <p>In any case, the user agent must execute the script according to
-      the semantics defined by the language associated with <var>the
-      script's type</var> (see the <a href="#scriptingLanguages">scripting
-      languages</a> section below).</p>
-
-      <p>The <span>script execution context</span> of the script must
-      be the <code>Window</code> object of that <span>browsing
-      context</span>.</p>
-
-      <p>The <span>script document context</span> of the script must
-      be the <code>Document</code> object that owns the
-      <code>script</code> element.</p>
-
-      <p class="note">The element's attributes' values might have changed
-      between when the element was inserted into the document and when the
-      script has finished loading, as may its other attributes; similarly,
-      the element itself might have been taken back out of the DOM, or had
-      other changes made. These changes do not in any way affect the above
-      steps; only the values of the attributes at the time the
-      <code>script</code> element is first inserted into the document
-      matter.</p>
-
-     </li>
-
-     <li>
-
-      <p>Then, the user agent must <span>fire a <code
-      title="event-load">load</code> event</span> at the
-      <code>script</code> element.</p>
-
-     </li>
-
-    </ol>
-
-   </dd>
-
-  </dl>
-
-  <p>The DOM attributes <dfn
-  title="dom-script-src"><code>src</code></dfn>, <dfn
-  title="dom-script-type"><code>type</code></dfn>, <dfn
-  title="dom-script-charset"><code>charset</code></dfn>, <dfn
-  title="dom-script-async"><code>async</code></dfn>, and <dfn
-  title="dom-script-defer"><code>defer</code></dfn>, each must
-  <span>reflect</span> the respective content attributes of the same
-  name.</p>
-
-  <p>The DOM attribute <dfn
-  title="dom-script-text"><code>text</code></dfn> must return a
-  concatenation of the contents of all the <span title="text
-  node">text nodes</span> that are direct children of the
-  <code>script</code> element (ignoring any other nodes such as
-  comments or elements), in tree order. On setting, it must act the
-  same way as the <code>textContent</code> DOM attribute.</p>
-
-
-  <div class="example">
-
-   <p>In this example, two <code>script</code> elements are used. One
-   embeds an external script, and the other includes some data.</p>
-
-   <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
-</script></pre>
-
-   <p>The data in this case might be used by the script to generate
-   the map of a video game. The data doesn't have to be used that way,
-   though; maybe the map data is actually embedded in other parts of
-   the page's markup, and the data block here is just used by the
-   site's search engine to help users who are looking for particular
-   features in their game maps.</p>
-
-  </div>
-
-
-
-  <h5 id="scriptingLanguages">Scripting languages</h5>
-
-  <p>A user agent is said to <dfn>support the scripting language</dfn>
-  if <var>the script's type</var> matches the MIME type of a scripting
-  language that the user agent implements.</p>
-
-  <p>The following lists some MIME types and the languages to which
-  they refer:</p>
-
-  <dl>
-
-   <dt><code>text/javascript</code></dt>
-   <dt><code>text/javascript1.1</code></dt>
-   <dt><code>text/javascript1.2</code></dt>
-   <dt><code>text/javascript1.3</code></dt>
-   <dd>ECMAScript. <a href="#refsECMA262">[ECMA262]</a></dd>
-
-   <dt><code>text/javascript;e4x=1</code></dt>
-   <dd>ECMAScript with ECMAScript for XML. <a href="#refsECMA357">[ECMA357]</a></dd>
-
-  </dl>
-
-  <p>User agents may support other MIME types and other languages.</p>
-
-  <p>When examining types to determine if they support the language,
-  user agents must not ignore unknown MIME parameters — types
-  with unknown parameters must be assumed to be unsupported.</p>
-
-  <!--
-   XXX we should reference #refsRFC4329 http://www.ietf.org/rfc/rfc4329
-  -->
-
-
-
-  <h4>The <dfn><code>noscript</code></dfn> element</h4>
-
-  <dl class="element">
-   <dt>Categories</dt>
-   <dd><span>Metadata content</span>.</dd>
-   <dd><span>Phrasing content</span>.</dd>
-   <dt>Contexts in which this element may be used:</dt>
-   <dd>In a <code>head</code> element of an <span title="HTML documents">HTML document</span>, if there are no ancestor <code>noscript</code> elements.</dd>
-   <dd>Where <span>phrasing content</span> is expected in <span>HTML documents</span>, if there are no ancestor <code>noscript</code> elements.</dd>
-   <dt>Content model:</dt>
-   <dd><span>Without script</span>, in a <code>head</code> element: in any order, zero or more <code>link</code> elements, zero or more <code>style</code> elements, and zero or more <code>meta</code> elements.</dd>
-   <dd><span>Without script</span>, not in a <code>head</code> element: <span>transparent</span>, but there must be no <code>noscript</code> element descendants.</dd>
-   <dd><span>With script</span>: text that conforms to the requirements given in the prose.</dd>
-   <dt>Element-specific attributes:</dt>
-   <dd>None.</dd>
-   <dt>DOM interface:</dt>
-   <dd>Uses <code>HTMLElement</code>.</dd>
-  </dl>
-
-  <p>The <code>noscript</code> element does not represent anything. It
-  is used to present different markup to user agents that support
-  scripting and those that don't support scripting, by affecting how
-  the document is parsed.</p>
-
-  <p>The <code>noscript</code> element must not be used in <span>XML
-  documents</span>.</p>
-
-  <p class="note"><strong>The <code>noscript</code> element is only
-  effective in the <span title="">HTML serialization</span><!-- XXX
-  xref -->, it has no effect in the <span title="">XML
-  serialization</span><!-- XXX xref -->.</strong></p>
-
-  <p>When used in <span>HTML documents</span>, the allowed content
-  model is as follows:</p>
-
-  <p>In a <code>head</code> element, if the <code>noscript</code>
-  element is <span>without script</span>, then the content model of a
-  <code>noscript</code> element must contain only <code>link</code>,
-  <code>style</code>, and <code>meta</code> elements. If the
-  <code>noscript</code> element is <span>with script</span>, then the
-  content model of a <code>noscript</code> element is text, except
-  that invoking the <span>HTML fragment parsing algorithm</span> with
-  the <code>noscript</code> element as the <var title="">context</var>
-  element and the text contents as the <var title="">input</var> must
-  result in a list of nodes that consists only of <code>link</code>,
-  <code>style</code>, and <code>meta</code> elements.</p>
-
-  <p>Outside of <code>head</code> elements, if the
-  <code>noscript</code> element is <span>without script</span>, then
-  the content model of a <code>noscript</code> element is
-  <span>transparent</span>, with the additional restriction that a
-  <code>noscript</code> element must not have a <code>noscript</code>
-  element as an ancestor (that is, <code>noscript</code> can't be
-  nested).</p>
-
-  <p>Outside of <code>head</code> elements, if the
-  <code>noscript</code> element is <span>with script</span>, then the
-  content model of a <code>noscript</code> element is text, except
-  that the text must be such that running the following algorithm
-  results in a conforming document with no <code>noscript</code>
-  elements and no <code>script</code> elements, and such that no step
-  in the algorithm causes an <span>HTML parser</span> to flag a
-  <span>parse error</span>:</p>
-
-  <ol>
-
-   <li>Remove every <code>script</code> element from the
-   document.</li>
-
-   <li>Make a list of every <code>noscript</code> element in the
-   document. For every <code>noscript</code> element in that list,
-   perform the following steps:
-
-    <ol>
-
-     <li>Let the <var title="">parent element</var> be the parent
-     element of the <code>noscript</code> element.</li>
-
-     <li>Take all the children of the <var title="">parent element</var>
-     that come before the <code>noscript</code> element, and call these
-     elements <var title="">the before children</var>.</li>
-
-     <li>Take all the children of the <var title="">parent element</var>
-     that come <em>after</em> the <code>noscript</code> element, and
-     call these elements <var title="">the after children</var>.</li>
-
-     <li>Let <var title="">s</var> be the concatenation of all the
-     <span>text node</span> children of the <code>noscript</code>
-     element.</li>
-
-     <li>Set the <code title="dom-innerHTML-HTML">innerHTML</code>
-     attribute of the <var title="">parent element</var> to the value
-     of <var title="">s</var>. (This, as a side-effect, causes the
-     <code>noscript</code> element to be removed from the
-     document.)</li>
-
-     <li>Insert <var title="">the before children</var> at the start of
-     the <var title="">parent element</var>, preserving their original
-     relative order.</li>
-
-     <li>Insert <var title="">the after children</var> at the end of the
-     <var title="">parent element</var>, preserving their original
-     relative order.</li>
-
-    </ol>
-
-   </li>
-
-  </ol>
-
-  <p>The <code>noscript</code> element has no other requirements. In
-  particular, children of the <code>noscript</code> element are not
-  exempt from form submission, scripting, and so forth, even when the
-  element is <span>with script</span>.</p>
-
-  <p class="note">All these contortions are required because, for
-  historical reasons, the <code>noscript</code> element is handled
-  differently by the <span>HTML parser</span> based on whether <span
-  title="scripting flag">scripting was enabled or not</span> when the
-  parser was invoked. The element is not allowed in XML, because in
-  XML the parser is not affected by such state, and thus the element
-  would not have the desired effect.</p>
-
-  <p class="note">The <code>noscript</code> element interacts poorly
-  with the <code title="dom-document-designMode">designMode</code>
-  feature. Authors are encouraged to not use <code>noscript</code>
-  elements on pages that will have <code
-  title="dom-document-designMode">designMode</code> enabled.</p>
-
-
-  <h4>The <dfn><code>eventsource</code></dfn> element</h4>
-
-  <dl class="element">
-   <dt>Categories</dt>
-   <dd><span>Metadata content</span>.</dd>
-   <dd><span>Phrasing content</span>.</dd>
-   <dt>Contexts in which this element may be used:</dt>
-   <dd>Where <span>metadata content</span> is expected.</dd>
-   <dd>Where <span>phrasing content</span> is expected.</dd>
-   <dt>Content model:</dt>
-   <dd>Empty.</dd>
-   <dt>Element-specific attributes:</dt>
-   <dd><code title="attr-eventsource-src">src</code></dd>
-   <dt>DOM interface:</dt>
-   <dd>
-<pre class="idl">interface <dfn>HTMLEventSourceElement</dfn> : <span>HTMLElement</span> {
-           attribute DOMString <span title="dom-eventsource-src">src</span>;
-};</pre>
-   </dd>
-  </dl>
-
-  <p>The <code>eventsource</code> element represents a target for
-  events generated by a remote server.</p>
-
-  <p>The <dfn title="attr-eventsource-src"><code>src</code></dfn>
-  attribute, if specified, must give a <span>valid URL</span>
-  identifying a resource that uses the <code>text/event-stream</code>
-  format.</p>
-
-  <p>When an <code>eventsource</code> element with a <code
-  title="attr-eventsource-src">src</code> attribute specified is
-  inserted into the document<!-- XXX xref -->, and when an
-  <code>eventsource</code> element that is already in the
-  document<!--XXX xref--> has a <code
-  title="attr-eventsource-src">src</code> attribute added, the user
-  agent must run the <span>add declared event source</span>
-  algorithm.</p>
-
-  <p>While an <code>eventsource</code> element is in a document<!--
-  XXX xref -->, if its <code title="attr-eventsource-src">src</code>
-  attribute is mutated, the user agent must must run the <span>remove
-  declared event source</span> algorithm followed by the <span>add
-  declared event source</span> algorithm.</p>
-
-  <p>When an <code>eventsource</code> element with a <code
-  title="attr-eventsource-src">src</code> attribute specified is
-  removed from a document<!-- XXX xref -->, and when an
-  <code>eventsource</code> element that is in a document<!--XXX
-  xref--> with a <code title="attr-eventsource-src">src</code>
-  attribute specified has its <code
-  title="attr-eventsource-src">src</code> attribute removed, the user
-  agent must run the <span>remove declared event source</span>
-  algorithm.</p>
-
-  <!-- changing the base URL doesn't trigger these algorithms -->
-
-  <p>When it is created, an <code>eventsource</code> element must
-  have its <i>current declared event source</i> set to
-  "undefined".</p>
-
-  <p>The <dfn>add declared event source</dfn> algorithm is as
-  follows:</p>
-
-  <ol>
-
-   <li><span title="resolve a url">Resolve</span> the <span>URL</span>
-   specified by the <code>eventsource</code> element's <code
-   title="attr-eventsource-src">src</code> attribute.</li>
-
-   <li>If that fails, then set the element's <i>current declared event
-   source</i> to "undefined" and abort these steps.</li>
-
-   <li>Otherwise, act as if the <code
-   title="dom-remoteEventTarget-addEventSource">addEventSource()</code>
-   method on the <code>eventsource</code> element had been invoked
-   with the resulting <span>absolute URL</span>.</li>
-
-   <li>Let the element's <i>current declared event source</i> be that
-   <span>absolute URL</span>.</li>
-
-  </ol>
-
-  <p>The <dfn>remove declared event source</dfn> algorithm is as
-  follows:</p>
-
-  <ol>
-
-   <li>If the element's <i>current declared event source</i> is
-   "undefined", abort these steps.</li>
-
-   <li>Otherwise, act as if the <code
-   title="dom-remoteEventTarget-removeEventSource">removeEventSource()</code>
-   method on the <code>eventsource</code> element had been invoked
-   with the element's <i>current declared event source</i>.</li>
-
-   <li>Let the element's <i>current declared event source</i> be
-   "undefined".</li>
-
-  </ol>
-
-  <p>There can be more than one <code>eventsource</code> element per
-  document, but authors should take care to avoid opening multiple
-  connections to the same server as HTTP recommends a limit to the
-  number of simultaneous connections that a user agent can open per
-  server.</p>
-
-  <!-- XXX should we make 'load', 'error', 'abort' events fire on this
-  element? -->
-
-  <p>The <dfn title="dom-eventsource-src"><code>src</code></dfn> DOM
-  attribute must <span>reflect</span> the content attribute of the
-  same name.</p>
-
-
-
-
   <h3 id="interactive-elements">Interactive elements</h3>
 
   <h4>The <dfn><code>details</code></dfn> element</h4>
@@ -29283,12 +29286,14 @@
   <h5>Populating the <code>datagrid</code> element</h5>
 
   <p>A <code>datagrid</code> must be disabled until its end tag has
-  been parsed (in the case of a <code>datagrid</code> element in the
-  original document markup) or until it has been inserted into the
-  document (in the case of a dynamically created element). After that
-  point, the element must fire a single <code
-  title="event-load">load</code> event at itself, which doesn't bubble
-  and cannot be canceled.</p>
+  been parsed<!-- XXX do we define that? what if the end tag is never
+  seen, but the element is popped off the stack?--> (in the case of a
+  <code>datagrid</code> element in the original document markup) or
+  until it has been <span title="insert an element into a
+  document">inserted into the document</span> (in the case of a
+  dynamically created element). After that point, the element must
+  fire a single <code title="event-load">load</code> event at itself,
+  which doesn't bubble and cannot be canceled.</p>
 
   <p class="big-issue">The end-tag parsing thing should be moved to
   the parsing section.</p>
@@ -33595,8 +33600,8 @@
    <dt>Reacting to DOM manipulation</dt>
 
    <dd><p>Some elements have tasks that trigger in response to DOM
-   manipulation, e.g. when that element is inserted into the
-   document.</p>
+   manipulation, e.g. when that element is <span title="insert an
+   element into a document">inserted into the document</span>.</p>
 
   </dl>
 
@@ -37685,14 +37690,16 @@
   specifications cited above, is found to be an <code>html</code>
   element with an attribute <code
   title="attr-html-manifest">manifest</code>, then, as soon as the
-  element is inserted into the DOM, the user agent must <span
-  title="resolve a url">resolve</span> the value of that attribute,
-  and if that is successful, must run the <span
+  element is <span title="insert an element into a document">inserted
+  into the document</span>, the user agent must <span title="resolve a
+  url">resolve</span> the value of that attribute, and if that is
+  successful, must run the <span
   title="concept-appcache-init-with-attribute">application cache
   selection algorithm</span> with the resulting <span>absolute
   URL</span> as the manifest URL. Otherwise, if the attribute is
   absent or resolving it fails, then as soon as the root element is
-  inserted into the DOM, the user agent must run the <span
+  <span title="insert an element into a document">inserted into the
+  document</span>, the user agent must run the <span
   title="concept-appcache-init-no-attribute">application cache
   selection algorithm</span> with no manifest.</p>
 




More information about the Commit-Watchers mailing list