[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 −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>... 斎 (さい) 藤 (とう) 信 (のぶ) 男 (お) ...</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