watir-webdriver 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
data/support/html5.html CHANGED
@@ -1,7 +1,7 @@
1
- <!-- downloaded from http://www.whatwg.org/specs/web-apps/current-work/ on 2010-11-11 11:33:07 +0100 -->
1
+ <!-- downloaded from http://www.whatwg.org/specs/web-apps/current-work/ on 2010-12-19 01:46:50 +0100 -->
2
2
  <!DOCTYPE html><html lang=en-US-x-hixie><title>HTML5 (including next generation additions still in development)</title><script>
3
3
  var loadTimer = new Date();
4
- var current_revision = "r" + "$Revision: 5678 $".substr(11);
4
+ var current_revision = "r" + "$Revision: 5720 $".substr(11);
5
5
  current_revision = current_revision.substr(0, current_revision.length - 2);
6
6
  var last_known_revision = current_revision;
7
7
  function getCookie(name) {
@@ -199,7 +199,9 @@
199
199
  </style><style>
200
200
  .domintro:before { display: table; margin: -1em -0.5em -0.5em auto; width: auto; content: 'This box is non-normative. Implementation requirements are given below this box.'; color: black; font-style: italic; border: solid 2px; background: white; padding: 0 0.25em; }
201
201
  </style><link href=data:text/css, id=complete rel=stylesheet title="Complete specification"><link href=data:text/css,.impl%20{%20display:%20none;%20}%0Ahtml%20{%20border:%20solid%20yellow;%20}%20.domintro:before%20{%20display:%20none;%20} id=author rel="alternate stylesheet" title="Author documentation only"><link href=data:text/css,.impl%20{%20background:%20%23FFEEEE;%20}%20.domintro:before%20{%20background:%20%23FFEEEE;%20} id=highlight rel="alternate stylesheet" title="Highlight implementation requirements"><link href=status.css rel=stylesheet><script>
202
+ var startedInit = 0;
202
203
  function init() {
204
+ startedInit = 1;
203
205
  if (location.search == '?slow-browser')
204
206
  return;
205
207
  var configUI = document.createElement('div');
@@ -215,11 +217,16 @@
215
217
  if (getCookie('profile') == '1')
216
218
  document.getElementsByTagName('h2')[0].textContent += '; load: ' + (new Date() - loadTimer) + 'ms';
217
219
  }
220
+ if (document.documentElement.className == "")
221
+ setTimeout(function () {
222
+ if (!startedInit)
223
+ showAlert("Too slow? Try reading the multipage copy of the spec instead:", "http://whatwg.org/html");
224
+ }, 5000);
218
225
  </script><body class=draft onload=init()>
219
226
 
220
227
  <header class=head id=head><p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
221
228
  <hgroup><h1>HTML5 (including next generation additions still in development)</h1>
222
- <h2 class="no-num no-toc">Draft Standard &mdash; 11 November 2010</h2>
229
+ <h2 class="no-num no-toc">Draft Standard &mdash; 16 December 2010</h2>
223
230
  </hgroup><p>You can take part in this work. <a href=http://www.whatwg.org/mailing-list>Join the working group's discussion list.</a></p>
224
231
  <p><strong>Web designers!</strong> We have a <a href=http://blog.whatwg.org/faq/>FAQ</a>, a <a href=http://forums.whatwg.org/>forum</a>, and a <a href=http://www.whatwg.org/mailing-list#help>help mailing list</a> for you!</p>
225
232
  <!--<p class="impl"><strong>Implementors!</strong> We have a <a href="http://www.whatwg.org/mailing-list#implementors">mailing list</a> for you too!</p>-->
@@ -376,9 +383,10 @@
376
383
  <li><a href=#domsettabletokenlist-0><span class=secno>2.8.4 </span>DOMSettableTokenList</a></li>
377
384
  <li><a href=#safe-passing-of-structured-data><span class=secno>2.8.5 </span>Safe passing of structured data</a></li>
378
385
  <li><a href=#domstringmap-0><span class=secno>2.8.6 </span>DOMStringMap</a></li>
379
- <li><a href=#dom-feature-strings><span class=secno>2.8.7 </span>DOM feature strings</a></li>
380
- <li><a href=#exceptions><span class=secno>2.8.8 </span>Exceptions</a></li>
381
- <li><a href=#garbage-collection><span class=secno>2.8.9 </span>Garbage collection</a></ol></li>
386
+ <li><a href=#domelementmap-0><span class=secno>2.8.7 </span>DOMElementMap</a></li>
387
+ <li><a href=#dom-feature-strings><span class=secno>2.8.8 </span>DOM feature strings</a></li>
388
+ <li><a href=#exceptions><span class=secno>2.8.9 </span>Exceptions</a></li>
389
+ <li><a href=#garbage-collection><span class=secno>2.8.10 </span>Garbage collection</a></ol></li>
382
390
  <li><a href=#namespaces><span class=secno>2.9 </span>Namespaces</a></ol></li>
383
391
  <li><a href=#dom><span class=secno>3 </span>Semantics, structure, and APIs of HTML documents</a>
384
392
  <ol>
@@ -569,7 +577,7 @@
569
577
  <li><a href=#the-ready-states><span class=secno>4.8.10.7 </span>The ready states</a></li>
570
578
  <li><a href=#playing-the-media-resource><span class=secno>4.8.10.8 </span>Playing the media resource</a></li>
571
579
  <li><a href=#seeking><span class=secno>4.8.10.9 </span>Seeking</a></li>
572
- <li><a href=#timed-tracks><span class=secno>4.8.10.10 </span>Timed tracks</a>
580
+ <li><a href=#text-timed-tracks><span class=secno>4.8.10.10 </span>Text timed tracks</a>
573
581
  <ol>
574
582
  <li><a href=#timed-track-model><span class=secno>4.8.10.10.1 </span>Timed track model</a></li>
575
583
  <li><a href=#sourcing-in-band-timed-tracks><span class=secno>4.8.10.10.2 </span>Sourcing in-band timed tracks</a></li>
@@ -1176,7 +1184,7 @@
1176
1184
  <li><a href=#replaced-elements><span class=secno>12.3 </span>Replaced elements</a>
1177
1185
  <ol>
1178
1186
  <li><a href=#embedded-content-2><span class=secno>12.3.1 </span>Embedded content</a></li>
1179
- <li><a href=#timed-tracks-0><span class=secno>12.3.2 </span>Timed tracks</a>
1187
+ <li><a href=#timed-tracks><span class=secno>12.3.2 </span>Timed tracks</a>
1180
1188
  <ol>
1181
1189
  <li><a href=#websrt-cue-text-rendering-rules><span class=secno>12.3.2.1 </span>WebSRT cue text rendering rules</a></li>
1182
1190
  <li><a href=#applying-css-properties-to-websrt-node-objects><span class=secno>12.3.2.2 </span>Applying CSS properties to WebSRT Node Objects</a></li>
@@ -1299,10 +1307,11 @@
1299
1307
  beyond HTML5 (and that are therefore not included in the W3C version
1300
1308
  of HTML5) currently consist of:</p>
1301
1309
 
1302
- <ul class=brief><li>The <code><a href=#devices>device</a></code> element.</li>
1303
- <li>The <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute and related <a href=#hyperlink-auditing>hyperlink auditing</a> features.</li>
1304
- <li>The <a href=#timed-track>timed track</a> model for <a href=#media-element title="media element">media elements</a>, the <a href=#websrt>WebSRT</a> format, and related features.</li>
1305
- <li>Rules for <a href=#atom>converting HTML to Atom</a>.</li>
1310
+ <ul class=brief><li>The <code><a href=#devices>device</a></code> element.</li> <!--DEVICE-->
1311
+ <li>The <code title=attr-hyperlink-ping><a href=#ping>ping</a></code> attribute and related <a href=#hyperlink-auditing>hyperlink auditing</a> features.</li> <!--PING-->
1312
+ <li>The <a href=#websrt>WebSRT</a> format and some <a href=#timed-track>timed track</a> API features.</li> <!--TT--> <!--TTSRT-->
1313
+ <li>Rules for <a href=#atom>converting HTML to Atom</a>.</li> <!--MD-->
1314
+ <li>The <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code> feature for defining <span title="CSS element reference identifier">CSS element reference identifiers</span>.</li> <!--CSSREF-->
1306
1315
  </ul><p>Features that are part of HTML (and this specification) but that
1307
1316
  are currently published as separate specifications as well, and are
1308
1317
  not included in the W3C HTML5 specification, consist of:</p>
@@ -2659,6 +2668,9 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
2659
2668
  subresources</a>; other resources, e.g. fonts or backgrounds, are
2660
2669
  not.</p>
2661
2670
 
2671
+ <p>The term <dfn id=data-protocol title="data protocol"><code title="">data:</code>
2672
+ URL</dfn> refers to <a href=#url title=URL>URLs</a> that use the <code title="">data:</code> scheme. <a href=#refsRFC2397>[RFC2397]</a></p>
2673
+
2662
2674
 
2663
2675
  <h4 id=xml><span class=secno>2.1.2 </span>XML</h4>
2664
2676
 
@@ -5897,15 +5909,18 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
5897
5909
 
5898
5910
  </li>
5899
5911
 
5900
- <li><p>If there is no <code><a href=#the-base-element>base</a></code> element that is both a
5901
- child of <a href=#the-head-element>the <code>head</code> element</a> and has an
5902
- <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute, then the
5903
- <a href=#document-base-url>document base URL</a> is <var title="">fallback base
5904
- url</var>.</li>
5912
+ <li><p>If the <code><a href=#document>Document</a></code> is <a href=#an-iframe-srcdoc-document>an
5913
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a>, then
5914
+ let <var title="">fallback base url</var> be the <a href=#document-base-url>document
5915
+ base URL</a> of the <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing
5916
+ context</a>'s <a href=#browsing-context-container>browsing context container</a>'s
5917
+ <code><a href=#document>Document</a></code> instead.</li>
5905
5918
 
5906
- <li><p>Otherwise, let <var title="">url</var> be the value of the
5907
- <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute of the first
5908
- such element.</li>
5919
+ <li><p>If there is no <code><a href=#the-base-element>base</a></code> element that has an <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute, then the
5920
+ <a href=#document-base-url>document base URL</a> is <var title="">fallback base
5921
+ url</var>. Otherwise, let <var title="">url</var> be the value of
5922
+ the <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute of the
5923
+ first such element.</li>
5909
5924
 
5910
5925
  <li><p><a href=#resolve-a-url title="resolve a URL">Resolve</a> <var title="">url</var> relative to <var title="">fallback base
5911
5926
  url</var> (thus, the <code><a href=#the-base-element>base</a></code> <code title=attr-base-href><a href=#attr-base-href>href</a></code> attribute isn't affected by
@@ -6289,10 +6304,8 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6289
6304
 
6290
6305
  <ol><li>
6291
6306
 
6292
- <p>Generate the <i>address of the resource from which Request-URIs
6293
- are obtained</i> as required by HTTP for the <code title=http-referer>Referer</code> (sic) header from <a href="#the-document's-current-address">the
6294
- document's current address</a> of the appropriate
6295
- <code><a href=#document>Document</a></code> as given by the following list. <a href=#refsHTTP>[HTTP]</a></p>
6307
+ <p>Let <var title="">document</var> be the appropriate
6308
+ <code><a href=#document>Document</a></code> as given by the following list:</p>
6296
6309
 
6297
6310
  <dl class=switch><dt>When <a href=#navigate title=navigate>navigating</a></dt>
6298
6311
 
@@ -6308,7 +6321,26 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6308
6321
  <dd>The <a href=#entry-script>entry script</a>'s <a href="#script's-document" title="script's
6309
6322
  document">document</a>.</dd>
6310
6323
 
6311
- </dl><p>Remove any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
6324
+ </dl></li>
6325
+
6326
+ <li>
6327
+
6328
+ <p>While <var title="">document</var> is is <a href=#an-iframe-srcdoc-document>an
6329
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
6330
+ document</a>, let <var title="">document</var> be <var title="">document</var>'s <a href=#browsing-context>browsing context</a>'s
6331
+ <a href=#browsing-context-container>browsing context container</a>'s <code><a href=#document>Document</a></code>
6332
+ instead.</p>
6333
+
6334
+ </li>
6335
+
6336
+ <li>
6337
+
6338
+ <p>Generate the <i>address of the resource from which Request-URIs
6339
+ are obtained</i> as required by HTTP for the <code title=http-referer>Referer</code> (sic) header from <a href="#the-document's-current-address">the
6340
+ document's current address</a> of <var title="">document</var>.
6341
+ <a href=#refsHTTP>[HTTP]</a></p>
6342
+
6343
+ <p>Remove any <a href=#url-fragment title=url-fragment>&lt;fragment&gt;</a>
6312
6344
  component from the generated <i>address of the resource from which
6313
6345
  Request-URIs are obtained</i>.</p> <!-- RFC2616 says "The URI MUST
6314
6346
  NOT include a fragment." (section 14.36) -->
@@ -7854,7 +7886,57 @@ interface <dfn id=propertynodelist>PropertyNodeList</dfn> : <a href=#nodelist>No
7854
7886
  </div>
7855
7887
 
7856
7888
 
7857
- <h4 id=dom-feature-strings><span class=secno>2.8.7 </span>DOM feature strings</h4>
7889
+ <!--CSSREF-->
7890
+ <h4 id=domelementmap-0><span class=secno>2.8.7 </span>DOMElementMap</h4>
7891
+
7892
+ <p>The <code><a href=#domelementmap>DOMElementMap</a></code> interface represents a set of
7893
+ name-element mappings. It exposes these using the scripting
7894
+ language's native mechanisms for property access.</p>
7895
+
7896
+ <div class=impl>
7897
+
7898
+ <p>When a <code><a href=#domelementmap>DOMElementMap</a></code> object is instantiated, it is
7899
+ associated with three algorithms, one for getting the list of
7900
+ name-element mappings, one for mapping a name to a certain element,
7901
+ and one for deleting mappings by name.</p>
7902
+
7903
+ <pre class=idl>interface <dfn id=domelementmap>DOMElementMap</dfn> {
7904
+ <a href=#dom-domelementmap-nameditem title=dom-DOMElementMap-namedItem>getter</a> DOMString (in DOMString name);
7905
+ <a href=#dom-domelementmap-setitem title=dom-DOMElementMap-setItem>setter</a> void (in DOMString name, in <a href=#element>Element</a> value);
7906
+ <a href=#dom-domelementmap-additem title=dom-DOMElementMap-addItem>creator</a> void (in DOMString name, in <a href=#element>Element</a> value);
7907
+ <a href=#dom-domelementmap-removeitem title=dom-DOMElementMap-removeItem>deleter</a> void (in DOMString name);
7908
+ };</pre>
7909
+
7910
+ <p>The <a href=#supported-property-names>supported property names</a> on a
7911
+ <code><a href=#domelementmap>DOMElementMap</a></code> object at any instant are the names for
7912
+ each mapping returned from the algorithm for getting the list of
7913
+ name-element mappings at that instant.</p>
7914
+
7915
+ <p>To <dfn id=dom-domelementmap-nameditem title=dom-DOMElementMap-namedItem>determine the value
7916
+ of a named property</dfn> <var title="">name</var> in a
7917
+ <code><a href=#domelementmap>DOMElementMap</a></code>, the user agent must return the element
7918
+ component of the name-element mapping whose name component is <var title="">name</var> in the list returned by the algorithm for
7919
+ getting the list of name-element mappings.</p>
7920
+
7921
+ <p>To set the value of a <dfn id=dom-domelementmap-additem title=dom-DOMElementMap-addItem>new</dfn> or <dfn id=dom-domelementmap-setitem title=dom-DOMElementMap-setItem>existing</dfn> named property <var title="">name</var> to value <var title="">value</var>, the
7922
+ algorithm for mapping a name to a certain element must be run,
7923
+ passing <var title="">name</var> as the name <var title="">value</var> as the element.</p>
7924
+
7925
+ <p>To <dfn id=dom-domelementmap-removeitem title=dom-DOMElementMap-removeItem>delete an existing
7926
+ named property</dfn> <var title="">name</var>, the algorithm for
7927
+ deleting mappings must be run, passing <var title="">name</var> as
7928
+ the name component of the mapping to be deleted.</p>
7929
+
7930
+ <p class=note>The <code><a href=#domelementmap>DOMElementMap</a></code> interface definition
7931
+ here is only intended for JavaScript environments. Other language
7932
+ bindings will need to define how <code><a href=#domelementmap>DOMElementMap</a></code> is to be
7933
+ implemented for those languages.</p>
7934
+
7935
+ </div>
7936
+ <!--CSSREF-->
7937
+
7938
+
7939
+ <h4 id=dom-feature-strings><span class=secno>2.8.8 </span>DOM feature strings</h4>
7858
7940
 
7859
7941
  <p>DOM3 Core defines mechanisms for checking for interface support,
7860
7942
  and for obtaining implementations of interfaces, using <a href=http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMFeatures>feature
@@ -7876,7 +7958,7 @@ interface <dfn id=propertynodelist>PropertyNodeList</dfn> : <a href=#nodelist>No
7876
7958
  </div>
7877
7959
 
7878
7960
 
7879
- <h4 id=exceptions><span class=secno>2.8.8 </span>Exceptions</h4>
7961
+ <h4 id=exceptions><span class=secno>2.8.9 </span>Exceptions</h4>
7880
7962
 
7881
7963
  <p>The following are <code><a href=#domexception>DOMException</a></code> codes. <a href=#refsDOMCORE>[DOMCORE]</a></p>
7882
7964
 
@@ -7923,7 +8005,7 @@ interface <dfn id=propertynodelist>PropertyNodeList</dfn> : <a href=#nodelist>No
7923
8005
 
7924
8006
  <div class=impl>
7925
8007
 
7926
- <h4 id=garbage-collection><span class=secno>2.8.9 </span>Garbage collection</h4>
8008
+ <h4 id=garbage-collection><span class=secno>2.8.10 </span>Garbage collection</h4>
7927
8009
 
7928
8010
  <p>There is an <dfn id=implied-strong-reference>implied strong reference</dfn> from any IDL
7929
8011
  attribute that returns a pre-existing object to that object.</p>
@@ -7996,9 +8078,26 @@ interface <dfn id=propertynodelist>PropertyNodeList</dfn> : <a href=#nodelist>No
7996
8078
  <a href=#html-documents title="HTML documents">HTML document</a> or an <a href=#xml-documents title="XML documents">XML document</a> affects the behavior of
7997
8079
  certain APIs and the case-sensitivity of some selectors.</p>
7998
8080
 
8081
+ <p>Each <code><a href=#document>Document</a></code> object has a <dfn id=reload-override-flag>reload override
8082
+ flag</dfn> that is originally unset. The flag is set by the <code title=dom-document-open><a href=#dom-document-open>document.open()</a></code> and <code title=dom-document-open><a href=#dom-document-open>document.write()</a></code> methods in certain
8083
+ situations. When the flag is set, the <code><a href=#document>Document</a></code> also has
8084
+ a <dfn id=reload-override-buffer>reload override buffer</dfn> which is a Unicode string that
8085
+ is used as the source of the document when it is reloaded.</p>
7999
8086
 
8087
+ <p>When the user agent is to perform <dfn id=an-overridden-reload>an overridden
8088
+ reload</dfn>, it must act as follows:</p>
8000
8089
 
8001
- <h4 id=documents-in-the-dom><span class=secno>3.1.1 </span>Documents in the DOM</h4>
8090
+ <ol><li><p>Let <var title="">source</var> be the value of the
8091
+ <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>'s
8092
+ <a href=#reload-override-buffer>reload override buffer</a>.</li>
8093
+
8094
+ <li><p><a href=#navigate>Navigate</a><!--DONAV reload after d.open()--> the
8095
+ <a href=#browsing-context>browsing context</a> to a resource whose source is <var title="">source</var>. When the <a href=#navigate>navigate</a> algorithm
8096
+ creates a <code><a href=#document>Document</a></code> object for this purpose, set that
8097
+ <code><a href=#document>Document</a></code>'s <a href=#reload-override-flag>reload override flag</a> and set
8098
+ its <a href=#reload-override-buffer>reload override buffer</a> to <var title="">source</var>.</li>
8099
+
8100
+ </ol><h4 id=documents-in-the-dom><span class=secno>3.1.1 </span>Documents in the DOM</h4>
8002
8101
 
8003
8102
  <p>All <code><a href=#document>Document</a></code> objects (in user agents implementing
8004
8103
  this specification) <span class=impl>must</span> also implement
@@ -8048,6 +8147,7 @@ interface <dfn id=htmldocument>HTMLDocument</dfn> {
8048
8147
  NodeList <a href=#dom-document-getelementsbyname title=dom-document-getElementsByName>getElementsByName</a>(in DOMString elementName);
8049
8148
  NodeList <a href=#dom-document-getelementsbyclassname title=dom-document-getElementsByClassName>getElementsByClassName</a>(in DOMString classNames);
8050
8149
  <!--MD--> NodeList <a href=#dom-document-getitems title=dom-document-getItems>getItems</a>(in optional DOMString typeNames); // <a href=#microdata>microdata</a> <!--WARNING: ALSO DUPLICATED IN MICRODATA SECTION--><!--MD-->
8150
+ <!--CSSREF--> readonly attribute <a href=#domelementmap>DOMElementMap</a> <a href=#dom-document-csselementmap title=dom-document-cssElementMap>cssElementMap</a>;<!--CSSREF-->
8051
8151
 
8052
8152
  // <a href=#dynamic-markup-insertion>dynamic markup insertion</a>
8053
8153
  attribute DOMString <a href=#dom-innerhtml title=dom-innerHTML>innerHTML</a>;
@@ -8215,19 +8315,20 @@ interface <dfn id=htmldocument>HTMLDocument</dfn> {
8215
8315
  attribute represents the cookies of the resource from which the
8216
8316
  <code><a href=#document>Document</a></code> was created.</p>
8217
8317
 
8218
- <p>Some <code><a href=#document>Document</a></code> objects are <dfn id=cookie-free-document-object title="cookie-free
8219
- Document object">cookie-free <code>Document</code>
8220
- objects</dfn>. Any <code><a href=#document>Document</a></code> object created by the <code title="">createDocument()</code> or <code title=dom-DOMHTMLImplementation-createHTMLDocument><a href=#dom-domhtmlimplementation-createhtmldocument>createHTMLDocument()</a></code>
8221
- factory methods is a <a href=#cookie-free-document-object>cookie-free <code>Document</code>
8222
- object</a>. Any <code><a href=#document>Document</a></code> whose <a href="#the-document's-address" title="the
8223
- document's address">address</a> does not use a server-based
8224
- naming authority is a <a href=#cookie-free-document-object>cookie-free <code>Document</code>
8225
- object</a>. Other specifications can also define
8226
- <code><a href=#document>Document</a></code> objects as being <a href=#cookie-free-document-object title="cookie-free
8227
- Document object">cookie-free <code>Document</code>
8228
- objects</a>.</p>
8229
-
8230
- <p id=sandboxCookies>On getting, if the document is a
8318
+ <p>A <code><a href=#document>Document</a></code> object that falls into one of the
8319
+ following conditions is a <dfn id=cookie-free-document-object>cookie-free <code>Document</code>
8320
+ object</dfn>:</p>
8321
+
8322
+ <ul><li>A <code><a href=#document>Document</a></code> that has no <a href=#browsing-context>browsing
8323
+ context</a>.</li>
8324
+
8325
+ <li>A <code><a href=#document>Document</a></code> whose <a href="#the-document's-address" title="the document's
8326
+ address">address</a> does not use a server-based naming
8327
+ authority.</li>
8328
+
8329
+ </ul><!--Other specifications can also define <code>Document</code>
8330
+ objects as being <span title="cookie-free Document
8331
+ object">cookie-free <code>Document</code> objects</span>.--><p id=sandboxCookies>On getting, if the document is a
8231
8332
  <a href=#cookie-free-document-object>cookie-free <code>Document</code> object</a>, then the user
8232
8333
  agent must return the empty string. Otherwise, if the
8233
8334
  <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a> is not a
@@ -8720,6 +8821,83 @@ interface <dfn id=htmldocument>HTMLDocument</dfn> {
8720
8821
  > optional tag name.
8721
8822
  -->
8722
8823
 
8824
+ <!--CSSREF-->
8825
+ <hr><dl class=domintro><dt><var title="">element</var> . <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code></dt>
8826
+ <dd>
8827
+
8828
+ <p>Returns a <code><a href=#domelementmap>DOMElementMap</a></code> object for the
8829
+ <code><a href=#document>Document</a></code> representing the current <span title="CSS
8830
+ element reference identifier">CSS element reference
8831
+ identifiers</span>.</p>
8832
+
8833
+ </dd>
8834
+
8835
+ </dl><div class=impl>
8836
+
8837
+ <p>The <dfn id=dom-document-csselementmap title=dom-document-cssElementMap><code>cssElementMap</code></dfn>
8838
+ IDL attribute allows authors to define <span title="CSS element
8839
+ reference identifier">CSS element reference identifiers</span>,
8840
+ which are used in certain CSS features to override the normal <a href=#concept-id title=concept-id>ID</a>-based mapping. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
8841
+
8842
+ <p>When a <code><a href=#document>Document</a></code> is created, it must be associated
8843
+ with an initially-empty <dfn id=css-id-overrides-list>CSS ID overrides list</dfn>, which
8844
+ consists of a list of mappings each of which consists of a string
8845
+ name mapped to an <code><a href=#element>Element</a></code> node.</p>
8846
+
8847
+ <p>Each entry in the <a href=#css-id-overrides-list>CSS ID overrides list</a>, while it is
8848
+ in the list, defines a <span>CSS element reference identifier</span>
8849
+ mapping the given name to the given <code><a href=#element>Element</a></code>. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
8850
+
8851
+ <p>On getting, the <code title=dom-document-cssElementMap><a href=#dom-document-csselementmap>cssElementMap</a></code> IDL
8852
+ attribute must return a <code><a href=#domelementmap>DOMElementMap</a></code> object,
8853
+ associated with the following algorithms, which expose the current
8854
+ mappings:</p>
8855
+
8856
+ <dl><dt>The algorithm for getting the list of name-element mappings</dt>
8857
+
8858
+ <dd>
8859
+
8860
+ <p>Return the <code><a href=#document>Document</a></code>'s <a href=#css-id-overrides-list>CSS ID overrides
8861
+ list</a>, maintaining the order in which the entries were
8862
+ originally added to the list.</p>
8863
+
8864
+ </dd>
8865
+
8866
+ <dt>The algorithm for for mapping a name to a certain element</dt>
8867
+
8868
+ <dd>
8869
+
8870
+ <p>Let <var title="">name</var> be the name passed to the
8871
+ algorithm and <var title="">element</var> be the
8872
+ <code><a href=#element>Element</a></code> passed to the algorithm.</p>
8873
+
8874
+ <p>If <var title="">element</var> is null, run the algorithm for
8875
+ deleting mappings by name, passing it <var title="">name</var>.</p>
8876
+
8877
+ <p>Otherwise, if there is an entry in the <code><a href=#document>Document</a></code>'s
8878
+ <a href=#css-id-overrides-list>CSS ID overrides list</a> whose name is <var title="">name</var>, replace its current value with <var title="">element</var>.</p>
8879
+
8880
+ <p>Otherwise, add a mapping to the <code><a href=#document>Document</a></code>'s
8881
+ <a href=#css-id-overrides-list>CSS ID overrides list</a> whose name is <var title="">name</var> and whose element is <var title="">element</var>.</p>
8882
+
8883
+ </dd>
8884
+
8885
+ <dt>The algorithm for deleting mappings by name</dt>
8886
+
8887
+ <dd>
8888
+
8889
+ <p>If there is an entry in the <code><a href=#document>Document</a></code>'s <a href=#css-id-overrides-list>CSS
8890
+ ID overrides list</a> whose name is the name passed to this
8891
+ algorithm, remove it. This also undefines the <span>CSS element
8892
+ reference identifier</span> for that name. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
8893
+
8894
+ </dd>
8895
+
8896
+ </dl><p>The same object must be returned each time.</p>
8897
+
8898
+ </div>
8899
+ <!--CSSREF-->
8900
+
8723
8901
  <div class=impl>
8724
8902
 
8725
8903
  <hr><p>The <code><a href=#htmldocument>HTMLDocument</a></code> interface <span title="support
@@ -9691,7 +9869,8 @@ Transport Protocol"&gt;HTTP&lt;/abbr&gt; today.&lt;/p&gt;</pre>
9691
9869
  element that is a descendant of the element whose <a href=#the-directionality title="the directionality">directionality</a> is being
9692
9870
  determined and that is either:</p>
9693
9871
 
9694
- <ul class=brief><li>A <code><a href=#script>script</a></code> element.
9872
+ <ul class=brief><li>A <code><a href=#the-bdi-element>bdi</a></code> element.
9873
+ <li>A <code><a href=#script>script</a></code> element.
9695
9874
  <li>A <code><a href=#the-style-element>style</a></code> element.
9696
9875
  <li>An element with a <code title=attr-dir><a href=#the-dir-attribute>dir</a></code> attribute in a defined state.
9697
9876
  </ul></li>
@@ -11151,7 +11330,7 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
11151
11330
  overridden. The following table lists these elements<span class=impl> and their <span>implicit ARIA semantics</span></span>,
11152
11331
  along with the restrictions that apply to those elements. Each
11153
11332
  language feature (element or attribute) in a cell in the first
11154
- column implies, unless otherwise overriden, the ARIA semantic (role,
11333
+ column implies, unless otherwise overridden, the ARIA semantic (role,
11155
11334
  state, or property) given in the cell in the second column of the
11156
11335
  same row, but this semantic may be overridden under the conditions
11157
11336
  listed in the cell in the third column of that row. In addition, any
@@ -11630,6 +11809,10 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
11630
11809
  <li><p>Change the <a href="#document's-character-encoding">document's character encoding</a> to
11631
11810
  UTF-8.</li>
11632
11811
 
11812
+ <li><p>Set the <code><a href=#document>Document</a></code> object's <a href=#reload-override-flag>reload override
11813
+ flag</a> and set the <code><a href=#document>Document</a></code>'s <a href=#reload-override-buffer>reload
11814
+ override buffer</a> to the empty string.</li>
11815
+
11633
11816
  <li><p>Change <a href="#the-document's-address">the document's address</a> to the
11634
11817
  <a href=#entry-script>entry script</a>'s <a href="#script's-document" title="script's
11635
11818
  document">document</a>'s <a href="#the-document's-address" title="the document's
@@ -11823,10 +12006,10 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
11823
12006
 
11824
12007
  <li>
11825
12008
 
11826
- <p>If the <a href=#insertion-point>insertion point</a> is undefined, the <code title=dom-document-open><a href=#dom-document-open>open()</a></code> method must be called
11827
- (with no arguments) on the <code title=Document><a href=#document>document</a></code>
11828
- object. If the user <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be
11829
- unloaded</a>, then these steps must be aborted. Otherwise, the
12009
+ <p>If the <a href=#insertion-point>insertion point</a> is undefined, call the
12010
+ <code title=dom-document-open><a href=#dom-document-open>open()</a></code> method on the <code title=Document><a href=#document>document</a></code> object (with no arguments). If
12011
+ the user <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be
12012
+ unloaded</a>, then abort these steps. Otherwise, the
11830
12013
  <a href=#insertion-point>insertion point</a> will point at just before the end of
11831
12014
  the (empty) <a href=#the-input-stream>input stream</a>.</p>
11832
12015
 
@@ -11834,28 +12017,30 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
11834
12017
 
11835
12018
  <li>
11836
12019
 
11837
- <p>The string consisting of the concatenation of all the arguments
11838
- to the method must be inserted into the <a href=#the-input-stream>input stream</a>
11839
- just before the <a href=#insertion-point>insertion point</a>.</p>
12020
+ <p>Insert the string consisting of the concatenation of all the
12021
+ arguments to the method into the <a href=#the-input-stream>input stream</a> just
12022
+ before the <a href=#insertion-point>insertion point</a>.</p>
11840
12023
 
11841
12024
  </li>
11842
12025
 
11843
12026
  <li>
11844
12027
 
11845
- <p>If there is a <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a>, then the
11846
- method must now return without further processing of the
11847
- <a href=#the-input-stream>input stream</a>.</p>
12028
+ <p>If the <code><a href=#document>Document</a></code> object's <a href=#reload-override-flag>reload override
12029
+ flag</a> is set, then append the string consisting of the
12030
+ concatenation of all the arguments to the method to the
12031
+ <code><a href=#document>Document</a></code>'s <a href=#reload-override-buffer>reload override buffer</a>.</p>
11848
12032
 
11849
12033
  </li>
11850
12034
 
11851
12035
  <li>
11852
12036
 
11853
- <p>Otherwise, the tokenizer must process the characters that were
11854
- inserted, one at a time, processing resulting tokens as they are
11855
- emitted, and stopping when the tokenizer reaches the insertion
11856
- point or when the processing of the tokenizer is aborted by the
11857
- tree construction stage (this can happen if a <code><a href=#script>script</a></code>
11858
- end tag token is emitted by the tokenizer).
12037
+ <p>If there is no <a href=#pending-parsing-blocking-script>pending parsing-blocking script</a>,
12038
+ have the tokenizer process the characters that were inserted, one
12039
+ at a time, processing resulting tokens as they are emitted, and
12040
+ stopping when the tokenizer reaches the insertion point or when
12041
+ the processing of the tokenizer is aborted by the tree
12042
+ construction stage (this can happen if a <code><a href=#script>script</a></code> end
12043
+ tag token is emitted by the tokenizer).
11859
12044
 
11860
12045
  <p class=note>If the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> method was
11861
12046
  called from script executing inline (i.e. executing because the
@@ -11867,7 +12052,7 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
11867
12052
 
11868
12053
  <li>
11869
12054
 
11870
- <p>Finally, the method must return.</p>
12055
+ <p>Finally, return from the method.</p>
11871
12056
 
11872
12057
  </li>
11873
12058
 
@@ -13366,7 +13551,7 @@ gave me some of the songs they wrote. I love sharing my music.&lt;/p&gt;
13366
13551
  <td><code title="">refresh</code>
13367
13552
  <td>
13368
13553
  <tr class=impl><td><a href=#attr-meta-http-equiv-set-cookie title=attr-meta-http-equiv-set-cookie>Cookie setter</a>
13369
- <td><code title="">Set-Cookie</code>
13554
+ <td><code title="">set-cookie</code>
13370
13555
  <td>Non-conforming
13371
13556
  </table><!--
13372
13557
  DATA: According to Henri's validator stats, here are common
@@ -13639,17 +13824,15 @@ people expect to have work and what is necessary.
13639
13824
  <code><a href=#meta>meta</a></code> element's <code><a href=#document>Document</a></code>'s
13640
13825
  <a href=#browsing-context>browsing context</a> did not have the <a href=#sandboxed-automatic-features-browsing-context-flag>sandboxed
13641
13826
  automatic features browsing context flag</a> set when the
13642
- <code><a href=#document>Document</a></code> was created, the user agent <a href=#navigate title=navigate>navigates</a> the <code><a href=#document>Document</a></code>'s
13643
- <a href=#browsing-context>browsing context</a> to <var title="">url</var>, with
13644
- <a href=#replacement-enabled>replacement enabled</a>, and with the
13645
- <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> as the
13646
- <a href=#source-browsing-context>source browsing context</a>.</li>
13827
+ <code><a href=#document>Document</a></code> was created, the user agent <a href=#navigate title=navigate>navigates</a><!--DONAV meta refresh--> the
13828
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> to <var title="">url</var>, with <a href=#replacement-enabled>replacement enabled</a>, and
13829
+ with the <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a>
13830
+ as the <a href=#source-browsing-context>source browsing context</a>.</li>
13647
13831
 
13648
13832
  <li><p>Provide the user with an interface that, when selected,
13649
- <a href=#navigate title=navigate>navigates</a> a <a href=#browsing-context>browsing
13650
- context</a> to <var title="">url</var>, with the document's
13651
- browsing context as the <a href=#source-browsing-context>source browsing
13652
- context</a>.</li>
13833
+ <a href=#navigate title=navigate>navigates</a><!--DONAV meta
13834
+ refresh--> a <a href=#browsing-context>browsing context</a> to <var title="">url</var>, with the document's browsing context as the
13835
+ <a href=#source-browsing-context>source browsing context</a>.</li>
13653
13836
 
13654
13837
  <li><p>Do nothing.</li>
13655
13838
 
@@ -22189,8 +22372,8 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
22189
22372
 
22190
22373
  <p>The <dfn id=attr-iframe-srcdoc title=attr-iframe-srcdoc><code>srcdoc</code></dfn>
22191
22374
  attribute gives the content of the page that the <a href=#nested-browsing-context>nested
22192
- browsing context</a> is to contain. The value of the attribute
22193
- in is <dfn id=an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</dfn>.</p>
22375
+ browsing context</a> is to contain. The value of the attribute is
22376
+ the source of <dfn id=an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</dfn>.</p>
22194
22377
 
22195
22378
  <p>For <code><a href=#the-iframe-element>iframe</a></code> elements in <a href=#html-documents>HTML documents</a>,
22196
22379
  the attribute, if present, must have a value using <a href=#syntax>the HTML
@@ -22231,14 +22414,14 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
22231
22414
  first time.</p>
22232
22415
 
22233
22416
  <p>Whenever an <code><a href=#the-iframe-element>iframe</a></code> element with a <a href=#nested-browsing-context>nested
22234
- browsing context</a> has its <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute set or changed,
22235
- the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
22417
+ browsing context</a> has its <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute set, changed, or
22418
+ removed, the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
22236
22419
  attributes</a>.</p>
22237
22420
 
22238
22421
  <p>Similarly, whenever an <code><a href=#the-iframe-element>iframe</a></code> element with a
22239
22422
  <a href=#nested-browsing-context>nested browsing context</a> but with no <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute specified has its
22240
- <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute set or changed,
22241
- the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
22423
+ <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute set, changed, or
22424
+ removed, the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
22242
22425
  attributes</a>.</p> <!-- It doesn't happen when the base URL is
22243
22426
  changed, though. -->
22244
22427
 
@@ -22249,11 +22432,14 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
22249
22432
  <dl class=switch><dt>If the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute
22250
22433
  is specified</dt>
22251
22434
 
22252
- <dd><p><a href=#navigate>Navigate</a> the element's <a href=#browsing-context>browsing
22253
- context</a> to a resource whose <a href=#content-type>Content-Type</a> is
22254
- <code><a href=#text/html>text/html</a></code>, whose <a href=#url>URL</a> is
22255
- <code><a href=#about:srcdoc>about:srcdoc</a></code>, and whose data consists of the value of
22256
- the attribute.</dd>
22435
+ <dd><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
22436
+ <a href=#browsing-context>browsing context</a> to a resource whose
22437
+ <a href=#content-type>Content-Type</a> is <code><a href=#text/html>text/html</a></code>, whose
22438
+ <a href=#url>URL</a> is <code><a href=#about:srcdoc>about:srcdoc</a></code>, and whose data
22439
+ consists of the value of the attribute. The resulting
22440
+ <code><a href=#document>Document</a></code> must be considered <a href=#an-iframe-srcdoc-document>an
22441
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
22442
+ document</a>.</dd>
22257
22443
 
22258
22444
  <dt>If the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code>
22259
22445
  attribute is specified but the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute is not</dt>
@@ -22277,8 +22463,8 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
22277
22463
  first time, <code><a href=#about:blank>about:blank</a></code> is loaded
22278
22464
  normally.)</li>
22279
22465
 
22280
- <li><p><a href=#navigate>Navigate</a> the element's <a href=#browsing-context>browsing
22281
- context</a> to the resulting <a href=#absolute-url>absolute
22466
+ <li><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
22467
+ <a href=#browsing-context>browsing context</a> to the resulting <a href=#absolute-url>absolute
22282
22468
  URL</a>.</li>
22283
22469
 
22284
22470
  </ol><p><i>Empty</i>: When the steps above require the user agent to
@@ -22378,15 +22564,15 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
22378
22564
  &lt;/footer&gt;
22379
22565
  &lt;article&gt;
22380
22566
  &lt;footer&gt; At &lt;time pubdate&gt;2009-08-21T23:35Z&lt;/time&gt;, &lt;a href="/users/ch"&gt;ch&lt;/a&gt; writes: &lt;/footer&gt;
22381
- &lt;iframe seamless sandbox="allow-same-origin" srcdoc="&lt;p&gt;did you get a cover picture yet?"&gt;&lt;/iframe&gt;
22567
+ &lt;iframe seamless sandbox srcdoc="&lt;p&gt;did you get a cover picture yet?"&gt;&lt;/iframe&gt;
22382
22568
  &lt;/article&gt;
22383
22569
  &lt;article&gt;
22384
22570
  &lt;footer&gt; At &lt;time pubdate&gt;2009-08-21T23:44Z&lt;/time&gt;, &lt;a href="/users/cap"&gt;cap&lt;/a&gt; writes: &lt;/footer&gt;
22385
- &lt;iframe seamless sandbox="allow-same-origin" srcdoc="&lt;p&gt;Yeah, you can see it &lt;a href=&amp;quot;/gallery?mode=cover&amp;amp;amp;page=1&amp;quot;&gt;in my gallery&lt;/a&gt;."&gt;&lt;/iframe&gt;
22571
+ &lt;iframe seamless sandbox srcdoc="&lt;p&gt;Yeah, you can see it &lt;a href=&amp;quot;/gallery?mode=cover&amp;amp;amp;page=1&amp;quot;&gt;in my gallery&lt;/a&gt;."&gt;&lt;/iframe&gt;
22386
22572
  &lt;/article&gt;
22387
22573
  &lt;article&gt;
22388
22574
  &lt;footer&gt; At &lt;time pubdate&gt;2009-08-21T23:58Z&lt;/time&gt;, &lt;a href="/users/ch"&gt;ch&lt;/a&gt; writes: &lt;/footer&gt;
22389
- &lt;iframe seamless sandbox="allow-same-origin" srcdoc="&lt;p&gt;hey that's earl's table.
22575
+ &lt;iframe seamless sandbox srcdoc="&lt;p&gt;hey that's earl's table.
22390
22576
  &lt;p&gt;you should get earl&amp;amp;amp;me on the next cover."&gt;&lt;/iframe&gt;
22391
22577
  &lt;/article&gt;</pre>
22392
22578
 
@@ -22796,8 +22982,10 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
22796
22982
  document, or the <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active
22797
22983
  document</a>'s <em><a href="#the-document's-address" title="the document's
22798
22984
  address">address</a></em> has the <a href=#same-origin>same origin</a> as the
22799
- <code><a href=#the-iframe-element>iframe</a></code> element's document, the following requirements
22800
- apply:</span></p>
22985
+ <code><a href=#the-iframe-element>iframe</a></code> element's document, or the <a href=#browsing-context>browsing
22986
+ context</a>'s <a href=#active-document>active document</a> is <a href=#an-iframe-srcdoc-document>an
22987
+ <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
22988
+ document</a>, the following requirements apply:</span></p>
22801
22989
 
22802
22990
  <div class=impl>
22803
22991
 
@@ -22863,7 +23051,7 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
22863
23051
  <p>User agents should, in general, act as if the <a href=#active-document>active
22864
23052
  document</a> of the <code><a href=#the-iframe-element>iframe</a></code>'s <a href=#nested-browsing-context>nested browsing
22865
23053
  context</a> was part of the document that the
22866
- <code><a href=#the-iframe-element>iframe</a></code> is in.</p>
23054
+ <code><a href=#the-iframe-element>iframe</a></code> is in, if any.</p>
22867
23055
 
22868
23056
  <p class=example>For example if the user agent supports listing
22869
23057
  all the links in a document, links in "seamlessly" nested
@@ -23725,12 +23913,12 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
23725
23913
 
23726
23914
  <p>If the <a href=#url>URL</a> of the given resource is not
23727
23915
  <code><a href=#about:blank>about:blank</a></code>, the element's <a href=#nested-browsing-context>nested browsing
23728
- context</a> must then be <a href=#navigate title=navigate>navigated</a> to that resource, with
23729
- <a href=#replacement-enabled>replacement enabled</a>, and with the
23916
+ context</a> must then be <a href=#navigate title=navigate>navigated</a><!--DONAV object--> to that
23917
+ resource, with <a href=#replacement-enabled>replacement enabled</a>, and with the
23730
23918
  <code><a href=#the-object-element>object</a></code> element's document's <a href=#browsing-context>browsing
23731
- context</a> as the <a href=#source-browsing-context>source browsing
23732
- context</a>. (The <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute of the
23733
- <code><a href=#the-object-element>object</a></code> element doesn't get updated if the
23919
+ context</a> as the <a href=#source-browsing-context>source browsing context</a>.
23920
+ (The <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute of
23921
+ the <code><a href=#the-object-element>object</a></code> element doesn't get updated if the
23734
23922
  browsing context gets further navigated to other
23735
23923
  locations.)</p>
23736
23924
 
@@ -24212,7 +24400,8 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
24212
24400
  <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose
24213
24401
  <a href=#timed-track-cue-active-flag>timed track cue active flag</a> is set and whose
24214
24402
  <a href=#timed-track>timed track</a> is in the <a href=#timed-track-showing title="timed track
24215
- showing">showing</a> mode.</p>
24403
+ showing">showing</a> or <a href=#timed-track-showing-by-default title="timed track showing by
24404
+ default">showing by default</a> modes.</p>
24216
24405
  <!--KEEP-START w3c-html--><!--TT-->
24217
24406
 
24218
24407
  <p>In addition to the above, the user agent may provide messages to
@@ -24725,23 +24914,25 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24725
24914
  <dd><a href=#global-attributes>Global attributes</a></dd>
24726
24915
  <dd><code title=attr-track-kind><a href=#attr-track-kind>kind</a></code></dd>
24727
24916
  <dd><code title=attr-track-src><a href=#attr-track-src>src</a></code></dd>
24728
- <dd><code title=attr-track-charset><a href=#attr-track-charset>charset</a></code></dd>
24729
24917
  <dd><code title=attr-track-srclang><a href=#attr-track-srclang>srclang</a></code></dd>
24730
24918
  <dd><code title=attr-track-label><a href=#attr-track-label>label</a></code></dd>
24919
+ <dd><code title=attr-track-default><a href=#attr-track-default>default</a></code></dd>
24731
24920
  <dt>DOM interface:</dt>
24732
24921
  <dd>
24733
24922
  <pre class=idl>interface <dfn id=htmltrackelement>HTMLTrackElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
24734
24923
  attribute DOMString <a href=#dom-track-kind title=dom-track-kind>kind</a>;
24735
24924
  attribute DOMString <a href=#dom-track-src title=dom-track-src>src</a>;
24736
- attribute DOMString <a href=#dom-track-charset title=dom-track-charset>charset</a>;
24737
24925
  attribute DOMString <a href=#dom-track-srclang title=dom-track-srclang>srclang</a>;
24738
24926
  attribute DOMString <a href=#dom-track-label title=dom-track-label>label</a>;
24927
+ attribute boolean <a href=#dom-track-default title=dom-track-default>default</a>;
24739
24928
 
24740
24929
  readonly attribute <a href=#timedtrack>TimedTrack</a> <a href=#dom-track-track title=dom-track-track>track</a>;
24741
24930
  };</pre>
24742
24931
  </dd>
24743
24932
  </dl><p>The <code><a href=#the-track-element>track</a></code> element allows authors to specify explicit
24744
- external <a href=#timed-track title="timed track">timed tracks</a> for <a href=#media-element title="media element">media elements</a>. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
24933
+ external text-based <a href=#timed-track title="timed track">timed tracks</a>
24934
+ for <a href=#media-element title="media element">media elements</a>. It does not
24935
+ <a href=#represents title=represents>represent</a> anything on its own.</p>
24745
24936
 
24746
24937
  <p>The <dfn id=attr-track-kind title=attr-track-kind><code>kind</code></dfn>
24747
24938
  attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The following
@@ -24754,19 +24945,29 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24754
24945
  <th>Brief description
24755
24946
  <tbody><tr><td><dfn id=attr-track-kind-keyword-subtitles title=attr-track-kind-keyword-subtitles><code>subtitles</code></dfn>
24756
24947
  <td><dfn id=attr-track-kind-subtitles title=attr-track-kind-subtitles>Subtitles</dfn>
24757
- <td>Transcription or translation of the dialogue, suitable for when the sound is available but not understood (e.g. because the user does not understand the language of the <a href=#media-resource>media resource</a>'s soundtrack).
24948
+ <td>
24949
+ <p>Transcription or translation of the dialogue, suitable for when the sound is available but not understood (e.g. because the user does not understand the language of the <a href=#media-resource>media resource</a>'s soundtrack).
24950
+ <p>Displayed over the video.
24758
24951
  <tr><td><dfn id=attr-track-kind-keyword-captions title=attr-track-kind-keyword-captions><code>captions</code></dfn>
24759
24952
  <td><dfn id=attr-track-kind-captions title=attr-track-kind-captions>Captions</dfn>
24760
- <td>Transcription or translation of the dialogue, sound effects, relevant musical cues, and other relevant audio information, suitable for when the soundtrack is unavailable (e.g. because it is muted or because the user is deaf).
24953
+ <td>
24954
+ <p>Transcription or translation of the dialogue, sound effects, relevant musical cues, and other relevant audio information, suitable for when the soundtrack is unavailable (e.g. because it is muted or because the user is deaf).
24955
+ <p>Displayed over the video; labeled as appropriate for the hard-of-hearing.
24761
24956
  <tr><td><dfn id=attr-track-kind-keyword-descriptions title=attr-track-kind-keyword-descriptions><code>descriptions</code></dfn>
24762
24957
  <td><dfn id=attr-track-kind-descriptions title=attr-track-kind-descriptions>Descriptions</dfn>
24763
- <td>Textual descriptions of the video component of the <a href=#media-resource>media resource</a>, intended for audio synthesis when the visual component is unavailable (e.g. because the user is interacting with the application without a screen while driving, or because the user is blind).
24958
+ <td>
24959
+ <p>Textual descriptions of the video component of the <a href=#media-resource>media resource</a>, intended for audio synthesis when the visual component is unavailable (e.g. because the user is interacting with the application without a screen while driving, or because the user is blind).
24960
+ <p>Synthesized as separate audio track.
24764
24961
  <tr><td><dfn id=attr-track-kind-keyword-chapters title=attr-track-kind-keyword-chapters><code>chapters</code></dfn>
24765
24962
  <td><dfn id=attr-track-kind-chapters title=attr-track-kind-chapters>Chapters</dfn>
24766
- <td>Chapter titles, intended to be used for navigating the <a href=#media-resource>media resource</a>.
24963
+ <td>
24964
+ <p>Chapter titles, intended to be used for navigating the <a href=#media-resource>media resource</a>.
24965
+ <p>Displayed as an interactive list in the user agent's interface.
24767
24966
  <tr><td><dfn id=attr-track-kind-keyword-metadata title=attr-track-kind-keyword-metadata><code>metadata</code></dfn>
24768
24967
  <td><dfn id=attr-track-kind-metadata title=attr-track-kind-metadata>Metadata</dfn>
24769
- <td>Tracks intended for use from script.
24968
+ <td>
24969
+ <p>Tracks intended for use from script.
24970
+ <p>Not displayed by the user agent.
24770
24971
  </table><p>The attribute may be omitted. The <i>missing value default</i> is
24771
24972
  the <a href=#attr-track-kind-subtitles title=attr-track-kind-subtitles>subtitles</a> state.</p>
24772
24973
 
@@ -24787,18 +24988,12 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24787
24988
 
24788
24989
  </div>
24789
24990
 
24991
+ <!--TTSRT-->
24790
24992
  <p>If the elements's <a href=#track-url>track URL</a> identifies a
24791
24993
  <a href=#websrt>WebSRT</a> resource, and the element's <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code> attribute is not in the <a href=#attr-track-kind-metadata title=attr-track-kind-metadata>metadata</a> state, then the
24792
24994
  <a href=#websrt>WebSRT</a> file must be a <a href=#websrt-file-using-cue-text>WebSRT file using cue
24793
24995
  text</a>.</p>
24794
-
24795
- <p>If the elements's <a href=#track-url>track URL</a> identifies a
24796
- <a href=#websrt>WebSRT</a> resource, then the <dfn id=attr-track-charset title=attr-track-charset><code>charset</code></dfn> attribute may
24797
- be specified. If the attribute is set, its value must be a valid
24798
- character encoding name, must be an <a href=#ascii-case-insensitive>ASCII
24799
- case-insensitive</a> match for the <a href=#preferred-mime-name>preferred MIME
24800
- name</a> for that encoding, and must match the character encoding
24801
- of the <a href=#websrt>WebSRT</a> file. <a href=#refsIANACHARSET>[IANACHARSET]</a></p>
24996
+ <!--TTSRT-->
24802
24997
 
24803
24998
  <p>The <dfn id=attr-track-srclang title=attr-track-srclang><code>srclang</code></dfn>
24804
24999
  attribute gives the language of the timed track data. The value must
@@ -24841,6 +25036,12 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24841
25036
 
24842
25037
  </div>
24843
25038
 
25039
+ <p>The <dfn id=attr-track-default title=attr-track-default><code>default</code></dfn>
25040
+ attribute, if specified, indicates that the track is to be enabled
25041
+ if the user's preferences do not indicate that another track would
25042
+ be more appropriate. There must not be more than one
25043
+ <code><a href=#the-track-element>track</a></code> element with the same parent node with the <code title=attr-track-default><a href=#attr-track-default>default</a></code> attribute specified.</p>
25044
+
24844
25045
  <dl class=domintro><dt><var title="">track</var> . <code title=dom-track-track><a href=#dom-track-track>track</a></code></dt>
24845
25046
 
24846
25047
  <dd>
@@ -24856,11 +25057,11 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24856
25057
  <a href=#timed-track>timed track</a>'s corresponding <code><a href=#timedtrack>TimedTrack</a></code>
24857
25058
  object.</p>
24858
25059
 
24859
- <p>The <dfn id=dom-track-src title=dom-track-src><code>src</code></dfn>, <dfn id=dom-track-charset title=dom-track-charset><code>charset</code></dfn>, <dfn id=dom-track-srclang title=dom-track-srclang><code>srclang</code></dfn>, and <dfn id=dom-track-label title=dom-track-label><code>label</code></dfn> IDL attributes must
24860
- <a href=#reflect>reflect</a> the respective content attributes of the same
24861
- name. The <dfn id=dom-track-kind title=dom-track-kind><code>kind</code></dfn> IDL
24862
- attributemust <a href=#reflect>reflect</a> the content attribute of the same
24863
- name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
25060
+ <p>The <dfn id=dom-track-src title=dom-track-src><code>src</code></dfn>, <dfn id=dom-track-srclang title=dom-track-srclang><code>srclang</code></dfn>, <dfn id=dom-track-label title=dom-track-label><code>label</code></dfn>, and <dfn id=dom-track-default title=dom-track-default><code>default</code></dfn> IDL attributes
25061
+ must <a href=#reflect>reflect</a> the respective content attributes of the
25062
+ same name. The <dfn id=dom-track-kind title=dom-track-kind><code>kind</code></dfn>
25063
+ IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
25064
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
24864
25065
 
24865
25066
  </div>
24866
25067
 
@@ -26557,14 +26758,15 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
26557
26758
 
26558
26759
  <p>If the <a href=#autoplaying-flag>autoplaying flag</a> is true, and the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute is true, and the
26559
26760
  <a href=#media-element>media element</a> has an <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code> attribute specified,
26560
- and the <a href=#media-element>media element</a> is in a <code><a href=#document>Document</a></code>
26561
- whose <a href=#browsing-context>browsing context</a> did not have the
26562
- <a href=#sandboxed-automatic-features-browsing-context-flag>sandboxed automatic features browsing context flag</a>
26563
- set when the <code><a href=#document>Document</a></code> was created, then the user
26564
- agent may also set the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute to false,
26761
+ and the <a href=#media-element>media element</a>'s <code><a href=#document>Document</a></code>'s
26762
+ <a href=#browsing-context>browsing context</a> did not have the <a href=#sandboxed-automatic-features-browsing-context-flag>sandboxed
26763
+ automatic features browsing context flag</a> set when the
26764
+ <code><a href=#document>Document</a></code> was created, then the user agent may also
26765
+ set the <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute to
26766
+ false, <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
26767
+ event</a> named <code title=event-media-play><a href=#event-media-play>play</a></code>, and
26565
26768
  <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
26566
- named <code title=event-media-play><a href=#event-media-play>play</a></code>, and <a href=#queue-a-task>queue
26567
- a task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-playing><a href=#event-media-playing>playing</a></code>.</p>
26769
+ named <code title=event-media-playing><a href=#event-media-playing>playing</a></code>.</p>
26568
26770
 
26569
26771
  <p class=note>User agents are not required to autoplay, and it
26570
26772
  is suggested that user agents honor user preferences on the
@@ -26976,8 +27178,9 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
26976
27178
 
26977
27179
  <ol><!--KEEP-END w3c-html--><!--TT--><li><p>Let <var title="">current cues</var> be an ordered list of
26978
27180
  <a href=#timed-track-cue title="timed track cue">cues</a>, initialized to contain
26979
- all the <a href=#timed-track-cue title="timed track cue">cues</a> of all the <a href=#timed-track-hidden title="timed track hidden">hidden</a> or <a href=#timed-track-showing title="timed
26980
- track showing">showing</a> <a href=#timed-track title="timed track">timed
27181
+ all the <a href=#timed-track-cue title="timed track cue">cues</a> of all the <a href=#timed-track-hidden title="timed track hidden">hidden</a>, <a href=#timed-track-showing title="timed track
27182
+ showing">showing</a>, or <a href=#timed-track-showing-by-default title="timed track showing by
27183
+ default">showing by default</a> <a href=#timed-track title="timed track">timed
26981
27184
  tracks</a> of the <a href=#media-element>media element</a> (not the <a href=#timed-track-disabled title="timed track disabled">disabled</a> ones) whose <a href=#timed-track-cue-start-time title="timed track cue start time">start times</a> are less than
26982
27185
  or equal to the <a href=#current-playback-position>current playback position</a> and whose
26983
27186
  <a href=#timed-track-cue-end-time title="timed track cue end time">end times</a> are greater
@@ -26986,8 +27189,9 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
26986
27189
 
26987
27190
  <li><p>Let <var title="">other cues</var> be an ordered list of
26988
27191
  <a href=#timed-track-cue title="timed track cue">cues</a>, initialized to contain
26989
- all the <a href=#timed-track-cue title="timed track cue">cues</a> of <a href=#timed-track-hidden title="timed track hidden">hidden</a> and <a href=#timed-track-showing title="timed
26990
- track showing">showing</a> <a href=#timed-track title="timed track">timed
27192
+ all the <a href=#timed-track-cue title="timed track cue">cues</a> of <a href=#timed-track-hidden title="timed track hidden">hidden</a>, <a href=#timed-track-showing title="timed track
27193
+ showing">showing</a>, and <a href=#timed-track-showing-by-default title="timed track showing by
27194
+ default">showing by default</a> <a href=#timed-track title="timed track">timed
26991
27195
  tracks</a> of the <a href=#media-element>media element</a> that are not
26992
27196
  present in <var title="">current cues</var>, also in <a href=#timed-track-cue-order>timed
26993
27197
  track cue order</a>.</li>
@@ -27071,9 +27275,14 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27071
27275
 
27072
27276
  <li><p>Run the <a href=#rules-for-updating-the-timed-track-rendering>rules for updating the timed track
27073
27277
  rendering</a> of each of the <a href=#timed-track title="timed track">timed
27074
- tracks</a> in <var title="">affected tracks</var> that are <a href=#timed-track-showing title="timed track showing">showing</a> (e.g., for <a href=#timed-track title="timed track">timed tracks</a> based on
27075
- <a href=#websrt>WebSRT</a>, the <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating the display of
27076
- WebSRT timed tracks</a>).</li>
27278
+ tracks</a> in <var title="">affected tracks</var> that are <a href=#timed-track-showing title="timed track showing">showing</a> or <a href=#timed-track-showing-by-default title="timed
27279
+ track showing by default">showing by default</a>.
27280
+ <!--TTSRT-->
27281
+ For example, for <a href=#timed-track title="timed track">timed tracks</a>
27282
+ based on <a href=#websrt>WebSRT</a>, the <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating the
27283
+ display of WebSRT timed tracks</a>.
27284
+ <!--TTSRT-->
27285
+ </li>
27077
27286
  <!--KEEP-START w3c-html--><!--TT-->
27078
27287
 
27079
27288
  </ol><!--KEEP-END w3c-html--><!--TT--><p>For the purposes of the algorithm above, a <a href=#timed-track-cue>timed track
@@ -27241,7 +27450,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27241
27450
 
27242
27451
  <!--KEEP-END w3c-html--><!--TT-->
27243
27452
  <!--<div data-component="other Hixie drafts (editor: Ian Hickson)">-->
27244
- <h5 id=timed-tracks><span class=secno>4.8.10.10 </span>Timed tracks</h5>
27453
+ <h5 id=text-timed-tracks><span class=secno>4.8.10.10 </span>Text timed tracks</h5>
27245
27454
 
27246
27455
  <h6 id=timed-track-model><span class=secno>4.8.10.10.1 </span>Timed track model</h6>
27247
27456
 
@@ -27398,8 +27607,9 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27398
27607
  </dd>
27399
27608
 
27400
27609
  <dt><dfn id=timed-track-showing title="timed track showing">Showing</dfn>
27610
+ <dt><dfn id=timed-track-showing-by-default title="timed track showing by default">Showing by default</dfn>
27401
27611
 
27402
- <dd>
27612
+ </dt><dd>
27403
27613
 
27404
27614
  <p>Indicates that the timed track is active. If no attempt has
27405
27615
  yet been made to obtain the track's cues, the user agent will
@@ -27415,6 +27625,13 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27415
27625
  user can navigate to any point in the <a href=#media-resource>media
27416
27626
  resource</a> by selecting a cue.</p>
27417
27627
 
27628
+ <p>The <a href=#timed-track-showing-by-default title="timed track showing by default">showing by
27629
+ default</a> state is used in conjunction with the <code title=attr-track-default><a href=#attr-track-default>default</a></code> attribute on
27630
+ <code><a href=#the-track-element>track</a></code> elements to indicate that the timed track was
27631
+ enabled due to that attribute. This allows the user agent to
27632
+ override the state if a later track is discovered that is more
27633
+ appropriate per the user's preferences.</p>
27634
+
27418
27635
  </dd>
27419
27636
 
27420
27637
  </dl></dd>
@@ -27425,14 +27642,18 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27425
27642
 
27426
27643
  <p>A list of <a href=#timed-track-cue title="timed track cue">timed track
27427
27644
  cues</a>, along with <dfn id=rules-for-updating-the-timed-track-rendering>rules for updating the timed track
27428
- rendering</dfn> (e.g., for <a href=#websrt>WebSRT</a>, the <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules
27429
- for updating the display of WebSRT timed tracks</a>).</p>
27645
+ rendering</dfn>.
27646
+ <!--TTSRT-->
27647
+ For example, for <a href=#websrt>WebSRT</a>, the <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating
27648
+ the display of WebSRT timed tracks</a>.
27649
+ <!--TTSRT-->
27650
+ </p>
27430
27651
 
27431
27652
  <p>The <a href=#timed-track-list-of-cues title="timed track list of cues">list of cues of a
27432
27653
  timed track</a> can change dynamically, either because the
27433
27654
  <a href=#timed-track>timed track</a> has <a href=#timed-track-not-loaded title="timed track not
27434
27655
  loaded">not yet been loaded</a> or is still <a href=#timed-track-loading title="timed
27435
- track loading">loading</a>, or because the the <a href=#timed-track>timed
27656
+ track loading">loading</a>, or because the <a href=#timed-track>timed
27436
27657
  track</a> corresponds to a <code><a href=#mutabletimedtrack>MutableTimedTrack</a></code>
27437
27658
  object, whose API allows individual cues can be added or removed
27438
27659
  dynamically.</p>
@@ -27497,6 +27718,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27497
27718
  consecutive lines displayed to the right of each other<!-- used for
27498
27719
  mongolian -->).</p>
27499
27720
 
27721
+ <!--TTSRT-->
27500
27722
  <p>If the <a href=#timed-track-cue-writing-direction title="timed track cue writing direction">writing
27501
27723
  direction</a> is <a href=#timed-track-cue-horizontal-writing-direction title="timed track cue horizontal
27502
27724
  writing direction">horizontal</a>, then <a href=#timed-track-cue-line-position title="timed
@@ -27511,9 +27733,11 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27511
27733
  video, and <a href=#timed-track-cue-text-position title="timed track cue text position">text
27512
27734
  position</a> and <a href=#timed-track-cue-size title="timed track cue size">size</a>
27513
27735
  percentages are relative to the height of the video.</p>
27736
+ <!--TTSRT-->
27514
27737
 
27515
27738
  </dd>
27516
27739
 
27740
+ <!--TTSRT-->
27517
27741
  <dt><dfn id=timed-track-cue-snap-to-lines-flag title="timed track cue snap-to-lines flag">A snap-to-lines flag</dfn>
27518
27742
  <dd>
27519
27743
  <p>A boolean indicating whether the <a href=#timed-track-cue-line-position title="timed track cue
@@ -27541,6 +27765,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27541
27765
  by the <a href=#timed-track-cue-writing-direction title="timed track cue writing direction">writing
27542
27766
  direction</a>.</p>
27543
27767
  </dd>
27768
+ <!--TTSRT-->
27544
27769
 
27545
27770
  <dt><dfn id=timed-track-cue-size title="timed track cue size">A size</dfn>
27546
27771
  <dd>
@@ -27550,6 +27775,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27550
27775
  track cue writing direction">writing direction</a>.</p>
27551
27776
  </dd>
27552
27777
 
27778
+ <!--TTSRT-->
27553
27779
  <dt><dfn id=timed-track-cue-alignment title="timed track cue alignment">An alignment</dfn>
27554
27780
  <dd>
27555
27781
  <p>An alignment for the text of each line of the cue, either <dfn id=timed-track-cue-start-alignment title="timed track cue start alignment">start alignment</dfn> (the
@@ -27561,11 +27787,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27561
27787
  depends on the Unicode bidirectional algorithm and the <a href=#timed-track-cue-writing-direction title="timed track cue writing direction">writing
27562
27788
  direction</a>. <a href=#refsBIDI>[BIDI]</a></p>
27563
27789
  </dd>
27564
-
27565
- <dt><dfn id=timed-track-cue-voice-identifier title="timed track cue voice identifier">A voice identifier</dfn>
27566
- <dd>
27567
- <p>A string identifying the voice with which the cue is associated.</p>
27568
- </dd>
27790
+ <!--TTSRT-->
27569
27791
 
27570
27792
  <dt><dfn id=timed-track-cue-text title="timed track cue text">The text of the cue</dfn>
27571
27793
  <dd>
@@ -27600,14 +27822,17 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27600
27822
  disabled">disabled</a>; and whenever the <a href=#media-element>media
27601
27823
  element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is changed back to
27602
27824
  <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>. When the
27603
- flag is unset in this way for one or more cues in <a href=#timed-track title="timed track">timed tracks</a> that were <a href=#timed-track-showing title="timed track showing">showing</a> prior to the relevant
27604
- incident, the user agent must, after having unset the flag for all
27605
- the affected cues, apply the <a href=#rules-for-updating-the-timed-track-rendering>rules for updating the timed
27606
- track rendering</a> of those <a href=#timed-track title="timed track">timed
27607
- tracks</a> (e.g., for <a href=#timed-track title="timed track">timed
27608
- tracks</a> based on <a href=#websrt>WebSRT</a>, the <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for
27609
- updating the display of WebSRT timed tracks</a>).</p>
27610
-
27825
+ flag is unset in this way for one or more cues in <a href=#timed-track title="timed track">timed tracks</a> that were <a href=#timed-track-showing title="timed track showing">showing</a> or <a href=#timed-track-showing-by-default title="timed
27826
+ track showing by default">showing by default</a> prior to the
27827
+ relevant incident, the user agent must, after having unset the
27828
+ flag for all the affected cues, apply the <a href=#rules-for-updating-the-timed-track-rendering>rules for updating
27829
+ the timed track rendering</a> of those <a href=#timed-track title="timed
27830
+ track">timed tracks</a>.
27831
+ <!--TTSRT-->
27832
+ For example, for <a href=#timed-track title="timed track">timed tracks</a>
27833
+ based on <a href=#websrt>WebSRT</a>, the <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating the
27834
+ display of WebSRT timed tracks</a>.</p>
27835
+ <!--TTSRT-->
27611
27836
  </dd>
27612
27837
 
27613
27838
  <dt>The <dfn id=timed-track-cue-display-state title="timed track cue display state">display state</dfn>
@@ -27812,6 +28037,30 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27812
28037
  <dd>
27813
28038
  <p>Let the <a href=#timed-track-mode>timed track mode</a> be <a href=#timed-track-showing title="timed
27814
28039
  track showing">showing</a>.</p>
28040
+
28041
+ <p>If there is a <a href=#timed-track>timed track</a> in the <a href=#media-element>media
28042
+ element</a>'s <a href=#list-of-timed-tracks>list of timed tracks</a> whose
28043
+ <a href=#timed-track-mode>timed track mode</a> is <a href=#timed-track-showing-by-default title="timed track showing
28044
+ by default">showing by default</a>, the user agent must
28045
+ furthermore change <em>that</em> <a href=#timed-track>timed track</a>'s
28046
+ <a href=#timed-track-mode>timed track mode</a> to <a href=#timed-track-hidden title="timed track
28047
+ hidden">hidden</a>.</p> <!-- so that we still get events and
28048
+ stuff: we can expect authors to forget that default doesn't mean
28049
+ that it'll always be turned on, and that they'll still rely on
28050
+ events firing even if it doesn't show -->
28051
+
28052
+ </dd>
28053
+
28054
+ <dt>If the <code><a href=#the-track-element>track</a></code> element has a <code title=attr-track-default><a href=#attr-track-default>default</a></code> attribute specified, and
28055
+ there is no other <a href=#timed-track>timed track</a> in the <a href=#media-element>media
28056
+ element</a>'s <a href=#list-of-timed-tracks>list of timed tracks</a> whose
28057
+ <a href=#timed-track-mode>timed track mode</a> is <a href=#timed-track-showing title="timed track
28058
+ showing">showing</a> or <a href=#timed-track-showing-by-default title="timed track
28059
+ showing by default">showing by default</a></dt>
28060
+
28061
+ <dd>
28062
+ <p>Let the <a href=#timed-track-mode>timed track mode</a> be <a href=#timed-track-showing-by-default title="timed
28063
+ track showing by default">showing by default</a>.</p>
27815
28064
  </dd>
27816
28065
 
27817
28066
  <dt>Otherwise</dt>
@@ -27823,18 +28072,20 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27823
28072
 
27824
28073
  </dl><p>When a <a href=#timed-track>timed track</a> corresponding to a
27825
28074
  <code><a href=#the-track-element>track</a></code> element is created with <a href=#timed-track-mode>timed track
27826
- mode</a> set to <a href=#timed-track-hidden title="timed track hidden">hidden</a> or
27827
- <a href=#timed-track-showing title="timed track showing">showing</a>, and when a
27828
- <a href=#timed-track>timed track</a> corresponding to a <code><a href=#the-track-element>track</a></code>
27829
- element is created with <a href=#timed-track-mode>timed track mode</a> set to <a href=#timed-track-disabled title="timed track disabled">disabled</a> and subsequently
27830
- changes its <a href=#timed-track-mode>timed track mode</a> to <a href=#timed-track-hidden title="timed
27831
- track hidden">hidden</a> or <a href=#timed-track-showing title="timed track
27832
- showing">showing</a> for the first time, the user agent must
27833
- immediately and synchronously run the following algorithm. This
27834
- algorithm interacts closely with the <a href=#event-loop>event loop</a>
27835
- mechanism; in particular, it has a <a href=#synchronous-section>synchronous section</a>
27836
- (which is triggered as part of the <a href=#event-loop>event loop</a>
27837
- algorithm). The step in that section is marked with &#8987;.</p>
28075
+ mode</a> set to <a href=#timed-track-hidden title="timed track hidden">hidden</a>,
28076
+ <a href=#timed-track-showing title="timed track showing">showing</a>, or <a href=#timed-track-showing-by-default title="timed track showing by default">showing by default</a>,
28077
+ and when a <a href=#timed-track>timed track</a> corresponding to a
28078
+ <code><a href=#the-track-element>track</a></code> element is created with <a href=#timed-track-mode>timed track
28079
+ mode</a> set to <a href=#timed-track-disabled title="timed track
28080
+ disabled">disabled</a> and subsequently changes its <a href=#timed-track-mode>timed
28081
+ track mode</a> to <a href=#timed-track-hidden title="timed track hidden">hidden</a>,
28082
+ <a href=#timed-track-showing title="timed track showing">showing</a>, or <a href=#timed-track-showing-by-default title="timed track showing by default">showing by default</a> for
28083
+ the first time, the user agent must immediately and synchronously
28084
+ run the following algorithm. This algorithm interacts closely with
28085
+ the <a href=#event-loop>event loop</a> mechanism; in particular, it has a
28086
+ <a href=#synchronous-section>synchronous section</a> (which is triggered as part of the
28087
+ <a href=#event-loop>event loop</a> algorithm). The step in that section is
28088
+ marked with &#8987;.</p>
27838
28089
 
27839
28090
  <ol><li><p>Set the <a href=#timed-track-readiness-state>timed track readiness state</a> to <a href=#timed-track-loading title="timed track loading">loading</a>.</li>
27840
28091
 
@@ -27867,13 +28118,12 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27867
28118
  unsupported (this causes the load to fail, as described below). If
27868
28119
  a type is obtained, and represents a supported timed track format,
27869
28120
  then the resource's data must be passed to the appropriate parser
27870
- (e.g. the <a href=#websrt-parser>WebSRT parser</a> if the <a href=#content-type title=Content-Type>Content Type metadata</a> is
27871
- <code><a href=#text/srt>text/srt</a></code>) as it is received, with the <a href=#timed-track-list-of-cues>timed
27872
- track list of cues</a> being used for that parser's output. If
27873
- the <code><a href=#the-track-element>track</a></code> element has a <code title=attr-track-charset><a href=#attr-track-charset>charset</a></code> attribute that specifies
27874
- a supported character encoding, then that encoding must be given
27875
- to the parser as a character encoding override. Otherwise the
27876
- parser must use its default character encoding behavior.</p>
28121
+ <!--TTSRT-->
28122
+ (e.g. the <a href=#websrt-parser>WebSRT parser</a> if the <a href=#content-type title=Content-Type>Content Type metadata</a> is
28123
+ <code><a href=#text/srt>text/srt</a></code>)
28124
+ <!--TTSRT-->
28125
+ as it is received, with the <a href=#timed-track-list-of-cues>timed
28126
+ track list of cues</a> being used for that parser's output.</p>
27877
28127
 
27878
28128
  <p>If the <a href=#fetch title=fetch>fetching algorithm</a> fails for
27879
28129
  any reason (network error, the server returns an error code, a
@@ -27902,12 +28152,14 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27902
28152
  <ul><li>the <a href=#track-url>track URL</a> changes so that it is no longer
27903
28153
  equal to <var title="">URL</var>, while the <a href=#timed-track-mode>timed track
27904
28154
  mode</a> is set to <a href=#timed-track-hidden title="timed track
27905
- hidden">hidden</a> or <a href=#timed-track-showing title="timed track
27906
- showing">showing</a>; or</li>
28155
+ hidden">hidden</a>, <a href=#timed-track-showing title="timed track
28156
+ showing">showing</a>, or <a href=#timed-track-showing-by-default title="timed track showing by
28157
+ default">showing by default</a>; or</li>
27907
28158
 
27908
- <li>the <a href=#timed-track-mode>timed track mode</a> changes to <a href=#timed-track-hidden title="timed track hidden">hidden</a> or <a href=#timed-track-showing title="timed
27909
- track showing">showing</a>, while the <a href=#track-url>track URL</a> is
27910
- not equal to <var title="">URL</var></li>
28159
+ <li>the <a href=#timed-track-mode>timed track mode</a> changes to <a href=#timed-track-hidden title="timed track hidden">hidden</a>, <a href=#timed-track-showing title="timed
28160
+ track showing">showing</a>, or <a href=#timed-track-showing-by-default title="timed track
28161
+ showing by default">showing by default</a>, while the
28162
+ <a href=#track-url>track URL</a> is not equal to <var title="">URL</var></li>
27911
28163
 
27912
28164
  </ul><p>...then the user agent must run the following steps:</p>
27913
28165
 
@@ -27932,8 +28184,9 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27932
28184
  <li><p><i>Monitoring</i>: Wait until the <a href=#track-url>track URL</a> is
27933
28185
  no longer equal to <var title="">URL</var>, at the same time as the
27934
28186
  <a href=#timed-track-mode>timed track mode</a> is set to <a href=#timed-track-hidden title="timed track
27935
- hidden">hidden</a> or <a href=#timed-track-showing title="timed track
27936
- showing">showing</a>.</li>
28187
+ hidden">hidden</a>, <a href=#timed-track-showing title="timed track
28188
+ showing">showing</a>, or <a href=#timed-track-showing-by-default title="timed track showing by
28189
+ default">showing by default</a>.</li>
27937
28190
 
27938
28191
  <li><p>Wait until the <a href=#timed-track-readiness-state>timed track readiness state</a> is
27939
28192
  no longer set to <a href=#timed-track-loading title="timed track
@@ -27958,6 +28211,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27958
28211
  </ol></div>
27959
28212
 
27960
28213
 
28214
+ <!--TTSRT-->
27961
28215
  <div class=impl>
27962
28216
 
27963
28217
  <h6 id=guidelines-for-exposing-cues-in-various-formats-as-timed-track-cues><span class=secno>4.8.10.10.4 </span><dfn>Guidelines for exposing cues</dfn> in various formats as
@@ -28008,23 +28262,15 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
28008
28262
  <dt>The <a href=#timed-track-cue-size>timed track cue size</a>
28009
28263
  <dt>The <a href=#timed-track-cue-alignment>timed track cue alignment</a>
28010
28264
  </dt></dt></dt><dd>
28011
- <p>If the the format uses a rendering and positioning model for
28265
+ <p>If the format uses a rendering and positioning model for
28012
28266
  cues that can be largely simulated using the <a href=#websrt-cue-text-rendering-rules>WebSRT cue text
28013
28267
  rendering rules</a>, then these should be set to the values
28014
28268
  that would give the same effect for <a href=#websrt>WebSRT</a>
28015
28269
  cues. Otherwise, they should be set to zero.</p>
28016
28270
  </dd>
28017
28271
 
28018
- <dt>The <a href=#timed-track-cue-voice-identifier>timed track cue voice identifier</a>
28019
- <dd>
28020
- <p>Should be set to the empty string if the format has no
28021
- obvious analogue to cue voices. The <a href=#timed-track-cue-voice-identifier>timed track cue voice
28022
- identifier</a> may be set to strings that cannot be expressed
28023
- using <a href=#websrt>WebSRT</a>, if the format supports voices that do
28024
- not correspond to the voices used by WebSRT.</p>
28025
- </dd>
28026
-
28027
28272
  </dl></div>
28273
+ <!--TTSRT-->
28028
28274
 
28029
28275
 
28030
28276
  <h6 id=timed-track-api><span class=secno>4.8.10.10.5 </span>Timed track API</h6>
@@ -28129,13 +28375,13 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
28129
28375
  <dd>
28130
28376
  <p>The <a href=#timed-track-disabled>timed track disabled</a> mode.</p>
28131
28377
  </dd>
28132
- <dt><code><a href=#timedtrack>TimedTrack</a></code> . <code title=dom-TimedTrack-HIDDEN><a href=#dom-timedtrack-hidden>HIDDEN</a></code> (0)</dt>
28378
+ <dt><code><a href=#timedtrack>TimedTrack</a></code> . <code title=dom-TimedTrack-HIDDEN><a href=#dom-timedtrack-hidden>HIDDEN</a></code> (1)</dt>
28133
28379
  <dd>
28134
28380
  <p>The <a href=#timed-track-hidden>timed track hidden</a> mode.</p>
28135
28381
  </dd>
28136
- <dt><code><a href=#timedtrack>TimedTrack</a></code> . <code title=dom-TimedTrack-SHOWING><a href=#dom-timedtrack-showing>SHOWING</a></code> (0)</dt>
28382
+ <dt><code><a href=#timedtrack>TimedTrack</a></code> . <code title=dom-TimedTrack-SHOWING><a href=#dom-timedtrack-showing>SHOWING</a></code> (2)</dt>
28137
28383
  <dd>
28138
- <p>The <a href=#timed-track-showing>timed track showing</a> mode.</p>
28384
+ <p>The <a href=#timed-track-showing>timed track showing</a> and <a href=#timed-track-showing-by-default title="timed track showing by default">showing by default</a> modes.</p>
28139
28385
  </dd>
28140
28386
  </dl><p>Can be set, to change the mode.</p>
28141
28387
  </dd>
@@ -28192,7 +28438,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
28192
28438
  <dt><dfn id=dom-timedtrack-hidden title=dom-TimedTrack-HIDDEN><code>HIDDEN</code></dfn> (numeric value 1)</dt>
28193
28439
  <dd>The <a href=#timed-track-hidden>timed track hidden</a> mode.</dd>
28194
28440
  <dt><dfn id=dom-timedtrack-showing title=dom-TimedTrack-SHOWING><code>SHOWING</code></dfn> (numeric value 2)</dt>
28195
- <dd>The <a href=#timed-track-showing>timed track showing</a> mode.</dd>
28441
+ <dd>The <a href=#timed-track-showing>timed track showing</a> and <a href=#timed-track-showing-by-default title="timed track showing by default">showing by default</a> modes.</dd>
28196
28442
  </dl><p>On setting, if the new value is not either 0, 1, or 2, the user
28197
28443
  agent must throw an <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code>
28198
28444
  exception. Otherwise, if the new value isn't equal to what the
@@ -28227,6 +28473,12 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
28227
28473
  track</a> that the <code><a href=#timedtrack>TimedTrack</a></code> object represents to
28228
28474
  the <a href=#timed-track-showing>timed track showing</a> mode.</p>
28229
28475
 
28476
+ <p class=note>If the mode had been <a href=#timed-track-showing-by-default title="timed track
28477
+ showing by default">showing by default</a>, this will change it
28478
+ to <a href=#timed-track-showing title="timed track showing">showing</a>, even though
28479
+ the value of <code title=dom-TimedTrack-mode><a href=#dom-timedtrack-mode>mode</a></code> would
28480
+ appear not to change.</p>
28481
+
28230
28482
  </dd>
28231
28483
 
28232
28484
  </dl><p>If the <a href=#timed-track-mode>timed track mode</a> of the <a href=#timed-track>timed
@@ -28328,10 +28580,13 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
28328
28580
  <a href=#timed-track-readiness-state>timed track readiness state</a> to the <a href=#timed-track-loaded>timed track
28329
28581
  loaded</a> state, its <a href=#timed-track-mode>timed track mode</a> to the
28330
28582
  <a href=#timed-track-hidden>timed track hidden</a> mode, and its <a href=#timed-track-list-of-cues>timed track
28331
- list of cues</a> to an empty list, associated with the
28583
+ list of cues</a> to an empty list.
28584
+ <!--TTSRT-->
28585
+ Associate the <a href=#timed-track-list-of-cues>timed track list of cues</a> with the
28332
28586
  <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating the display of WebSRT timed tracks</a>
28333
- as its <a href=#rules-for-updating-the-timed-track-rendering>rules for updating the timed track
28334
- rendering</a>.</p>
28587
+ as its <a href=#rules-for-updating-the-timed-track-rendering>rules for updating the timed track rendering</a>.
28588
+ <!--TTSRT-->
28589
+ </p>
28335
28590
 
28336
28591
  </li>
28337
28592
 
@@ -28479,7 +28734,10 @@ window.onbeforeunload = function () {
28479
28734
 
28480
28735
  </div>
28481
28736
 
28482
- <hr><pre class=idl>[<a href=#dom-timedtrackcue title=dom-TimedTrackCue>Constructor</a>(in DOMString id, in double startTime, in double endTime, in DOMString text, in optional DOMString settings, in optional DOMString voice, in optional boolean pauseOnExit)]
28737
+ <hr><pre class=idl>
28738
+ <!--TTSRT-->
28739
+ [<a href=#dom-timedtrackcue title=dom-TimedTrackCue>Constructor</a>(in DOMString id, in double startTime, in double endTime, in DOMString text, in optional DOMString settings, in optional boolean pauseOnExit)]
28740
+ <!--TTSRT-->
28483
28741
  interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28484
28742
  readonly attribute <a href=#timedtrack>TimedTrack</a> <a href=#dom-timedtrackcue-track title=dom-TimedTrackCue-track>track</a>;
28485
28743
  readonly attribute DOMString <a href=#dom-timedtrackcue-id title=dom-TimedTrackCue-id>id</a>;
@@ -28488,14 +28746,15 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28488
28746
  readonly attribute double <a href=#dom-timedtrackcue-endtime title=dom-TimedTrackCue-endTime>endTime</a>;
28489
28747
  readonly attribute boolean <a href=#dom-timedtrackcue-pauseonexit title=dom-TimedTrackCue-pauseOnExit>pauseOnExit</a>;
28490
28748
 
28749
+ <!--TTSRT-->
28491
28750
  readonly attribute DOMString <a href=#dom-timedtrackcue-direction title=dom-TimedTrackCue-direction>direction</a>;
28492
28751
  readonly attribute boolean <a href=#dom-timedtrackcue-snaptolines title=dom-TimedTrackCue-snapToLines>snapToLines</a>;
28493
28752
  readonly attribute long <a href=#dom-timedtrackcue-lineposition title=dom-TimedTrackCue-linePosition>linePosition</a>;
28494
28753
  readonly attribute long <a href=#dom-timedtrackcue-textposition title=dom-TimedTrackCue-textPosition>textPosition</a>;
28495
28754
  readonly attribute long <a href=#dom-timedtrackcue-size title=dom-TimedTrackCue-size>size</a>;
28496
28755
  readonly attribute DOMString <a href=#dom-timedtrackcue-alignment title=dom-TimedTrackCue-alignment>alignment</a>;
28756
+ <!--TTSRT-->
28497
28757
 
28498
- readonly attribute DOMString <a href=#dom-timedtrackcue-voice title=dom-TimedTrackCue-voice>voice</a>;
28499
28758
  DOMString <a href=#dom-timedtrackcue-getcueassource() title=dom-TimedTrackCue-getCueAsSource()>getCueAsSource</a>();
28500
28759
  <a href=#documentfragment>DocumentFragment</a> <a href=#dom-timedtrackcue-getcueashtml() title=dom-TimedTrackCue-getCueAsHTML()>getCueAsHTML</a>();
28501
28760
 
@@ -28503,7 +28762,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28503
28762
  readonly attribute <a href=#function>Function</a> <a href=#handler-timedtrackcue-onexit title=handler-TimedTrackCue-onexit>onexit</a>;
28504
28763
  };</pre>
28505
28764
 
28506
- <dl class=domintro><dt><var title="">cue</var> = new <code title=dom-TimedTrackCue><a href=#dom-timedtrackcue>TimedTrackCue</a></code>( <var title="">id</var>, <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var> [, <var title="">settings</var> [, <var title="">voice</var> [, <var title="">pauseOnExit</var> ] ] ] )</dt>
28765
+ <dl class=domintro><!--TTSRT--><dt><var title="">cue</var> = new <code title=dom-TimedTrackCue><a href=#dom-timedtrackcue>TimedTrackCue</a></code>( <var title="">id</var>, <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var> [, <var title="">settings</var> [, <var title="">pauseOnExit</var> ] ] )</dt>
28507
28766
  <dd>
28508
28767
  <p>Returns a new <code><a href=#timedtrackcue>TimedTrackCue</a></code> object, for use with the <code title=dom-MutableTimedTrack-addCue><a href=#dom-mutabletimedtrack-addcue>addCue()</a></code> method.</p>
28509
28768
  <p>The <var title="">id</var> argument sets the <a href=#timed-track-cue-identifier>timed track cue identifier</a>.</p>
@@ -28511,9 +28770,9 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28511
28770
  <p>The <var title="">endTime</var> argument sets the <a href=#timed-track-cue-end-time>timed track cue end time</a>.</p>
28512
28771
  <p>The <var title="">text</var> argument sets the <a href=#timed-track-cue-text>timed track cue text</a>.</p>
28513
28772
  <p>The <var title="">settings</var> argument is a string in the format of <a href=#websrt-cue-settings>WebSRT cue settings</a>. If omitted, the empty string is assumed.</p>
28514
- <p>The <var title="">voice</var> argument sets the <a href=#timed-track-cue-voice-identifier>timed track cue voice identifier</a>. If omitted, the empty string is assumed.</p>
28515
28773
  <p>The <var title="">pauseOnExit</var> argument sets the <a href=#timed-track-cue-pause-on-exit-flag>timed track cue pause-on-exit flag</a>. If omitted, false is assumed.</p>
28516
28774
  </dd>
28775
+ <!--TTSRT-->
28517
28776
 
28518
28777
  <dt><var title="">cue</var> . <a href=#dom-timedtrackcue-track title=dom-TimedTrackCue-track>track</a></dt>
28519
28778
  <dd>
@@ -28542,6 +28801,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28542
28801
  <p>Returns true if the <a href=#timed-track-cue-pause-on-exit-flag>timed track cue pause-on-exit flag</a> is set, false otherwise.</p>
28543
28802
  </dd>
28544
28803
 
28804
+ <!--TTSRT-->
28545
28805
  <dt><var title="">cue</var> . <a href=#dom-timedtrackcue-direction title=dom-TimedTrackCue-direction>direction</a></dt>
28546
28806
  <dd>
28547
28807
  <p>Returns a string representing the <a href=#timed-track-cue-writing-direction>timed track cue writing direction</a>, as follows:</p>
@@ -28585,11 +28845,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28585
28845
  <dt>If it is <a href=#timed-track-cue-end-alignment title="timed track cue end alignment">end alignment</a></dt>
28586
28846
  <dd><p>The string "<code title="">end</code>".</dd>
28587
28847
  </dl></dd>
28588
-
28589
- <dt><var title="">cue</var> . <a href=#dom-timedtrackcue-voice title=dom-TimedTrackCue-voice>voice</a></dt>
28590
- <dd>
28591
- <p>Returns the <a href=#timed-track-cue-voice-identifier>timed track cue voice identifier</a>.</p>
28592
- </dd>
28848
+ <!--TTSRT-->
28593
28849
 
28594
28850
  <dt><var title="">source</var> = <var title="">cue</var> . <span title=dom-TimedTrackCue-getCueAsSource>getCueAsSource</span>()</dt>
28595
28851
  <dd>
@@ -28603,7 +28859,8 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28603
28859
 
28604
28860
  </dl><div class=impl>
28605
28861
 
28606
- <p>The <dfn id=dom-timedtrackcue title=dom-TimedTrackCue><code>TimedTrackCue(<var title="">id</var>, <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var>, <var title="">settings</var>, <var title="">voice</var>, <var title="">pauseOnExit</var>)</code></dfn> constructor, when invoked,
28862
+ <!--TTSRT-->
28863
+ <p>The <dfn id=dom-timedtrackcue title=dom-TimedTrackCue><code>TimedTrackCue(<var title="">id</var>, <var title="">startTime</var>, <var title="">endTime</var>, <var title="">text</var>, <var title="">settings</var>, <var title="">pauseOnExit</var>)</code></dfn> constructor, when invoked,
28607
28864
  must run the following steps:</p>
28608
28865
 
28609
28866
  <ol><li><p>Create a new <a href=#timed-track-cue>timed track cue</a> that is not
@@ -28625,10 +28882,6 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28625
28882
  pause-on-exit flag</a> be true if the <var title="">pauseOnExit</var> is present and true. Otherwise, let it
28626
28883
  be false.</li>
28627
28884
 
28628
- <li><p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
28629
- identifier</a> be the value of the <var title="">voice</var>
28630
- argument, if it is present, or the empty string otherwise.</li>
28631
-
28632
28885
  <li><p>Let <var title="">cue</var>'s <a href=#timed-track-cue-text>timed track cue
28633
28886
  text</a> be the value of the <var title="">text</var> argument,
28634
28887
  and let the rules for its interpretation be the <a href=#websrt-cue-text-parsing-rules>WebSRT cue
@@ -28670,7 +28923,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28670
28923
  <li><p>Return the <code><a href=#timedtrackcue>TimedTrackCue</a></code> object representing
28671
28924
  <var title="">cue</var>.</li>
28672
28925
 
28673
- </ol><p>The <dfn id=dom-timedtrackcue-track title=dom-TimedTrackCue-track><code>track</code></dfn>
28926
+ </ol><!--TTSRT--><p>The <dfn id=dom-timedtrackcue-track title=dom-TimedTrackCue-track><code>track</code></dfn>
28674
28927
  attribute must return the <code><a href=#timedtrack>TimedTrack</a></code> object of the
28675
28928
  <a href=#timed-track>timed track</a> with which the <a href=#timed-track-cue>timed track cue</a>
28676
28929
  that the <code><a href=#timedtrackcue>TimedTrackCue</a></code> object represents is associated,
@@ -28702,6 +28955,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28702
28955
  direction</a> of the <a href=#timed-track-cue>timed track cue</a> that the
28703
28956
  <code><a href=#timedtrackcue>TimedTrackCue</a></code> object represents.</p>
28704
28957
 
28958
+ <!--TTSRT-->
28705
28959
  <p>The <dfn id=dom-timedtrackcue-snaptolines title=dom-TimedTrackCue-snapToLines><code>snapToLines</code></dfn>
28706
28960
  attribute must return true if the <a href=#timed-track-cue-snap-to-lines-flag>timed track cue
28707
28961
  snap-to-lines flag</a> of the <a href=#timed-track-cue>timed track cue</a> that
@@ -28732,9 +28986,10 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28732
28986
  with.</li>
28733
28987
 
28734
28988
  <li><p>Let <var title="">n</var> be the number of <a href=#timed-track title="timed track">timed tracks</a> whose <a href=#timed-track-mode>timed track
28735
- mode</a> is <a href=#timed-track-showing title="timed track showing">showing</a> and
28736
- that are in the <a href=#media-element>media element</a>'s <a href=#list-of-timed-tracks>list of timed
28737
- tracks</a> before <var title="">track</var>.</li>
28989
+ mode</a> is <a href=#timed-track-showing title="timed track showing">showing</a> or
28990
+ <a href=#timed-track-showing-by-default title="timed track showing by default">showing by
28991
+ default</a> and that are in the <a href=#media-element>media element</a>'s
28992
+ <a href=#list-of-timed-tracks>list of timed tracks</a> before <var title="">track</var>.</li>
28738
28993
 
28739
28994
  <li><p>Return <var title="">n</var>.</li>
28740
28995
 
@@ -28752,11 +29007,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28752
29007
  attribute must return the <a href=#timed-track-cue-alignment>timed track cue alignment</a> of
28753
29008
  the <a href=#timed-track-cue>timed track cue</a> that the <code><a href=#timedtrackcue>TimedTrackCue</a></code>
28754
29009
  object represents.</p>
28755
-
28756
- <p>The <dfn id=dom-timedtrackcue-voice title=dom-TimedTrackCue-voice><code>voice</code></dfn>
28757
- attribute must return the <a href=#timed-track-cue-voice-identifier>timed track cue voice
28758
- identifier</a> of the <a href=#timed-track-cue>timed track cue</a> that the
28759
- <code><a href=#timedtrackcue>TimedTrackCue</a></code> object represents.</p>
29010
+ <!--TTSRT-->
28760
29011
 
28761
29012
  <p>The <dfn id=dom-timedtrackcue-getcueassource() title=dom-TimedTrackCue-getCueAsSource()><code>getCueAsSource()</code></dfn>
28762
29013
  method must return the raw <a href=#timed-track-cue-text>timed track cue text</a>.</p>
@@ -28765,9 +29016,13 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28765
29016
  method must convert the <a href=#timed-track-cue-text>timed track cue text</a> to a
28766
29017
  <code><a href=#documentfragment>DocumentFragment</a></code> for the <a href=#media-element>media element</a>'s
28767
29018
  <code><a href=#document>Document</a></code>, using the appropriate rules for doing
28768
- so. (For example, for <a href=#websrt>WebSRT</a>, those rules are the
29019
+ so.
29020
+ <!--TTSRT-->
29021
+ For example, for <a href=#websrt>WebSRT</a>, those rules are the
28769
29022
  <a href=#websrt-cue-text-parsing-rules>WebSRT cue text parsing rules</a> and the <a href=#websrt-cue-text-dom-construction-rules>WebSRT cue
28770
- text DOM construction rules</a>.)</p>
29023
+ text DOM construction rules</a>.
29024
+ <!--TTSRT-->
29025
+ </p>
28771
29026
 
28772
29027
  </div>
28773
29028
 
@@ -28823,7 +29078,6 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28823
29078
  <li><a href=#websrt-cue-timings>WebSRT cue timings</a>.</li>
28824
29079
  <li>Optionally, one or more U+0020 SPACE characters or U+0009 CHARACTER TABULATION (tab) characters followed by <a href=#websrt-cue-settings>WebSRT cue settings</a>.</li>
28825
29080
  <li>A <a href=#websrt-line-terminator>WebSRT line terminator</a>.</li>
28826
- <li>Optionally, a <a href=#websrt-voice-declaration>WebSRT voice declaration</a> followed by zero or more U+0020 SPACE characters or U+0009 CHARACTER TABULATION (tab) characters.</li>
28827
29081
  <li>The <dfn id=cue-payload>cue payload</dfn>: either <a href=#websrt-cue-text>WebSRT cue text</a> or <a href=#websrt-metadata-text>WebSRT metadata text</a>.</li>
28828
29082
  </ol><p><a href=#websrt-cue-text>WebSRT cue text</a> is syntactically a subset of
28829
29083
  <a href=#websrt-metadata-text>WebSRT metadata text</a>. Conformance checkers, when
@@ -28975,22 +29229,6 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28975
29229
  <ol><li>A U+0041 LATIN CAPITAL LETTER A character.</li>
28976
29230
  <li>A U+003A COLON character (:).</li>
28977
29231
  <li>One of the following strings: "<code title="">start</code>", "<code title="">middle</code>", "<code title="">end</code>"</li>
28978
- </ol><p>A <dfn id=websrt-voice-declaration>WebSRT voice declaration</dfn> consists of the following
28979
- components, in the order given:</p>
28980
-
28981
- <ol><li>A U+003C LESS-THAN SIGN character (&lt;).</li>
28982
- <li>One of the following:
28983
- <ul class=brief><li>One character in the range U+0031 DIGIT ONE (1) to U+0039
28984
- DIGIT NINE (9), followed by zero or more characters in the range
28985
- U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
28986
- <li>The string "<dfn id=timed-track-cue-narrator-voice title="timed track cue narrator voice"><code>narrator</code></dfn>".</li>
28987
- <li>The string "<dfn id=timed-track-cue-music-voice title="timed track cue music voice"><code>music</code></dfn>".</li>
28988
- <li>The string "<dfn id=timed-track-cue-lyric-voice title="timed track cue lyric voice"><code>lyric</code></dfn>".</li>
28989
- <li>The string "<dfn id=timed-track-cue-sound-voice title="timed track cue sound voice"><code>sound</code></dfn>".</li> <!-- for audio fx descriptions -->
28990
- <li>The string "<dfn id=timed-track-cue-comment-voice title="timed track cue comment voice"><code>comment</code></dfn>".</li> <!-- for annotations -->
28991
- <li>The string "<dfn id=timed-track-cue-credit-voice title="timed track cue credit voice"><code>credit</code></dfn>".</li>
28992
- </ul></li>
28993
- <li>A U+003E GREATER-THAN SIGN character (&gt;).</li>
28994
29232
  </ol><p><dfn id=websrt-metadata-text>WebSRT metadata text</dfn> consists of any sequence of one
28995
29233
  or more characters other than U+000A LINE FEED (LF) characters and
28996
29234
  U+000D CARRIAGE RETURN (CR) characters, each optionally separated
@@ -28999,93 +29237,171 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28999
29237
  does not start or end with a <a href=#websrt-line-terminator>WebSRT line
29000
29238
  terminator</a>.)</p>
29001
29239
 
29002
- <p><dfn id=websrt-cue-text>WebSRT cue text</dfn> consists of one or more <a href=#websrt-cue-components>WebSRT
29240
+ <p><dfn id=websrt-cue-text>WebSRT cue text</dfn> consists of zero or more <a href=#websrt-cue-components>WebSRT
29003
29241
  cue components</a>, in any order, each optionally separated from
29004
29242
  the next by a <a href=#websrt-line-terminator>WebSRT line terminator</a>.</p>
29005
29243
 
29006
29244
  <p>The <dfn id=websrt-cue-components>WebSRT cue components</dfn> are:</p>
29007
29245
 
29008
- <ul><li>A <a href=#websrt-cue-text-span>WebSRT cue text span</a>, representing the text of the cue.</li>
29009
- <li>A <a href=#websrt-cue-amp-escape>WebSRT cue amp escape</a>, representing a "&amp;" character in the text of the cue.</li>
29010
- <li>A <a href=#websrt-cue-lt-escape>WebSRT cue lt escape</a>, representing a "&lt;" character in the text of the cue.</li>
29011
- <li>A <a href=#websrt-cue-timestamp>WebSRT cue timestamp</a>.</li>
29246
+ <ul><li>A <a href=#websrt-cue-class-span>WebSRT cue class span</a>.</li>
29012
29247
  <li>A <a href=#websrt-cue-italics-span>WebSRT cue italics span</a>.</li>
29013
29248
  <li>A <a href=#websrt-cue-bold-span>WebSRT cue bold span</a>.</li>
29014
29249
  <li>A <a href=#websrt-cue-ruby-span>WebSRT cue ruby span</a>.</li>
29250
+ <li>A <a href=#websrt-cue-voice-span>WebSRT cue voice span</a>.</li>
29251
+
29252
+ <li>A <a href=#websrt-cue-timestamp>WebSRT cue timestamp</a>.</li>
29253
+
29254
+ <li>A <a href=#websrt-cue-text-span>WebSRT cue text span</a>, representing the text of the cue.</li>
29255
+
29256
+ <li>A <a href=#websrt-cue-amp-escape>WebSRT cue amp escape</a>, representing a "&amp;" character in the text of the cue.</li>
29257
+ <li>A <a href=#websrt-cue-lt-escape>WebSRT cue lt escape</a>, representing a "&lt;" character in the text of the cue.</li>
29258
+ <li>A <a href=#websrt-cue-gt-escape>WebSRT cue gt escape</a>, representing a "&gt;" character in the text of the cue.</li>
29259
+
29015
29260
  </ul><p><dfn id=websrt-cue-internal-text>WebSRT cue internal text</dfn> consists of an optional
29016
29261
  <a href=#websrt-line-terminator>WebSRT line terminator</a>, followed by zero or more
29017
29262
  <a href=#websrt-cue-components>WebSRT cue components</a>, in any order, each optionally
29018
29263
  followed by a <a href=#websrt-line-terminator>WebSRT line terminator</a>.</p>
29019
29264
 
29020
- <p>A <dfn id=websrt-cue-text-span>WebSRT cue text span</dfn> consists of one or more
29021
- characters other than U+000A LINE FEED (LF) characters, U+000D
29022
- CARRIAGE RETURN (CR) characters, U+0026 AMPERSAND characters (&amp;),
29023
- and U+003C LESS-THAN SIGN characters (&lt;).</p>
29024
29265
 
29025
- <p>A <dfn id=websrt-cue-amp-escape>WebSRT cue amp escape</dfn> is the five character string
29026
- consisting of a U+0026 AMPERSAND character (&amp;), a U+0061 LATIN SMALL
29027
- LETTER A character, a U+006D LATIN SMALL LETTER M character, a
29028
- U+0070 LATIN SMALL LETTER P character, and a U+003B SEMICOLON
29029
- character (;).
29030
29266
 
29031
- <p>A <dfn id=websrt-cue-lt-escape>WebSRT cue lt escape</dfn> is the five character string
29032
- consisting of a U+0026 AMPERSAND character (&amp;), a U+006C LATIN SMALL
29033
- LETTER L character, a U+0074 LATIN SMALL LETTER T character, and a
29034
- U+003B SEMICOLON character (;).
29267
+ <p>A <dfn id=websrt-cue-class-span>WebSRT cue class span</dfn> consists of a <a href=#websrt-cue-span-start-tag>WebSRT cue
29268
+ span start tag</a> "<code title="">c</code>" that disallows an
29269
+ annotation, <a href=#websrt-cue-internal-text>WebSRT cue internal text</a> representing cue
29270
+ text, and a <a href=#websrt-cue-span-end-tag>WebSRT cue span end tag</a> "<code title="">c</code>".</p>
29035
29271
 
29036
- <p>A <dfn id=websrt-cue-timestamp>WebSRT cue timestamp</dfn> consists of a U+003C LESS-THAN
29037
- SIGN character (&lt;), followed by a <a href=#websrt-timestamp>WebSRT timestamp</a>
29038
- representing the time that the given point in the cue becomes
29039
- active, followed by a U+003E GREATER-THAN SIGN character (&gt;). The
29040
- time represented by the <a href=#websrt-timestamp>WebSRT timestamp</a> must be
29041
- greater than the times represented by any previous <a href=#websrt-cue-timestamp title="WebSRT cue timestamp">WebSRT cue timestamps</a> in the
29042
- cue, as well as greater than the cue's start time offset, and less
29043
- than the cue's end time offset.</p>
29272
+ <p>A <dfn id=websrt-cue-italics-span>WebSRT cue italics span</dfn> consists of a <a href=#websrt-cue-span-start-tag>WebSRT
29273
+ cue span start tag</a> "<code title="">i</code>" that disallows
29274
+ an annotation, <a href=#websrt-cue-internal-text>WebSRT cue internal text</a> representing
29275
+ the italicized text, and a <a href=#websrt-cue-span-end-tag>WebSRT cue span end tag</a>
29276
+ "<code title="">i</code>".</p>
29044
29277
 
29045
- <p>A <dfn id=websrt-cue-italics-span>WebSRT cue italics span</dfn> consists of a U+003C
29046
- LESS-THAN SIGN character (&lt;), a U+0069 LATIN SMALL LETTER I
29047
- character, and a U+003E GREATER-THAN SIGN character (&gt;), then
29048
- <a href=#websrt-cue-internal-text>WebSRT cue internal text</a> representing the italicized
29049
- text, and finally a U+003C LESS-THAN SIGN character (&lt;), a U+002F
29050
- SOLIDUS character (/), a U+0069 LATIN SMALL LETTER I character, and
29051
- a U+003E GREATER-THAN SIGN character (&gt;).</p>
29052
-
29053
- <p>A <dfn id=websrt-cue-bold-span>WebSRT cue bold span</dfn> consists of a U+003C LESS-THAN
29054
- SIGN character (&lt;), a U+0062 LATIN SMALL LETTER B character, and
29055
- a U+003E GREATER-THAN SIGN character (&gt;), then <a href=#websrt-cue-internal-text>WebSRT cue
29056
- internal text</a> representing the bolded text, and finally a
29057
- U+003C LESS-THAN SIGN character (&lt;), a U+002F SOLIDUS character
29058
- (/), a U+0062 LATIN SMALL LETTER B character, and a U+003E
29059
- GREATER-THAN SIGN character (&gt;).</p>
29278
+ <p>A <dfn id=websrt-cue-bold-span>WebSRT cue bold span</dfn> consists of a <a href=#websrt-cue-span-start-tag>WebSRT cue
29279
+ span start tag</a> "<code title="">b</code>" that disallows an
29280
+ annotation, <a href=#websrt-cue-internal-text>WebSRT cue internal text</a> representing the
29281
+ boldened text, and a <a href=#websrt-cue-span-end-tag>WebSRT cue span end tag</a> "<code title="">b</code>".</p>
29060
29282
 
29061
29283
  <p>A <dfn id=websrt-cue-ruby-span>WebSRT cue ruby span</dfn> consists of the following
29062
29284
  components, in the order given:</p>
29063
29285
 
29064
- <ol><li>The string "<code title="">&lt;ruby&gt;</code>".</li>
29286
+ <ol><li>A <a href=#websrt-cue-span-start-tag>WebSRT cue span start tag</a> "<code title="">i</code>" that disallows an annotation.</li>
29065
29287
  <li>One or more occurrences of the following group of components, in the order given:
29066
29288
  <ol><li><a href=#websrt-cue-internal-text>WebSRT cue internal text</a>, representing the ruby base.</li>
29067
- <li>The string "<code title="">&lt;rt&gt;</code>".</li>
29068
- <li><a href=#websrt-cue-internal-text>WebSRT cue internal text</a>, representing the ruby text component of th ruby annotation.</li>
29069
- <li>The string "<code title="">&lt;/rt&gt;</code>". If this is
29070
- the last occurance of this group of components in the
29289
+ <li>A <a href=#websrt-cue-span-start-tag>WebSRT cue span start tag</a> "<code title="">rt</code>" that disallows an annotation.</li>
29290
+ <li><a href=#websrt-cue-internal-text>WebSRT cue internal text</a>, representing the ruby text component of the ruby annotation.</li>
29291
+ <li>A <a href=#websrt-cue-span-end-tag>WebSRT cue span end tag</a> "<code title="">rt</code>".
29292
+ If this is the last occurance of this group of components in the
29071
29293
  <a href=#websrt-cue-ruby-span>WebSRT cue ruby span</a>, then this last end tag string
29072
29294
  may be omitted.</li>
29073
29295
  </ol></li>
29074
29296
  <li>If the last end tag string was not omitted: Optionally, a <a href=#websrt-line-terminator>WebSRT line terminator</a>.</li>
29075
29297
  <li>If the last end tag string was not omitted: Zero or more U+0020 SPACE characters or U+0009 CHARACTER TABULATION (tab) characters, each optionally followed by a <a href=#websrt-line-terminator>WebSRT line terminator</a>.</li>
29076
- <li>The string "<code title="">&lt;/ruby&gt;</code>".</li>
29077
- </ol><div class=impl>
29298
+ <li>A <a href=#websrt-cue-span-end-tag>WebSRT cue span end tag</a> "<code title="">ruby</code>".</li>
29299
+ </ol><p>A <dfn id=websrt-cue-voice-span>WebSRT cue voice span</dfn> consists of the following
29300
+ components, in the order given:</p>
29301
+
29302
+ <ol><li>A <a href=#websrt-cue-span-start-tag>WebSRT cue span start tag</a> "<code title="">v</code>" that requires an annotation; the annotation represents the name of the voice.</li>
29303
+ <li><a href=#websrt-cue-internal-text>WebSRT cue internal text</a>.</li>
29304
+ <li>A <a href=#websrt-cue-span-end-tag>WebSRT cue span end tag</a> "<code title="">v</code>". If this <a href=#websrt-cue-voice-span>WebSRT cue voice span</a> is the only <a href=#websrt-cue-components title="WebSRT cue components">component</a> of its <a href=#websrt-cue-text>WebSRT cue text</a> sequence, then the end tag may be omitted for brevity.</li>
29305
+ </ol><p>A <dfn id=websrt-cue-span-start-tag>WebSRT cue span start tag</dfn> has a <var title="">tag
29306
+ name</var> and either allows, requires, and disallows an annotation,
29307
+ and consists of the following components, in the order given:</p>
29308
+
29309
+ <ol><li>A U+003C LESS-THAN SIGN character (&lt;).</li>
29310
+
29311
+ <li>The <var title="">tag name</var>.</li>
29312
+
29313
+ <li>Zero or more occurrences of the following sequence:
29314
+
29315
+ <ol><li>U+002E FULL STOP character (.)</li>
29316
+
29317
+ <li>One or more characters other than U+0009 CHARACTER TABULATION
29318
+ (tab) characters, U+000A LINE FEED (LF) characters, U+000D
29319
+ CARRIAGE RETURN (CR) characters, U+0020 SPACE characters, U+0026
29320
+ AMPERSAND characters (&amp;), U+003C LESS-THAN SIGN characters
29321
+ (&lt;), U+003E GREATER-THAN SIGN characters (&gt;), and U+002E FULL
29322
+ STOP characters (.), representing a class that describes the cue
29323
+ span's significance.</li>
29324
+
29325
+ </ol></li>
29326
+
29327
+ <li>
29328
+ <!--
29329
+ <dl class="switch">
29330
+
29331
+ <dt>If the start tag allows an annotation:</dt>
29332
+
29333
+ <dd>Optionally, a <span>WebSRT cue span start tag annotation</span>.</dd>
29334
+
29335
+ <dt>-->If the start tag requires an annotation:<!--</dt>
29336
+
29337
+ <dd>A <span>WebSRT cue span start tag annotation</span>.</dd>
29338
+
29339
+ </dl>
29340
+
29341
+ <p>A <dfn>WebSRT cue span start tag annotation</dfn> consists of-->
29342
+
29343
+ one or more of the following components, the concatenation of
29344
+ their representations having a value that contains at least one
29345
+ character other than U+0020 SPACE and U+0009 CHARACTER TABULATION
29346
+ (tab) characters:<!--</p>-->
29347
+
29348
+ <ul><li><a href=#websrt-cue-span-start-tag-annotation-text>WebSRT cue span start tag annotation text</a>, representing the text of the annotation.</li>
29349
+ <li>A <a href=#websrt-cue-amp-escape>WebSRT cue amp escape</a>, representing a "&amp;" character in the text of the annotation.</li>
29350
+ <li>A <a href=#websrt-cue-lt-escape>WebSRT cue lt escape</a>, representing a "&lt;" character in the text of the annotation.</li>
29351
+ <li>A <a href=#websrt-cue-gt-escape>WebSRT cue gt escape</a>, representing a "&gt;" character in the text of the annotation.</li>
29352
+ </ul></li>
29353
+
29354
+ <li>A U+003E GREATER-THAN SIGN character (&gt;).</li>
29355
+
29356
+ </ol><p>A <dfn id=websrt-cue-span-end-tag>WebSRT cue span end tag</dfn> has a <var title="">tag
29357
+ name</var> and consists of the following components, in the order
29358
+ given:</p>
29359
+
29360
+ <ol><li>A U+003C LESS-THAN SIGN character (&lt;).</li>
29361
+ <li>U+002F SOLIDUS character (/).</li>
29362
+ <li>The <var title="">tag name</var>.</li>
29363
+ <li>A U+003E GREATER-THAN SIGN character (&gt;).</li>
29364
+ </ol><p>A <dfn id=websrt-cue-timestamp>WebSRT cue timestamp</dfn> consists of a U+003C LESS-THAN
29365
+ SIGN character (&lt;), followed by a <a href=#websrt-timestamp>WebSRT timestamp</a>
29366
+ representing the time that the given point in the cue becomes
29367
+ active, followed by a U+003E GREATER-THAN SIGN character (&gt;). The
29368
+ time represented by the <a href=#websrt-timestamp>WebSRT timestamp</a> must be
29369
+ greater than the times represented by any previous <a href=#websrt-cue-timestamp title="WebSRT cue timestamp">WebSRT cue timestamps</a> in the
29370
+ cue, as well as greater than the cue's start time offset, and less
29371
+ than the cue's end time offset.</p>
29372
+
29373
+ <p>A <dfn id=websrt-cue-text-span>WebSRT cue text span</dfn> consists of one or more
29374
+ characters other than U+000A LINE FEED (LF) characters, U+000D
29375
+ CARRIAGE RETURN (CR) characters, U+0026 AMPERSAND characters (&amp;),
29376
+ and U+003C LESS-THAN SIGN characters (&lt;).</p>
29377
+
29378
+ <p><dfn id=websrt-cue-span-start-tag-annotation-text>WebSRT cue span start tag annotation text</dfn> consists of
29379
+ one or more characters other than U+000A LINE FEED (LF) characters,
29380
+ U+000D CARRIAGE RETURN (CR) characters, U+0026 AMPERSAND characters
29381
+ (&amp;), and U+003E GREATER-THAN SIGN characters (&gt;).</p>
29382
+
29383
+ <p>A <dfn id=websrt-cue-amp-escape>WebSRT cue amp escape</dfn> is the five character string
29384
+ "<code title="">&amp;</code>".</p>
29385
+
29386
+ <p>A <dfn id=websrt-cue-lt-escape>WebSRT cue lt escape</dfn> is the five character string
29387
+ "<code title="">&lt;</code>".</p>
29388
+
29389
+ <p>A <dfn id=websrt-cue-gt-escape>WebSRT cue gt escape</dfn> is the five character string
29390
+ "<code title="">&gt;</code>".</p>
29391
+
29392
+
29393
+
29394
+ <div class=impl>
29078
29395
 
29079
29396
  <h6 id=parsing-0><span class=secno>4.8.10.11.2 </span>Parsing</h6>
29080
29397
 
29081
- <p>A <dfn id=websrt-parser>WebSRT parser</dfn>, given an input byte stream, a
29398
+ <p>A <dfn id=websrt-parser>WebSRT parser</dfn>, given an input byte stream and a
29082
29399
  <a href=#timed-track-list-of-cues>timed track list of cues</a> <var title="">output</var>,
29083
- and optionally a character encoding override <var title="">encoding</var>, must convert the bytes into a string of
29084
- Unicode characters by interpreting them as the given <var title="">encoding</var>, or UTF-8 if <var title="">encoding</var> is
29085
- not provided, and then must parse the resulting string according to
29086
- the <a href=#websrt-parser-algorithm>WebSRT parser algorithm</a> below. This results in
29087
- <a href=#timed-track-cue title="timed track cue">timed track cues</a> being added to
29088
- <var title="">output</var>. <a href=#refsRFC3629>[RFC3629]</a></p>
29400
+ must <a href=#decoded-as-utf-8,-with-error-handling title="decoded as UTF-8, with error handling">decode the
29401
+ byte stream as UTF-8, with error handling</a>, and then must
29402
+ parse the resulting string according to the <a href=#websrt-parser-algorithm>WebSRT parser
29403
+ algorithm</a> below. This results in <a href=#timed-track-cue title="timed track
29404
+ cue">timed track cues</a> being added to <var title="">output</var>. <a href=#refsRFC3629>[RFC3629]</a></p>
29089
29405
 
29090
29406
  <p>A <a href=#websrt-parser>WebSRT parser</a>, specifically its conversion and
29091
29407
  parsing steps, is typically run asynchronously, with the input byte
@@ -29157,9 +29473,6 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29157
29473
  alignment</a> be <a href=#timed-track-cue-middle-alignment title="timed track cue middle
29158
29474
  alignment">middle alignment</a>.</li>
29159
29475
 
29160
- <li><p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue
29161
- voice identifier</a> be the empty string.</li>
29162
-
29163
29476
  <li><p>Let <var title="">cue</var>'s <a href=#timed-track-cue-text>timed track cue
29164
29477
  text</a> be the empty string.</li>
29165
29478
 
@@ -29208,10 +29521,23 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29208
29521
  <li><p>Let <var title="">cue text</var> be the empty
29209
29522
  string.</li>
29210
29523
 
29211
- <li><p><i>Cue text loop</i>: <a href=#collect-a-sequence-of-characters>Collect a sequence of
29212
- characters</a> that are <em>not</em> U+000D CARRIAGE RETURN (CR)
29213
- or U+000A LINE FEED (LF) characters. Let <var title="">line</var>
29214
- be those characters, if any.</li>
29524
+ <li><p><i>Cue text loop</i>: If <var title="">position</var> is
29525
+ past the end of <var title="">input</var>, then discard <var title="">cue</var> and jump to the step labeled <i>cue text
29526
+ processing</i>.</li>
29527
+
29528
+ <li><p>If the character indicated by <var title="">position</var>
29529
+ is a U+000D CARRIAGE RETURN (CR) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
29530
+
29531
+ <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then discard <var title="">cue</var> and jump
29532
+ to the step labeled <i>cue text processing</i>.</li>
29533
+
29534
+ <li><p>If the character indicated by <var title="">position</var>
29535
+ is a U+000A LINE FEED (LF) character, advance <var title="">position</var> to the next character in <var title="">input</var>.</li>
29536
+
29537
+ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
29538
+ <em>not</em> U+000D CARRIAGE RETURN (CR) or U+000A LINE FEED (LF)
29539
+ characters. Let <var title="">line</var> be those characters, if
29540
+ any.</li>
29215
29541
 
29216
29542
  <li><p>If <var title="">line</var> is the empty string, then jump
29217
29543
  to the step labeled <i>cue text processing</i>.</li>
@@ -29225,9 +29551,12 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29225
29551
 
29226
29552
  <li><p>Return to the step labeled <i>cue text loop</i>.</li>
29227
29553
 
29228
- <li><p><i>Cue text processing</i>: <a href=#collect-websrt-cue-voice-and-text>Collect WebSRT cue voice
29229
- and text</a> from <var title="">cue text</var>, using <var title="">cue</var> for the results. If that fails, discard <var title="">cue</var> and jump to the step labeled <i>cue
29230
- loop</i>.</li>
29554
+ <li><p><i>Cue text processing</i>: Let the <a href=#timed-track-cue-text>timed track cue
29555
+ text</a> of <var title="">cue</var> be <var title="">cue
29556
+ text</var>, and let the rules for its interpretation be the
29557
+ <a href=#websrt-cue-text-parsing-rules>WebSRT cue text parsing rules</a>, the <a href=#websrt-cue-text-rendering-rules>WebSRT cue
29558
+ text rendering rules</a>, and the <a href=#websrt-cue-text-dom-construction-rules>WebSRT cue text DOM
29559
+ construction rules</a>.</li>
29231
29560
 
29232
29561
  <li><p>Add <var title="">cue</var> to the <a href=#timed-track-list-of-cues>timed track list of
29233
29562
  cues</a> <var title="">output</var>.</li>
@@ -29643,100 +29972,6 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29643
29972
 
29644
29973
  <li><p>Return <var title="">result</var>.</li>
29645
29974
 
29646
- </ol><p>When the steps above say that a user agent is to <dfn id=collect-websrt-cue-voice-and-text>collect
29647
- WebSRT cue voice and text</dfn> from a string <var title="">input</var> for a <a href=#timed-track-cue>timed track cue</a> <var title="">cue</var>, the user agent must run the following steps:</p>
29648
-
29649
- <ol><li><p>Let <var title="">input</var> be the string being
29650
- parsed.</li>
29651
-
29652
- <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
29653
- string.</li>
29654
-
29655
- <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error and abort these
29656
- steps.</li>
29657
-
29658
- <li>
29659
-
29660
- <p>Examine the first few characters of <var title="">input</var>
29661
- and process them as described by the match set of rules from the
29662
- following list:</p>
29663
-
29664
- <dl class=switch><dt>If <var title="">input</var> starts with the string "<code title="">&lt;narrator&gt;</code>"</dt>
29665
- <dd>
29666
- <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29667
- identifier</a> be the string "<code title="timed track cue narrator voice"><a href=#timed-track-cue-narrator-voice>narrator</a></code>"
29668
- and advance <var title="">position</var> past the matching substring.</p>
29669
- </dd>
29670
-
29671
- <dt>If <var title="">input</var> starts with the string "<code title="">&lt;music&gt;</code>"</dt>
29672
- <dd>
29673
- <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29674
- identifier</a> be the string "<code title="timed track cue music voice"><a href=#timed-track-cue-music-voice>music</a></code>"
29675
- and advance <var title="">position</var> past the matching substring.</p>
29676
- </dd>
29677
-
29678
- <dt>If <var title="">input</var> starts with the string "<code title="">&lt;lyric&gt;</code>"</dt>
29679
- <dd>
29680
- <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29681
- identifier</a> be the string "<code title="timed track cue lyric voice"><a href=#timed-track-cue-lyric-voice>lyric</a></code>"
29682
- and advance <var title="">position</var> past the matching substring.</p>
29683
- </dd>
29684
-
29685
- <dt>If <var title="">input</var> starts with the string "<code title="">&lt;sound&gt;</code>"</dt>
29686
- <dd>
29687
- <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29688
- identifier</a> be the string "<code title="timed track cue sound voice"><a href=#timed-track-cue-sound-voice>sound</a></code>"
29689
- and advance <var title="">position</var> past the matching substring.</p>
29690
- </dd>
29691
-
29692
- <dt>If <var title="">input</var> starts with the string "<code title="">&lt;comment&gt;</code>"</dt>
29693
- <dd>
29694
- <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29695
- identifier</a> be the string "<code title="timed track cue comment voice"><a href=#timed-track-cue-comment-voice>comment</a></code>"
29696
- and advance <var title="">position</var> past the matching substring.</p>
29697
- </dd>
29698
-
29699
- <dt>If <var title="">input</var> starts with the string "<code title="">&lt;credit&gt;</code>"</dt>
29700
- <dd>
29701
- <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29702
- identifier</a> be the string "<code title="timed track cue credit voice"><a href=#timed-track-cue-credit-voice>credit</a></code>"
29703
- and advance <var title="">position</var> past the matching substring.</p>
29704
- </dd>
29705
-
29706
-
29707
- <dt>If <var title="">input</var> starts with a U+003C LESS-THAN
29708
- SIGN character (&lt;), followed by a character in the range
29709
- U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE (9), followed by zero
29710
- or more characters in the range U+0030 DIGIT ZERO (0) to U+0039
29711
- DIGIT NINE (9), followed by a U+003E GREATER-THAN SIGN character
29712
- (&gt;)</dt>
29713
-
29714
- <dd>
29715
- <p>Let <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29716
- identifier</a> be the string of digits (characters in the
29717
- range U+0030 DIGIT ZERO to U+0039 DIGIT NINE) in the matching
29718
- substring, and advance <var title="">position</var> past the
29719
- matching substring.</p>
29720
- </dd>
29721
-
29722
- <dt>Otherwise</dt>
29723
- <dd>
29724
- <p>Leave the <var title="">cue</var>'s <a href=#timed-track-cue-voice-identifier>timed track cue voice
29725
- identifier</a> set to the empty string.</p>
29726
- </dd>
29727
-
29728
- </dl></li>
29729
-
29730
- <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return an error and abort these
29731
- steps.</li>
29732
-
29733
- <li><p>Let the <a href=#timed-track-cue-text>timed track cue text</a> of <var title="">cue</var> be the substring of <var title="">input</var>
29734
- from the position indicated by <var title="">position</var> to the
29735
- end of the <var title="">input</var>, and let the rules for its
29736
- interpretation be the <a href=#websrt-cue-text-parsing-rules>WebSRT cue text parsing rules</a>,
29737
- the <a href=#websrt-cue-text-rendering-rules>WebSRT cue text rendering rules</a>, and the
29738
- <a href=#websrt-cue-text-dom-construction-rules>WebSRT cue text DOM construction rules</a>.</li>
29739
-
29740
29975
  </ol><h6 id=websrt-cue-text-parsing-rules><span class=secno>4.8.10.11.3 </span><dfn>WebSRT cue text parsing rules</dfn></h6>
29741
29976
 
29742
29977
  <p>A <dfn id=websrt-node-object>WebSRT Node Object</dfn> is a conceptual construct used to
@@ -29754,9 +29989,10 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29754
29989
  similar to elements in HTML or the DOM. <a href=#websrt-internal-node-object title="WebSRT Internal
29755
29990
  Node Object">WebSRT Internal Node Objects</a> have an ordered
29756
29991
  list of child <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node
29757
- Objects</a>. The <a href=#websrt-internal-node-object>WebSRT Internal Node Object</a> is said
29758
- to be the <i>parent</i> of the children. Cycles do not occur; the
29759
- parent-child relationships so constructed form a tree structure.</p>
29992
+ Objects</a>, and an ordered list of class names. The <a href=#websrt-internal-node-object>WebSRT
29993
+ Internal Node Object</a> is said to be the <i>parent</i> of the
29994
+ children. Cycles do not occur; the parent-child relationships so
29995
+ constructed form a tree structure.</p>
29760
29996
 
29761
29997
  <p>There are five concrete classes of <a href=#websrt-internal-node-object title="WebSRT Internal
29762
29998
  Node Object">WebSRT Internal Node Objects</a>:</p>
@@ -29767,6 +30003,14 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29767
30003
  Node Object">WebSRT Node Objects</a>.</p>
29768
30004
  </dd>
29769
30005
 
30006
+ <dt><dfn id=websrt-class-object title="WebSRT Class Object">WebSRT Class Objects</dfn></dt>
30007
+ <dd>
30008
+ <p>These represent spans of text (a <a href=#websrt-cue-class-span>WebSRT cue class
30009
+ span</a>) in <a href=#websrt-cue-text>WebSRT cue text</a>, and are used to
30010
+ annotate parts of the cue with classes without implying further
30011
+ meaning (such as italics or bold).</p>
30012
+ </dd>
30013
+
29770
30014
  <dt><dfn id=websrt-italic-object title="WebSRT Italic Object">WebSRT Italic Objects</dfn></dt>
29771
30015
  <dd>
29772
30016
  <p>These represent spans of italic text (a <a href=#websrt-cue-italics-span>WebSRT cue
@@ -29792,6 +30036,14 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29792
30036
  text</a>.</p>
29793
30037
  </dd>
29794
30038
 
30039
+ <dt><dfn id=websrt-voice-object title="WebSRT Voice Object">WebSRT Voice Objects</dfn></dt>
30040
+ <dd>
30041
+ <p>These represent spans of text associated with a specific voice
30042
+ (a <a href=#websrt-cue-voice-span>WebSRT cue voice span</a>) in <a href=#websrt-cue-text>WebSRT cue
30043
+ text</a>. A <a href=#websrt-voice-object>WebSRT Voice Object</a> has a value, which
30044
+ is the name of the voice.</p>
30045
+ </dd>
30046
+
29795
30047
  </dl><p><dfn id=websrt-leaf-node-object title="WebSRT Leaf Node Object">WebSRT Leaf Node
29796
30048
  Objects</dfn> are those that contain data, such as text, and cannot
29797
30049
  contain child <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node
@@ -29863,61 +30115,57 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29863
30115
  <p>Ignore the token.</p>
29864
30116
  </dd>
29865
30117
 
30118
+ <dt>If the tag name is "<code title="">c</code>"</dt>
30119
+ <dd>
30120
+ <p><a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node
30121
+ Object">Attach</a> a <a href=#websrt-class-object>WebSRT Class Object</a>.</p>
30122
+ </dd>
30123
+
29866
30124
  <dt>If the tag name is "<code title="">i</code>"</dt>
29867
30125
  <dd>
29868
- <p>Create a <a href=#websrt-italic-object>WebSRT Italic Object</a>, and <a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node Object">attach
29869
- it</a>.</p>
30126
+ <p><a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node
30127
+ Object">Attach</a> a <a href=#websrt-italic-object>WebSRT Italic Object</a>.</p>
29870
30128
  </dd>
29871
30129
 
29872
30130
  <dt>If the tag name is "<code title="">b</code>"</dt>
29873
30131
  <dd>
29874
- <p>Create a <a href=#websrt-bold-object>WebSRT Bold Object</a>, and <a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node Object">attach
29875
- it</a>.</p>
30132
+ <p><a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node
30133
+ Object">Attach</a> a <a href=#websrt-bold-object>WebSRT Bold Object</a>.</p>
29876
30134
  </dd>
29877
30135
 
29878
30136
  <dt>If the tag name is "<code title="">ruby</code>"</dt>
29879
30137
  <dd>
29880
- <p>Create a <a href=#websrt-ruby-object>WebSRT Ruby Object</a>, and <a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node Object">attach
29881
- it</a>.</p>
30138
+ <p><a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node
30139
+ Object">Attach</a> a <a href=#websrt-ruby-object>WebSRT Ruby Object</a>.</p>
29882
30140
  </dd>
29883
30141
 
29884
30142
  <dt>If the tag name is "<code title="">rt</code>"</dt>
29885
30143
  <dd>
29886
30144
  <p>If <var title="">current</var> is a <a href=#websrt-ruby-object>WebSRT Ruby
29887
- Object</a>, then create a <a href=#websrt-ruby-text-object>WebSRT Ruby Text
29888
- Object</a>, and <a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node
29889
- Object">attach it</a>.</p>
29890
- <p>Otherwise, ignore the token.</p>
30145
+ Object</a>, then <a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node
30146
+ Object">attach</a> a <a href=#websrt-ruby-text-object>WebSRT Ruby Text
30147
+ Object</a>.</p>
29891
30148
  </dd>
29892
30149
 
29893
- <dt>Otherwise</dt>
30150
+ <dt>If the tag name is "<code title="">v</code>"</dt>
29894
30151
  <dd>
30152
+ <p><a href=#attach-a-websrt-internal-node-object title="attach a WebSRT Internal Node
30153
+ Object">Attach</a> a <a href=#websrt-voice-object>WebSRT Voice Object</a>, and
30154
+ set its value to the token's annotation string.</p>
30155
+ </dd>
29895
30156
 
29896
- <ol><li><p>Let <var title="">input</var> be the tag name.</li>
29897
-
29898
- <li><p>Let <var title="">position</var> be a pointer into
29899
- <var title="">input</var>, initially pointing at the start of
29900
- the string.</li>
29901
-
29902
- <li><p><a href=#collect-a-websrt-timestamp>Collect a WebSRT timestamp</a>.</li>
29903
-
29904
- <li>
29905
-
29906
- <p>If that algorithm does not fail, and if <var title="">position</var> now points at the end of <var title="">input</var> (i.e. there are no trailing characters
29907
- after the timestamp), then create a <a href=#websrt-timestamp-object>WebSRT Timestamp
29908
- Object</a> whose value is the collected time, then append
29909
- it to <var title="">current</var>.</p>
29910
-
29911
- <p>Otherwise, ignore the token.</p>
29912
-
29913
- </li>
29914
-
29915
- </ol></dd>
30157
+ <dt>Otherwise</dt>
30158
+ <dd>
30159
+ <p>Ignore the token.</p>
30160
+ </dd>
29916
30161
 
29917
30162
  </dl><p>When the steps above say to <dfn id=attach-a-websrt-internal-node-object>attach a WebSRT Internal
29918
- Node Object</dfn> <var title="">node object</var>, the user
29919
- agent must append <var title="">node object</var> to <var title="">current</var>, then let <var title="">current</var> be
29920
- <var title="">node object</var>.</p>
30163
+ Node Object</dfn> of a particular class, the user agent must
30164
+ first create an object of the specified class, then set its list
30165
+ of classes to the list of classes in the token, append the newly
30166
+ created node object to <var title="">current</var>, and finally
30167
+ let <var title="">current</var> be the newly created node
30168
+ object.</p>
29921
30169
 
29922
30170
  </dd>
29923
30171
 
@@ -29927,6 +30175,10 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29927
30175
  <p>If any of the following conditions is true, then let <var title="">current</var> be the parent node of <var title="">current</var>.</p>
29928
30176
 
29929
30177
  <ul class=brief><li>The tag name of the end tag token <var title="">token</var>
30178
+ is "<code title="">c</code>" and <var title="">current</var> is
30179
+ a <a href=#websrt-class-object>WebSRT Class Object</a>.</li>
30180
+
30181
+ <li>The tag name of the end tag token <var title="">token</var>
29930
30182
  is "<code title="">i</code>" and <var title="">current</var> is
29931
30183
  a <a href=#websrt-italic-object>WebSRT Italic Object</a>.</li>
29932
30184
 
@@ -29942,6 +30194,10 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29942
30194
  is "<code title="">rt</code>" and <var title="">current</var> is
29943
30195
  a <a href=#websrt-ruby-text-object>WebSRT Ruby Text Object</a>.</li>
29944
30196
 
30197
+ <li>The tag name of the end tag token <var title="">token</var>
30198
+ is "<code title="">v</code>" and <var title="">current</var> is
30199
+ a <a href=#websrt-voice-object>WebSRT Voice Object</a>.</li>
30200
+
29945
30201
  </ul><p>Otherwise, if the tag name of the end tag token <var title="">token</var> is "<code title="">ruby</code>" and <var title="">current</var> is a <a href=#websrt-ruby-text-object>WebSRT Ruby Text
29946
30202
  Object</a>, then let <var title="">current</var> be the
29947
30203
  parent node of <var title="">current</var> of the parent node of
@@ -29951,14 +30207,39 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29951
30207
 
29952
30208
  </dd>
29953
30209
 
30210
+ <dt>If <var title="">token</var> is a timestamp tag</dt>
30211
+ <dd>
30212
+
30213
+ <ol><li><p>Let <var title="">input</var> be the tag value.</li>
30214
+
30215
+ <li><p>Let <var title="">position</var> be a pointer into
30216
+ <var title="">input</var>, initially pointing at the start of
30217
+ the string.</li>
30218
+
30219
+ <li><p><a href=#collect-a-websrt-timestamp>Collect a WebSRT timestamp</a>.</li>
30220
+
30221
+ <li>
30222
+
30223
+ <p>If that algorithm does not fail, and if <var title="">position</var> now points at the end of <var title="">input</var> (i.e. there are no trailing characters
30224
+ after the timestamp), then create a <a href=#websrt-timestamp-object>WebSRT Timestamp
30225
+ Object</a> whose value is the collected time, then append
30226
+ it to <var title="">current</var>.</p>
30227
+
30228
+ <p>Otherwise, ignore the token.</p>
30229
+
30230
+ </li>
30231
+
30232
+ </ol></dd>
30233
+
29954
30234
  </dl></li>
29955
30235
 
29956
30236
  <li><p>Jump to the step labeled <i>loop</i>.</li>
29957
30237
 
29958
30238
  </ol><p>The <dfn id=websrt-cue-text-tokeniser>WebSRT cue text tokeniser</dfn> is as follows. It emits
29959
30239
  a token, which is either a string (whose value is a sequence of
29960
- Unicode characters), a start tag (with a tag name), or an end tag
29961
- (with a tag name).</p>
30240
+ Unicode characters), a start tag (with a tag name, a list of
30241
+ classes, and optionally an annotation), an end tag (with a tag
30242
+ name), or a timestamp tag (with a tag value).</p>
29962
30243
 
29963
30244
  <ol><li><p>Let <var title="">input</var> and <var title="">position</var> be the same variables as those of the same
29964
30245
  name in the algorithm that invoked these steps.</li>
@@ -29968,7 +30249,9 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29968
30249
 
29969
30250
  <li><p>Let <var title="">result</var> be the empty string.</li>
29970
30251
 
29971
- <li><p>Let <var title="">escape</var> be the empty string.</li>
30252
+ <li><p>Let <var title="">buffer</var> be the empty string.</li>
30253
+
30254
+ <li><p>Let <var title="">classes</var> be an empty list.</li>
29972
30255
 
29973
30256
  <li><p><i>Loop</i>: If <var title="">position</var> is past the end of
29974
30257
  <var title="">input</var>, let <var title="">c</var> be an
@@ -29988,7 +30271,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29988
30271
 
29989
30272
  <dl><dt>U+0026 AMPERSAND (&amp;)</dt>
29990
30273
  <dd>
29991
- <p>Set <var title="">escape</var> to <var title="">c</var>,
30274
+ <p>Set <var title="">buffer</var> to <var title="">c</var>,
29992
30275
  set <var title="">tokeniser state</var> to the <a href=#websrt-escape-state>WebSRT
29993
30276
  escape state</a>, and jump to the step labeled
29994
30277
  <i>next</i>.</p>
@@ -30024,15 +30307,18 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30024
30307
  <dl><dt>U+003B SEMICOLON character (;)</dt>
30025
30308
  <dd>
30026
30309
 
30027
- <p>First, examine the value of <var title="">escape</var>:</p>
30310
+ <p>First, examine the value of <var title="">buffer</var>:</p>
30028
30311
 
30029
- <p>If <var title="">escape</var> is the string "<code title="">&amp;amp</code>", then append a U+0026 AMPERSAND
30312
+ <p>If <var title="">buffer</var> is the string "<code title="">&amp;amp</code>", then append a U+0026 AMPERSAND
30030
30313
  character (&amp;) to <var title="">result</var>.</p>
30031
30314
 
30032
- <p>If <var title="">escape</var> is the string "<code title="">&amp;lt</code>", then append a U+003C LESS-THAN SIGN
30315
+ <p>If <var title="">buffer</var> is the string "<code title="">&amp;lt</code>", then append a U+003C LESS-THAN SIGN
30033
30316
  character (&lt;) to <var title="">result</var>.</p>
30034
30317
 
30035
- <p>Otherwise, append <var title="">escape</var> followed by a
30318
+ <p>If <var title="">buffer</var> is the string "<code title="">&amp;gt</code>", then append a U+003E GREATER-THAN SIGN
30319
+ character (&gt;) to <var title="">result</var>.</p>
30320
+
30321
+ <p>Otherwise, append <var title="">buffer</var> followed by a
30036
30322
  U+003B SEMICOLON character (;) to <var title="">result</var>.</p>
30037
30323
 
30038
30324
  <p>Then, in any case, set <var title="">tokeniser state</var>
@@ -30041,23 +30327,23 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30041
30327
 
30042
30328
  </dd>
30043
30329
 
30044
- <dt>Characters in the range U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z</dt>
30045
- <dt>Characters in the range U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z</dt>
30046
30330
  <dt>Characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)</dt>
30331
+ <dt>Characters in the range U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z</dt>
30332
+ <dt>Characters in the range U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z</dt>
30047
30333
  <dd>
30048
- <p>Append <var title="">c</var> to <var title="">escape</var>
30334
+ <p>Append <var title="">c</var> to <var title="">buffer</var>
30049
30335
  and jump to the step labeled <i>next</i>.</p>
30050
30336
  </dd>
30051
30337
 
30052
30338
  <dt>End-of-file marker</dt>
30053
30339
  <dd>
30054
- <p>Append <var title="">escape</var> to <var title="">result</var>, return a string token whose value is
30340
+ <p>Append <var title="">buffer</var> to <var title="">result</var>, return a string token whose value is
30055
30341
  <var title="">result</var>, and abort these steps.</p>
30056
30342
  </dd>
30057
30343
 
30058
30344
  <dt>Anything else</dt>
30059
30345
  <dd>
30060
- <p>Append <var title="">escape</var> to <var title="">result</var>, set <var title="">tokeniser state</var>
30346
+ <p>Append <var title="">buffer</var> to <var title="">result</var>, set <var title="">tokeniser state</var>
30061
30347
  to the <a href=#websrt-data-state>WebSRT data state</a>, and jump to the step
30062
30348
  labeled <i>next</i>.</p>
30063
30349
  </dd>
@@ -30070,18 +30356,43 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30070
30356
 
30071
30357
  <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
30072
30358
 
30073
- <dl><dt>U+002F SOLIDUS character (/)</dt>
30359
+ <dl><dt>U+0020 SPACE character</dt>
30360
+ <dt>U+0009 CHARACTER TABULATION (tab) character</dt>
30361
+ <dd>
30362
+ <!-- assert: >result< is the empty string -->
30363
+ <p>Set <var title="">tokeniser state</var> to the <a href=#websrt-start-tag-annotation-state>WebSRT
30364
+ start tag annotation state</a>, and jump to the step labeled
30365
+ <i>next</i>.</p>
30366
+ </dd>
30367
+
30368
+ <dt>U+002E FULL STOP character (.)</dt>
30369
+ <dd>
30370
+ <!-- assert: >result< is the empty string -->
30371
+ <p>Set <var title="">tokeniser state</var> to the <a href=#websrt-start-tag-class-state>WebSRT
30372
+ start tag class state</a>, and jump to the step labeled
30373
+ <i>next</i>.</p>
30374
+ </dd>
30375
+
30376
+ <dt>U+002F SOLIDUS character (/)</dt>
30074
30377
  <dd>
30075
30378
  <p>Set <var title="">tokeniser state</var> to the <a href=#websrt-end-tag-state>WebSRT
30076
30379
  end tag state</a>, and jump to the step labeled
30077
30380
  <i>next</i>.</p>
30078
30381
  </dd>
30079
30382
 
30383
+ <dt>Characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)</dt>
30384
+ <dd>
30385
+ <p>Set <var title="">result</var> to <var title="">c</var>,
30386
+ set <var title="">tokeniser state</var> to the <a href=#websrt-timestamp-tag-state>WebSRT
30387
+ timestamp tag state</a>, and jump to the step labeled
30388
+ <i>next</i>.</p>
30389
+ </dd>
30390
+
30080
30391
  <dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
30081
30392
  <dt>End-of-file marker</dt>
30082
30393
  <dd>
30083
- <p>Return a start tag whose tag name is the empty string and
30084
- abort these steps.</p>
30394
+ <p>Return a start tag whose tag name is the empty string, with
30395
+ no classes and no annotation, and abort these steps.</p>
30085
30396
  </dd>
30086
30397
 
30087
30398
  <dt>Anything else</dt>
@@ -30100,10 +30411,26 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30100
30411
 
30101
30412
  <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
30102
30413
 
30103
- <dl><dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
30414
+ <dl><dt>U+0020 SPACE character</dt>
30415
+ <dt>U+0009 CHARACTER TABULATION (tab) character</dt>
30416
+ <dd>
30417
+ <p>Set <var title="">tokeniser state</var> to the <a href=#websrt-start-tag-annotation-state>WebSRT
30418
+ start tag annotation state</a>, and jump to the step labeled
30419
+ <i>next</i>.</p>
30420
+ </dd>
30421
+
30422
+ <dt>U+002E FULL STOP character (.)</dt>
30423
+ <dd>
30424
+ <p>Set <var title="">tokeniser state</var> to the <a href=#websrt-start-tag-class-state>WebSRT
30425
+ start tag class state</a>, and jump to the step labeled
30426
+ <i>next</i>.</p>
30427
+ </dd>
30428
+
30429
+ <dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
30104
30430
  <dt>End-of-file marker</dt>
30105
30431
  <dd>
30106
- <p>Return a start tag whose tag name is <var title="">result</var> and abort these steps.</p>
30432
+ <p>Return a start tag whose tag name is <var title="">result</var>, with no classes and no annotation, and
30433
+ abort these steps.</p>
30107
30434
  </dd>
30108
30435
 
30109
30436
  <dt>Anything else</dt>
@@ -30114,6 +30441,74 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30114
30441
 
30115
30442
  </dl></dd>
30116
30443
 
30444
+ <dt><dfn id=websrt-start-tag-class-state>WebSRT start tag class state</dfn></dt>
30445
+
30446
+ <dd>
30447
+
30448
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
30449
+
30450
+ <dl><dt>U+0020 SPACE character</dt>
30451
+ <dt>U+0009 CHARACTER TABULATION (tab) character</dt>
30452
+ <dd>
30453
+ <p>Append to <var title="">classes</var> an entry whose value
30454
+ is <var title="">buffer</var>, set <var title="">buffer</var>
30455
+ to the empty string, set <var title="">tokeniser state</var>
30456
+ to the <a href=#websrt-start-tag-annotation-state>WebSRT start tag annotation state</a>, and
30457
+ jump to the step labeled <i>next</i>.</p>
30458
+ </dd>
30459
+
30460
+ <dt>U+002E FULL STOP character (.)</dt>
30461
+ <dd>
30462
+ <p>Append to <var title="">classes</var> an entry whose value
30463
+ is <var title="">buffer</var>, set <var title="">buffer</var>
30464
+ to the empty string, and jump to the step labeled
30465
+ <i>next</i>.</p>
30466
+ </dd>
30467
+
30468
+ <dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
30469
+ <dt>End-of-file marker</dt>
30470
+ <dd>
30471
+ <p>Append to <var title="">classes</var> an entry whose value
30472
+ is <var title="">buffer</var>, then return a start tag whose
30473
+ tag name is <var title="">result</var>, with the classes given
30474
+ in <var title="">classes</var> but no annotation, and abort
30475
+ these steps.</p>
30476
+ </dd>
30477
+
30478
+ <dt>Anything else</dt>
30479
+ <dd>
30480
+ <p>Append <var title="">c</var> to <var title="">buffer</var>
30481
+ and jump to the step labeled <i>next</i>.</p>
30482
+ </dd>
30483
+
30484
+ </dl></dd>
30485
+
30486
+ <dt><dfn id=websrt-start-tag-annotation-state>WebSRT start tag annotation state</dfn></dt>
30487
+
30488
+ <dd>
30489
+
30490
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
30491
+
30492
+ <dl><dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
30493
+ <dt>End-of-file marker</dt>
30494
+ <dd>
30495
+ <p>Remove any leading or trailing U+0020 SPACE or U+0009
30496
+ CHARACTER TABULATION (tab) characters from <var title="">buffer</var>, and replace any sequence of one or
30497
+ more consecutive U+0020 SPACE and U+0009 CHARACTER TABULATION
30498
+ (tab) characters in <var title="">buffer</var> with a single
30499
+ U+0020 SPACE character; then, return a start tag whose tag name is
30500
+ <var title="">result</var>, with the classes given in <var title="">classes</var>, and with <var title="">buffer</var> as
30501
+ the annotation, and abort these steps.</p>
30502
+ </dd>
30503
+
30504
+ <dt>Anything else</dt>
30505
+ <dd>
30506
+ <p>Append <var title="">c</var> to <var title="">buffer</var>
30507
+ and jump to the step labeled <i>next</i>.</p>
30508
+ </dd>
30509
+
30510
+ </dl></dd>
30511
+
30117
30512
  <dt><dfn id=websrt-end-tag-state>WebSRT end tag state</dfn></dt>
30118
30513
 
30119
30514
  <dd>
@@ -30134,6 +30529,26 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30134
30529
 
30135
30530
  </dl></dd>
30136
30531
 
30532
+ <dt><dfn id=websrt-timestamp-tag-state>WebSRT timestamp tag state</dfn></dt>
30533
+
30534
+ <dd>
30535
+
30536
+ <p>Jump to the entry that matches the value of <var title="">c</var>:</p>
30537
+
30538
+ <dl><dt>U+003E GREATER-THAN SIGN character (&gt;)</dt>
30539
+ <dt>End-of-file marker</dt>
30540
+ <dd>
30541
+ <p>Return a timestamp tag whose tag name is <var title="">result</var> and abort these steps.</p>
30542
+ </dd>
30543
+
30544
+ <dt>Anything else</dt>
30545
+ <dd>
30546
+ <p>Append <var title="">c</var> to <var title="">result</var>
30547
+ and jump to the step labeled <i>next</i>.</p>
30548
+ </dd>
30549
+
30550
+ </dl></dd>
30551
+
30137
30552
  </dl></li>
30138
30553
 
30139
30554
  <li><p><i>Next</i>: Advance <var title="">position</var> to the next
@@ -30154,19 +30569,30 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30154
30569
  <th>DOM node
30155
30570
  <tbody><tr><td><a href=#list-of-websrt-node-objects>List of WebSRT Node Objects</a>
30156
30571
  <td><code><a href=#documentfragment>DocumentFragment</a></code> node
30572
+ <tr><td><a href=#websrt-class-object>WebSRT Class Object</a>
30573
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-span-element>span</a></code>".
30157
30574
  <tr><td><a href=#websrt-italic-object>WebSRT Italic Object</a>
30158
- <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-i-element>i</a></code>" and the <code title=dom-Node-namespaceURI><a href=#dom-node-namespaceuri>namespaceURI</a></code> set to the <a href=#html-namespace-0>HTML namespace</a>.
30575
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-i-element>i</a></code>".
30159
30576
  <tr><td><a href=#websrt-bold-object>WebSRT Bold Object</a>
30160
- <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-b-element>b</a></code>" and the <code title=dom-Node-namespaceURI><a href=#dom-node-namespaceuri>namespaceURI</a></code> set to the <a href=#html-namespace-0>HTML namespace</a>.
30577
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-b-element>b</a></code>".
30161
30578
  <tr><td><a href=#websrt-ruby-object>WebSRT Ruby Object</a>
30162
- <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-ruby-element>ruby</a></code>" and the <code title=dom-Node-namespaceURI><a href=#dom-node-namespaceuri>namespaceURI</a></code> set to the <a href=#html-namespace-0>HTML namespace</a>.
30579
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-ruby-element>ruby</a></code>".
30163
30580
  <tr><td><a href=#websrt-ruby-text-object>WebSRT Ruby Text Object</a>
30164
- <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-rt-element>rt</a></code>" and the <code title=dom-Node-namespaceURI><a href=#dom-node-namespaceuri>namespaceURI</a></code> set to the <a href=#html-namespace-0>HTML namespace</a>.
30581
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-rt-element>rt</a></code>".
30582
+ <tr><td><a href=#websrt-voice-object>WebSRT Voice Object</a>
30583
+ <td><code><a href=#htmlelement>HTMLElement</a></code> element node with <code title=dom-Node-localName><a href=#dom-node-localname>localName</a></code> "<code><a href=#the-q-element>q</a></code>", a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute set to the <a href=#websrt-voice-object>WebSRT Voice Object</a>'s value.
30165
30584
  <tr><td><a href=#websrt-text-object>WebSRT Text Object</a>
30166
30585
  <td><code><a href=#text>Text</a></code> node whose character data is the value of the <a href=#websrt-text-object>WebSRT Text Object</a>.
30167
30586
  <tr><td><a href=#websrt-timestamp-object>WebSRT Timestamp Object</a>
30168
30587
  <td><code><a href=#processinginstruction>ProcessingInstruction</a></code> node whose <code title=dom-ProcessingInstruction-target>target</code> is "<code title="">timestamp</code>" and whose <code title=dom-ProcessingInstruction-data>data</code> is a <a href=#websrt-timestamp>WebSRT timestamp</a> representing the value of the <a href=#websrt-timestamp-object>WebSRT Timestamp Object</a>, with all optional components included and with the seconds separator being a U+002E FULL STOP character (.).
30169
- </table><p>The <code title=dom-Node-ownerDocument><a href=#dom-node-ownerdocument>ownerDocument</a></code>
30588
+ </table><p><code><a href=#htmlelement>HTMLElement</a></code> nodes created as part of the mapping
30589
+ described above must have their <code title=dom-Node-namespaceURI><a href=#dom-node-namespaceuri>namespaceURI</a></code> set to the
30590
+ <a href=#html-namespace-0>HTML namespace</a>, and must have a <code title=attr-class><a href=#classes>class</a></code> attribute set to the string obtained
30591
+ by concatenating all the classes that apply to the corresponding
30592
+ <a href=#websrt-internal-node-object>WebSRT Internal Node Object</a>, each separated from the
30593
+ next by a single U+0020 SPACE character.</p>
30594
+
30595
+ <p>The <code title=dom-Node-ownerDocument><a href=#dom-node-ownerdocument>ownerDocument</a></code>
30170
30596
  attribute of all nodes in the DOM tree must be set to the given
30171
30597
  document <var title="">owner</var>.</p>
30172
30598
 
@@ -30222,8 +30648,9 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30222
30648
  <p>For the purposes of listing chapters in the <a href=#media-resource>media
30223
30649
  resource</a>, only <a href=#timed-track title="timed track">timed tracks</a>
30224
30650
  in the <a href=#media-element>media element</a>'s <a href=#list-of-timed-tracks>list of timed
30225
- tracks</a> <a href=#timed-track-showing title="timed track showing">showing</a> and
30226
- whose <a href=#timed-track-kind>timed track kind</a> is <code title=dom-timedtrack-kind-chapters><a href=#dom-timedtrack-kind-chapters>chapters</a></code> should be used.
30651
+ tracks</a> <a href=#timed-track-showing title="timed track showing">showing</a> or
30652
+ <a href=#timed-track-showing-by-default title="timed track showing by default">showing by
30653
+ default</a> and whose <a href=#timed-track-kind>timed track kind</a> is <code title=dom-timedtrack-kind-chapters><a href=#dom-timedtrack-kind-chapters>chapters</a></code> should be used.
30227
30654
  Each <a href=#timed-track-cue title="timed track cue">cue</a> in such a <a href=#timed-track>timed
30228
30655
  track</a> represents a chapter starting at the cue's <a href=#timed-track-cue-start-time title="timed track cue start time">start time</a>. The name of
30229
30656
  the chapter is the <a href=#timed-track-cue-text>timed track cue text</a>, interpreted
@@ -30823,8 +31250,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30823
31250
 
30824
31251
  <dd>
30825
31252
 
30826
- <p>Returns a <code title="">data:</code> URL for the image in the
30827
- canvas.</p>
31253
+ <p>Returns a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> for the image in the canvas.</p>
30828
31254
 
30829
31255
  <p>The first argument, if provided, controls the type of the image
30830
31256
  to be returned (e.g. PNG or JPEG). The default is <code title="">image/png</code>; that type is also used if the given
@@ -30837,17 +31263,20 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30837
31263
  </dl><div class=impl>
30838
31264
 
30839
31265
  <p>The <dfn id=dom-canvas-todataurl title=dom-canvas-toDataURL><code>toDataURL()</code></dfn> method
30840
- must, when called with no arguments, return a <code title="">data:</code> URL containing a representation of the image
30841
- as a PNG file. <a href=#refsPNG>[PNG]</a></p>
31266
+ must, when called with no arguments, return a <a href=#data-protocol title="data
31267
+ protocol"><code title="">data:</code> URL</a> containing a
31268
+ representation of the image as a PNG file. <a href=#refsPNG>[PNG]</a> <a href=#refsRFC2397>[RFC2397]</a></p>
30842
31269
 
30843
31270
  <p>If the canvas has no pixels (i.e. either its horizontal dimension
30844
31271
  or its vertical dimension is zero) then the method must return the
30845
- string "<code title="">data:,</code>". (This is the shortest <code title="">data:</code> URL; it represents the empty string in a <code title="">text/plain</code> resource.)</p>
31272
+ string "<code title="">data:,</code>". (This is the shortest <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a>; it
31273
+ represents the empty string in a <code title="">text/plain</code>
31274
+ resource.)</p>
30846
31275
 
30847
31276
  <p>When the <code title=dom-canvas-toDataURL><a href=#dom-canvas-todataurl>toDataURL(<var title="">type</var>)</a></code> method is called with one <em>or
30848
- more</em> arguments, it must return a <code title="">data:</code>
30849
- URL containing a representation of the image in the format given by
30850
- <var title="">type</var>. The possible values are <a href=#mime-type title="MIME
31277
+ more</em> arguments, it must return a <a href=#data-protocol title="data
31278
+ protocol"><code title="">data:</code> URL</a> containing a
31279
+ representation of the image in the format given by <var title="">type</var>. The possible values are <a href=#mime-type title="MIME
30851
31280
  type">MIME types</a> with no parameters, for example
30852
31281
  <code>image/png</code>, <code>image/jpeg</code>, or even maybe
30853
31282
  <code>image/svg+xml</code> if the implementation actually keeps
@@ -30857,15 +31286,17 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30857
31286
  <p>For image types that do not support an alpha channel, the image
30858
31287
  must be composited onto a solid black background using the
30859
31288
  source-over operator, and the resulting image must be the one used
30860
- to create the <code title="">data:</code> URL.</p>
31289
+ to create the <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a>.</p>
30861
31290
 
30862
31291
  <p>Only support for <code>image/png</code> is required. User agents
30863
31292
  may support other types. If the user agent does not support the
30864
31293
  requested type, it must return the image using the PNG format.</p>
30865
31294
 
30866
- <p>User agents must <a href=#converted-to-ascii-lowercase title="converted to ASCII lowercase">convert the
30867
- provided type to ASCII lowercase</a> before establishing if they
30868
- support that type and before creating the <code title="">data:</code> URL.</p>
31295
+ <p>User agents must <a href=#converted-to-ascii-lowercase title="converted to ASCII
31296
+ lowercase">convert the provided type to ASCII lowercase</a>
31297
+ before establishing if they support that type and before creating
31298
+ the <a href=#data-protocol title="data protocol"><code title="">data:</code>
31299
+ URL</a>.</p>
30869
31300
 
30870
31301
  </div>
30871
31302
 
@@ -30907,6 +31338,10 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
30907
31338
  more carefully control compression settings, image metadata,
30908
31339
  etc.</p>
30909
31340
 
31341
+ <!-- should we explicitly require the URL to be base64-encoded and
31342
+ not have any parameters, to ensure the same exact URL is generated
31343
+ in each browser? -->
31344
+
30910
31345
  </div>
30911
31346
 
30912
31347
  <!--2DCONTEXT-->
@@ -31267,9 +31702,9 @@ idea from Mihai:
31267
31702
  the translation distance in the horizontal direction and the <var title="">y</var> argument represents the translation distance in the
31268
31703
  vertical direction. The arguments are in coordinate space units.</p>
31269
31704
 
31270
- <p>The <dfn id=dom-context-2d-transform title=dom-context-2d-transform><code>transform(<var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>,
31271
- <var title="">f</var>)</code></dfn> method must multiply the
31272
- current transformation matrix with the matrix described by:</p>
31705
+ <p>The <dfn id=dom-context-2d-transform title=dom-context-2d-transform><code>transform(<var title="">a</var>, <var title="">b</var>, <var title="">c</var>, <var title="">d</var>, <var title="">e</var>, <var title="">f</var>)</code></dfn> method must replace the current
31706
+ transformation matrix with the result of multiplying the current
31707
+ transformation matrix with the matrix described by:</p>
31273
31708
 
31274
31709
  </div>
31275
31710
 
@@ -31798,6 +32233,17 @@ idea from Mihai:
31798
32233
  stroking or filling effect requires that they be drawn, and are
31799
32234
  affected by the current transformation matrix.</p>
31800
32235
 
32236
+ <p>If the original image data is a bitmap image, the value painted
32237
+ at a point in the area of the repetitions is computed by filtering
32238
+ the original image data. The user agent may use any filtering
32239
+ algorithm (for example bilinear interpolation or nearest-neighbor).
32240
+ When the filtering algorithm requires a pixel value from outside the
32241
+ original image data, it must instead use the value from wrapping the
32242
+ pixel's coordinates to the original image's dimensions. (That is,
32243
+ the filter uses 'repeat' behavior, regardless of the value of
32244
+ <var title="">repetition</var>.)
32245
+ <!-- drawImage() has a similar paragraph with different rules -->
32246
+
31801
32247
  <p>When the <code title=dom-context-2d-createPattern><a href=#dom-context-2d-createpattern>createPattern()</a></code> method
31802
32248
  is passed an animated image as its <var title="">image</var>
31803
32249
  argument, the user agent must use the poster frame of the animation,
@@ -33274,10 +33720,6 @@ v5DVT (also check for '- -' bits in the part above) --><p>The <dfn id=dom-contex
33274
33720
  arguments is zero, the implementation must raise an
33275
33721
  <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception.</p>
33276
33722
 
33277
- <p>Pixels of the source rectangle that are not entirely within the
33278
- source image must be treated as transparent black.</p> <!-- see
33279
- CORE-32111 http://krijnhoetmer.nl/irc-logs/whatwg/20100818#l-737 -->
33280
-
33281
33723
  <p>The destination rectangle is the rectangle whose corners are the
33282
33724
  four points (<var title="">dx</var>, <var title="">dy</var>),
33283
33725
  (<span title=""><var title="">dx</var>+<var title="">dw</var></span>, <var title="">dy</var>), (<span title=""><var title="">dx</var>+<var title="">dw</var></span>, <span title=""><var title="">dy</var>+<var title="">dh</var></span>), (<var title="">dx</var>, <span title=""><var title="">dy</var>+<var title="">dh</var></span>).</p>
@@ -33304,6 +33746,19 @@ v5DVT (also check for '- -' bits in the part above) --><p>The <dfn id=dom-contex
33304
33746
  back onto the canvas, so it is possible to copy parts of a canvas
33305
33747
  onto overlapping parts of itself.</p>
33306
33748
 
33749
+ <p>If the original image data is a bitmap image, the value painted
33750
+ at a point in the destination rectangle is computed by filtering the
33751
+ original image data. The user agent may use any filtering algorithm
33752
+ (for example bilinear interpolation or nearest-neighbor). When the
33753
+ filtering algorithm requires a pixel value from outside the original
33754
+ image data, it must instead use the value from the nearest edge
33755
+ pixel. (That is, the filter uses 'clamp-to-edge' behavior.)</p>
33756
+ <!-- see CORE-32111 and:
33757
+ http://krijnhoetmer.nl/irc-logs/whatwg/20100818#l-737
33758
+ http://www.w3.org/Bugs/Public/show_bug.cgi?id=10799#c11
33759
+ -->
33760
+ <!-- createPattern() has a similar paragraph with different rules -->
33761
+
33307
33762
  <p>When the <code title=dom-context-2d-drawImage><a href=#dom-context-2d-drawimage>drawImage()</a></code> method
33308
33763
  is passed an animated image as its <var title="">image</var>
33309
33764
  argument, the user agent must use the poster frame of the animation,
@@ -34724,11 +35179,12 @@ function AddCloud(data, x, y) { ... }</pre>
34724
35179
 
34725
35180
  </div>
34726
35181
 
34727
- <p>Tables have rows and columns given by their descendants. A table
34728
- must not have an empty row or column<span class=impl>, as
34729
- described in the description of the <a href=#table-model>table
34730
- model</a></span>. <!-- conformance criteria for detecting this
34731
- are in the table model section --></p>
35182
+ <p>Tables have rows, columns, and cells given by their descendants.
35183
+ The rows and columns form a grid; a table's cells must completely
35184
+ cover that grid without overlap. <span class="impl note">Precise
35185
+ rules for determining whether this conformance requirement is met
35186
+ are described in the description of the <a href=#table-model>table
35187
+ model</a>.</span></p>
34732
35188
 
34733
35189
  <p id=table-descriptions>For tables that consist of more than just
34734
35190
  a grid of cells with headers in the first row and headers in the
@@ -35876,7 +36332,7 @@ the cell that corresponds to the values of the two dice.
35876
36332
 
35877
36333
  <p>The <dfn id=dom-th-scope title=dom-th-scope><code>scope</code></dfn> IDL
35878
36334
  attribute must <a href=#reflect>reflect</a> the content attribute of the
35879
- same name.</p>
36335
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
35880
36336
 
35881
36337
  </div>
35882
36338
 
@@ -46326,6 +46782,14 @@ out of 233&thinsp;257&thinsp;824 bytes available&lt;/meter&gt;&lt;/p&gt;</pre>
46326
46782
  <ol><li><p>Let <var title="">target</var> be the element's
46327
46783
  <code><a href=#document>Document</a></code>.</li>
46328
46784
 
46785
+ <li><p>Let <var title="">target</var> has no <a href=#browsing-context>browsing
46786
+ context</a>, abort these steps.</li>
46787
+
46788
+ <li><p>Let <var title="">target</var>'s <a href=#browsing-context>browsing
46789
+ context</a> has no <a href=#top-level-browsing-context>top-level browsing context</a> (e.g.
46790
+ it is a <a href=#nested-browsing-context>nested browsing context</a> with no <a href=#parent-browsing-context>parent
46791
+ browsing context</a>), abort these steps.</li>
46792
+
46329
46793
  <li><p>If <var title="">target</var>'s <a href=#browsing-context>browsing
46330
46794
  context</a> had the <a href=#sandboxed-automatic-features-browsing-context-flag>sandboxed automatic features browsing
46331
46795
  context flag</a> set when <var title="">target</var> was
@@ -46489,11 +46953,11 @@ out of 233&thinsp;257&thinsp;824 bytes available&lt;/meter&gt;&lt;/p&gt;</pre>
46489
46953
  element is a <a href=#concept-submit-button title=concept-submit-button>submit
46490
46954
  button</a> and has such an attribute; or the value of its
46491
46955
  <a href=#form-owner>form owner</a>'s <code title=attr-fs-target><a href=#attr-fs-target>target</a></code>
46492
- attribute, if <em>it</em> has such an attribute; or, if one of the
46493
- child nodes of <a href=#the-head-element>the <code>head</code> element</a> is a
46494
- <code><a href=#the-base-element>base</a></code> element with a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the value of
46495
- the <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute of the
46496
- first such <code><a href=#the-base-element>base</a></code> element; or, if there is no such
46956
+ attribute, if <em>it</em> has such an attribute; or, if the
46957
+ <code><a href=#document>Document</a></code> contains a <code><a href=#the-base-element>base</a></code> element with a
46958
+ <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the
46959
+ value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute
46960
+ of the first such <code><a href=#the-base-element>base</a></code> element; or, if there is no such
46497
46961
  element, the empty string.</p> <!-- c.f. hyperlink following -->
46498
46962
 
46499
46963
  <hr><p>The <dfn id=attr-fs-novalidate title=attr-fs-novalidate><code>novalidate</code></dfn>
@@ -47193,12 +47657,17 @@ fur
47193
47657
  <var title="">scripted-submit</var> flag set, the user agent must
47194
47658
  run the following steps:</p>
47195
47659
 
47196
- <ol><li id=sandboxSubmitBlocked><p>If <var title="">form</var> is in
47197
- a <code><a href=#document>Document</a></code> that has no associated <a href=#browsing-context>browsing
47198
- context</a> or whose <a href=#browsing-context>browsing context</a> had its
47199
- <a href=#sandboxed-forms-browsing-context-flag>sandboxed forms browsing context flag</a> set when the
47200
- <code><a href=#document>Document</a></code> was created, then abort these steps without
47201
- doing anything.</li>
47660
+ <ol><li><p>Let <var title="">form document</var> be the <var title="">form</var>'s <code><a href=#document>Document</a></code>.</li>
47661
+
47662
+ <li id=sandboxSubmitBlocked><p>If <var title="">form
47663
+ document</var> has no associated <a href=#browsing-context>browsing context</a> or
47664
+ its <a href=#browsing-context>browsing context</a> had its <a href=#sandboxed-forms-browsing-context-flag>sandboxed forms
47665
+ browsing context flag</a> set when the <code><a href=#document>Document</a></code> was
47666
+ created, then abort these steps without doing anything.</li>
47667
+
47668
+ <li><p>Let <var title="">form browsing context</var> be the
47669
+ <a href=#browsing-context>browsing context</a> of <var title="">form
47670
+ document</var>.</li>
47202
47671
 
47203
47672
  <li><p>If <var title="">form</var> is already being submitted
47204
47673
  (i.e. the form was <a href=#concept-form-submit title=concept-form-submit>submitted</a> again while processing
@@ -47404,7 +47873,8 @@ fur
47404
47873
 
47405
47874
  <li>
47406
47875
 
47407
- <p>If <var title="">action</var> is the empty string, let <var title="">action</var> be <a href="#the-document's-address">the document's address</a>.</p>
47876
+ <p>If <var title="">action</var> is the empty string, let <var title="">action</var> be <a href="#the-document's-address">the document's address</a> of
47877
+ the <var title="">form document</var>.</p>
47408
47878
 
47409
47879
  <p class=note>This step is a <a href=#willful-violation>willful violation</a> of
47410
47880
  RFC 3986, which would require base URL processing here. This
@@ -47435,6 +47905,19 @@ fur
47435
47905
 
47436
47906
  <li><p>Let <var title="">target</var> be the <var title="">submitter</var> element's <a href=#concept-fs-target title=concept-fs-target>target</a>.</li>
47437
47907
 
47908
+ <li><p>If the user indicated a specific <a href=#browsing-context>browsing
47909
+ context</a> to use when submitting the form, then let <var title="">target browsing context</var> be that <a href=#browsing-context>browsing
47910
+ context</a>. Otherwise, apply <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a
47911
+ browsing context given a browsing context name</a> using <var title="">target</var> as the name and <var title="">form browsing
47912
+ context</var> as the context in which the algorithm is executed,
47913
+ and let <var title="">target browsing context</var> be the
47914
+ resulting <a href=#browsing-context>browsing context</a>.</li>
47915
+
47916
+ <li><p>If <var title="">target browsing context</var> was created
47917
+ in the previous step, or if the <var title="">form document</var>
47918
+ has not yet <a href=#completely-loaded>completely loaded</a>, then let <var title="">replace</var> be true. Otherwise, let it be
47919
+ false.</li>
47920
+
47438
47921
  <li>
47439
47922
 
47440
47923
  <p>Select the appropriate row in the table below based on the
@@ -47489,13 +47972,11 @@ fur
47489
47972
  replaced by <var title="">query</var> (adding a U+003F QUESTION
47490
47973
  MARK character (?) if appropriate).</p>
47491
47974
 
47492
- <p>Let <var title="">target browsing context</var> be <a href=#the-form-submission-target-browsing-context>the
47493
- form submission target browsing context</a>.</p>
47494
-
47495
- <p><a href=#navigate>Navigate</a> <var title="">target browsing
47496
- context</var> to <var title="">destination</var>. If <var title="">target browsing context</var> was newly created for
47497
- this purpose by the steps above, then it must be navigated with
47498
- <a href=#replacement-enabled>replacement enabled</a>.</p>
47975
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
47976
+ browsing context</var> to <var title="">destination</var>. If
47977
+ <var title="">replace</var> is true, then <var title="">target
47978
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
47979
+ enabled</a>.</p>
47499
47980
 
47500
47981
  </dd>
47501
47982
 
@@ -47506,9 +47987,6 @@ fur
47506
47987
  the <var title="">form data set</var> using the
47507
47988
  <a href=#appropriate-form-encoding-algorithm>appropriate form encoding algorithm</a>.</p>
47508
47989
 
47509
- <p>Let <var title="">target browsing context</var> be <a href=#the-form-submission-target-browsing-context>the
47510
- form submission target browsing context</a>.</p>
47511
-
47512
47990
  <p>Let <var title="">MIME type</var> be determined as
47513
47991
  follows:</p>
47514
47992
 
@@ -47524,17 +48002,15 @@ fur
47524
48002
 
47525
48003
  <dd>Let <var title="">MIME type</var> be "<code title="">text/plain</code>".</dd>
47526
48004
 
47527
- </dl><p>If <var title="">method</var> is anything but <!--GET or-->
47528
- POST, and the <a href=#origin>origin</a> of <var title="">action</var>
47529
- is not the <a href=#same-origin>same origin</a> as that of the
47530
- <code><a href=#the-form-element>form</a></code> element's <code><a href=#document>Document</a></code>, then abort
47531
- these steps.</p> <!-- CORS, one day -->
47532
-
47533
- <p>Otherwise, <a href=#navigate>navigate</a> <var title="">target
47534
- browsing context</var> to <var title="">action</var> using the
47535
- HTTP method given by <var title="">method</var> and with <var title="">entity body</var> as the entity body, of type <var title="">MIME type</var>. If <var title="">target browsing
47536
- context</var> was newly created for this purpose by the steps
47537
- above, then it must be navigated with <a href=#replacement-enabled>replacement
48005
+ </dl><!--<p>If <var title="">method</var> is anything but (GET or)
48006
+ POST, and the <span>origin</span> of <var title="">action</var>
48007
+ is not the <span>same origin</span> as that of <var
48008
+ title="">form document</var>, then abort these steps.</p> [or do
48009
+ CORS] (this is commented out since only POST can trigger this
48010
+ now, and that's historically unrestricted)--><p>Otherwise, <a href=#navigate>navigate</a><!--DONAV form--> <var title="">target browsing context</var> to <var title="">action</var> using the HTTP method given by <var title="">method</var> and with <var title="">entity body</var>
48011
+ as the entity body, of type <var title="">MIME type</var>. If
48012
+ <var title="">replace</var> is true, then <var title="">target
48013
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
47538
48014
  enabled</a>.</p>
47539
48015
 
47540
48016
  </dd>
@@ -47542,13 +48018,10 @@ fur
47542
48018
  <dt><dfn id=submit-get-action title=submit-get-action>Get action</dfn>
47543
48019
  <dd>
47544
48020
 
47545
- <p>Let <var title="">target browsing context</var> be <a href=#the-form-submission-target-browsing-context>the
47546
- form submission target browsing context</a>.</p>
47547
-
47548
- <p><a href=#navigate>Navigate</a> <var title="">target browsing
47549
- context</var> to <var title="">action</var>. If <var title="">target browsing context</var> was newly created for
47550
- this purpose by the steps above, then it must be navigated with
47551
- <a href=#replacement-enabled>replacement enabled</a>.</p>
48021
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
48022
+ browsing context</var> to <var title="">action</var>. If <var title="">replace</var> is true, then <var title="">target
48023
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
48024
+ enabled</a>.</p>
47552
48025
 
47553
48026
  </dd>
47554
48027
 
@@ -47575,13 +48048,10 @@ fur
47575
48048
  string, replace the first occurrence of "<code title="">%%</code>" in <var title="">action</var> with the
47576
48049
  resulting escaped string. <a href=#refsRFC3986>[RFC3986]</a></p>
47577
48050
 
47578
- <p>Let <var title="">target browsing context</var> be <a href=#the-form-submission-target-browsing-context>the
47579
- form submission target browsing context</a>.</p>
47580
-
47581
- <p><a href=#navigate>Navigate</a> <var title="">target browsing
47582
- context</var> to the potentially modified <var title="">action</var>. If <var title="">target browsing
47583
- context</var> was newly created for this purpose by the steps
47584
- above, then it must be navigated with <a href=#replacement-enabled>replacement
48051
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
48052
+ browsing context</var> to the potentially modified <var title="">action</var> (which will be a <a href=#data-protocol title="data
48053
+ protocol"><code title="">data:</code> URL</a>). If <var title="">replace</var> is true, then <var title="">target
48054
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
47585
48055
  enabled</a>.</p>
47586
48056
 
47587
48057
  </dd>
@@ -47605,13 +48075,11 @@ fur
47605
48075
 
47606
48076
  <p>Append <var title="">headers</var> to <var title="">destination</var>.</p>
47607
48077
 
47608
- <p>Let <var title="">target browsing context</var> be <a href=#the-form-submission-target-browsing-context>the
47609
- form submission target browsing context</a>.</p>
47610
-
47611
- <p><a href=#navigate>Navigate</a> <var title="">target browsing
47612
- context</var> to <var title="">destination</var>. If <var title="">target browsing context</var> was newly created for
47613
- this purpose by the steps above, then it must be navigated with
47614
- <a href=#replacement-enabled>replacement enabled</a>.</p>
48078
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
48079
+ browsing context</var> to <var title="">destination</var>. If
48080
+ <var title="">replace</var> is true, then <var title="">target
48081
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
48082
+ enabled</a>.</p>
47615
48083
 
47616
48084
  </dd>
47617
48085
 
@@ -47638,28 +48106,15 @@ fur
47638
48106
  <p>Append <var title="">body</var>, interpreted as a US-ASCII
47639
48107
  string, to <var title="">destination</var>.</p>
47640
48108
 
47641
- <p>Let <var title="">target browsing context</var> be <a href=#the-form-submission-target-browsing-context>the
47642
- form submission target browsing context</a>.</p>
47643
-
47644
- <p><a href=#navigate>Navigate</a> <var title="">target browsing
47645
- context</var> to <var title="">destination</var>. If <var title="">target browsing context</var> was newly created for
47646
- this purpose by the steps above, then it must be navigated with
47647
- <a href=#replacement-enabled>replacement enabled</a>.</p>
48109
+ <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target
48110
+ browsing context</var> to <var title="">destination</var>. If
48111
+ <var title="">replace</var> is true, then <var title="">target
48112
+ browsing context</var> must be navigated with <a href=#replacement-enabled>replacement
48113
+ enabled</a>.</p>
47648
48114
 
47649
48115
  </dd>
47650
48116
 
47651
- </dl><p><dfn id=the-form-submission-target-browsing-context>The form submission target browsing context</dfn> is
47652
- obtained, when needed by the behaviors described above, as
47653
- follows: If the user indicated a specific <a href=#browsing-context>browsing
47654
- context</a> to use when submitting the form, then that is the
47655
- target browsing context. Otherwise, apply <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for
47656
- choosing a browsing context given a browsing context name</a>
47657
- using <var title="">target</var> as the name and the
47658
- <a href=#browsing-context>browsing context</a> of <var title="">form</var> as the
47659
- context in which the algorithm is executed; the resulting
47660
- <a href=#browsing-context>browsing context</a> is the target browsing context.</p>
47661
-
47662
- <p>The <dfn id=appropriate-form-encoding-algorithm>appropriate form encoding algorithm</dfn> is
48117
+ </dl><p>The <dfn id=appropriate-form-encoding-algorithm>appropriate form encoding algorithm</dfn> is
47663
48118
  determined as follows:</p>
47664
48119
 
47665
48120
  <dl><dt>If <var title="">enctype</var> is <code title=attr-fs-enctype-urlencoded><a href=#attr-fs-enctype-urlencoded>application/x-www-form-urlencoded</a></code></dt>
@@ -49685,16 +50140,17 @@ local.onconnect = function (event) {
49685
50140
  the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the
49686
50141
  <a href=#url>URL</a> given by the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute of that element,
49687
50142
  relative to that element, and if that is successful, must
49688
- <a href=#navigate>navigate</a> a <a href=#browsing-context>browsing context</a> to the
49689
- resulting <a href=#absolute-url>absolute URL</a>. In the case of server-side
49690
- image maps, that <a href=#absolute-url>absolute URL</a> must have its
49691
- <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> appended to it before the navigation is
49692
- started.</p>
50143
+ <a href=#navigate>navigate</a><!--DONAV hyperlink--> a <a href=#browsing-context>browsing
50144
+ context</a> to the resulting <a href=#absolute-url>absolute URL</a>. In the
50145
+ case of server-side image maps, that <a href=#absolute-url>absolute URL</a> must
50146
+ have its <var><a href=#hyperlink-suffix>hyperlink suffix</a></var> appended to it before the
50147
+ navigation is started.</p>
49693
50148
 
49694
50149
  <p>If <a href=#resolve-a-url title="resolve a url">resolving</a> the
49695
50150
  <a href=#url>URL</a> fails, the user agent may report the error to the
49696
- user in a user-agent-specific manner, may navigate to an error page
49697
- to report the error, or may ignore the error and do nothing.</p>
50151
+ user in a user-agent-specific manner, may
50152
+ <a href=#navigate>navigate</a><!--DONAV hyperlink--> to an error page to
50153
+ report the error, or may ignore the error and do nothing.</p>
49698
50154
 
49699
50155
  <p>If the user indicated a specific <a href=#browsing-context>browsing context</a>
49700
50156
  when following the hyperlink, or if the user agent is configured to
@@ -49717,15 +50173,16 @@ local.onconnect = function (event) {
49717
50173
  as the browsing context to be navigated.</p>
49718
50174
 
49719
50175
  <p>Otherwise, if the element is an <code><a href=#the-a-element>a</a></code> or
49720
- <code><a href=#the-area-element>area</a></code> element with no <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, but one of
49721
- the child nodes of <a href=#the-head-element>the <code>head</code> element</a> is a
49722
- <code><a href=#the-base-element>base</a></code> element with a <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the browsing
49723
- context that is navigated must be chosen by applying <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules
49724
- for choosing a browsing context given a browsing context
49725
- name</a>, using the value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute of the first such
50176
+ <code><a href=#the-area-element>area</a></code> element with no <code title=attr-hyperlink-target><a href=#attr-hyperlink-target>target</a></code> attribute, but the
50177
+ <code><a href=#document>Document</a></code> contains a <code><a href=#the-base-element>base</a></code> element with a
50178
+ <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute, then the
50179
+ browsing context that is navigated must be chosen by applying
50180
+ <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a browsing
50181
+ context name</a>, using the value of the <code title=attr-base-target><a href=#attr-base-target>target</a></code> attribute of the first such
49726
50182
  <code><a href=#the-base-element>base</a></code> element as the browsing context name. If these
49727
50183
  rules result in the creation of a new <a href=#browsing-context>browsing context</a>,
49728
50184
  it must be navigated with <a href=#replacement-enabled>replacement enabled</a>.</p>
50185
+ <!-- c.f. concept-fs-target -->
49729
50186
 
49730
50187
  <p>Otherwise, the browsing context that must be navigated is the
49731
50188
  same browsing context as the one which the element itself is in.</p>
@@ -55866,7 +56323,7 @@ END:VCARD</pre>
55866
56323
  &lt;dt&gt;Title&lt;/dt&gt;
55867
56324
  &lt;dd&gt;&lt;cite itemprop="http://purl.org/dc/terms/title"&gt;Just a Geek&lt;/cite&gt;&lt;/dd&gt;
55868
56325
  &lt;dt&gt;By&lt;/dt&gt;
55869
- &lt;dd&gt;&lt;span itemprop="http://purl.org/dc/terms/creator"&gt;Wil Wheaton&lt;/span&gt;&lt;/dd&gt;
56326
+ &lt;dd&gt;&lt;span itemprop="http://purl.org/dc/elements/1.1/creator"&gt;Wil Wheaton&lt;/span&gt;&lt;/dd&gt;
55870
56327
  &lt;dt&gt;Format&lt;/dt&gt;
55871
56328
  &lt;dd itemprop="http://purl.org/vocab/frbr/core#realization"
55872
56329
  itemscope
@@ -55886,20 +56343,21 @@ END:VCARD</pre>
55886
56343
 
55887
56344
  <p>This is equivalent to the following Turtle:</p>
55888
56345
 
55889
- <pre class=turtle>@prefix dc: &lt;http://purl.org/dc/terms/&gt; .
56346
+ <pre class=turtle>@prefix dct: &lt;http://purl.org/dc/terms/&gt; .
56347
+ @prefix dce: &lt;http://purl.org/dc/elements/1.1/&gt; .
55890
56348
  @prefix frbr: &lt;http://purl.org/vocab/frbr/core#&gt; .
55891
56349
 
55892
56350
  &lt;http://purl.oreilly.com/works/45U8QJGZSQKDH8N&gt; a frbr:Work ;
55893
- dc:creator "Wil Wheaton"@en ;
55894
- dc:title "Just a Geek"@en ;
56351
+ dce:creator "Wil Wheaton"@en ;
56352
+ dct:title "Just a Geek"@en ;
55895
56353
  frbr:realization &lt;http://purl.oreilly.com/products/9780596007683.BOOK&gt;,
55896
56354
  &lt;http://purl.oreilly.com/products/9780596802189.EBOOK&gt; .
55897
56355
 
55898
56356
  &lt;http://purl.oreilly.com/products/9780596007683.BOOK&gt; a frbr:Expression ;
55899
- dc:type &lt;http://purl.oreilly.com/product-types/BOOK&gt; .
56357
+ dct:type &lt;http://purl.oreilly.com/product-types/BOOK&gt; .
55900
56358
 
55901
56359
  &lt;http://purl.oreilly.com/products/9780596802189.EBOOK&gt; a frbr:Expression ;
55902
- dc:type &lt;http://purl.oreilly.com/product-types/EBOOK&gt; .</pre>
56360
+ dct:type &lt;http://purl.oreilly.com/product-types/EBOOK&gt; .</pre>
55903
56361
 
55904
56362
  </div>
55905
56363
 
@@ -56612,36 +57070,43 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56612
57070
  <p>Certain elements (for example, <code><a href=#the-iframe-element>iframe</a></code> elements) can
56613
57071
  instantiate further <a href=#browsing-context title="browsing context">browsing
56614
57072
  contexts</a>. These are called <dfn id=nested-browsing-context title="nested browsing
56615
- context">nested browsing contexts</dfn>. If a browsing context <var title="">P</var> has an element <var title="">E</var> in one of its
56616
- <code><a href=#document>Document</a></code>s <var title="">D</var> that nests another
56617
- browsing context <var title="">C</var> inside it, then <var title="">P</var> is said to be the <dfn id=parent-browsing-context>parent browsing
56618
- context</dfn> of <var title="">C</var>, <var title="">C</var> is
56619
- said to be a <dfn id=child-browsing-context>child browsing context</dfn> of <var title="">P</var>, <var title="">C</var> is said to be <dfn id=browsing-context-nested-through title="browsing context nested through">nested through</dfn> <var title="">D</var>, and <var title="">E</var> is said to be the
56620
- <dfn id=browsing-context-container>browsing context container</dfn> of <var title="">C</var>.</p>
56621
-
56622
- <p>A browsing context <var title="">A</var> is said to be an
56623
- ancestor of a browsing context <var title="">B</var> if there exists
56624
- a browsing context <var title="">A'</var> that is a <a href=#child-browsing-context>child
56625
- browsing context</a> of <var title="">A</var> and that is itself
56626
- an ancestor of <var title="">B</var>, or if there is a browsing
56627
- context <var title="">P</var> that is a <a href=#child-browsing-context>child browsing
56628
- context</a> of <var title="">A</var> and that is the <a href=#parent-browsing-context>parent
56629
- browsing context</a> of <var title="">B</var>.</p>
56630
-
56631
- <p>The browsing context with no <a href=#parent-browsing-context>parent browsing context</a>
56632
- is the <dfn id=top-level-browsing-context>top-level browsing context</dfn> of all the browsing
56633
- contexts <a href=#nested-browsing-context title="nested browsing context">nested</a> within
56634
- it (either directly or indirectly through other nested browsing
56635
- contexts).</p>
57073
+ context">nested browsing contexts</dfn>. If a browsing context <var title="">P</var> has a <code><a href=#document>Document</a></code>s <var title="">D</var>
57074
+ with an element <var title="">E</var> that nests another browsing
57075
+ context <var title="">C</var> inside it, then <var title="">C</var>
57076
+ is said to be <dfn id=browsing-context-nested-through title="browsing context nested through">nested
57077
+ through</dfn> <var title="">D</var>, and <var title="">E</var> is
57078
+ said to be the <dfn id=browsing-context-container>browsing context container</dfn> of <var title="">C</var>. If the <a href=#browsing-context-container>browsing context container</a>
57079
+ element <var title="">E</var> is <a href=#in-a-document title="in a
57080
+ Document">in</a> the <code><a href=#document>Document</a></code> <var title="">D</var>,
57081
+ then <var title="">P</var> is said to be the <dfn id=parent-browsing-context>parent browsing
57082
+ context</dfn> of <var title="">C</var> and <var title="">C</var> is
57083
+ said to be a <dfn id=child-browsing-context>child browsing context</dfn> of <var title="">P</var>. Otherwise, the <a href=#nested-browsing-context>nested browsing
57084
+ context</a> <var title="">C</var> has no <a href=#parent-browsing-context>parent browsing
57085
+ context</a>.</p>
57086
+
57087
+ <p>A browsing context <var title="">A</var> is said to be an <dfn id=ancestor-browsing-context title="ancestor browsing context">ancestor</dfn> of a browsing
57088
+ context <var title="">B</var> if there exists a browsing context
57089
+ <var title="">A'</var> that is a <a href=#child-browsing-context>child browsing context</a>
57090
+ of <var title="">A</var> and that is itself an <a href=#ancestor-browsing-context title="ancestor
57091
+ browsing context">ancestor</a> of <var title="">B</var>, or if
57092
+ there is a browsing context <var title="">P</var> that is a
57093
+ <a href=#child-browsing-context>child browsing context</a> of <var title="">A</var> and
57094
+ that is the <a href=#parent-browsing-context>parent browsing context</a> of <var title="">B</var>.</p>
57095
+
57096
+ <p>A browsing context that is not a <a href=#nested-browsing-context>nested browsing
57097
+ context</a> has no <a href=#parent-browsing-context>parent browsing context</a>, and is
57098
+ the <dfn id=top-level-browsing-context>top-level browsing context</dfn> of all the browsing
57099
+ contexts for which it is an <a href=#ancestor-browsing-context>ancestor browsing
57100
+ context</a>.</p>
56636
57101
 
56637
57102
  <p>The transitive closure of <a href=#parent-browsing-context title="parent browsing
56638
57103
  context">parent browsing contexts</a> for a <a href=#nested-browsing-context>nested browsing
56639
- context</a> gives the list of <dfn id=ancestor-browsing-context title="ancestor browsing
56640
- context">ancestor browsing contexts</dfn>.</p>
57104
+ context</a> gives the list of <a href=#ancestor-browsing-context title="ancestor browsing
57105
+ context">ancestor browsing contexts</a>.</p>
56641
57106
 
56642
57107
  <p>The <dfn id=list-of-the-descendant-browsing-contexts>list of the descendant browsing contexts</dfn> of a
56643
- <code><a href=#document>Document</a></code> <var title="">d</var> is the list returned by
56644
- the following algorithm:</p>
57108
+ <code><a href=#document>Document</a></code> <var title="">d</var> is the (ordered) list
57109
+ returned by the following algorithm:</p>
56645
57110
 
56646
57111
  <ol><li><p>Let <var title="">list</var> be an empty list.</li>
56647
57112
 
@@ -56656,12 +57121,13 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56656
57121
 
56657
57122
  <li><p>Return the constructed <var title="">list</var>.</li>
56658
57123
 
56659
- </ol><hr><p>A <code><a href=#document>Document</a></code> is said to be <dfn id=fully-active>fully active</dfn>
57124
+ </ol><p>A <code><a href=#document>Document</a></code> is said to be <dfn id=fully-active>fully active</dfn>
56660
57125
  when it is the <a href=#active-document>active document</a> of its <a href=#browsing-context>browsing
56661
57126
  context</a>, and either its browsing context is a <a href=#top-level-browsing-context>top-level
56662
- browsing context</a>, or the <code><a href=#document>Document</a></code> <a href=#browsing-context-nested-through title="browsing context nested through">through which</a> that
56663
- browsing context is <a href=#nested-browsing-context title="nested browsing
56664
- context">nested</a> is itself <a href=#fully-active>fully active</a>.</p>
57127
+ browsing context</a>, or it has a <a href=#parent-browsing-context>parent browsing
57128
+ context</a> and the <code><a href=#document>Document</a></code> <a href=#browsing-context-nested-through title="browsing
57129
+ context nested through">through which</a> it is <a href=#nested-browsing-context title="nested browsing context">nested</a> is itself <a href=#fully-active>fully
57130
+ active</a>.</p>
56665
57131
 
56666
57132
  <p>Because they are nested through an element, <a href=#child-browsing-context title="child
56667
57133
  browsing context">child browsing contexts</a> are always tied to
@@ -56675,6 +57141,22 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56675
57141
  browsing context flag</a> set, if it is embedded through an
56676
57142
  <code><a href=#the-iframe-element>iframe</a></code> element with a <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code> attribute.</p>
56677
57143
 
57144
+ <p class=note>A <a href=#nested-browsing-context>nested browsing context</a> can in some
57145
+ cases be taken out of its <a href=#parent-browsing-context>parent browsing context</a> (e.g.
57146
+ if an <code><a href=#the-iframe-element>iframe</a></code> element is removed from its
57147
+ <code><a href=#document>Document</a></code>). In such a situation, the <a href=#nested-browsing-context>nested
57148
+ browsing context</a> has no <a href=#parent-browsing-context>parent browsing context</a>,
57149
+ but it still has the same <a href=#browsing-context-container>browsing context container</a>
57150
+ and is still <a href=#browsing-context-nested-through title="browsing context nested through">nested
57151
+ through</a> that element's <code><a href=#document>Document</a></code>. Such a
57152
+ <a href=#nested-browsing-context>nested browsing context</a> is <em>not</em> a
57153
+ <a href=#top-level-browsing-context>top-level browsing context</a>, and cannot contain
57154
+ <code><a href=#document>Document</a></code>s that are <a href=#fully-active>fully active</a>.
57155
+ Furthermore, if a <a href=#browsing-context-container>browsing context container</a> (such as
57156
+ an <code><a href=#the-iframe-element>iframe</a></code>) is moved to another <code><a href=#document>Document</a></code>,
57157
+ then the <a href=#parent-browsing-context>parent browsing context</a> of its <a href=#nested-browsing-context>nested
57158
+ browsing context</a> will change.</p>
57159
+
56678
57160
 
56679
57161
  <h5 id=navigating-nested-browsing-contexts-in-the-dom><span class=secno>6.1.1.1 </span>Navigating nested browsing contexts in the DOM</h5>
56680
57162
 
@@ -56713,8 +57195,10 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56713
57195
  <a href=#browsing-context>browsing context</a> <var title="">b</var> must return the
56714
57196
  <code><a href=#windowproxy>WindowProxy</a></code> object of its <a href=#top-level-browsing-context>top-level browsing
56715
57197
  context</a> (which would be its own <code><a href=#windowproxy>WindowProxy</a></code>
56716
- object if it was a <a href=#top-level-browsing-context>top-level browsing context</a>
56717
- itself).</p>
57198
+ object if it was a <a href=#top-level-browsing-context>top-level browsing context</a> itself),
57199
+ if it has one, or its own <code><a href=#windowproxy>WindowProxy</a></code> object otherwise
57200
+ (e.g. if it was a detached <a href=#nested-browsing-context>nested browsing
57201
+ context</a>).</p>
56718
57202
 
56719
57203
  <p>The <dfn id=dom-parent title=dom-parent><code>parent</code></dfn> IDL
56720
57204
  attribute on the <code><a href=#window>Window</a></code> object of a
@@ -56723,7 +57207,8 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56723
57207
  <var title="">b</var> is a <a href=#child-browsing-context>child browsing context</a>), or
56724
57208
  the <code><a href=#windowproxy>WindowProxy</a></code> object of the <a href=#browsing-context>browsing
56725
57209
  context</a> <var title="">b</var> itself, otherwise (i.e. if it
56726
- is a <a href=#top-level-browsing-context>top-level browsing context</a>).</p>
57210
+ is a <a href=#top-level-browsing-context>top-level browsing context</a> or a detached
57211
+ <a href=#nested-browsing-context>nested browsing context</a>).</p>
56727
57212
 
56728
57213
  <p>The <dfn id=dom-frameelement title=dom-frameElement><code>frameElement</code></dfn>
56729
57214
  IDL attribute on the <code><a href=#window>Window</a></code> object of a
@@ -56731,11 +57216,11 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56731
57216
  the following algorithm:</p>
56732
57217
 
56733
57218
  <ol><li><p>If <var title="">d</var> is not a <code><a href=#document>Document</a></code> in a
56734
- <a href=#child-browsing-context>child browsing context</a>, return null and abort these
57219
+ <a href=#nested-browsing-context>nested browsing context</a>, return null and abort these
56735
57220
  steps.</li>
56736
57221
 
56737
- <li><p>If the <a href=#parent-browsing-context>parent browsing context</a>'s <a href=#active-document>active
56738
- document</a> does not have the <a href=#same-origin title="same
57222
+ <li><p>If the <a href=#browsing-context-container>browsing context container</a>'s
57223
+ <code><a href=#document>Document</a></code> does not have the <a href=#same-origin title="same
56739
57224
  origin">same</a> <a href=#effective-script-origin>effective script origin</a> as the
56740
57225
  <a href=#entry-script>entry script</a>, then throw a <code><a href=#security_err>SECURITY_ERR</a></code>
56741
57226
  exception.</li>
@@ -56757,11 +57242,8 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56757
57242
 
56758
57243
  <p>An <a href=#auxiliary-browsing-context>auxiliary browsing context</a> has an <dfn id=opener-browsing-context>opener
56759
57244
  browsing context</dfn>, which is the <a href=#browsing-context>browsing context</a>
56760
- from which the <a href=#auxiliary-browsing-context>auxiliary browsing context</a> was created,
56761
- and it has a <dfn id=furthest-ancestor-browsing-context>furthest ancestor browsing context</dfn>, which is
56762
- the <a href=#top-level-browsing-context>top-level browsing context</a> of the <a href=#opener-browsing-context>opener
56763
- browsing context</a> when the <a href=#auxiliary-browsing-context>auxiliary browsing
56764
- context</a> was created.</p>
57245
+ from which the <a href=#auxiliary-browsing-context>auxiliary browsing context</a> was
57246
+ created.</p>
56765
57247
 
56766
57248
 
56767
57249
  <h5 id=navigating-auxiliary-browsing-contexts-in-the-dom><span class=secno>6.1.2.1 </span>Navigating auxiliary browsing contexts in the DOM</h5>
@@ -56797,8 +57279,9 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56797
57279
  document</a> of <var title="">B</var>, or</li>
56798
57280
 
56799
57281
  <li>The browsing context <var title="">A</var> is a <a href=#nested-browsing-context>nested
56800
- browsing context</a> and its <a href=#top-level-browsing-context>top-level browsing
56801
- context</a> is <var title="">B</var>, or</li>
57282
+ browsing context</a> with a <a href=#top-level-browsing-context>top-level browsing
57283
+ context</a>, and its <a href=#top-level-browsing-context>top-level browsing context</a> is
57284
+ <var title="">B</var>, or</li>
56802
57285
 
56803
57286
  <li>The browsing context <var title="">B</var> is an
56804
57287
  <a href=#auxiliary-browsing-context>auxiliary browsing context</a> and <var title="">A</var>
@@ -56856,8 +57339,9 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56856
57339
 
56857
57340
  <p>Each <a href=#unit-of-related-browsing-contexts>unit of related browsing contexts</a> is then
56858
57341
  further divided into the smallest number of groups such that every
56859
- member of each group has an <a href=#effective-script-origin>effective script origin</a>
56860
- that, through appropriate manipulation of the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code> attribute, could
57342
+ member of each group has an <a href=#active-document>active document</a> with an
57343
+ <a href=#effective-script-origin>effective script origin</a> that, through appropriate
57344
+ manipulation of the <code title=dom-document-domain><a href=#dom-document-domain>document.domain</a></code> attribute, could
56861
57345
  be made to be the same as other members of the group, but could not
56862
57346
  be made the same as members of any other group. Each such group is a
56863
57347
  <dfn id=unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</dfn>.</p>
@@ -56910,8 +57394,8 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56910
57394
  context must be the current browsing context.</li>
56911
57395
 
56912
57396
  <li><p>If the given browsing context name is <code title="">_top</code>, then the chosen browsing context must be the
56913
- most <a href=#top-level-browsing-context>top-level browsing context</a> of the current
56914
- one.</li>
57397
+ <a href=#top-level-browsing-context>top-level browsing context</a> of the current one, if
57398
+ there is one, or else the current browsing context.</li>
56915
57399
 
56916
57400
  <li>
56917
57401
 
@@ -56978,9 +57462,8 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
56978
57462
  no name). The chosen browsing context must be this new browsing
56979
57463
  context.</p>
56980
57464
 
56981
- <p>If it is immediately <a href=#navigate title=navigate>navigated</a>,
56982
- then the navigation will be done with <a href=#replacement-enabled>replacement
56983
- enabled</a>.</dd>
57465
+ <p class=note>If it is immediately <a href=#navigate title=navigate>navigated</a>, then the navigation will be
57466
+ done with <a href=#replacement-enabled>replacement enabled</a>.</dd>
56984
57467
 
56985
57468
 
56986
57469
  <dt>If the user agent has been configured such that in this
@@ -57333,15 +57816,14 @@ interface <dfn id=window>Window</dfn> {
57333
57816
  agent could override the selection of the target browsing context to
57334
57817
  instead target a new tab.</p>
57335
57818
 
57336
- <p>Then, the user agent must <a href=#navigate>navigate</a> the selected
57337
- <a href=#browsing-context>browsing context</a> to the <a href=#absolute-url>absolute URL</a> (or
57338
- error) obtained from <a href=#resolve-a-url title="resolve a url">resolving</a>
57339
- <var title="">url</var> earlier. If the <var title="">replace</var>
57340
- is true, then <a href=#replacement-enabled title="replacement enabled">replacement must be
57341
- enabled</a>; otherwise, it must not be enabled unless the
57342
- <a href=#browsing-context>browsing context</a> was just created as part of
57343
- <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the rules for choosing a browsing context given a browsing
57344
- context name</a>. The navigation must be done with the <a href="#script's-browsing-context" title="script's browsing context">browsing context</a> of the
57819
+ <p>Then, the user agent must <a href=#navigate>navigate</a><!--DONAV
57820
+ window.open()--> the selected <a href=#browsing-context>browsing context</a> to the
57821
+ <a href=#absolute-url>absolute URL</a> (or error) obtained from <a href=#resolve-a-url title="resolve a url">resolving</a> <var title="">url</var>
57822
+ earlier. If the <var title="">replace</var> is true or if the
57823
+ <a href=#browsing-context>browsing context</a> was just created as part of <a href=#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>the
57824
+ rules for choosing a browsing context given a browsing context
57825
+ name</a>, then <a href=#replacement-enabled title="replacement enabled">replacement must
57826
+ be enabled</a>. The navigation must be done with the <a href="#script's-browsing-context" title="script's browsing context">browsing context</a> of the
57345
57827
  <a href=#entry-script>entry script</a> as the <a href=#source-browsing-context>source browsing
57346
57828
  context</a>.</p>
57347
57829
 
@@ -57847,6 +58329,7 @@ x === this; // true</pre>
57847
58329
 
57848
58330
  </dd>
57849
58331
 
58332
+
57850
58333
  <dt>For scripts</dt>
57851
58334
 
57852
58335
  <dd>
@@ -57924,6 +58407,7 @@ x === this; // true</pre>
57924
58407
 
57925
58408
  </dd>
57926
58409
 
58410
+
57927
58411
  <dt>For <code><a href=#document>Document</a></code> objects and images</dt>
57928
58412
 
57929
58413
  <dd>
@@ -57940,13 +58424,6 @@ x === this; // true</pre>
57940
58424
  assigned when the <code><a href=#document>Document</a></code> is created.</dd>
57941
58425
 
57942
58426
 
57943
- <dt>If a <code><a href=#document>Document</a></code> or image was returned by the
57944
- <code>XMLHttpRequest</code> API</dt>
57945
-
57946
- <dd>The <a href=#origin>origin</a> is equal to the <span>XMLHttpRequest
57947
- origin</span> of the <code>XMLHttpRequest</code> object. <a href=#refsXHR>[XHR]</a></dd>
57948
-
57949
-
57950
58427
  <dt>If a <code><a href=#document>Document</a></code> or image was generated from a
57951
58428
  <a href=#javascript-protocol title="javascript protocol"><code>javascript:</code>
57952
58429
  URL</a></dt>
@@ -57967,17 +58444,20 @@ x === this; // true</pre>
57967
58444
 
57968
58445
 
57969
58446
  <dt>If a <code><a href=#document>Document</a></code> or image was generated from a
57970
- <code title="">data:</code> URL that was returned as the location
57971
- of an HTTP redirect (<a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a> in
57972
- other protocols)</dt>
58447
+ <a href=#data-protocol title="data protocol"><code title="">data:</code>
58448
+ URL</a> that was returned as the location of an HTTP redirect
58449
+ (<a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a>
58450
+ in other protocols)</dt>
57973
58451
 
57974
58452
  <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
57975
- <a href=#url>URL</a> that redirected to the <code title="">data:</code> URL.</dd>
58453
+ <a href=#url>URL</a> that redirected to the <a href=#data-protocol title="data
58454
+ protocol"><code title="">data:</code> URL</a>.</dd>
57976
58455
 
57977
58456
 
57978
58457
  <dt>If a <code><a href=#document>Document</a></code> or image was generated from a
57979
- <code title="">data:</code> URL found in another
57980
- <code><a href=#document>Document</a></code> or in a script</dt>
58458
+ <a href=#data-protocol title="data protocol"><code title="">data:</code>
58459
+ URL</a> found in another <code><a href=#document>Document</a></code> or in a
58460
+ script</dt>
57981
58461
 
57982
58462
  <dd>The <a href=#origin>origin</a> is the <a href=#origin>origin</a> of the
57983
58463
  <code><a href=#document>Document</a></code> or script that initiated the <a href=#navigate title=navigate>navigation</a> to that <a href=#url>URL</a>.</dd>
@@ -58000,8 +58480,8 @@ x === this; // true</pre>
58000
58480
 
58001
58481
 
58002
58482
  <dt>If a <code><a href=#document>Document</a></code> or image was obtained in some
58003
- other manner (e.g. a <code title="">data:</code> URL typed in by
58004
- the user, a <code><a href=#document>Document</a></code> created using the <code title=dom-DOMImplementation-createDocument><a href=#dom-domimplementation-createdocument>createDocument()</a></code>
58483
+ other manner (e.g. a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> typed in by the user, a
58484
+ <code><a href=#document>Document</a></code> created using the <code title=dom-DOMImplementation-createDocument><a href=#dom-domimplementation-createdocument>createDocument()</a></code>
58005
58485
  API, etc)</dt>
58006
58486
 
58007
58487
  <dd>The <a href=#origin>origin</a> is a globally unique identifier
@@ -58014,6 +58494,7 @@ x === this; // true</pre>
58014
58494
 
58015
58495
  </dd>
58016
58496
 
58497
+
58017
58498
  <dt>For <code><a href=#audio>audio</a></code> and <code><a href=#video>video</a></code> elements</dt>
58018
58499
 
58019
58500
  <dd>
@@ -58029,7 +58510,20 @@ x === this; // true</pre>
58029
58510
 
58030
58511
  </dd>
58031
58512
 
58032
- </dl><p>The <dfn id=unicode-serialization-of-an-origin>Unicode serialization of an origin</dfn> is the string
58513
+ </dl><p>Other specifications can override the above definitions by
58514
+ themselves specifying the origin of a particular URL, script,
58515
+ <code><a href=#document>Document</a></code>, or image.</p>
58516
+
58517
+ <!-- e.g.:
58518
+
58519
+ <p>The <span>origin</span> of a <code>Document</code> object
58520
+ returned by the <code>XMLHttpRequest</code> API is equal to the
58521
+ <span>XMLHttpRequest origin</span> of the
58522
+ <code>XMLHttpRequest</code> object.</p>
58523
+
58524
+ -->
58525
+
58526
+ <hr><p>The <dfn id=unicode-serialization-of-an-origin>Unicode serialization of an origin</dfn> is the string
58033
58527
  obtained by applying the following algorithm to the given
58034
58528
  <a href=#origin>origin</a>:</p>
58035
58529
 
@@ -58530,7 +59024,7 @@ x === this; // true</pre>
58530
59024
  <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
58531
59025
  abort these steps.</li>
58532
59026
 
58533
- <li><p><a href=#unload-a-document title="unload a document">Unload</a> the the
59027
+ <li><p><a href=#unload-a-document title="unload a document">Unload</a> the
58534
59028
  <a href=#active-document>active document</a> of the <var title="">specified
58535
59029
  browsing context</var> with the <var title="">recycle</var>
58536
59030
  parameter set to false.</li>
@@ -58647,6 +59141,21 @@ x === this; // true</pre>
58647
59141
 
58648
59142
  </li>
58649
59143
 
59144
+ <li>
59145
+
59146
+ <p>If the <a href=#current-document-readiness>current document readiness</a> is not yet set
59147
+ to the string "complete", let the <code><a href=#document>Document</a></code>'s
59148
+ <a href=#pending-state-object>pending state object</a> be another <a href=#structured-clone>structured
59149
+ clone</a> of the specified <var title="">data</var>. (If there
59150
+ was already a <a href=#pending-state-object>pending state object</a>, the previous one
59151
+ is discarded.)</p>
59152
+
59153
+ <p class=note>This ensures that the <code title=event-popstate><a href=#event-popstate>popstate</a></code> event that will be fired
59154
+ when the document finally loads will accurately reflect the
59155
+ pushed or replaced state object.</p>
59156
+
59157
+ </li>
59158
+
58650
59159
  </ol><p class=note>The <var title="">title</var> is purely
58651
59160
  advisory. User agents might use the title in the user interface.</p>
58652
59161
 
@@ -58862,41 +59371,34 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
58862
59371
  address">the current address</a> of the associated
58863
59372
  <code><a href=#document>Document</a></code> object, as an <a href=#absolute-url>absolute URL</a>.</p>
58864
59373
 
58865
- <p>On setting, <!-- READ ME WHEN EDITING THIS: Mozilla does this,
58866
- but IE doesn't. What should we do?: the behavior depends on the
58867
- context in which the script that set the attribute is running. If
58868
- the script ran as the direct result of the execution of a
58869
- <code>script</code> element in the document represented by the
58870
- <code>Location</code> object's associated <code>Document</code>
58871
- object, then the user agent must act as if the <code
58872
- title="dom-location-replace">replace()</code> method had been called
58873
- with the new value as its argument. Otherwise,--> the user agent
58874
- must act as if the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code>
58875
- method had been called with the new value as its argument.</p><!--
58876
- v2: may wish to allow replace instead as a UI improvement -->
58877
-
58878
- <!-- we could change the magic .location setter to simply refer
58879
- straight to assign(), so we don't have two levels of indirection -->
59374
+ <p>On setting, if the <code><a href=#location>Location</a></code> object's associated
59375
+ <code><a href=#document>Document</a></code> object has <a href=#completely-loaded>completely loaded</a>,
59376
+ then the user agent must act as if the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> method had been called
59377
+ with the new value as its argument. Otherwise, the user agent must
59378
+ act as if the <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code>
59379
+ method had been called with the new value as its argument.</p>
59380
+ <!--DONAV location.href, defined in terms of the paragraphs below-->
58880
59381
 
58881
59382
  <p>When the <dfn id=dom-location-assign title=dom-location-assign><code>assign(<var title="">url</var>)</code></dfn> method is invoked, the UA must
58882
59383
  <a href=#resolve-a-url title="resolve a url">resolve</a> the argument, relative to
58883
59384
  the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base
58884
- URL</a>, and if that is successful, must <a href=#navigate>navigate</a>
58885
- the <a href=#browsing-context>browsing context</a> to the specified <var title="">url</var>. If the <a href=#browsing-context>browsing context</a>'s
59385
+ URL</a>, and if that is successful, must
59386
+ <a href=#navigate>navigate</a><!--DONAV location.href/assign--> the
59387
+ <a href=#browsing-context>browsing context</a> to the specified <var title="">url</var>. If the <a href=#browsing-context>browsing context</a>'s
58886
59388
  <a href=#session-history>session history</a> contains only one
58887
59389
  <code><a href=#document>Document</a></code>, and that was the <code><a href=#about:blank>about:blank</a></code>
58888
59390
  <code><a href=#document>Document</a></code> created when the <a href=#browsing-context>browsing context</a>
58889
- was created, then the navigation must be done with
58890
- <a href=#replacement-enabled>replacement enabled</a>.</p> <!-- READ ME WHEN EDITING
58891
- THIS: IE and Firefox only seem to treat it that way if the DOM is
58892
- still a virgin DOM; Safari doesn't check that. Thus this might need
58893
- changing if testing shows the IE/Firefox behaviour is required
58894
- here. -->
59391
+ was created, then the navigation must be done with <a href=#replacement-enabled>replacement
59392
+ enabled</a>.</p> <!-- READ ME WHEN EDITING THIS: IE and Firefox
59393
+ only seem to treat it that way if the DOM is still a virgin DOM;
59394
+ Safari doesn't check that. Thus this might need changing if testing
59395
+ shows the IE/Firefox behaviour is required here. -->
58895
59396
 
58896
59397
  <p>When the <dfn id=dom-location-replace title=dom-location-replace><code>replace(<var title="">url</var>)</code></dfn> method is invoked, the UA must
58897
59398
  <a href=#resolve-a-url title="resolve a url">resolve</a> the argument, relative to
58898
59399
  the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base
58899
- URL</a>, and if that is successful, <a href=#navigate>navigate</a> the
59400
+ URL</a>, and if that is successful,
59401
+ <a href=#navigate>navigate</a><!--DONAV location.href/replace--> the
58900
59402
  <a href=#browsing-context>browsing context</a> to the specified <var title="">url</var> with <a href=#replacement-enabled>replacement enabled</a>.</p>
58901
59403
 
58902
59404
  <p>Navigation for the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> and <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> methods must be done
@@ -58920,26 +59422,44 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
58920
59422
  steps.</dd> <!-- this theoretically would have no effect but in
58921
59423
  practice can be useful to work around rendering bugs. -->
58922
59424
 
59425
+ <dt>If the <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active
59426
+ document</a> is <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a></dt>
59427
+
59428
+ <dd><p><a href=#process-the-iframe-attributes title="process the iframe attributes">Reprocess the
59429
+ <code>iframe</code> attributes</a> of the <a href=#browsing-context>browsing
59430
+ context</a>'s <a href=#browsing-context-container>browsing context container</a>.</dd>
59431
+
59432
+ <dt>If the <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active
59433
+ document</a> has its <a href=#reload-override-flag>reload override
59434
+ flag</a> set</dt>
59435
+
59436
+ <dd><p>Perform <a href=#an-overridden-reload>an overridden reload</a>.</dd>
59437
+
58923
59438
  <dt>Otherwise</dt>
58924
59439
 
58925
- <dd><p><a href=#navigate>Navigate</a> the <a href=#browsing-context>browsing context</a> to
58926
- <a href="#the-document's-current-address">the document's current address</a> with
58927
- <a href=#replacement-enabled>replacement enabled</a>. The <a href=#source-browsing-context>source browsing
58928
- context</a> must be the <a href=#browsing-context>browsing context</a> being
58929
- navigated.</dd> <!-- it appears that document.reload() always
58930
- uses GET and does not, e.g., re-POST. -->
59440
+ <dd><p><a href=#navigate>Navigate</a><!--DONAV location.reload()--> the
59441
+ <a href=#browsing-context>browsing context</a> to <a href="#the-document's-current-address">the document's current
59442
+ address</a> with <a href=#replacement-enabled>replacement enabled</a>. The
59443
+ <a href=#source-browsing-context>source browsing context</a> must be the <a href=#browsing-context>browsing
59444
+ context</a> being navigated.</dd> <!-- it appears that
59445
+ document.reload() always uses GET and does not, e.g., re-POST. -->
58931
59446
 
58932
59447
  <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/141 -->
58933
59448
 
58934
- </dl><p>When a user requests that the current page be reloaded through a
58935
- user interface element, the user agent should <a href=#navigate>navigate</a>
58936
- the <a href=#browsing-context>browsing context</a> to the same resource as
59449
+ </dl><p>When a user requests that the current page of a <a href=#browsing-context>browsing
59450
+ context</a> be reloaded through a user interface element, the
59451
+ user agent should <a href=#navigate>navigate</a><!--DONAV user reload--> the
59452
+ <a href=#browsing-context>browsing context</a> to the same resource as
58937
59453
  <code><a href=#document>Document</a></code>, with <a href=#replacement-enabled>replacement enabled</a>. In the
58938
59454
  case of non-idempotent methods (e.g. HTTP POST), the user agent
58939
59455
  should prompt the user to confirm the operation first, since
58940
59456
  otherwise transactions (e.g. purchases or database modifications)
58941
59457
  could be repeated. User agents may allow the user to explicitly
58942
- override any caches when reloading.</p>
59458
+ override any caches when reloading. If <a href=#browsing-context>browsing
59459
+ context</a>'s <a href=#active-document>active document</a>'s <a href=#reload-override-flag>reload
59460
+ override flag</a> is set, then the user agent may instead perform
59461
+ <a href=#an-overridden-reload>an overridden reload</a> rather than the navigation
59462
+ described in this paragraph.</p>
58943
59463
 
58944
59464
  </div>
58945
59465
 
@@ -59051,6 +59571,8 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
59051
59571
  in this specification.</p>
59052
59572
 
59053
59573
  <!-- NAVIGATE <dfn>navigate</dfn> -->
59574
+ <!-- For places that _call_ this, as opposed to just referring to
59575
+ it, search for "DONAV" -->
59054
59576
  <p>When a browsing context is <dfn id=navigate title=navigate>navigated</dfn>
59055
59577
  to a new resource, the user agent must run the following steps:</p>
59056
59578
 
@@ -59083,9 +59605,10 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
59083
59605
  the new resource in a new <a href=#top-level-browsing-context>top-level browsing context</a>
59084
59606
  or in the <a href=#top-level-browsing-context>top-level browsing context</a> of the
59085
59607
  <a href=#source-browsing-context>source browsing context</a>, at the user's option, in
59086
- which case the user agent must <a href=#navigate>navigate</a> that
59087
- designated <a href=#top-level-browsing-context>top-level browsing context</a> to the new
59088
- resource as if the user had requested it independently.</p>
59608
+ which case the user agent must <a href=#navigate>navigate</a><!--DONAV
59609
+ sandbox manual load--> that designated <a href=#top-level-browsing-context>top-level browsing
59610
+ context</a> to the new resource as if the user had requested it
59611
+ independently.</p>
59089
59612
 
59090
59613
  </li>
59091
59614
 
@@ -59893,8 +60416,9 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
59893
60416
  page</a>.</p>
59894
60417
 
59895
60418
  <ol><li><p>If there is no longer a <code><a href=#document>Document</a></code> object for the
59896
- entry in question, the user agent must <a href=#navigate>navigate</a> the
59897
- browsing context to the location for that entry to perform an
60419
+ entry in question, the user agent must
60420
+ <a href=#navigate>navigate</a><!--DONAV history traversal after eviction-->
60421
+ the browsing context to the location for that entry to perform an
59898
60422
  <a href=#entry-update>entry update</a> of that entry, and abort these steps. The
59899
60423
  "<a href=#navigate>navigate</a>" algorithm reinvokes this "traverse"
59900
60424
  algorithm to complete the traversal, at which point there
@@ -59974,6 +60498,12 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
59974
60498
  attribute set to true. This event must not bubble, must not be
59975
60499
  cancelable, and has no default action.</li>
59976
60500
 
60501
+ <!-- an interesting thing to test would be to traverse back
60502
+ during onload, before the first pageshow has fired, and then to
60503
+ traverse forward again, and see if we get _two_ pageshows. If so,
60504
+ it indicates that the history traversal task source has a higher
60505
+ priority than the DOM manipulation task source. -->
60506
+
59977
60507
  </ol></li>
59978
60508
 
59979
60509
  <li><p>Set <a href="#the-document's-current-address">the document's current address</a> to the URL
@@ -60019,8 +60549,8 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
60019
60549
 
60020
60550
  <dt>Otherwise</dt>
60021
60551
 
60022
- <dd><p>Let the <code><a href=#document>Document</a></code>'s <dfn id=pending-state-object>pending state
60023
- object</dfn> be <var title="">state</var>. (If there was already
60552
+ <dd><p>Let the <code><a href=#document>Document</a></code>'s <a href=#pending-state-object>pending state
60553
+ object</a> be <var title="">state</var>. (If there was already
60024
60554
  a <a href=#pending-state-object>pending state object</a>, the previous one is
60025
60555
  discarded.)</p>
60026
60556
 
@@ -60039,7 +60569,10 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
60039
60569
  <li><p>The <a href=#current-entry>current entry</a> is now the <i>specified
60040
60570
  entry</i>.</li>
60041
60571
 
60042
- </ol><p>The <a href=#pending-state-object>pending state object</a> must be initially null.</p>
60572
+ </ol><p>The <dfn id=pending-state-object>pending state object</dfn> is used to keep track of what
60573
+ state object to use in the inital <code title=event-popstate><a href=#event-popstate>popstate</a></code> event fired by the parser
60574
+ once it <a href=#stop-parsing title="stop parsing">stops parsing</a>. The
60575
+ <a href=#pending-state-object>pending state object</a> must be initially null.</p>
60043
60576
 
60044
60577
  <p>The <a href=#task-source>task source</a> for the tasks mentioned above is the
60045
60578
  <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
@@ -62013,8 +62546,8 @@ NETWORK:
62013
62546
  target <code><a href=#applicationcache>ApplicationCache</a></code> object <var title="">target</var>, the user agent must run the appropriate steps
62014
62547
  from the following list:</p>
62015
62548
 
62016
- <dl><dt>If <var title="">target</var>'s <code><a href=#document>Document</a></code> has
62017
- <a href=#completely-loaded>completely loaded</a></dt>
62549
+ <dl><dt>If <var title="">target</var>'s <code><a href=#document>Document</a></code> is
62550
+ <a href=#ready-for-post-load-tasks>ready for post-load tasks</a></dt>
62018
62551
 
62019
62552
  <dd><p><a href=#queue-a-task title="queue a task">Queue</a> the task <var title="">task</var>.</dd>
62020
62553
 
@@ -62851,6 +63384,13 @@ NETWORK:
62851
63384
  agent, and at most one <a href=#event-loop>event loop</a> per <a href=#unit-of-related-similar-origin-browsing-contexts>unit of
62852
63385
  related similar-origin browsing contexts</a>.</p>
62853
63386
 
63387
+ <p class=note>When there is more than one <a href=#event-loop>event loop</a>
63388
+ for a <a href=#unit-of-related-browsing-contexts>unit of related browsing contexts</a>, complications
63389
+ arise when a <a href=#browsing-context>browsing context</a> in that group is <a href=#navigate title=navigate>navigated</a> such that it switches from one
63390
+ <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a> to
63391
+ another. This specification does not currently describe how to
63392
+ handle these complications.</p>
63393
+
62854
63394
  <p>An <a href=#event-loop>event loop</a> always has at least one <a href=#browsing-context>browsing
62855
63395
  context</a>. If an <a href=#event-loop>event loop</a>'s <a href=#browsing-context title="browsing context">browsing contexts</a> all go away, then
62856
63396
  the <a href=#event-loop>event loop</a> goes away as well. A <a href=#browsing-context>browsing
@@ -62958,9 +63498,12 @@ NETWORK:
62958
63498
  <code><a href=#document>Document</a></code>s are not <a href=#fully-active>fully active</a>. The user
62959
63499
  agent may pick any <a href=#task-queue>task queue</a>.</li>
62960
63500
 
63501
+ <!-- warning! if you renumber these steps, make sure to update the
63502
+ "spin the event loop" algorith below! -->
63503
+
62961
63504
  <li><p>If the <a href=#storage-mutex>storage mutex</a> is now owned by the
62962
63505
  <a href=#event-loop>event loop</a>, release it so that it is once again
62963
- free.</p>
63506
+ free.</li>
62964
63507
 
62965
63508
  <li><p>Remove that task from its <a href=#task-queue>task queue</a>.</li>
62966
63509
 
@@ -62989,9 +63532,16 @@ NETWORK:
62989
63532
  <ol><li><p>Let <var title="">task source</var> be the <a href=#task-source>task
62990
63533
  source</a> of the currently running <a href=#concept-task title=concept-task>task</a>.</li>
62991
63534
 
62992
- <li><p>Stop the currently running <a href=#concept-task title=concept-task>task</a>, allowing the <a href=#event-loop>event
62993
- loop</a> to resume, but continue these steps
62994
- asynchronously.</li>
63535
+ <li>
63536
+
63537
+ <p>Stop the currently running <a href=#concept-task title=concept-task>task</a>, allowing the <a href=#event-loop>event
63538
+ loop</a> to resume, but continue these steps
63539
+ asynchronously.</p>
63540
+
63541
+ <p class=note>This causes the <a href=#event-loop>event loop</a> to move on
63542
+ to the second step of its processing model (defined above).</p>
63543
+
63544
+ </li>
62995
63545
 
62996
63546
  <li><p>Wait until the condition <var title="">goal</var> is
62997
63547
  met.</li>
@@ -63005,15 +63555,27 @@ NETWORK:
63005
63555
 
63006
63556
  </ol><hr><p>Some of the algorithms in this specification, for historical
63007
63557
  reasons, require the user agent to <dfn id=pause>pause</dfn> while running a
63008
- <a href=#concept-task title=concept-task>task</a> until some condition has been
63009
- met. While a user agent has a paused <a href=#concept-task title=concept-task>task</a>, the corresponding <a href=#event-loop>event
63010
- loop</a> must not run further <a href=#concept-task title=concept-task>tasks</a>, and any script in the currently
63011
- running <a href=#concept-task title=concept-task>task</a> must block. User
63012
- agents should remain responsive to user input while paused, however,
63013
- albeit in a reduced capacity since the <a href=#event-loop>event loop</a> will
63014
- not be doing anything.</p>
63015
-
63016
- <hr><p>When a user agent is to <dfn id=obtain-the-storage-mutex>obtain the storage mutex</dfn> as
63558
+ <a href=#concept-task title=concept-task>task</a> until a condition <var title="">goal</var> is met. This means running the following
63559
+ steps:</p>
63560
+
63561
+ <ol><li><p>If any asynchronously-running algorithms are <a href=#await-a-stable-state title="await a stable state">awaiting a stable state</a>, then
63562
+ run their <a href=#synchronous-section>synchronous section</a> and then resume running
63563
+ their asynchronous algorithm. (See the <a href=#event-loop>event loop</a>
63564
+ processing model definition above for details.)</p>
63565
+
63566
+ <li><p>If necessary, update the rendering or user interface of any
63567
+ <code><a href=#document>Document</a></code> or <a href=#browsing-context>browsing context</a> to reflect
63568
+ the current state.</li>
63569
+
63570
+ <li><p>Wait until the condition <var title="">goal</var> is met.
63571
+ While a user agent has a paused <a href=#concept-task title=concept-task>task</a>, the corresponding <a href=#event-loop>event
63572
+ loop</a> must not run further <a href=#concept-task title=concept-task>tasks</a>, and any script in the currently
63573
+ running <a href=#concept-task title=concept-task>task</a> must block. User
63574
+ agents should remain responsive to user input while paused,
63575
+ however, albeit in a reduced capacity since the <a href=#event-loop>event
63576
+ loop</a> will not be doing anything.</li>
63577
+
63578
+ </ol><hr><p>When a user agent is to <dfn id=obtain-the-storage-mutex>obtain the storage mutex</dfn> as
63017
63579
  part of running a <a href=#concept-task title=concept-task>task</a>, it must
63018
63580
  run through the following steps:</p>
63019
63581
 
@@ -64314,11 +64876,13 @@ interface <dfn id=windowtimers>WindowTimers</dfn> {
64314
64876
 
64315
64877
  <li>
64316
64878
 
64317
- <p><a href=#navigate>Navigate</a> the new <a href=#browsing-context>browsing context</a> to
64318
- the <a href=#absolute-url>absolute URL</a> that resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> <var title="">url</var>
64319
- earlier, with <a href=#replacement-enabled>replacement enabled</a>, and with the <a href="#script's-browsing-context" title="script's browsing context">browsing context</a> of the
64320
- <a href=#concept-script title=concept-script>script</a> that invoked the method
64321
- as the <a href=#source-browsing-context>source browsing context</a>.</p>
64879
+ <p><a href=#navigate>Navigate</a><!--DONAV showModalDialog--> the new
64880
+ <a href=#browsing-context>browsing context</a> to the <a href=#absolute-url>absolute URL</a>
64881
+ that resulted from <a href=#resolve-a-url title="resolve a url">resolving</a>
64882
+ <var title="">url</var> earlier, with <a href=#replacement-enabled>replacement
64883
+ enabled</a>, and with the <a href="#script's-browsing-context" title="script's browsing
64884
+ context">browsing context</a> of the <a href=#concept-script title=concept-script>script</a> that invoked the method as
64885
+ the <a href=#source-browsing-context>source browsing context</a>.</p>
64322
64886
 
64323
64887
  </li>
64324
64888
 
@@ -64669,10 +65233,10 @@ interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
64669
65233
  a url">resolve</a> the resulting URL, relative to the <a href="#script's-base-url" title="script's base URL">base URL</a> of the <a href=#entry-script>entry
64670
65234
  script</a> at the time the <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code>
64671
65235
  or <code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler()</a></code>
64672
- methods were invoked, and then <a href=#navigate>navigate</a> an
64673
- appropriate <a href=#browsing-context>browsing context</a> to the resulting URL
64674
- using the GET method (<a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or
64675
- equivalent</a> for non-HTTP URLs).</p>
65236
+ methods were invoked, and then <a href=#navigate>navigate</a><!--DONAV
65237
+ user--> an appropriate <a href=#browsing-context>browsing context</a> to the
65238
+ resulting URL using the GET method (<a href=#concept-http-equivalent-get title=concept-http-equivalent-get>or equivalent</a> for
65239
+ non-HTTP URLs).</p>
64676
65240
 
64677
65241
  <p>To get the escaped version of the <a href=#absolute-url>absolute URL</a> of
64678
65242
  the content in question, the user agent must replace every
@@ -65251,7 +65815,14 @@ interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
65251
65815
 
65252
65816
  <hr><p>The <dfn id=focusing-steps>focusing steps</dfn> are as follows:</p>
65253
65817
 
65254
- <ol><li><p>If focusing the element will remove the focus from another
65818
+ <ol><li><p>If the element is not <a href=#in-a-document title="in a Document">in a
65819
+ <code>Document</code></a>, or if the element's
65820
+ <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing context</a>, or if
65821
+ the element's <code><a href=#document>Document</a></code>' <a href=#browsing-context>browsing context</a>
65822
+ has no <a href=#top-level-browsing-context>top-level browsing context</a>, then abort these
65823
+ steps.</p>
65824
+
65825
+ <li><p>If focusing the element will remove the focus from another
65255
65826
  element, then run the <a href=#unfocusing-steps>unfocusing steps</a> for that
65256
65827
  element.</li>
65257
65828
 
@@ -65269,6 +65840,7 @@ interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
65269
65840
  </li>
65270
65841
 
65271
65842
  <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-focus>focus</code> at the element.</li>
65843
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/723 -->
65272
65844
 
65273
65845
  </ol><p>User agents must synchronously run the <a href=#focusing-steps>focusing
65274
65846
  steps</a> for an element whenever the user moves the focus to a
@@ -65288,6 +65860,7 @@ interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
65288
65860
  <li><p>Unfocus the element.</li>
65289
65861
 
65290
65862
  <li><p><a href=#fire-a-simple-event>Fire a simple event</a> named <code title=event-blur>blur</code> at the element.</li>
65863
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/723 -->
65291
65864
 
65292
65865
  </ol><p>When an element that is focused stops being a
65293
65866
  <a href=#focusable>focusable</a> element, or stops being focused without
@@ -65348,10 +65921,13 @@ interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
65348
65921
 
65349
65922
  <p>The <dfn id=dom-document-hasfocus title=dom-document-hasFocus><code>hasFocus()</code></dfn> method
65350
65923
  on <code><a href=#htmldocument>HTMLDocument</a></code> objects must return true if the
65351
- document's <a href=#browsing-context>browsing context</a> is focused, and all its
65352
- <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor browsing
65353
- contexts</a> are also focused, and the <a href=#top-level-browsing-context>top-level browsing
65354
- context</a> has the <i>system focus</i>.</p>
65924
+ <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a> is focused,
65925
+ and all its <a href=#ancestor-browsing-context title="ancestor browsing context">ancestor
65926
+ browsing contexts</a> are also focused, and the <a href=#top-level-browsing-context>top-level
65927
+ browsing context</a> has the <i>system focus</i>. If the
65928
+ <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing context</a> or if its
65929
+ <a href=#browsing-context>browsing context</a> has no <a href=#top-level-browsing-context>top-level browsing
65930
+ context</a>, then the method will always return false.</p>
65355
65931
 
65356
65932
  <p>The <dfn id=dom-window-focus title=dom-window-focus><code>focus()</code></dfn>
65357
65933
  method on the <code><a href=#window>Window</a></code> object, when invoked, provides a
@@ -68542,7 +69118,7 @@ interface <dfn>FunctionObjectCallback</dfn> {
68542
69118
  <h4 id=definitions-2><span class=secno>8.8.1 </span>Definitions</h4>
68543
69119
 
68544
69120
  <p>The user agent must associate an <dfn id=undo-transaction-history>undo transaction
68545
- history</dfn> with each <code><a href=#htmldocument>HTMLDocument</a></code> object.</p>
69121
+ history</dfn> with each <code><a href=#document>Document</a></code> object.</p>
68546
69122
 
68547
69123
  <p>The <a href=#undo-transaction-history>undo transaction history</a> is a list of
68548
69124
  entries. The entries are of two types: <a href=#dom-changes>DOM changes</a> and
@@ -68556,7 +69132,7 @@ interface <dfn>FunctionObjectCallback</dfn> {
68556
69132
  node.</li>
68557
69133
 
68558
69134
  <li>Changes to the DOM hierarchy of nodes that are descendants of
68559
- the <code><a href=#htmldocument>HTMLDocument</a></code> object (<code title=dom-Node-parentNode><a href=#dom-node-parentnode>parentNode</a></code>, <code title=dom-Node-childNodes><a href=#dom-node-childnodes>childNodes</a></code>).</li>
69135
+ the <code><a href=#document>Document</a></code> object (<code title=dom-Node-parentNode><a href=#dom-node-parentnode>parentNode</a></code>, <code title=dom-Node-childNodes><a href=#dom-node-childnodes>childNodes</a></code>).</li>
68560
69136
 
68561
69137
  <li>Changes to internal state, such as a form control's <a href=#concept-fe-value title=concept-fe-value>value</a> or <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
68562
69138
  flag</a>.</li>
@@ -68660,8 +69236,8 @@ interface <dfn>FunctionObjectCallback</dfn> {
68660
69236
  <p>The <dfn id=dom-undomanager title=dom-undoManager><code>undoManager</code></dfn>
68661
69237
  attribute of the <code><a href=#window>Window</a></code> interface must return the
68662
69238
  object implementing the <code><a href=#undomanager>UndoManager</a></code> interface for that
68663
- <code><a href=#window>Window</a></code> object's associated
68664
- <code><a href=#htmldocument>HTMLDocument</a></code> object.</p>
69239
+ <code><a href=#window>Window</a></code> object's associated <code><a href=#document>Document</a></code>
69240
+ object.</p>
68665
69241
 
68666
69242
  <p><code><a href=#undomanager>UndoManager</a></code> objects represent their document's
68667
69243
  <a href=#undo-transaction-history>undo transaction history</a>. Only <a href=#undo-object>undo object</a>
@@ -69578,7 +70154,7 @@ function receiver(e) {
69578
70154
  send the message to the target regardless of origin, set the
69579
70155
  target origin to "<code title="">*</code>". To restrict the
69580
70156
  message to same-origin targets only, without needing to explicitly
69581
- state the origin, pass the <code title=dom-location><a href=#dom-location>window.location</a></code> object.</p>
70157
+ state the origin, set the target origin to "<code title="">/</code>".</p>
69582
70158
 
69583
70159
  <p>Throws an <code><a href=#invalid_state_err>INVALID_STATE_ERR</a></code> if the <var title="">ports</var> array is not null and it contains either null
69584
70160
  entries or duplicate ports.</p>
@@ -69606,9 +70182,10 @@ function receiver(e) {
69606
70182
  <ol><li>
69607
70183
 
69608
70184
  <p>If the value of the <var title="">targetOrigin</var> argument
69609
- is neither a single U+002A ASTERISK character (*) nor an
69610
- <a href=#absolute-url>absolute URL</a>, then throw a <code><a href=#syntax_err>SYNTAX_ERR</a></code>
69611
- exception and abort the overall set of steps.</p>
70185
+ is neither a single U+002A ASTERISK character (*), a single U+002F
70186
+ SOLIDUS character (/), nor an <a href=#absolute-url>absolute URL</a>, then
70187
+ throw a <code><a href=#syntax_err>SYNTAX_ERR</a></code> exception and abort the overall
70188
+ set of steps.</p>
69612
70189
 
69613
70190
  </li>
69614
70191
 
@@ -69657,6 +70234,13 @@ function receiver(e) {
69657
70234
 
69658
70235
  <li>
69659
70236
 
70237
+ <p>If the <var title="">targetOrigin</var> argument is a single
70238
+ literal U+002F SOLIDUS character (/), and the
70239
+ <code><a href=#document>Document</a></code> of the <code><a href=#window>Window</a></code> object on which
70240
+ the method was invoked does not have the <a href=#same-origin>same origin</a>
70241
+ as the <a href=#entry-script>entry script</a>'s <a href="#script's-document" title="script's
70242
+ document">document</a>, then abort these steps silently.</p>
70243
+
69660
70244
  <p>Otherwise, if the <var title="">targetOrigin</var> argument is
69661
70245
  an <a href=#absolute-url>absolute URL</a>, and the <code><a href=#document>Document</a></code> of the
69662
70246
  <code><a href=#window>Window</a></code> object on which the method was invoked does
@@ -70312,6 +70896,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
70312
70896
  <code><a href=#the-keygen-element>keygen</a></code>, <code><a href=#the-link-element>link</a></code>, <code><a href=#meta>meta</a></code>,
70313
70897
  <code><a href=#the-param-element>param</a></code>, <code><a href=#the-source-element>source</a></code>, <code><a href=#the-track-element>track</a></code>,
70314
70898
  <code><a href=#the-wbr-element>wbr</a></code></dd>
70899
+ <!-- see also other places that say VOIDLIST -->
70315
70900
 
70316
70901
  <dt><dfn id=raw-text-elements>Raw text elements</dfn></dt>
70317
70902
 
@@ -71907,11 +72492,11 @@ interface <dfn id=messageport>MessagePort</dfn> {
71907
72492
  convert the input stream to the new encoding, set the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
71908
72493
  <i>certain</i>, and abort these steps.</li>
71909
72494
 
71910
- <li>Otherwise, <a href=#navigate>navigate</a> to the document again, with
71911
- <a href=#replacement-enabled>replacement enabled</a>, and using the same <a href=#source-browsing-context>source
71912
- browsing context</a>, but this time skip the <a href=#encoding-sniffing-algorithm>encoding
71913
- sniffing algorithm</a> and instead just set the encoding to the
71914
- new encoding and the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
72495
+ <li>Otherwise, <a href=#navigate>navigate</a><!--DONAV reparse--> to the
72496
+ document again, with <a href=#replacement-enabled>replacement enabled</a>, and using
72497
+ the same <a href=#source-browsing-context>source browsing context</a>, but this time skip
72498
+ the <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> and instead just set
72499
+ the encoding to the new encoding and the <a href=#concept-encoding-confidence title=concept-encoding-confidence>confidence</a> to
71915
72500
  <i>certain</i>. Whenever possible, this should be done without
71916
72501
  actually contacting the network layer (the bytes should be
71917
72502
  re-parsed from memory), even if, e.g., the document is marked as
@@ -76876,7 +77461,10 @@ document.body.appendChild(text);
76876
77461
  for this instance of the <a href=#html-parser>HTML parser</a>, such that
76877
77462
  the <a href=#event-loop>event loop</a> will not run <a href=#concept-task title=concept-task>tasks</a> that invoke the <a href=#tokenization title=tokenization>tokenizer</a>.</li>
76878
77463
 
76879
- <li><p><a href=#spin-the-event-loop>Spin the event loop</a> until the parser's
77464
+ <li><p>If the parser's <code><a href=#document>Document</a></code> <a href=#has-a-style-sheet-that-is-blocking-scripts>has a style
77465
+ sheet that is blocking scripts</a> or <var title="">the
77466
+ script</var>'s <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag
77467
+ is not set: <a href=#spin-the-event-loop>spin the event loop</a> until the parser's
76880
77468
  <code><a href=#document>Document</a></code> <a href=#has-no-style-sheet-that-is-blocking-scripts>has no style sheet that is blocking
76881
77469
  scripts</a> and <var title="">the script</var>'s
76882
77470
  <a href=#ready-to-be-parser-executed>"ready to be parser-executed"</a> flag is
@@ -78386,8 +78974,8 @@ document.body.appendChild(text);
78386
78974
  attribute set to false. This event must not bubble, must not be
78387
78975
  cancelable, and has no default action.</li>
78388
78976
 
78389
- <li><p>If the <code><a href=#document>Document</a></code> has a <a href=#pending-state-object>pending state
78390
- object</a>, then <a href=#queue-a-task>queue a task</a> to fire a <code title=event-popstate><a href=#event-popstate>popstate</a></code> event at the
78977
+ <li><p>If the <code><a href=#document>Document</a></code> is in a <a href=#browsing-context>browsing
78978
+ context</a>, then <a href=#queue-a-task>queue a task</a> to fire a <code title=event-popstate><a href=#event-popstate>popstate</a></code> event at the
78391
78979
  <code><a href=#document>Document</a></code>'s <code><a href=#window>Window</a></code> object using the
78392
78980
  <code><a href=#popstateevent>PopStateEvent</a></code> interface, with the <code title=dom-PopStateEvent-state><a href=#dom-popstateevent-state>state</a></code> attribute set to the
78393
78981
  current value of the <a href=#pending-state-object>pending state object</a>. This event
@@ -78402,8 +78990,11 @@ document.body.appendChild(text);
78402
78990
  for these <a href=#concept-task title=concept-task>tasks</a> is the
78403
78991
  <a href=#networking-task-source>networking task source</a>.</li>
78404
78992
 
78405
- <li><p>The <code><a href=#document>Document</a></code> is now <dfn id=completely-loaded>completely
78406
- loaded</dfn>.</li>
78993
+ <li><p>The <code><a href=#document>Document</a></code> is now <dfn id=ready-for-post-load-tasks>ready for post-load
78994
+ tasks</dfn>.</li>
78995
+
78996
+ <li><p><a href=#queue-a-task>Queue a task</a> to mark the <code><a href=#document>Document</a></code>
78997
+ as <dfn id=completely-loaded>completely loaded</dfn>.</li>
78407
78998
 
78408
78999
  </ol><p>When the user agent is to <dfn id=abort-a-parser>abort a parser</dfn>, it must run
78409
79000
  the following steps:</p>
@@ -78854,14 +79445,15 @@ document.body.appendChild(text);
78854
79445
  <p>If <var title="">current node</var> is an
78855
79446
  <code><a href=#the-area-element>area</a></code>, <code><a href=#the-base-element>base</a></code>, <code><a href=#basefont>basefont</a></code>,
78856
79447
  <code><a href=#bgsound>bgsound</a></code>, <code><a href=#the-br-element>br</a></code>, <code><a href=#the-col-element>col</a></code>,
78857
- <code><a href=#the-embed-element>embed</a></code>, <code><a href=#frame>frame</a></code>, <code><a href=#the-hr-element>hr</a></code>,
78858
- <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>, <code><a href=#the-keygen-element>keygen</a></code>,
78859
- <code><a href=#the-link-element>link</a></code>, <code><a href=#meta>meta</a></code>, <code><a href=#the-param-element>param</a></code>, or
79448
+ <code><a href=#the-command>command</a></code>, <code><a href=#the-embed-element>embed</a></code>, <code><a href=#frame>frame</a></code>,
79449
+ <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>,
79450
+ <code><a href=#the-keygen-element>keygen</a></code>, <code><a href=#the-link-element>link</a></code>, <code><a href=#meta>meta</a></code>,
79451
+ <code><a href=#the-param-element>param</a></code>, <code><a href=#the-source-element>source</a></code>, <code><a href=#the-track-element>track</a></code> or
78860
79452
  <code><a href=#the-wbr-element>wbr</a></code> element, then continue on to the next child
78861
- node at this point.</p> <!-- also, i guess: image and isindex,
78862
- but we don't list those because we don't consider those
78863
- "elements", more "macros", and thus we should never serialize
78864
- them -->
79453
+ node at this point.</p> <!-- VOIDLIST superset -->
79454
+ <!-- also, i guess: image and isindex, but we don't list those
79455
+ because we don't consider those "elements", more "macros", and
79456
+ thus we should never serialize them -->
78865
79457
 
78866
79458
  <p>If <var title="">current node</var> is a <code><a href=#the-pre-element>pre</a></code>,
78867
79459
  <code><a href=#the-textarea-element>textarea</a></code>, or <code><a href=#listing>listing</a></code> element, append
@@ -79539,7 +80131,7 @@ document.body.appendChild(text);
79539
80131
  </ul><p class=note>Just being off-screen does not mean the element is
79540
80132
  not <a href=#being-rendered>being rendered</a>. The presence of the <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute normally means the
79541
80133
  element is not <a href=#being-rendered>being rendered</a>, though this might be
79542
- overriden by the style sheets.</p>
80134
+ overridden by the style sheets.</p>
79543
80135
 
79544
80136
  </div>
79545
80137
 
@@ -80597,7 +81189,8 @@ fieldset {
80597
81189
  to the user">exposing a user interface</a> for a
80598
81190
  <code><a href=#video>video</a></code> element, user agents should run the <a href=#rules-for-updating-the-timed-track-rendering>rules
80599
81191
  for updating the timed track rendering</a> of each of the <a href=#timed-track title="timed track">timed tracks</a> in the <code><a href=#video>video</a></code>
80600
- element's <a href=#list-of-timed-tracks>list of timed tracks</a> that are <a href=#timed-track-showing title="timed track showing">showing</a> (e.g., for <a href=#timed-track title="timed track">timed tracks</a> based on
81192
+ element's <a href=#list-of-timed-tracks>list of timed tracks</a> that are <a href=#timed-track-showing title="timed track showing">showing</a> or <a href=#timed-track-showing-by-default title="timed
81193
+ track showing by default">showing by default</a> (e.g., for <a href=#timed-track title="timed track">timed tracks</a> based on
80601
81194
  <a href=#websrt>WebSRT</a>, the <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating the display of
80602
81195
  WebSRT timed tracks</a>).</p>
80603
81196
  <!--KEEP-START w3c-html--><!--TT-->
@@ -80618,7 +81211,7 @@ iframe:not([seamless]) { border: 2px inset; }</pre>
80618
81211
  <!--<div data-component="other Hixie drafts (editor: Ian Hickson)">-->
80619
81212
  <div class=impl>
80620
81213
 
80621
- <h4 id=timed-tracks-0><span class=secno>12.3.2 </span>Timed tracks</h4>
81214
+ <h4 id=timed-tracks><span class=secno>12.3.2 </span>Timed tracks</h4>
80622
81215
 
80623
81216
  <p class=note>This section is intended to be moved to its own CSS
80624
81217
  module once an editor is found to run with it.</p>
@@ -80662,12 +81255,11 @@ iframe:not([seamless]) { border: 2px inset; }</pre>
80662
81255
  user interface</a> for <var title="">video</var>, but now it is,
80663
81256
  let <var title="">reset</var> be true. Otherwise, let <var title="">reset</var> be false.</p>
80664
81257
 
80665
- <li><p>Let <var title="">tracks</var> be the subset of
80666
- <var title="">video</var>'s <a href=#list-of-timed-tracks>list of timed tracks</a> that
80667
- have as their <a href=#rules-for-updating-the-timed-track-rendering>rules for updating the timed track
80668
- rendering</a> these <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating the display of
80669
- WebSRT timed tracks</a>, and whose <a href=#timed-track-mode>timed track mode</a>
80670
- is <a href=#timed-track-showing title="timed track showing">showing</a>.</li>
81258
+ <li><p>Let <var title="">tracks</var> be the subset of <var title="">video</var>'s <a href=#list-of-timed-tracks>list of timed tracks</a> that have
81259
+ as their <a href=#rules-for-updating-the-timed-track-rendering>rules for updating the timed track rendering</a>
81260
+ these <a href=#rules-for-updating-the-display-of-websrt-timed-tracks>rules for updating the display of WebSRT timed
81261
+ tracks</a>, and whose <a href=#timed-track-mode>timed track mode</a> is <a href=#timed-track-showing title="timed track showing">showing</a> or <a href=#timed-track-showing-by-default title="timed
81262
+ track showing by default">showing by default</a>.</li>
80671
81263
 
80672
81264
  <li><p>Let <var title="">cues</var> be an empty list of <a href=#timed-track-cue title="timed track cue">timed track cues</a>.</li>
80673
81265
 
@@ -81318,10 +81910,7 @@ iframe:not([seamless]) { border: 2px inset; }</pre>
81318
81910
  element</i> that matches the given <var title="">argument</var>.</p>
81319
81911
 
81320
81912
  <p>The <var title="">argument</var> must match the syntax
81321
- "&lt;voice&gt;&nbsp;||&nbsp;&lt;part&gt;&nbsp;||&nbsp;&lt;position&gt;&nbsp;||&nbsp;&lt;future-compatibility&gt;". <a href=#refsCSS>[CSS]</a></p>
81322
-
81323
- <p>The "&lt;voice&gt;" component must be either a non-negative
81324
- &lt;integer&gt; or one of the keywords "<code title=pseudo-cue-part-narrator><a href=#pseudo-cue-part-narrator>narrator</a></code>", "<code title=pseudo-cue-part-music><a href=#pseudo-cue-part-music>music</a></code>", "<code title=pseudo-cue-part-lyric><a href=#pseudo-cue-part-lyric>lyric</a></code>", "<code title=pseudo-cue-part-sound><a href=#pseudo-cue-part-sound>sound</a></code>", "<code title=pseudo-cue-part-comment><a href=#pseudo-cue-part-comment>comment</a></code>", or "<code title=pseudo-cue-part-credit><a href=#pseudo-cue-part-credit>credit</a></code>".</p>
81913
+ "&lt;part&gt;&nbsp;||&nbsp;&lt;position&gt;&nbsp;||&nbsp;&lt;future-compatibility&gt;". <a href=#refsCSS>[CSS]</a></p>
81325
81914
 
81326
81915
  <p>The "&lt;part&gt;" component must be one of the keywords "<code title=pseudo-cue-part-i><a href=#pseudo-cue-part-i>i</a></code>", "<code title=pseudo-cue-part-b><a href=#pseudo-cue-part-b>b</a></code>", "<code title=pseudo-cue-part-ruby><a href=#pseudo-cue-part-ruby>ruby</a></code>", or "<code title=pseudo-cue-part-rt><a href=#pseudo-cue-part-rt>rt</a></code>".</p>
81327
81916
 
@@ -81334,57 +81923,7 @@ iframe:not([seamless]) { border: 2px inset; }</pre>
81334
81923
  <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> are
81335
81924
  matched by the pseudo-element, as follows:</p>
81336
81925
 
81337
- <dl><dt>An integer greater than or equal to zero</dt>
81338
- <dd>
81339
- <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
81340
- track cue voice identifier</a> is the given number expressed in
81341
- base ten with digits in the range U+0030 DIGIT ZERO (0) to U+0039
81342
- DIGIT NINE (9).</p>
81343
- </dd>
81344
-
81345
- <dt><dfn id=pseudo-cue-part-narrator title=pseudo-cue-part-narrator><code>narrator</code></dfn></dt>
81346
- <dd>
81347
- <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
81348
- track cue voice identifier</a> is "<code title="timed track cue
81349
- narrator voice"><a href=#timed-track-cue-narrator-voice>narrator</a></code>".</p>
81350
- </dd>
81351
-
81352
- <dt><dfn id=pseudo-cue-part-music title=pseudo-cue-part-music><code>music</code></dfn></dt>
81353
- <dd>
81354
- <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
81355
- track cue voice identifier</a> is "<code title="timed track cue
81356
- music voice"><a href=#timed-track-cue-music-voice>music</a></code>".</p>
81357
- </dd>
81358
-
81359
- <dt><dfn id=pseudo-cue-part-lyric title=pseudo-cue-part-lyric><code>lyric</code></dfn></dt>
81360
- <dd>
81361
- <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
81362
- track cue voice identifier</a> is "<code title="timed track cue
81363
- lyric voice"><a href=#timed-track-cue-lyric-voice>lyric</a></code>".</p>
81364
- </dd>
81365
-
81366
- <dt><dfn id=pseudo-cue-part-sound title=pseudo-cue-part-sound><code>sound</code></dfn></dt>
81367
- <dd>
81368
- <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
81369
- track cue voice identifier</a> is "<code title="timed track cue
81370
- sound voice"><a href=#timed-track-cue-sound-voice>sound</a></code>".</p>
81371
- </dd>
81372
-
81373
- <dt><dfn id=pseudo-cue-part-comment title=pseudo-cue-part-comment><code>comment</code></dfn></dt>
81374
- <dd>
81375
- <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
81376
- track cue voice identifier</a> is "<code title="timed track cue
81377
- comment voice"><a href=#timed-track-cue-comment-voice>comment</a></code>".</p>
81378
- </dd>
81379
-
81380
- <dt><dfn id=pseudo-cue-part-credit title=pseudo-cue-part-credit><code>credit</code></dfn></dt>
81381
- <dd>
81382
- <p>Restricts the pseudo-element to only matching <a href=#websrt-node-object title="WebSRT Node Object">WebSRT Node Objects</a> from <a href=#timed-track-cue title="timed track cue">timed track cues</a> whose <a href=#timed-track-cue-voice-identifier>timed
81383
- track cue voice identifier</a> is "<code title="timed track cue
81384
- credit voice"><a href=#timed-track-cue-credit-voice>credit</a></code>".</p>
81385
- </dd>
81386
-
81387
- <dt><dfn id=pseudo-cue-part-i title=pseudo-cue-part-i><code>i</code></dfn></dt>
81926
+ <dl><dt><dfn id=pseudo-cue-part-i title=pseudo-cue-part-i><code>i</code></dfn></dt>
81388
81927
  <dd>
81389
81928
  <p>Restricts the pseudo-element to only matching <a href=#websrt-italic-object title="WebSRT Italic Object">WebSRT Italic Objects</a>.</p>
81390
81929
  </dd>
@@ -82689,9 +83228,9 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
82689
83228
  part of such auditing.</p>
82690
83229
  <!--PING-->
82691
83230
 
82692
- <p>User agents are expected to allow users to <a href=#navigate>navigate</a>
82693
- <a href=#browsing-context title="browsing context">browsing contexts</a> to the
82694
- resources <a href=#resolve-a-url title="resolve a url">indicated</a> by the <code title="">cite</code> attributes on <code><a href=#the-q-element>q</a></code>,
83231
+ <p>User agents are expected to allow users to
83232
+ <a href=#navigate>navigate</a><!--DONAV cite=""--> <a href=#browsing-context title="browsing
83233
+ context">browsing contexts</a> to the resources <a href=#resolve-a-url title="resolve a url">indicated</a> by the <code title="">cite</code> attributes on <code><a href=#the-q-element>q</a></code>,
82695
83234
  <code><a href=#the-blockquote-element>blockquote</a></code>, <code><a href=#the-section-element>section</a></code>, <code><a href=#the-article-element>article</a></code>,
82696
83235
  <code><a href=#the-ins-element>ins</a></code>, and <code><a href=#the-del-element>del</a></code> elements.</p>
82697
83236
 
@@ -82798,27 +83337,54 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
82798
83337
  as an independent set of one or more bidirectional algorithm
82799
83338
  paragraphs when displayed, as defined by the bidirectional
82800
83339
  algorithm, including, for instance, supporting the
82801
- paragraph-breaking behaviour of U+000A LINE FEED (LF) characters. <a href=#refsBIDI>[BIDI]</a></p>
83340
+ paragraph-breaking behaviour of U+000A LINE FEED (LF) characters.
83341
+ For the purposes of determining the paragraph level of such text in
83342
+ the bidirectional algorithm, this specification does <em>not</em>
83343
+ provide a higher-level override of rules P2 and P3. <a href=#refsBIDI>[BIDI]</a></p>
83344
+
83345
+ <p>When necessary, authors can enforce a particular direction for a
83346
+ given paragraph by starting it with the Unicode U+200E LEFT-TO-RIGHT
83347
+ MARK or U+200F RIGHT-TO-LEFT MARK characters.</p>
83348
+
83349
+ <div class=example>
83350
+
83351
+ <p>Thus, the following script:</p>
83352
+
83353
+ <pre>alert('\u05DC\u05DE\u05D3 HTML \u05D4\u05D9\u05D5\u05DD!')</pre>
83354
+
83355
+ <p>...would always result in a message reading
83356
+ "<bdo dir=rtl lang="" title="">&#1500;&#1502;&#1491;&nbsp;LMTH&nbsp;&#1492;&#1497;&#1493;&#1501;!</bdo>"
83357
+ (not "<bdo dir=ltr lang="" title="">&#1491;&#1502;&#1500;&nbsp;HTML&nbsp;&#1501;&#1493;&#1497;&#1492;!</bdo>"),
83358
+ regardless of the language of the user agent interface or the
83359
+ direction of the page or any of its elements.</p>
83360
+
83361
+ </div>
82802
83362
 
82803
83363
  <div class=example>
82804
83364
 
82805
- <p>For example, consider the following script:</p>
83365
+ <p>For a more complex example, consider the following script:</p>
82806
83366
 
82807
- <pre>var s;
83367
+ <pre class=bad>/* Warning: this script does not handle right-to-left scripts correctly */
83368
+ var s;
82808
83369
  if (s = prompt('What is your name?')) {
82809
83370
  alert(s + '! Ok, Fred, ' + s + ', and Wilma will get the car.');
82810
83371
  }</pre>
82811
83372
 
82812
- <p>When the user enters "<kbd>Kitty</kbd>", the user agent would
82813
- alert "<samp>Kitty! Ok, Fred, Kitty, and Wilma will get the
82814
- car.</samp>". However, if the user enters "<kbd dir=rtl lang=ar>&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;</kbd>",
82815
- then the bidirectional algorithm will determine that the direction
82816
- of the paragraph is right-to-left, and so the output will be
82817
- "<samp lang=""><bdo dir=rtl>&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;!&nbsp;derF&nbsp;,kO,&nbsp;&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;,&nbsp;rac&nbsp;eht&nbsp;teg&nbsp;lliw&nbsp;amliW&nbsp;dna.</bdo></samp>"!</p>
83373
+ <p>When the user enters "<kbd>Kitty</kbd>", the user agent would
83374
+ alert "<samp>Kitty! Ok, Fred, Kitty, and Wilma will get the
83375
+ car.</samp>". However, if the user enters "<kbd dir=rtl lang=ar>&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;</kbd>",
83376
+ then the bidirectional algorithm will determine that the direction
83377
+ of the paragraph is right-to-left, and so the output will be the
83378
+ following unintended mess: "<samp lang=""><bdo dir=rtl>&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;!&nbsp;derF&nbsp;,kO,&nbsp;&#1604;&#1575;&nbsp;&#1571;&#1601;&#1607;&#1605;,&nbsp;rac&nbsp;eht&nbsp;teg&nbsp;lliw&nbsp;amliW&nbsp;dna.</bdo></samp>"</p>
82818
83379
 
82819
- <p>Authors can enforce a particular interpretation by using the
82820
- Unicode U+200E LEFT-TO-RIGHT MARK and U+200F RIGHT-TO-LEFT MARK
82821
- characters.</p>
83380
+ <p>To force an alert that starts with user-provided text (or other
83381
+ text of unknown directionality) to render left-to-right, the string
83382
+ can be prefixed with a U+200E LEFT-TO-RIGHT MARK character:</p>
83383
+
83384
+ <pre>var s;
83385
+ if (s = prompt('What is your name?')) {
83386
+ alert('<strong>\u200E</strong>' + s + '! Ok, Fred, ' + s + ', and Wilma will get the car.');
83387
+ }</pre>
82822
83388
 
82823
83389
  </div>
82824
83390
 
@@ -83547,21 +84113,20 @@ if (s = prompt('What is your name?')) {
83547
84113
  <p>When the browsing context is created, if a <code title=attr-frame-src>src</code> attribute is present, the user
83548
84114
  agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of
83549
84115
  that attribute, relative to the element, and if that is successful,
83550
- must then <a href=#navigate>navigate</a> the element's browsing context to
83551
- the resulting <a href=#absolute-url>absolute URL</a>, with <a href=#replacement-enabled>replacement
83552
- enabled</a>, and with the <code><a href=#frame>frame</a></code> element's
84116
+ must then <a href=#navigate>navigate</a><!--DONAV frame--> the element's
84117
+ browsing context to the resulting <a href=#absolute-url>absolute URL</a>, with
84118
+ <a href=#replacement-enabled>replacement enabled</a>, and with the <code><a href=#frame>frame</a></code>
84119
+ element's document's <a href=#browsing-context>browsing context</a> as the
84120
+ <a href=#source-browsing-context>source browsing context</a>.</p>
84121
+
84122
+ <p>Whenever the <code title=attr-frame-src>src</code> attribute is
84123
+ set, the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a>
84124
+ the value of that attribute, relative to the element, and if that is
84125
+ successful, the nested <a href=#browsing-context>browsing context</a> must be <a href=#navigate title=navigate>navigated</a><!--DONAV frame--> to the resulting
84126
+ <a href=#absolute-url>absolute URL</a>, with the <code><a href=#frame>frame</a></code> element's
83553
84127
  document's <a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source
83554
84128
  browsing context</a>.</p>
83555
84129
 
83556
- <p>Whenever the <code title=attr-frame-src>src</code> attribute
83557
- is set, the user agent must <a href=#resolve-a-url title="resolve a
83558
- url">resolve</a> the value of that attribute, relative to the
83559
- element, and if that is successful, the nested <a href=#browsing-context>browsing
83560
- context</a> must be <a href=#navigate title=navigate>navigated</a> to
83561
- the resulting <a href=#absolute-url>absolute URL</a>, with the
83562
- <code><a href=#frame>frame</a></code> element's document's <a href=#browsing-context>browsing
83563
- context</a> as the <a href=#source-browsing-context>source browsing context</a>.</p>
83564
-
83565
84130
  <p>When the browsing context is created, if a <code title=attr-frame-name>name</code> attribute is present, the
83566
84131
  <a href=#browsing-context-name>browsing context name</a> must be set to the value of this
83567
84132
  attribute; otherwise, the <a href=#browsing-context-name>browsing context name</a> must be
@@ -84529,6 +85094,15 @@ interface <a href=#htmldocument>HTMLDocument</a> {
84529
85094
  as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> as regular
84530
85095
  <code><a href=#text/html>text/html</a></code> files, authors should avoid using the <code title="">.html</code> or <code title="">.htm</code> extensions for
84531
85096
  resources labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>.</p>
85097
+ <p>Furthermore, since the <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code> MIME
85098
+ type impacts the origin security model, authors should be careful
85099
+ to prevent tampering with the MIME type labeling mechanism itself
85100
+ when documents are labeled as <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>. If
85101
+ an attacker can cause a file to be served as
85102
+ <code><a href=#text/html>text/html</a></code> instead of
85103
+ <code><a href=#text/html-sandboxed>text/html-sandboxed</a></code>, then the sandboxing will not
85104
+ take effect and a cross-site scripting attack will become
85105
+ possible.</p>
84532
85106
  <p>Beyond this, the type is identical to <code><a href=#text/html>text/html</a></code>,
84533
85107
  and the same considerations apply.</p>
84534
85108
  </dd>
@@ -86050,6 +86624,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86050
86624
  <code><a href=#video>video</a></code></td>
86051
86625
  <td>empty</td>
86052
86626
  <td><a href=#global-attributes title="global attributes">globals</a>;
86627
+ <code title=attr-track-default><a href=#attr-track-default>default</a></code>;
86053
86628
  <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code>;
86054
86629
  <code title=attr-track-label><a href=#attr-track-label>label</a></code>;
86055
86630
  <code title=attr-track-src><a href=#attr-track-src>src</a></code>;
@@ -86552,6 +87127,10 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86552
87127
  <td> <code title=attr-time-datetime><a href=#attr-time-datetime>time</a></code>
86553
87128
  <td> Value of the element
86554
87129
  <td> <a href=#valid-date-or-time-string>Valid date or time string</a>*
87130
+ <tr><th> <code title="">default</code>
87131
+ <td> <code title=attr-track-default><a href=#attr-track-default>track</a></code>
87132
+ <td> Enable the track if no other <a href=#timed-track>timed track</a> is more suitable.
87133
+ <td> <a href=#boolean-attribute>Boolean attribute</a>
86555
87134
  <tr><th> <code title="">defer</code>
86556
87135
  <td> <code title=attr-script-defer><a href=#attr-script-defer>script</a></code>
86557
87136
  <td> Defer script execution
@@ -88104,6 +88683,11 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88104
88683
  <dd><cite><a href=http://www.w3.org/TR/css3-fonts/>CSS Fonts
88105
88684
  Module Level 3</a></cite>, J. Daggett. W3C.</dd>
88106
88685
 
88686
+ <dt id=refsCSSIMAGES>[CSSIMAGES]</dt>
88687
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-images/>CSS Image
88688
+ Values and Replaced Content Module Level 3</a></cite>, E. Etemad,
88689
+ T. Atkins. W3C.</dd>
88690
+
88107
88691
  <dt id=refsCSSOM>[CSSOM]</dt>
88108
88692
  <dd><cite><a href=http://dev.w3.org/csswg/cssom/>Cascading Style Sheets
88109
88693
  Object Model (CSSOM)</a></cite>, A. van Kesteren. W3C.</dd>
@@ -88121,7 +88705,8 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88121
88705
  Interface Module</a></cite>, T. &Ccedil;elik. W3C.</dd>
88122
88706
 
88123
88707
  <dt id=refsCSSVALUES>[CSSVALUES]</dt>
88124
- <dd><cite><a href=http://dev.w3.org/csswg/css3-values/>CSS3 Values and Units</a></cite>, H. Lie, C. Lilley. W3C.</dd>
88708
+ <dd><cite><a href=http://dev.w3.org/csswg/css3-values/>CSS3
88709
+ Values and Units</a></cite>, H. Lie, C. Lilley. W3C.</dd>
88125
88710
 
88126
88711
  <dt id=refsDOMCORE>[DOMCORE]</dt>
88127
88712
  <dd><cite><a href=http://www.w3.org/TR/DOM-Level-3-Core/>Document
@@ -88383,6 +88968,10 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88383
88968
  <dd><cite><a href=http://tools.ietf.org/html/rfc2388>Returning Values from
88384
88969
  Forms: multipart/form-data</a></cite>, L. Masinter. IETF.</dd>
88385
88970
 
88971
+ <dt id=refsRFC2397>[RFC2397]</dt>
88972
+ <dd><cite><a href=http://tools.ietf.org/html/rfc2397>The "data"
88973
+ URL scheme</a></cite>, L. Masinter. IETF.</dd>
88974
+
88386
88975
  <dt id=refsRFC2425>[RFC2425]</dt>
88387
88976
  <dd><cite><a href=http://tools.ietf.org/html/rfc2425>A MIME
88388
88977
  Content-Type for Directory Information</a></cite>, T. Howes,
@@ -88951,6 +89540,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88951
89540
  Julian Reschke,
88952
89541
  J&uuml;rgen Jeka,
88953
89542
  Justin Lebar,
89543
+ Justin Schuh,
88954
89544
  Justin Sinclair,
88955
89545
  Kai Hendry,
88956
89546
  Kartikaya Gupta,
@@ -88997,6 +89587,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88997
89587
  Martin Atkins,
88998
89588
  Martin D&uuml;rst,
88999
89589
  Martin Honnen,
89590
+ Martin Janecke,
89000
89591
  Martin Kutschker,
89001
89592
  Martin Nilsson,
89002
89593
  Martin Thomson,
@@ -89064,6 +89655,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
89064
89655
  Paul Norman,
89065
89656
  Per-Erik Brodin,
89066
89657
  Perry Smith,
89658
+ Peter Beverloo,
89067
89659
  Peter Karlsson,
89068
89660
  Peter Kasting,
89069
89661
  Peter Stark,
@@ -89101,7 +89693,9 @@ interface <a href=#htmldocument>HTMLDocument</a> {
89101
89693
  Roland Steiner,
89102
89694
  Roman Ivanov,
89103
89695
  Roy Fielding,
89696
+ Ruud Steltenpool,
89104
89697
  Ryan King,
89698
+ Ryosuke Niwa,
89105
89699
  S. Mike Dierken,
89106
89700
  Salvatore Loreto,
89107
89701
  Sam Dutton,
@@ -89160,6 +89754,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
89160
89754
  Tim Johansson,
89161
89755
  Toby Inkster,
89162
89756
  Todd Moody,
89757
+ Tom Baker,
89163
89758
  Tom Pike,
89164
89759
  Tommy Thorsen,
89165
89760
  Travis Leithead,