watir-webdriver 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/README.rdoc +9 -1
  2. data/Rakefile +2 -1
  3. data/VERSION +1 -1
  4. data/lib/watir-webdriver.rb +6 -7
  5. data/lib/watir-webdriver/attribute_helper.rb +17 -10
  6. data/lib/watir-webdriver/browser.rb +1 -1
  7. data/lib/watir-webdriver/cell_container.rb +19 -0
  8. data/lib/watir-webdriver/container.rb +8 -0
  9. data/lib/watir-webdriver/element_collection.rb +2 -2
  10. data/lib/watir-webdriver/elements/button.rb +3 -2
  11. data/lib/watir-webdriver/elements/element.rb +41 -1
  12. data/lib/watir-webdriver/elements/generated.rb +3 -3
  13. data/lib/watir-webdriver/elements/input.rb +0 -52
  14. data/lib/watir-webdriver/elements/select.rb +0 -1
  15. data/lib/watir-webdriver/elements/table.rb +26 -4
  16. data/lib/watir-webdriver/elements/table_cell.rb +36 -0
  17. data/lib/watir-webdriver/elements/table_row.rb +23 -14
  18. data/lib/watir-webdriver/elements/table_section.rb +9 -0
  19. data/lib/watir-webdriver/extensions/alerts.rb +69 -0
  20. data/lib/watir-webdriver/extensions/performance.rb +54 -0
  21. data/lib/watir-webdriver/locators/button_locator.rb +3 -5
  22. data/lib/watir-webdriver/locators/{table_row_locator.rb → child_cell_locator.rb} +11 -6
  23. data/lib/watir-webdriver/locators/child_row_locator.rb +37 -0
  24. data/lib/watir-webdriver/locators/element_locator.rb +24 -14
  25. data/lib/watir-webdriver/row_container.rb +19 -0
  26. data/lib/watir-webdriver/window_switching.rb +37 -10
  27. data/spec/alert_spec.rb +49 -0
  28. data/spec/element_locator_spec.rb +15 -16
  29. data/spec/element_spec.rb +0 -32
  30. data/spec/html/alerts.html +11 -0
  31. data/spec/input_spec.rb +8 -46
  32. data/spec/locator_spec_helper.rb +19 -5
  33. data/spec/spec_helper.rb +3 -0
  34. data/spec/watirspec/areas_spec.rb +8 -0
  35. data/spec/watirspec/browser_spec.rb +4 -4
  36. data/spec/watirspec/button_spec.rb +3 -4
  37. data/spec/watirspec/buttons_spec.rb +8 -0
  38. data/spec/watirspec/checkboxes_spec.rb +8 -0
  39. data/spec/watirspec/dds_spec.rb +8 -0
  40. data/spec/watirspec/dels_spec.rb +8 -0
  41. data/spec/watirspec/divs_spec.rb +8 -0
  42. data/spec/watirspec/dls_spec.rb +8 -0
  43. data/spec/watirspec/dts_spec.rb +8 -0
  44. data/spec/watirspec/element_spec.rb +71 -2
  45. data/spec/watirspec/ems_spec.rb +8 -0
  46. data/spec/watirspec/filefield_spec.rb +16 -11
  47. data/spec/watirspec/filefields_spec.rb +8 -0
  48. data/spec/watirspec/font_spec.rb +21 -19
  49. data/spec/watirspec/form_spec.rb +5 -3
  50. data/spec/watirspec/forms_spec.rb +11 -5
  51. data/spec/watirspec/frames_spec.rb +8 -0
  52. data/spec/watirspec/hiddens_spec.rb +8 -0
  53. data/spec/watirspec/hns_spec.rb +8 -0
  54. data/spec/watirspec/images_spec.rb +8 -0
  55. data/spec/watirspec/inses_spec.rb +8 -0
  56. data/spec/watirspec/label_spec.rb +2 -0
  57. data/spec/watirspec/labels_spec.rb +8 -0
  58. data/spec/watirspec/lib/server.rb +19 -1
  59. data/spec/watirspec/lib/spec_helper.rb +1 -1
  60. data/spec/watirspec/links_spec.rb +8 -0
  61. data/spec/watirspec/lis_spec.rb +8 -0
  62. data/spec/watirspec/maps_spec.rb +8 -0
  63. data/spec/watirspec/metas_spec.rb +8 -0
  64. data/spec/watirspec/ols_spec.rb +8 -0
  65. data/spec/watirspec/pres_spec.rb +8 -0
  66. data/spec/watirspec/ps_spec.rb +8 -0
  67. data/spec/watirspec/radios_spec.rb +8 -0
  68. data/spec/watirspec/select_list_spec.rb +6 -6
  69. data/spec/watirspec/select_lists_spec.rb +8 -0
  70. data/spec/watirspec/spans_spec.rb +8 -0
  71. data/spec/watirspec/strongs_spec.rb +8 -0
  72. data/spec/watirspec/table_nesting_spec.rb +50 -0
  73. data/spec/watirspec/table_spec.rb +62 -102
  74. data/spec/watirspec/tables_spec.rb +8 -0
  75. data/spec/watirspec/{table_body_spec.rb → tbody_spec.rb} +21 -31
  76. data/spec/watirspec/{table_bodies_spec.rb → tbodys_spec.rb} +8 -0
  77. data/spec/watirspec/td_spec.rb +72 -0
  78. data/spec/watirspec/{table_cells_spec.rb → tds_spec.rb} +18 -25
  79. data/spec/watirspec/text_fields_spec.rb +8 -0
  80. data/spec/watirspec/{table_footer_spec.rb → tfoot_spec.rb} +21 -28
  81. data/spec/watirspec/{table_footers_spec.rb → tfoots_spec.rb} +8 -0
  82. data/spec/watirspec/{table_header_spec.rb → thead_spec.rb} +21 -29
  83. data/spec/watirspec/{table_headers_spec.rb → theads_spec.rb} +8 -0
  84. data/spec/watirspec/tr_spec.rb +88 -0
  85. data/spec/watirspec/trs_spec.rb +68 -0
  86. data/spec/watirspec/uls_spec.rb +8 -0
  87. data/spec/watirspec/window_switching_spec.rb +165 -0
  88. data/support/html5.html +884 -422
  89. data/watir-webdriver.gemspec +91 -85
  90. metadata +159 -161
  91. data/Gemfile.lock +0 -48
  92. data/spec/html/closeable.html +0 -13
  93. data/spec/html/data_attributes.html +0 -9
  94. data/spec/html/window_switching.html +0 -12
  95. data/spec/watirspec/table_cell_spec.rb +0 -74
  96. data/spec/watirspec/table_row_spec.rb +0 -99
  97. data/spec/watirspec/table_rows_spec.rb +0 -60
  98. data/spec/window_switching_spec.rb +0 -116
@@ -0,0 +1,68 @@
1
+ # encoding: utf-8
2
+ require File.expand_path('spec_helper', File.dirname(__FILE__))
3
+
4
+ describe "TableRows" do
5
+
6
+ before :each do
7
+ browser.goto(WatirSpec.files + "/tables.html")
8
+ end
9
+
10
+ bug "http://github.com/jarib/celerity/issues#issue/25", :celerity do
11
+ describe "with selectors" do
12
+ it "returns the matching elements" do
13
+ browser.trs(:id => "outer_second").to_a.should == [browser.tr(:id => "outer_second")]
14
+ end
15
+ end
16
+ end
17
+
18
+ describe "#length" do
19
+ it "returns the correct number of cells (table context)" do
20
+ browser.table(:id, 'inner').trs.length.should == 1
21
+ browser.table(:id, 'outer').trs.length.should == 4
22
+ end
23
+
24
+ it "returns the correct number of cells (page context)" do
25
+ browser.trs.length.should == 14
26
+ end
27
+ end
28
+
29
+ describe "#[]" do
30
+ it "returns the row at the given index (table context)" do
31
+ browser.table(:id, 'outer').trs[0].id.should == "outer_first"
32
+ end
33
+
34
+ it "returns the row at the given index (page context)" do
35
+ browser.trs[0].id.should == "thead_row_1"
36
+ end
37
+ end
38
+
39
+ describe "#each" do
40
+ it "iterates through rows correctly" do
41
+ inner_table = browser.table(:id, 'inner')
42
+ count = 0
43
+
44
+ inner_table.trs.each_with_index do |r, index|
45
+ r.id.should == inner_table.tr(:index, index).id
46
+ r.value.should == inner_table.tr(:index, index).value
47
+
48
+ count += 1
49
+ end
50
+ count.should > 0
51
+ end
52
+
53
+ it "iterates through the outer table correctly" do
54
+ outer_table = browser.table(:id, 'outer')
55
+ count = 0
56
+
57
+ outer_table.trs.each_with_index do |r, index|
58
+ r.id.should == outer_table.tr(:index, index).id
59
+ r.value.should == outer_table.tr(:index, index).value
60
+
61
+ count += 1
62
+ end
63
+
64
+ count.should > 0
65
+ end
66
+ end
67
+
68
+ end
@@ -7,6 +7,14 @@ describe "Uls" do
7
7
  browser.goto(WatirSpec.files + "/non_control_elements.html")
8
8
  end
9
9
 
10
+ bug "http://github.com/jarib/celerity/issues#issue/25", :celerity do
11
+ describe "with selectors" do
12
+ it "returns the matching elements" do
13
+ browser.uls(:class => "navigation").to_a.should == [browser.ul(:class => "navigation")]
14
+ end
15
+ end
16
+ end
17
+
10
18
  describe "#length" do
11
19
  it "returns the number of uls" do
12
20
  browser.uls.length.should == 2
@@ -0,0 +1,165 @@
1
+ require File.expand_path('spec_helper', File.dirname(__FILE__))
2
+
3
+
4
+ describe Browser do
5
+
6
+ before do
7
+ url = "file://" + File.expand_path("html/window_switching.html", File.dirname(__FILE__))
8
+ browser.goto url
9
+ browser.a(:id => "open").click
10
+ end
11
+
12
+ after do
13
+ begin
14
+ browser.window(:title => "closeable window").close
15
+ rescue
16
+ # not ideal - clean these up
17
+ end
18
+ end
19
+
20
+ describe "#windows" do
21
+ it "returns an array of window handles" do
22
+ wins = browser.windows
23
+ wins.should_not be_empty
24
+ wins.each { |win| win.should be_kind_of(Window) }
25
+ end
26
+
27
+ it "only returns windows matching the given selector" do
28
+ browser.windows(:title => "closeable window").size.should == 1
29
+ end
30
+
31
+ it "raises ArgumentError if the selector is invalid" do
32
+ lambda { browser.windows(:name => "foo") }.should raise_error(ArgumentError)
33
+ end
34
+
35
+ it "raises returns an empty array if no window matches the selector" do
36
+ browser.windows(:title => "noop").should == []
37
+ end
38
+ end
39
+
40
+ describe "#window" do
41
+ it "finds window by :url" do
42
+ w = browser.window(:url => /closeable\.html/)
43
+ w.should be_kind_of(Window)
44
+ end
45
+
46
+ it "finds window by :title" do
47
+ w = browser.window(:title => "closeable window")
48
+ w.should be_kind_of(Window)
49
+ end
50
+
51
+ it "returns the current window if no argument is given" do
52
+ browser.window.url.should =~ /window_switching\.html/
53
+ end
54
+
55
+ bug "http://github.com/jarib/celerity/issues#issue/17", :celerity do
56
+ it "it executes the given block in the window" do
57
+ browser.window(:title => "closeable window") do
58
+ link = browser.a(:id => "close")
59
+ link.should exist
60
+ link.click
61
+ end
62
+
63
+ browser.windows.size.should == 1
64
+ end
65
+ end
66
+
67
+ it "raises ArgumentError if the selector is invalid" do
68
+ lambda { browser.window(:name => "foo") }.should raise_error(ArgumentError)
69
+ end
70
+
71
+ it "raises an error if no window matches the selector" do
72
+ lambda { browser.window(:title => "noop") }.should raise_error
73
+ end
74
+
75
+ end
76
+ end
77
+
78
+ bug "http://github.com/jarib/celerity/issues#issue/17", :celerity do
79
+ describe Window do
80
+ before do
81
+ url = "file://" + File.expand_path("html/window_switching.html", File.dirname(__FILE__))
82
+ browser.goto url
83
+ browser.a(:id => "open").click
84
+ end
85
+
86
+ after do
87
+ browser.window(:title => "closeable window").close
88
+ end
89
+
90
+ bug "http://github.com/jarib/watir-webdriver/issues/issue/35", :webdriver do
91
+ describe "#close" do
92
+ it "closes the window" do
93
+ browser.windows.size.should == 2
94
+
95
+ browser.a(:id => "open").click
96
+ browser.windows.size.should == 3
97
+
98
+ browser.windows(:title => "closeable window").close
99
+ browser.windows.size.should == 2
100
+ end
101
+ end
102
+
103
+ describe "#use" do
104
+ it "switches to the window" do
105
+ browser.window(:title => "closeable window").use
106
+ browser.title.should == "closeable window"
107
+ end
108
+ end
109
+ end
110
+
111
+ describe "#current?" do
112
+ it "returns true if it is the current window" do
113
+ browser.window(:title => browser.title).should be_current
114
+ end
115
+
116
+ it "returns false if it is not the current window" do
117
+ browser.window(:title => "closeable window").should_not be_current
118
+ end
119
+ end
120
+
121
+ describe "#title" do
122
+ it "returns the title of the window" do
123
+ titles = browser.windows.map { |e| e.title }
124
+ titles.size.should == 2
125
+
126
+ ["window switching", "closeable window"].each do |title|
127
+ titles.should include(title)
128
+ end
129
+ end
130
+
131
+ it "does not change the current window" do
132
+ browser.title.should == "window switching"
133
+ browser.windows.find { |w| w.title == "closeable window" }.should_not be_nil
134
+ browser.title.should == "window switching"
135
+ end
136
+ end
137
+
138
+ describe "#url" do
139
+ it "returns the url of the window" do
140
+ browser.windows.size.should == 2
141
+ browser.windows.select { |w| w.url =~ /window_switching\.html/ }.size.should == 1
142
+ browser.windows.select { |w| w.url =~ /closeable\.html$/ }.size.should == 1
143
+ end
144
+
145
+ it "does not change the current window" do
146
+ browser.url.should =~ /window_switching\.html/
147
+ browser.windows.find { |w| w.url =~ /closeable\.html/ }.should_not be_nil
148
+ browser.url.should =~ /window_switching/
149
+ end
150
+ end
151
+
152
+ describe "#==" do
153
+ it "knows when two windows are equal" do
154
+ browser.window.should == browser.window
155
+ end
156
+
157
+ it "knows when two windows are not equal" do
158
+ win1 = browser.window
159
+ win2 = browser.window(:title => "closeable window")
160
+
161
+ win1.should_not == win2
162
+ end
163
+ end
164
+ end
165
+ end
@@ -1,7 +1,7 @@
1
- <!-- downloaded from http://www.whatwg.org/specs/web-apps/current-work/ on 2010-08-20 16:46:40 +0200 -->
1
+ <!-- downloaded from http://www.whatwg.org/specs/web-apps/current-work/ on 2010-09-07 11:28:48 +0200 -->
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: 5312 $".substr(11);
4
+ var current_revision = "r" + "$Revision: 5419 $".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) {
@@ -214,7 +214,7 @@
214
214
 
215
215
  <header class=head id=head><p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG src=/images/logo></a></p>
216
216
  <hgroup><h1>HTML5 (including next generation additions still in development)</h1>
217
- <h2 class="no-num no-toc">Draft Standard &mdash; 18 August 2010</h2>
217
+ <h2 class="no-num no-toc">Draft Standard &mdash; 7 September 2010</h2>
218
218
  </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>
219
219
  <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>
220
220
  <!--<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>-->
@@ -1592,8 +1592,8 @@
1592
1592
  HTML syntax, but they are supported in the DOM and in XML.
1593
1593
  Similarly, documents that use the <code><a href=#the-noscript-element>noscript</a></code> feature can
1594
1594
  be represented using the HTML syntax, but cannot be represented with
1595
- the DOM or in XML. Comments that contain the string "<code title="">--&gt;</code>" can be represented in the DOM but not in the
1596
- HTML syntax or in XML.</p>
1595
+ the DOM or in XML. Comments that contain the string "<code title="">--&gt;</code>" can only be represented in the DOM, not in
1596
+ the HTML and XML syntaxes.</p>
1597
1597
 
1598
1598
 
1599
1599
  <h3 id=structure-of-this-specification><span class=secno>1.8 </span>Structure of this specification</h3>
@@ -3215,12 +3215,12 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
3215
3215
  specification. <a href=#refsWEBIDL>[WEBIDL]</a></p>
3216
3216
 
3217
3217
  <p id=float-nan>Except where otherwise specified, if an IDL
3218
- attribute that is a floating point number type (<code title="">float</code>) is assigned an Infinity or Not-a-Number
3218
+ attribute that is a floating point number type (<code title="">double</code>) is assigned an Infinity or Not-a-Number
3219
3219
  (NaN) value, a <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception must be
3220
3220
  raised.</p>
3221
3221
 
3222
3222
  <p>Except where otherwise specified, if a method with an argument
3223
- that is a floating point number type (<code title="">float</code>)
3223
+ that is a floating point number type (<code title="">double</code>)
3224
3224
  is passed an Infinity or Not-a-Number (NaN) value, a
3225
3225
  <code><a href=#not_supported_err>NOT_SUPPORTED_ERR</a></code> exception must be raised.</p>
3226
3226
 
@@ -3569,6 +3569,24 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
3569
3569
  boolean attributes. To represent a false value, the attribute has to
3570
3570
  be omitted altogether.</p>
3571
3571
 
3572
+ <div class=example>
3573
+
3574
+ <p>Here is an example of a checkbox that is checked and disabled.
3575
+ The <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code> and <code title=attr-input-disabled>disabled</code> attributes are the
3576
+ boolean attributes.</p>
3577
+
3578
+ <pre>&lt;label&gt;&lt;input type=checkbox checked name=cheese disabled&gt; Cheese&lt;/label&gt;</pre>
3579
+
3580
+ <p>This could be equivalently written as this:
3581
+
3582
+ <pre>&lt;label&gt;&lt;input type=checkbox checked=checked name=cheese disabled=disabled&gt; Cheese&lt;/label&gt;</pre>
3583
+
3584
+ <p>You can also mix styles; the following is still equivalent:</p>
3585
+
3586
+ <pre>&lt;label&gt;&lt;input type='checkbox' checked name=cheese disabled=""&gt; Cheese&lt;/label&gt;</pre>
3587
+
3588
+ </div>
3589
+
3572
3590
 
3573
3591
 
3574
3592
  <h4 id=keywords-and-enumerated-attributes><span class=secno>2.4.3 </span>Keywords and enumerated attributes</h4>
@@ -3928,14 +3946,14 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
3928
3946
 
3929
3947
  <li><p><i>Conversion</i>: Let <var title="">S</var> be the set of
3930
3948
  finite IEEE 754 single-precision floating point values except
3931
- &minus;0, but with two special values added: 2<sup title="">128</sup> and &minus;2<sup title="">128</sup>.</li>
3949
+ &minus;0, but with two special values added: 2<sup title="">1024</sup> and &minus;2<sup title="">1024</sup>.</li>
3932
3950
 
3933
3951
  <li><p>Let <var title="">rounded-value</var> be the number in <var title="">S</var> that is closest to <var title="">value</var>,
3934
3952
  selecting the number with an even significand if there are two
3935
- equally close values. (The two special values 2<sup title="">128</sup> and &minus;2<sup title="">128</sup> are
3953
+ equally close values. (The two special values 2<sup title="">1024</sup> and &minus;2<sup title="">1024</sup> are
3936
3954
  considered to have even significands for this purpose.)</li>
3937
3955
 
3938
- <li><p>If <var title="">rounded-value</var> is 2<sup title="">128</sup> or &minus;2<sup title="">128</sup>, return an
3956
+ <li><p>If <var title="">rounded-value</var> is 2<sup title="">1024</sup> or &minus;2<sup title="">1024</sup>, return an
3939
3957
  error.</li>
3940
3958
 
3941
3959
  <li><p>Return <var title="">rounded-value</var>.</li>
@@ -5289,17 +5307,24 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
5289
5307
  <li><p>If <var title="">input</var> is the empty string, then
5290
5308
  return an error.</li>
5291
5309
 
5292
- <li><p>If <var title="">input</var> is an <a href=#ascii-case-insensitive>ASCII
5310
+ <li><p>Let <var title="">keyword</var> be a string with the same
5311
+ value as <var title="">input</var>.</li>
5312
+
5313
+ <li><p><a href=#strip-leading-and-trailing-whitespace>Strip leading and trailing whitespace</a> from <var title="">keyword</var>.</li>
5314
+
5315
+ <li><p>If <var title="">keyword</var> is an <a href=#ascii-case-insensitive>ASCII
5293
5316
  case-insensitive</a> match for the string "<code title="">transparent</code>", then return an error.</li>
5294
5317
 
5295
- <li><p>If <var title="">input</var> is an <a href=#ascii-case-insensitive>ASCII
5296
- case-insensitive</a> match for one of the keywords listed in the
5297
- <a href=http://www.w3.org/TR/css3-color/#svg-color>SVG color
5298
- keywords</a> <!-- or <a
5299
- href="http://www.w3.org/TR/css3-color/#css2-system">CSS2 System
5300
- Colors</a> --> section<!--s--> of the CSS3 Color specification,
5301
- then return the <a href=#simple-color>simple color</a> corresponding to that
5302
- keyword. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
5318
+ <li>
5319
+
5320
+ <p>If <var title="">keyword</var> is an <a href=#ascii-case-insensitive>ASCII
5321
+ case-insensitive</a> match for one of the keywords listed in
5322
+ the <a href=http://www.w3.org/TR/css3-color/#svg-color>SVG color
5323
+ keywords</a> <!-- or <a
5324
+ href="http://www.w3.org/TR/css3-color/#css2-system">CSS2 System
5325
+ Colors</a> --> section<!--s--> of the CSS3 Color specification,
5326
+ then return the <a href=#simple-color>simple color</a> corresponding to that
5327
+ keyword. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
5303
5328
 
5304
5329
  <p class=note><a href=http://www.w3.org/TR/css3-color/#css2-system>CSS2 System
5305
5330
  Colors</a> are not recognised.</p>
@@ -5955,18 +5980,18 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
5955
5980
 
5956
5981
  </dl><div class=impl>
5957
5982
 
5958
- <hr><p>The attributes defined to be URL decomposition IDL attributes must
5959
- act as described for the attributes with the same corresponding
5960
- names in this section.</p>
5983
+ <hr><p>The attributes defined to be <a href=#url-decomposition-idl-attributes>URL decomposition IDL
5984
+ attributes</a> must act as described for the attributes with the
5985
+ same corresponding names in this section.</p>
5961
5986
 
5962
- <p>In addition, an interface with a complement of URL decomposition IDL
5963
- attributes will define an <dfn id=concept-uda-input title=concept-uda-input>input</dfn>, which is a <a href=#url>URL</a>
5987
+ <p>In addition, an interface with a complement of <a href=#url-decomposition-idl-attributes>URL
5988
+ decomposition IDL attributes</a> will define an <dfn id=concept-uda-input title=concept-uda-input>input</dfn>, which is a <a href=#url>URL</a>
5964
5989
  that the attributes act on, and a <dfn id=concept-uda-setter title=concept-uda-setter>common setter action</dfn>, which is a
5965
5990
  set of steps invoked when any of the attributes' setters are
5966
5991
  invoked.</p>
5967
5992
 
5968
- <p>The seven URL decomposition IDL attributes have similar
5969
- requirements.</p>
5993
+ <p>The seven <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a> have
5994
+ similar requirements.</p>
5970
5995
 
5971
5996
  <p>On getting, if the <a href=#concept-uda-input title=concept-uda-input>input</a>
5972
5997
  is an <a href=#absolute-url>absolute URL</a> that fulfills the condition given in
@@ -6100,9 +6125,9 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6100
6125
  <p>When a user agent is to <dfn id=fetch>fetch</dfn> a resource or
6101
6126
  <a href=#url>URL</a>, optionally from an origin <i title="">origin</i>,
6102
6127
  and optionally with a <i>synchronous flag</i>, a <i>manual redirect
6103
- flag</i>, and/or a <i>force same-origin flag</i>, the following
6104
- steps must be run. (When a <em>URL</em> is to be fetched, the URL
6105
- identifies a resource to be obtained.)</p>
6128
+ flag</i>, a <i>force same-origin flag</i>, and/or a <i>block cookies
6129
+ flag</i>, the following steps must be run. (When a <em>URL</em> is
6130
+ to be fetched, the URL identifies a resource to be obtained.)</p>
6106
6131
 
6107
6132
  <!-- if invoked with the synchronous flag, make sure to release the
6108
6133
  storage mutex first -->
@@ -6117,6 +6142,8 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6117
6142
  the same as the /origin/, which must also be present, and the
6118
6143
  algorithm must not be invoked with the manual redirect flag. -->
6119
6144
 
6145
+ <!-- "block cookies" is currently only used by XHR -->
6146
+
6120
6147
  <ol><li>
6121
6148
 
6122
6149
  <p>Generate the <i>address of the resource from which Request-URIs
@@ -6192,8 +6219,9 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6192
6219
 
6193
6220
  <li>
6194
6221
 
6195
- <p>If there are cookies to be set, then the user agent must run
6196
- the following substeps:</p>
6222
+ <p>If the algorithm was not invoked with the <i>block cookies
6223
+ flag</i>, and there are cookies to be set, then the user agent
6224
+ must run the following substeps:</p>
6197
6225
 
6198
6226
  <ol><li><p>Wait until ownership of the <a href=#storage-mutex>storage mutex</a> can
6199
6227
  be taken by this instance of the <a href=#fetch title=fetch>fetching</a> algorithm.</li>
@@ -6573,7 +6601,7 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6573
6601
  value.</p>
6574
6602
 
6575
6603
  <p>If a reflecting IDL attribute is a floating point number type
6576
- (<code>float</code>), then, on getting, the content attribute must
6604
+ (<code>double</code>), then, on getting, the content attribute must
6577
6605
  be parsed according to the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point
6578
6606
  number values</a>, and if that is successful, the resulting value
6579
6607
  must be returned. If, on the other hand, it fails, or if the
@@ -6702,7 +6730,7 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6702
6730
  <p>Returns null if <var title="">index</var> is out of range.</p>
6703
6731
  </dd>
6704
6732
 
6705
- <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLCollection-item><a href=#dom-htmlcollection-item>namedItem</a></code>(<var title="">name</var>)</dt>
6733
+ <dt><var title="">element</var> = <var title="">collection</var> . <code title=dom-HTMLCollection-namedItem><a href=#dom-htmlcollection-nameditem>namedItem</a></code>(<var title="">name</var>)</dt>
6706
6734
  <dt><var title="">collection</var>[<var title="">name</var>]</dt>
6707
6735
  <dt><var title="">collection</var>(<var title="">name</var>)</dt>
6708
6736
  <dd>
@@ -6763,7 +6791,7 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d
6763
6791
  <p>The <code><a href=#htmlallcollection>HTMLAllCollection</a></code> interface represents a generic
6764
6792
  <a href=#collections title=collections>collection</a> of elements just like
6765
6793
  <code><a href=#htmlcollection>HTMLCollection</a></code>, with the exception that its <code title=dom-HTMLAllCollection-namedItem><a href=#dom-htmlallcollection-nameditem>namedItem()</a></code> method
6766
- returns an <code><a href=#htmlcollection>HTMLCollection</a></code> object when there are
6794
+ returns an <code><a href=#htmlallcollection>HTMLAllCollection</a></code> object when there are
6767
6795
  multiple matching elements.</p>
6768
6796
 
6769
6797
  <pre class=idl>interface <dfn id=htmlallcollection>HTMLAllCollection</dfn> : <a href=#htmlcollection>HTMLCollection</a> {
@@ -7700,14 +7728,18 @@ interface <dfn id=propertynodelist>PropertyNodeList</dfn> : <a href=#nodelist>No
7700
7728
  <li value=21><dfn id=url_mismatch_err><code>URL_MISMATCH_ERR</code></dfn></li> <!-- actually defined right here for now -->
7701
7729
  <li value=22><dfn id=quota_exceeded_err><code>QUOTA_EXCEEDED_ERR</code></dfn></li> <!-- actually defined right here for now -->
7702
7730
  <li value=23><dfn id=timeout_err><code>TIMEOUT_ERR</code></dfn></li> <!-- actually in XHR for now -->
7703
- <li value=24><dfn id=data_clone_err><code>DATA_CLONE_ERR</code></dfn></li> <!-- actually defined right here for now -->
7704
- <!--v2DATAGRID <li value="24"><dfn><code>DATAGRID_MODEL_ERR</code></dfn></li> --> <!-- actually defined right here for now -->
7705
- <li value=81><dfn id=parse_err><code>PARSE_ERR</code></dfn></li> <!-- actually defined in dom3ls -->
7706
- <li value=82><dfn id=serialize_err><code>SERIALIZE_ERR</code></dfn></li> <!-- actually defined in dom3ls -->
7731
+ <li value=24><dfn id=not_readable_err><code>NOT_READABLE_ERR</code></dfn></li> <!-- File API -->
7732
+ <li value=25><dfn id=data_clone_err><code>DATA_CLONE_ERR</code></dfn></li> <!-- actually defined right here for now -->
7733
+ <li value=26><dfn id=encoding_err><code>ENCODING_ERR</code></dfn></li> <!-- File API -->
7734
+ <!--v2DATAGRID <li value=".."><dfn><code>DATAGRID_MODEL_ERR</code></dfn></li> --> <!-- actually defined right here for now -->
7735
+ <!--
7736
+ <li value="81"><dfn><code>PARSE_ERR</code></dfn></li> <!- - actually defined in dom3ls - ->
7737
+ <li value="82"><dfn><code>SERIALIZE_ERR</code></dfn></li> <!- - actually defined in dom3ls - ->
7738
+ -->
7707
7739
  </ol><pre class=impl>[Supplemental] exception DOMException {
7708
7740
  const unsigned short <a href=#url_mismatch_err>URL_MISMATCH_ERR</a> = 21;
7709
7741
  const unsigned short <a href=#quota_exceeded_err>QUOTA_EXCEEDED_ERR</a> = 22;
7710
- const unsigned short <a href=#data_clone_err>DATA_CLONE_ERR</a> = 24;
7742
+ const unsigned short <a href=#data_clone_err>DATA_CLONE_ERR</a> = 25;
7711
7743
  };</pre>
7712
7744
 
7713
7745
 
@@ -9185,7 +9217,7 @@ interface <dfn id=htmlunknownelement>HTMLUnknownElement</dfn> : <a href=#htmlele
9185
9217
 
9186
9218
  <p>If the value is not the empty string, user agents must associate
9187
9219
  the element with the given value (exactly, including any space
9188
- characters) for the purposes of ID matching within the element's
9220
+ characters) for the purposes of <a href=#concept-id title=concept-id>ID</a> matching within the element's
9189
9221
  <a href=#home-subtree>home subtree</a> (e.g. for selectors in CSS or for the
9190
9222
  <code title=dom-Document-getElementById><a href=#dom-document-getelementbyid>getElementById()</a></code>
9191
9223
  method in the DOM).</p>
@@ -9196,7 +9228,7 @@ interface <dfn id=htmlunknownelement>HTMLUnknownElement</dfn> : <a href=#htmlele
9196
9228
 
9197
9229
  <p>This specification doesn't preclude an element having multiple
9198
9230
  IDs, if other mechanisms (e.g. DOM Core methods) can set an
9199
- element's ID in a way that doesn't conflict with the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute.</p>
9231
+ element's <a href=#concept-id title=concept-id>ID</a> in a way that doesn't conflict with the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute.</p>
9200
9232
 
9201
9233
  <p>The <dfn id=dom-id title=dom-id><code>id</code></dfn> IDL attribute must
9202
9234
  <a href=#reflect>reflect</a> the <code title=attr-id><a href=#the-id-attribute>id</a></code> content
@@ -10552,7 +10584,10 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10552
10584
  <table id=table-aria-strong><thead><tr><th>Language feature
10553
10585
  <th>Strong native semantics <span class=impl>and implied ARIA semantics</span>
10554
10586
 
10555
- <tbody><tr><td><code><a href=#the-a-element>a</a></code> element that creates a <a href=#hyperlink>hyperlink</a>
10587
+ <tbody><tr><td><code><a href=#the-base-element>base</a></code> element
10588
+ <td>No role
10589
+
10590
+ <tr><td><code><a href=#the-a-element>a</a></code> element that creates a <a href=#hyperlink>hyperlink</a>
10556
10591
  <td><code title=attr-aria-role-link>link</code> role
10557
10592
 
10558
10593
  <tr><td><code><a href=#the-area-element>area</a></code> element that creates a <a href=#hyperlink>hyperlink</a>
@@ -10564,6 +10599,9 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10564
10599
  <tr><td><code><a href=#the-datalist-element>datalist</a></code> element
10565
10600
  <td><code title=attr-aria-role-listbox>listbox</code> role, with the <code title=attr-aria-multiselectable>aria-multiselectable</code> property set to "false"
10566
10601
 
10602
+ <tr><td><code><a href=#the-details-element>details</a></code> element
10603
+ <td><code title=attr-aria-expanded>aria-expanded</code> state set to "true" if the element's <code title=attr-details-open><a href=#attr-details-open>open</a></code> attribute is present, and set to "false" otherwise
10604
+
10567
10605
  <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
10568
10606
  <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
10569
10607
 
@@ -10582,12 +10620,18 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10582
10620
  <tr><td><code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> element that does not have an <code><a href=#the-hgroup-element>hgroup</a></code> ancestor
10583
10621
  <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
10584
10622
 
10623
+ <tr><td><code><a href=#the-head-element-0>head</a></code> element
10624
+ <td>No role
10625
+
10585
10626
  <tr><td><code><a href=#the-hgroup-element>hgroup</a></code> element
10586
10627
  <td><code title=attr-aria-role-heading>heading</code> role, with the <code title=attr-aria-level>aria-level</code> property set to the element's <a href=#outline-depth>outline depth</a>
10587
10628
 
10588
10629
  <tr><td><code><a href=#the-hr-element>hr</a></code> element
10589
10630
  <td><code title=attr-aria-role-separator>separator</code> role
10590
10631
 
10632
+ <tr><td><code><a href=#the-html-element-0>html</a></code> element
10633
+ <td>No role
10634
+
10591
10635
  <tr><td><code><a href=#the-img-element>img</a></code> element whose <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute's value is empty
10592
10636
  <td><code title=attr-aria-role-presentation>presentation</code> role
10593
10637
 
@@ -10595,7 +10639,7 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10595
10639
  <td><code title=attr-aria-role-button>button</code> role
10596
10640
 
10597
10641
  <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state
10598
- <td><code title=attr-aria-role-checkbox>checkbox</code> role, with the <code title=attr-aria-checked>aria-checked</code> state set to "mixed" if the element's <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute is true, or "true" if the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is true, or "false" otherwise
10642
+ <td><code title=attr-aria-checked>aria-checked</code> state set to "mixed" if the element's <code title=dom-input-indeterminate><a href=#dom-input-indeterminate>indeterminate</a></code> IDL attribute is true, or "true" if the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is true, or "false" otherwise
10599
10643
 
10600
10644
  <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#color-state title=attr-input-type-color>Color</a> state
10601
10645
  <td>No role
@@ -10613,7 +10657,7 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10613
10657
  <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> state set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
10614
10658
 
10615
10659
  <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#file-upload-state title=attr-input-type-file>File Upload</a> state
10616
- <td><code title=attr-aria-role-button>button</code> role
10660
+ <td>No role
10617
10661
 
10618
10662
  <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#hidden-state title=attr-input-type-hidden>Hidden</a> state
10619
10663
  <td>No role
@@ -10631,7 +10675,7 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10631
10675
  <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=title-aria-readonly>aria-readonly</code> state set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
10632
10676
 
10633
10677
  <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state
10634
- <td><code title=attr-aria-role-radio>radio</code> role, with the <code title=attr-aria-checked>aria-checked</code> state set to "true" if the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is true, or "false" otherwise
10678
+ <td><code title=attr-aria-checked>aria-checked</code> state set to "true" if the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is true, or "false" otherwise
10635
10679
 
10636
10680
  <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#range-state title=attr-input-type-range>Range</a> state
10637
10681
  <td><code title=attr-aria-role-slider>slider</code> role, with the <code title=attr-aria-valuemax>aria-valuemax</code> property set to the element's <a href=#concept-input-max title=concept-input-max>maximum</a>, the <code title=attr-aria-valuemin>aria-valuemin</code> property set to the element's <a href=#concept-input-min title=concept-input-min>minimum</a>, and the <code title=attr-aria-valuenow>aria-valuenow</code> property set to the result of applying the <a href=#rules-for-parsing-floating-point-number-values>rules for parsing floating point number values</a> to the element's <a href=#concept-fe-value title=concept-fe-value>value</a>, if that that results in a number, or the <a href=#concept-input-value-default-range title=concept-input-value-default-range>default value</a> otherwise
@@ -10663,6 +10707,9 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10663
10707
  <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#week-state title=attr-input-type-week>Week</a> state
10664
10708
  <td>No role, with the <code title=title-aria-readonly>aria-readonly</code> state set to "true" if the element has a <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute
10665
10709
 
10710
+ <tr><td><code><a href=#the-keygen-element>keygen</a></code> element
10711
+ <td>No role
10712
+
10666
10713
  <tr><td><code><a href=#the-link-element>link</a></code> element that creates a <a href=#hyperlink>hyperlink</a>
10667
10714
  <td><code title=attr-aria-role-link>link</code> role
10668
10715
 
@@ -10675,36 +10722,66 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10675
10722
  <tr><td><code><a href=#menus>menu</a></code> element with a <code title=attr-menu-type><a href=#attr-menu-type>type</a></code> attribute in the <a href=#toolbar-state title="toolbar state">toolbar</a> state
10676
10723
  <td><code title=attr-aria-role-toolbar>toolbar</code> role
10677
10724
 
10725
+ <tr><td><code><a href=#meta>meta</a></code> element
10726
+ <td>No role
10727
+
10728
+ <tr><td><code><a href=#the-meter-element>meter</a></code> element
10729
+ <td>No role
10730
+
10678
10731
  <tr><td><code><a href=#the-nav-element>nav</a></code> element
10679
10732
  <td><code title=attr-aria-role-navigation>navigation</code> role
10680
10733
 
10734
+ <tr><td><code><a href=#the-noscript-element>noscript</a></code> element
10735
+ <td>No role
10736
+
10737
+ <tr><td><code><a href=#the-optgroup-element>optgroup</a></code> element
10738
+ <td>No role
10739
+
10681
10740
  <tr><td><code><a href=#the-option-element>option</a></code> element that is in a <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> or that represents a suggestion in a <code><a href=#the-datalist-element>datalist</a></code> element
10682
10741
  <td><code title=attr-aria-role-option>option</code> role, with the <code title=attr-aria-selected>aria-selected</code> state set to "true" if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, or "false" otherwise.
10683
10742
 
10743
+ <tr><td><code><a href=#the-param-element>param</a></code> element
10744
+ <td>No role
10745
+
10684
10746
  <tr><td><code><a href=#the-progress-element>progress</a></code> element
10685
10747
  <td><code title=attr-aria-role-progressbar>progressbar</code> role, with, if the progress bar is determinate, the <code title=attr-aria-valuemax>aria-valuemax</code> property set to the maximum value of the progress bar, the <code title=attr-aria-valuemin>aria-valuemin</code> property set to zero, and the <code title=attr-aria-valuenow>aria-valuenow</code> property set to the current value of the progress bar
10686
10748
 
10749
+ <tr><td><code><a href=#script>script</a></code> element
10750
+ <td>No role
10751
+
10687
10752
  <tr><td><code><a href=#the-select-element>select</a></code> element with a <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute
10688
10753
  <td><code title=attr-aria-role-listbox>listbox</code> role, with the <code title=attr-aria-multiselectable>aria-multiselectable</code> property set to "true"
10689
10754
 
10690
10755
  <tr><td><code><a href=#the-select-element>select</a></code> element with no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute
10691
10756
  <td><code title=attr-aria-role-listbox>listbox</code> role, with the <code title=attr-aria-multiselectable>aria-multiselectable</code> property set to "false"
10692
10757
 
10758
+ <tr><td><code><a href=#the-source-element>source</a></code> element
10759
+ <td>No role
10760
+
10761
+ <tr><td><code><a href=#the-style-element>style</a></code> element
10762
+ <td>No role
10763
+
10764
+ <tr><td><code><a href=#the-summary-element>summary</a></code> element
10765
+ <td><code title=attr-aria-role-heading>heading</code> role
10766
+
10693
10767
  <tr><td><code><a href=#the-td-element>td</a></code> element
10694
10768
  <td><code title=attr-aria-role-gridcell>gridcell</code> role, with the <code title=attr-aria-labelledby>aria-labelledby</code> property set to the value of the <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute, if any
10695
10769
 
10696
10770
  <tr><td><code><a href=#the-textarea-element>textarea</a></code> element
10697
10771
  <td><code title=attr-aria-role-textbox>textbox</code> role, with the <code title=attr-aria-multiline>aria-multiline</code> property set to "true", and the <code title=title-aria-readonly>aria-readonly</code> state set to "true" if the element has a <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute
10698
10772
 
10699
- <tr><td><code><a href=#the-th-element>th</a></code> element that is neither a <a href=#column-header>column header</a> nor a <a href=#row-header>row header</a>
10700
- <td><code title=attr-aria-role-gridcell>gridcell</code> role, with the <code title=attr-aria-labelledby>aria-labelledby</code> property set to the value of the <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute, if any
10701
-
10702
10773
  <tr><td><code><a href=#the-th-element>th</a></code> element that is a <a href=#column-header>column header</a>
10703
10774
  <td><code title=attr-aria-role-columnheader>columnheader</code> role, with the <code title=attr-aria-labelledby>aria-labelledby</code> property set to the value of the <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute, if any
10704
10775
 
10705
10776
  <tr><td><code><a href=#the-th-element>th</a></code> element that is a <a href=#row-header>row header</a>
10706
10777
  <td><code title=attr-aria-role-rowheader>rowheader</code> role, with the <code title=attr-aria-labelledby>aria-labelledby</code> property set to the value of the <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute, if any
10707
10778
 
10779
+ <tr><td><code><a href=#the-th-element>th</a></code> element that is neither a <a href=#column-header>column header</a> nor a <a href=#row-header>row header</a>
10780
+ <td><code title=attr-aria-role-gridcell>gridcell</code> role, with the <code title=attr-aria-labelledby>aria-labelledby</code> property set to the value of the <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute, if any
10781
+
10782
+ <tr><td><code><a href=#the-title-element-0>title</a></code> element
10783
+ <td>No role
10784
+
10708
10785
  <tr><td><code><a href=#the-tr-element>tr</a></code> element
10709
10786
  <td><code title=attr-aria-role-row>row</code> role
10710
10787
 
@@ -10748,6 +10825,18 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10748
10825
  <td><code title=attr-aria-role-note>note</code> role
10749
10826
  <td>Role must be either <code title=attr-aria-role-note>note</code>, <code title=attr-aria-role-complementary>complementary</code>, or <code title=attr-aria-role-search>search</code>
10750
10827
 
10828
+ <tr><td><code><a href=#audio>audio</a></code> element
10829
+ <td>No role
10830
+ <td>If specified, role must be <code title=attr-aria-role-application>application</code>
10831
+
10832
+ <tr><td><code><a href=#the-details-element>details</a></code> element
10833
+ <td><code title=attr-aria-role-group>group</code> role
10834
+ <td>Role must be either <code title=attr-aria-role-form>form</code>, <code title=attr-aria-role-group>group</code>, <code title=attr-aria-role-navigation>navigation</code>, <code title=attr-aria-role-note>note</code>, or <code title=attr-aria-role-search>search</code>
10835
+
10836
+ <tr><td><code><a href=#the-embed-element>embed</a></code> element
10837
+ <td>No role
10838
+ <td>If specified, role must be either <code title=attr-aria-role-application>application</code>, <code title=attr-aria-role-document>document</code>, or <code title=attr-aria-role-image>image</code>
10839
+
10751
10840
  <tr><td><code><a href=#the-footer-element>footer</a></code> element
10752
10841
  <td>No role
10753
10842
  <td>If specified, role must be <code title=attr-aria-role-contentinfo>contentinfo</code> (ARIA restricts usage of this role to one per page)
@@ -10756,10 +10845,26 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10756
10845
  <td>No role
10757
10846
  <td>If specified, role must be <code title=attr-aria-role-banner>banner</code> (ARIA restricts usage of this role to one per page)
10758
10847
 
10848
+ <tr><td><code><a href=#the-iframe-element>iframe</a></code> element
10849
+ <td>No role
10850
+ <td>If specified, role must be either <code title=attr-aria-role-application>application</code>, <code title=attr-aria-role-document>document</code>, or <code title=attr-aria-role-image>image</code>
10851
+
10852
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#checkbox-state title=attr-input-type-checkbox>Checkbox</a> state
10853
+ <td><code title=attr-aria-role-checkbox>checkbox</code> role
10854
+ <td>Role must be either <code title=attr-aria-role-checkbox>checkbox</code> or <code title=attr-aria-role-menuitemcheckbox>menuitemcheckbox</code>
10855
+
10856
+ <tr><td><code><a href=#the-input-element>input</a></code> element with a <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute in the <a href=#radio-button-state title=attr-input-type-radio>Radio Button</a> state
10857
+ <td><code title=attr-aria-role-radio>radio</code> role
10858
+ <td>Role must be either <code title=attr-aria-role-radio>radio</code> or <code title=attr-aria-role-menuitemradio>menuitemradio</code>
10859
+
10759
10860
  <tr><td><code><a href=#the-li-element>li</a></code> element whose parent is an <code><a href=#the-ol-element>ol</a></code> or <code><a href=#the-ul-element>ul</a></code> element
10760
10861
  <td><code title=attr-aria-role-listitem>listitem</code> role
10761
10862
  <td>Role must be either <code title=attr-aria-role-listitem>listitem</code> or <code title=attr-aria-role-treeitem>treeitem</code>
10762
10863
 
10864
+ <tr><td><code><a href=#the-object-element>object</a></code> element
10865
+ <td>No role
10866
+ <td>If specified, role must be either <code title=attr-aria-role-application>application</code>, <code title=attr-aria-role-document>document</code>, or <code title=attr-aria-role-image>image</code>
10867
+
10763
10868
  <tr><td><code><a href=#the-ol-element>ol</a></code> element
10764
10869
  <td><code title=attr-aria-role-list>list</code> role
10765
10870
  <td>Role must be either <code title=attr-aria-role-list>list</code>, <code title=attr-aria-role-tree>tree</code>, or <code title=attr-aria-role-directory>directory</code>
@@ -10780,11 +10885,76 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
10780
10885
  <td><code title=attr-aria-role-list>list</code> role
10781
10886
  <td>Role must be either <code title=attr-aria-role-list>list</code> or <code title=attr-aria-role-tree>tree</code>, or <code title=attr-aria-role-directory>directory</code>
10782
10887
 
10888
+ <tr><td><code><a href=#video>video</a></code> element
10889
+ <td>No role
10890
+ <td>If specified, role must be <code title=attr-aria-role-application>application</code>
10891
+
10783
10892
  <tr><td><a href=#the-body-element>The body element</a>
10784
10893
  <td><code title=attr-aria-role-document>document</code> role
10785
10894
  <td>Role must be either <code title=attr-aria-role-document>document</code> or <code title=attr-aria-role-application>application</code>
10786
10895
 
10787
- </table><div class=impl>
10896
+ </table><div class=note>
10897
+
10898
+ <p>A number of elements in HTML have no default role and no
10899
+ restrictions on what roles can be applied to those elements:
10900
+ <code><a href=#the-a-element>a</a></code> (unless it creates a <a href=#hyperlink>hyperlink</a>),
10901
+ <code><a href=#the-abbr-element>abbr</a></code>,
10902
+ <code><a href=#the-area-element>area</a></code> (unless it creates a <a href=#hyperlink>hyperlink</a>),
10903
+ <code><a href=#the-b-element>b</a></code>,
10904
+ <code><a href=#the-bdo-element>bdo</a></code>,
10905
+ <code><a href=#the-blockquote-element>blockquote</a></code>,
10906
+ <code><a href=#the-br-element>br</a></code>,
10907
+ <code><a href=#the-canvas-element>canvas</a></code>,
10908
+ <code><a href=#the-caption-element>caption</a></code>,
10909
+ <code><a href=#the-cite-element>cite</a></code>,
10910
+ <code><a href=#the-code-element>code</a></code>,
10911
+ <code><a href=#the-col-element>col</a></code>,
10912
+ <code><a href=#the-colgroup-element>colgroup</a></code>,
10913
+ <code><a href=#the-dd-element>dd</a></code>,
10914
+ <code><a href=#the-del-element>del</a></code>,
10915
+ <code><a href=#the-dfn-element>dfn</a></code>,
10916
+ <code><a href=#the-div-element>div</a></code>,
10917
+ <code><a href=#the-dl-element>dl</a></code>,
10918
+ <code><a href=#the-dt-element>dt</a></code>,
10919
+ <code><a href=#the-em-element>em</a></code>,
10920
+ <code><a href=#the-fieldset-element>fieldset</a></code>,
10921
+ <code><a href=#the-figcaption-element>figcaption</a></code>,
10922
+ <code><a href=#the-figure-element>figure</a></code>,
10923
+ <code><a href=#the-form-element>form</a></code>,
10924
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>&ndash;<code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code> in <code><a href=#the-hgroup-element>hgroup</a></code>,
10925
+ <code><a href=#the-img-element>img</a></code> (unless the <code title=attr-img-alt><a href=#attr-img-alt>alt</a></code> attribute's value is the empty string),
10926
+ <code><a href=#the-ins-element>ins</a></code>,
10927
+ <code><a href=#the-kbd-element>kbd</a></code>,
10928
+ <code><a href=#the-label-element>label</a></code> (unless it has an <a href=#assigned-access-key>assigned access key</a>),
10929
+ <code><a href=#the-legend-element>legend</a></code> (unless it has an <a href=#assigned-access-key>assigned access key</a>),
10930
+ <code><a href=#the-li-element>li</a></code> in <code><a href=#menus>menu</a></code>,
10931
+ <code><a href=#the-link-element>link</a></code> (unless it creates a <a href=#hyperlink>hyperlink</a>),
10932
+ <code><a href=#the-map-element>map</a></code>,
10933
+ <code><a href=#the-mark-element>mark</a></code>,
10934
+ <code><a href=#the-p-element>p</a></code>,
10935
+ <code><a href=#the-pre-element>pre</a></code>,
10936
+ <code><a href=#the-q-element>q</a></code>,
10937
+ <code><a href=#the-rp-element>rp</a></code>,
10938
+ <code><a href=#the-rt-element>rt</a></code>,
10939
+ <code><a href=#the-ruby-element>ruby</a></code>,
10940
+ <code><a href=#the-samp-element>samp</a></code>,
10941
+ <code><a href=#the-small-element>small</a></code>,
10942
+ <code><a href=#the-span-element>span</a></code>,
10943
+ <code><a href=#the-strong-element>strong</a></code>,
10944
+ <code><a href=#the-sub-and-sup-elements>sub</a></code>,
10945
+ <code><a href=#the-sub-and-sup-elements>sup</a></code>,
10946
+ <code><a href=#the-table-element>table</a></code>,
10947
+ <code><a href=#the-tbody-element>tbody</a></code>,
10948
+ <code><a href=#the-tfoot-element>tfoot</a></code>,
10949
+ <code><a href=#the-thead-element>thead</a></code>,
10950
+ <code><a href=#the-time-element>time</a></code>,
10951
+ <code><a href=#the-var-element>var</a></code>, and
10952
+ <code><a href=#the-wbr-element>wbr</a></code>.
10953
+ </p>
10954
+
10955
+ </div>
10956
+
10957
+ <div class=impl>
10788
10958
 
10789
10959
  <p>User agents may apply different defaults than those described in
10790
10960
  this section in order to expose the semantics of <a href=#html-elements>HTML
@@ -11203,9 +11373,11 @@ http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20HTML%3E%0
11203
11373
  <p>If <var title="">type</var> is <em>not</em> now an <a href=#ascii-case-insensitive>ASCII
11204
11374
  case-insensitive</a> match for the string
11205
11375
  "<code><a href=#text/html>text/html</a></code>", then act as if the tokenizer had emitted
11206
- a start tag token with the tag name "pre", then switch the
11207
- <a href=#html-parser>HTML parser</a>'s tokenizer to the <a href=#plaintext-state>PLAINTEXT
11208
- state</a>.</p>
11376
+ a start tag token with the tag name "pre" followed by a single
11377
+ U+000A LINE FEED (LF) character<!-- to get eaten, so that a
11378
+ leading LF in the written text doesn't get eaten itself-->, then
11379
+ switch the <a href=#html-parser>HTML parser</a>'s tokenizer to the
11380
+ <a href=#plaintext-state>PLAINTEXT state</a>.</p>
11209
11381
 
11210
11382
  <!--
11211
11383
  http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Ciframe%3E%3C%2Fiframe%3E%3Cscript%3Eonload%20%3D%20function%20()%20%7B%20%0D%0A%20%20var%20d%20%3D%20document.getElementsByTagName('iframe')%5B0%5D.contentDocument%3B%0D%0A%20%20d.open('image%2Fsvg%2Bxml')%3B%0D%0A%20%20d.write(%22%3Cinput%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml'%20value%3D'(x)html'%2F%3E%22)%3B%0D%0A%20%20d.close()%3B%0D%0A%7D%3B%3C%2Fscript%3E
@@ -12353,9 +12525,11 @@ gave me some of the songs they wrote. I love sharing my music.&lt;/p&gt;
12353
12525
  does not support the given <a href=#mime-type>MIME type</a> for the given link
12354
12526
  relationship, then the UA should not <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource; if the UA
12355
12527
  does support the given <a href=#mime-type>MIME type</a> for the given link
12356
- relationship, then the UA should <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource. If the
12357
- attribute is omitted, and the external resource link type does not
12358
- have a default type defined, but the user agent would <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource if the type
12528
+ relationship, then the UA should <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource at the
12529
+ approprite time as specified for the <a href=#external-resource-link>external resource
12530
+ link</a>'s particular type. If the attribute is omitted, and the
12531
+ external resource link type does not have a default type defined,
12532
+ but the user agent would <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource if the type
12359
12533
  was known and supported, then the user agent should <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource under the
12360
12534
  assumption that it will be supported.</span></p>
12361
12535
 
@@ -13181,16 +13355,14 @@ people expect to have work and what is necessary.
13181
13355
  the <code title=attr-meta-content><a href=#attr-meta-content>content</a></code> attribute must
13182
13356
  have a value consisting either of:</p>
13183
13357
 
13184
- <ul><li> just a <a href=#valid-non-negative-integer>valid non-negative integer</a>, or</li>
13358
+ <ul><li>just a <a href=#valid-non-negative-integer>valid non-negative integer</a>, or</li>
13185
13359
 
13186
- <li> a <a href=#valid-non-negative-integer>valid non-negative integer</a>, followed by a
13187
- U+003B SEMICOLON character (;), followed by one or more <a href=#space-character title="space character">space characters</a>, followed by
13188
- either a U+0055 LATIN CAPITAL LETTER U character (U) or a U+0075
13189
- LATIN SMALL LETTER U character (u), a U+0052 LATIN CAPITAL LETTER
13190
- R character (R) or a U+0072 LATIN SMALL LETTER R character (r), a
13191
- U+004C LATIN CAPITAL LETTER L character (L) or a U+006C LATIN
13192
- SMALL LETTER L character (l), a U+003D EQUALS SIGN character (=),
13193
- and then a <a href=#valid-url>valid URL</a>.</li>
13360
+ <li>a <a href=#valid-non-negative-integer>valid non-negative integer</a>, followed by a
13361
+ U+003B SEMICOLON character (;), followed by one or more <a href=#space-character title="space character">space characters</a>, followed by a
13362
+ substring that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match
13363
+ for the string "<code title="">URL</code>", followed by a U+003D
13364
+ EQUALS SIGN character (=), followed by a <a href=#valid-url>valid
13365
+ URL</a>.</li>
13194
13366
 
13195
13367
  </ul><p>In the former case, the integer represents a number of seconds
13196
13368
  before the page is to be reloaded; in the latter case the integer
@@ -13452,8 +13624,8 @@ people expect to have work and what is necessary.
13452
13624
  attribute gives the styling language. If the attribute is present,
13453
13625
  its value must be a <a href=#valid-mime-type>valid MIME type</a> that designates a
13454
13626
  styling language. The <code title="">charset</code> parameter must
13455
- not be specified. The default, which is used if the attribute is
13456
- absent, is "<code title="">text/css</code>". <a href=#refsRFC2318>[RFC2318]</a></p>
13627
+ not be specified. The default value for the <code title=attr-style-type><a href=#attr-style-type>type</a></code> attribute, which is used if the
13628
+ attribute is absent, is "<code title="">text/css</code>". <a href=#refsRFC2318>[RFC2318]</a></p>
13457
13629
 
13458
13630
  <div class=impl>
13459
13631
 
@@ -15111,7 +15283,7 @@ not-slash = %x0000-002E / %x0030-10FFFF
15111
15283
  <em>...more content...</em>
15112
15284
  &lt;/div&gt;
15113
15285
  &lt;footer&gt;
15114
- &lt;p&gt;Posted &lt;time pubdate datetime="2009-10-10T14:36-08:00"&gt;Thursday&lt;/time&gt;.&lt;/p&gt;
15286
+ &lt;p&gt;Posted &lt;time pubdate="" datetime="2009-10-10T14:36-08:00"&gt;Thursday&lt;/time&gt;.&lt;/p&gt;
15115
15287
  &lt;/footer&gt;
15116
15288
  &lt;/article&gt;
15117
15289
  <em>...more blog posts...</em>
@@ -15271,7 +15443,7 @@ not-slash = %x0000-002E / %x0030-10FFFF
15271
15443
  &lt;/article&gt;</pre>
15272
15444
 
15273
15445
  <p>Notice the use of <code><a href=#the-footer-element>footer</a></code> to give the information
15274
- each comment (such as who wrote it and when): the
15446
+ for each comment (such as who wrote it and when): the
15275
15447
  <code><a href=#the-footer-element>footer</a></code> element <em>can</em> appear at the start of its
15276
15448
  section when appropriate, such as in this case. (Using
15277
15449
  <code><a href=#the-header-element>header</a></code> in this case wouldn't be wrong either; it's
@@ -16395,6 +16567,12 @@ isn't his only passion. He also enjoys other pleasures.&lt;/p&gt;
16395
16567
  </dl><p>The <code><a href=#the-p-element>p</a></code> element <a href=#represents>represents</a> a
16396
16568
  <a href=#paragraph>paragraph</a>.</p>
16397
16569
 
16570
+ <p class=note>While paragraphs are usually represented in visual
16571
+ media by blocks of text that are physically separated from adjacent
16572
+ blocks through blank lines, a style sheet or user agent would be
16573
+ equally justified in presenting paragraph breaks in a different
16574
+ manner, for instance using inline pilcrows (&para;).</p>
16575
+
16398
16576
  <div class=example>
16399
16577
  <p>The following examples are conforming HTML fragments:</p>
16400
16578
  <pre>&lt;p&gt;The little kitten gently seated himself on a piece of
@@ -16799,7 +16977,7 @@ a friend lost to the
16799
16977
 
16800
16978
  <p>The <dfn id=attr-ol-start title=attr-ol-start><code>start</code></dfn>
16801
16979
  attribute, if present, must be a <a href=#valid-integer>valid integer</a> giving
16802
- the ordinal value of the first list item.</p>
16980
+ the <a href=#ordinal-value>ordinal value</a> of the first list item.</p>
16803
16981
 
16804
16982
  <div class=impl>
16805
16983
 
@@ -16811,17 +16989,18 @@ a friend lost to the
16811
16989
  the referenced algorithm, is 1 if the element has no <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code> attribute, and is the
16812
16990
  number of child <code><a href=#the-li-element>li</a></code> elements otherwise.</p>
16813
16991
 
16814
- <p>The first item in the list has the ordinal value given by the
16815
- <code><a href=#the-ol-element>ol</a></code> element's <code title=attr-ol-start><a href=#attr-ol-start>start</a></code>
16816
- attribute, unless that <code><a href=#the-li-element>li</a></code> element has a <code title=attr-li-value><a href=#attr-li-value>value</a></code> attribute with a value that can
16817
- be successfully parsed, in which case it has the ordinal value given
16818
- by that <code title=attr-li-value><a href=#attr-li-value>value</a></code> attribute.</p>
16992
+ <p>The first item in the list has the <a href=#ordinal-value>ordinal value</a>
16993
+ given by the <code><a href=#the-ol-element>ol</a></code> element's <code title=attr-ol-start><a href=#attr-ol-start>start</a></code> attribute, unless that
16994
+ <code><a href=#the-li-element>li</a></code> element has a <code title=attr-li-value><a href=#attr-li-value>value</a></code> attribute with a value that can
16995
+ be successfully parsed, in which case it has the <a href=#ordinal-value>ordinal
16996
+ value</a> given by that <code title=attr-li-value><a href=#attr-li-value>value</a></code>
16997
+ attribute.</p>
16819
16998
 
16820
- <p>Each subsequent item in the list has the ordinal value given by
16821
- its <code title=attr-li-value><a href=#attr-li-value>value</a></code> attribute, if it has
16822
- one, or, if it doesn't, the ordinal value of the previous item, plus
16823
- one if the <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code> is absent,
16824
- or minus one if it is present.</p>
16999
+ <p>Each subsequent item in the list has the <a href=#ordinal-value>ordinal
17000
+ value</a> given by its <code title=attr-li-value><a href=#attr-li-value>value</a></code>
17001
+ attribute, if it has one, or, if it doesn't, the <a href=#ordinal-value>ordinal
17002
+ value</a> of the previous item, plus one if the <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code> is absent, or minus one if
17003
+ it is present.</p>
16825
17004
 
16826
17005
  <p>The <dfn id=dom-ol-reversed title=dom-ol-reversed><code>reversed</code></dfn> IDL
16827
17006
  attribute must <a href=#reflect>reflect</a> the value of the <code title=attr-ol-reversed><a href=#attr-ol-reversed>reversed</a></code> content attribute.</p>
@@ -16948,9 +17127,12 @@ I first lived there):&lt;/p&gt;
16948
17127
  list item has no defined list-related relationship to any other
16949
17128
  <code><a href=#the-li-element>li</a></code> element.</p>
16950
17129
 
17130
+ <p>If the parent element is an <code><a href=#the-ol-element>ol</a></code> element, then the
17131
+ <code><a href=#the-li-element>li</a></code> element has an <dfn id=ordinal-value>ordinal value</dfn>.</p>
17132
+
16951
17133
  <p>The <dfn id=attr-li-value title=attr-li-value><code>value</code></dfn>
16952
17134
  attribute, if present, must be a <a href=#valid-integer>valid integer</a> giving
16953
- the ordinal value of the list item.</p>
17135
+ the <a href=#ordinal-value>ordinal value</a> of the list item.</p>
16954
17136
 
16955
17137
  <div class=impl>
16956
17138
 
@@ -17633,7 +17815,9 @@ included with Exhibit B.
17633
17815
 
17634
17816
  <p>The <code><a href=#the-a-element>a</a></code> element also supports the complement of
17635
17817
  <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-a-protocol title=dom-a-protocol><code>protocol</code></dfn>, <dfn id=dom-a-host title=dom-a-host><code>host</code></dfn>, <dfn id=dom-a-port title=dom-a-port><code>port</code></dfn>, <dfn id=dom-a-hostname title=dom-a-hostname><code>hostname</code></dfn>, <dfn id=dom-a-pathname title=dom-a-pathname><code>pathname</code></dfn>, <dfn id=dom-a-search title=dom-a-search><code>search</code></dfn>, and <dfn id=dom-a-hash title=dom-a-hash><code>hash</code></dfn>. These must follow the
17636
- rules given for URL decomposition IDL attributes, with the <a href=#concept-uda-input title=concept-uda-input>input</a> being the result of <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute relative to the
17818
+ rules given for <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, with
17819
+ the <a href=#concept-uda-input title=concept-uda-input>input</a> being the result of
17820
+ <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute relative to the
17637
17821
  element, if there is such an attribute and resolving it is
17638
17822
  successful, or the empty string otherwise; and the <a href=#concept-uda-setter title=concept-uda-setter>common setter action</a> being the
17639
17823
  same as setting the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute to the new output
@@ -18328,7 +18512,11 @@ this specification: the &lt;abbr&gt;WHATWG&lt;/abbr&gt; and the
18328
18512
 
18329
18513
  <!-- it's also intended for restyling to local conventions
18330
18514
  (2000-12-31 vs 31-12-2000 vs 12-31-2000), but CSS doesn't support
18331
- that yet. -->
18515
+ that yet. Once CSS does support that, we should update this to also
18516
+ support year and year-month cases, since in Japanese those need
18517
+ special styling also. See #2 in:
18518
+ http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-August/028025.html
18519
+ ...for details. -->
18332
18520
 
18333
18521
  <div class=note>
18334
18522
 
@@ -19401,6 +19589,12 @@ wormhole connection.&lt;/mark&gt;&lt;/p&gt;</pre>
19401
19589
  </dl><p>The <code><a href=#the-br-element>br</a></code> element <a href=#represents>represents</a> a line
19402
19590
  break.</p>
19403
19591
 
19592
+ <p class=note>While line breaks are usually represented in visual
19593
+ media by physically moving subsequent text to a new line, a style
19594
+ sheet or user agent would be equally justified in causing line
19595
+ breaks to be rendered in a different manner, for instance as green
19596
+ dots, or as extra spacing.</p>
19597
+
19404
19598
  <p><code><a href=#the-br-element>br</a></code> elements must be used only for line breaks that
19405
19599
  are actually part of the content, as in poems or addresses.</p>
19406
19600
 
@@ -19742,19 +19936,22 @@ Sydney&lt;/p&gt;</pre>
19742
19936
  attribute may be used to specify the time and date of the change.</p>
19743
19937
 
19744
19938
  <p>If present, the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code>
19745
- attribute must be a <a href=#valid-global-date-and-time-string>valid global date and time string</a>
19746
- value.</p>
19939
+ attribute's value must be a <a href=#valid-date-string-with-optional-time>valid date string with optional
19940
+ time</a>.</p>
19747
19941
 
19748
19942
  <div class=impl>
19749
19943
 
19750
19944
  <p>User agents must parse the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> attribute according to the
19751
- <a href=#parse-a-global-date-and-time-string>parse a global date and time string</a> algorithm. If that
19752
- doesn't return a time, then the modification has no associated
19753
- timestamp (the value is non-conforming; it is not a <a href=#valid-global-date-and-time-string>valid
19754
- global date and time string</a>). Otherwise, the modification is
19755
- marked as having been made at the given datetime. User agents should
19756
- use the associated time-zone offset information to determine which
19757
- time zone to present the given datetime in.</p>
19945
+ <a href=#parse-a-date-or-time-string>parse a date or time string</a> algorithm. If that doesn't
19946
+ return a <a href=#concept-date title=concept-date>date</a> or a <a href=#concept-datetime title=concept-datetime>global date and time</a>, then the
19947
+ modification has no associated timestamp (the value is
19948
+ non-conforming; it is not a <a href=#valid-date-string-with-optional-time>valid date string with optional
19949
+ time</a>). Otherwise, the modification is marked as having been
19950
+ made at the given <a href=#concept-date title=concept-date>date</a> or <a href=#concept-datetime title=concept-datetime>global date and time</a>. If the given
19951
+ value is a <a href=#concept-datetime title=concept-datetime>global date and
19952
+ time</a> then user agents should use the associated time-zone
19953
+ offset information to determine which time zone to present the given
19954
+ datetime in.</p>
19758
19955
 
19759
19956
  </div>
19760
19957
 
@@ -21827,7 +22024,7 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
21827
22024
 
21828
22025
  <p class=warning>These flags only take effect when the
21829
22026
  <a href=#nested-browsing-context>nested browsing context</a> of the <code><a href=#the-iframe-element>iframe</a></code> is
21830
- <a href=#navigate title=navigate>navigated</a>. Removing then, or removing
22027
+ <a href=#navigate title=navigate>navigated</a>. Removing them, or removing
21831
22028
  the entire <code title=attr-iframe-sandbox><a href=#attr-iframe-sandbox>sandbox</a></code>
21832
22029
  attribute, has no effect on an already-loaded page.</p>
21833
22030
 
@@ -23447,16 +23644,6 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
23447
23644
  agents could disable screensavers while video playback is in
23448
23645
  progress.</p>
23449
23646
 
23450
- <p class=warning>User agents should not provide a public API to
23451
- cause videos to be shown full-screen. A script, combined with a
23452
- carefully crafted video file, could trick the user into thinking a
23453
- system-modal dialog had been shown, and prompt the user for a
23454
- password. There is also the danger of "mere" annoyance, with pages
23455
- launching full-screen videos when links are clicked or pages
23456
- navigated. Instead, user-agent-specific interface features may be
23457
- provided to easily allow the user to obtain a full-screen playback
23458
- mode.</p>
23459
-
23460
23647
  </div>
23461
23648
 
23462
23649
  <div class=example>
@@ -23698,6 +23885,14 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23698
23885
  be a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
23699
23886
  spaces</a>. This attribute must be present.</p>
23700
23887
 
23888
+ <p class=note>Dynamically modifying a <code><a href=#the-source-element>source</a></code> element
23889
+ and its attribute when the element is already inserted in a
23890
+ <code><a href=#video>video</a></code> or <code><a href=#audio>audio</a></code> element will have no
23891
+ effect. To change what is playing, either just use the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute on the <a href=#media-element>media
23892
+ element</a> directly, or call the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method on the <a href=#media-element>media
23893
+ element</a> after manipulating the <code><a href=#the-source-element>source</a></code>
23894
+ elements.</p>
23895
+
23701
23896
  <p>The <dfn id=attr-source-type title=attr-source-type><code>type</code></dfn>
23702
23897
  attribute gives the type of the <a href=#media-resource>media resource</a>, to help
23703
23898
  the user agent determine if it can play this <a href=#media-resource>media
@@ -23710,7 +23905,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23710
23905
 
23711
23906
  <p>The following list shows some examples of how to use the <code title="">codecs=</code> MIME parameter in the <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute.</p>
23712
23907
 
23713
- <dl><dt>H.264 Simple baseline profile video (main and extended video compatible) level 3 and Low-Complexity AAC audio in MP4 container</dt>
23908
+ <dl><dt>H.264 Constrained baseline profile video (main and extended video compatible) level 3 and Low-Complexity AAC audio in MP4 container</dt>
23714
23909
  <dd><pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;</pre></dd>
23715
23910
 
23716
23911
  <dt>H.264 Extended profile video (baseline-compatible) level 3 and Low-Complexity AAC audio in MP4 container</dt>
@@ -23861,16 +24056,18 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23861
24056
  <dt>Content attributes:</dt>
23862
24057
  <dd><a href=#global-attributes>Global attributes</a></dd>
23863
24058
  <dd><code title=attr-track-kind><a href=#attr-track-kind>kind</a></code></dd>
23864
- <dd><code title=attr-track-label><a href=#attr-track-label>label</a></code></dd>
23865
24059
  <dd><code title=attr-track-src><a href=#attr-track-src>src</a></code></dd>
24060
+ <dd><code title=attr-track-charset><a href=#attr-track-charset>charset</a></code></dd>
23866
24061
  <dd><code title=attr-track-srclang><a href=#attr-track-srclang>srclang</a></code></dd>
24062
+ <dd><code title=attr-track-label><a href=#attr-track-label>label</a></code></dd>
23867
24063
  <dt>DOM interface:</dt>
23868
24064
  <dd>
23869
24065
  <pre class=idl>interface <dfn id=htmltrackelement>HTMLTrackElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
23870
24066
  attribute DOMString <a href=#dom-track-kind title=dom-track-kind>kind</a>;
23871
- attribute DOMString <a href=#dom-track-label title=dom-track-label>label</a>;
23872
24067
  attribute DOMString <a href=#dom-track-src title=dom-track-src>src</a>;
24068
+ attribute DOMString <a href=#dom-track-charset title=dom-track-charset>charset</a>;
23873
24069
  attribute DOMString <a href=#dom-track-srclang title=dom-track-srclang>srclang</a>;
24070
+ attribute DOMString <a href=#dom-track-label title=dom-track-label>label</a>;
23874
24071
 
23875
24072
  readonly attribute <a href=#timedtrack>TimedTrack</a> <a href=#dom-track-track title=dom-track-track>track</a>;
23876
24073
  };</pre>
@@ -23889,10 +24086,10 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23889
24086
  <th>Brief description
23890
24087
  <tbody><tr><td><dfn id=attr-track-kind-keyword-subtitles title=attr-track-kind-keyword-subtitles><code>subtitles</code></dfn>
23891
24088
  <td><dfn id=attr-track-kind-subtitles title=attr-track-kind-subtitles>Subtitles</dfn>
23892
- <td>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).
24089
+ <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).
23893
24090
  <tr><td><dfn id=attr-track-kind-keyword-captions title=attr-track-kind-keyword-captions><code>captions</code></dfn>
23894
24091
  <td><dfn id=attr-track-kind-captions title=attr-track-kind-captions>Captions</dfn>
23895
- <td>Transcription of the dialogue, suitable for when the soundtrack is unavailable (e.g. because it is muted or because the user is deaf).
24092
+ <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).
23896
24093
  <tr><td><dfn id=attr-track-kind-keyword-descriptions title=attr-track-kind-keyword-descriptions><code>descriptions</code></dfn>
23897
24094
  <td><dfn id=attr-track-kind-descriptions title=attr-track-kind-descriptions>Descriptions</dfn>
23898
24095
  <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).
@@ -23903,10 +24100,10 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23903
24100
  <td><dfn id=attr-track-kind-metadata title=attr-track-kind-metadata>Metadata</dfn>
23904
24101
  <td>Tracks intended for use from script.
23905
24102
  </table><p>The attribute may be omitted. The <i>missing value default</i> is
23906
- the <a href=#attr-track-kind-captions title=attr-track-kind-captions>captions</a> state.</p>
24103
+ the <a href=#attr-track-kind-subtitles title=attr-track-kind-subtitles>subtitles</a> state.</p>
23907
24104
 
23908
24105
  <p>The <dfn id=attr-track-src title=attr-track-src><code>src</code></dfn> attribute
23909
- gives the address of the time track data. The value must be a
24106
+ gives the address of the timed track data. The value must be a
23910
24107
  <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
23911
24108
  spaces</a>. This attribute must be present.</p>
23912
24109
 
@@ -23924,11 +24121,19 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23924
24121
 
23925
24122
  <p>If the elements's <a href=#track-url>track URL</a> identifies a
23926
24123
  <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
23927
- <a href=#websrt>WebSRT</a> file must <a href=#websrt-file-using-cue-text>WebSRT file using cue
24124
+ <a href=#websrt>WebSRT</a> file must be a <a href=#websrt-file-using-cue-text>WebSRT file using cue
23928
24125
  text</a>.</p>
23929
24126
 
24127
+ <p>If the elements's <a href=#track-url>track URL</a> identifies a
24128
+ <a href=#websrt>WebSRT</a> resource, then the <dfn id=attr-track-charset title=attr-track-charset><code>charset</code></dfn> attribute may
24129
+ be specified. If the attribute is set, its value must be a valid
24130
+ character encoding name, must be an <a href=#ascii-case-insensitive>ASCII
24131
+ case-insensitive</a> match for the <a href=#preferred-mime-name>preferred MIME
24132
+ name</a> for that encoding, and must match the character encoding
24133
+ of the <a href=#websrt>WebSRT</a> file. <a href=#refsIANACHARSET>[IANACHARSET]</a></p>
24134
+
23930
24135
  <p>The <dfn id=attr-track-srclang title=attr-track-srclang><code>srclang</code></dfn>
23931
- attribute gives the language of the time track data. The value must
24136
+ attribute gives the language of the timed track data. The value must
23932
24137
  be a valid BCP 47 language tag. This attribute must be present if
23933
24138
  the element's <code title=attr-track-kind><a href=#attr-track-kind>kind</a></code> attribute is
23934
24139
  in the <a href=#attr-track-kind-subtitles title=attr-track-kind-subtitles>subtitles</a>
@@ -23981,9 +24186,11 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23981
24186
  <a href=#timed-track>timed track</a>'s corresponding <code><a href=#timedtrack>TimedTrack</a></code>
23982
24187
  object.</p>
23983
24188
 
23984
- <p>The IDL attributes <dfn id=dom-track-kind title=dom-track-kind><code>kind</code></dfn>, <dfn id=dom-track-label title=dom-track-label><code>label</code></dfn>, <dfn id=dom-track-src title=dom-track-src><code>src</code></dfn>, and <dfn id=dom-track-srclang title=dom-track-srclang><code>srclang</code></dfn> must
24189
+ <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
23985
24190
  <a href=#reflect>reflect</a> the respective content attributes of the same
23986
- name.</p>
24191
+ name. The <dfn id=dom-track-kind title=dom-track-kind><code>kind</code></dfn> IDL
24192
+ attributemust <a href=#reflect>reflect</a> the content attribute of the same
24193
+ name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
23987
24194
 
23988
24195
  </div>
23989
24196
 
@@ -23993,8 +24200,9 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
23993
24200
 
23994
24201
  <h4 id=media-elements><span class=secno>4.8.10 </span>Media elements</h4>
23995
24202
 
23996
- <p><dfn id=media-element title="media element">Media elements</dfn> implement the
23997
- following interface:</p>
24203
+ <p><dfn id=media-element title="media element">Media elements</dfn>
24204
+ (<code><a href=#audio>audio</a></code> and <code><a href=#video>video</a></code>, in this specification)
24205
+ implement the following interface:</p>
23998
24206
 
23999
24207
  <pre class=idl>interface <dfn id=htmlmediaelement>HTMLMediaElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
24000
24208
 
@@ -24010,7 +24218,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24010
24218
  const unsigned short <a href=#dom-media-network_no_source title=dom-media-NETWORK_NO_SOURCE>NETWORK_NO_SOURCE</a> = 3;
24011
24219
  readonly attribute unsigned short <a href=#dom-media-networkstate title=dom-media-networkState>networkState</a>;
24012
24220
  attribute DOMString <a href=#dom-media-preload title=dom-media-preload>preload</a>;
24013
- <!--v3BUF readonly attribute float <span title="dom-media-bufferingRate">bufferingRate</span>;
24221
+ <!--v3BUF readonly attribute double <span title="dom-media-bufferingRate">bufferingRate</span>;
24014
24222
  readonly attribute boolean <span title="dom-media-bufferingThrottled">bufferingThrottled</span>;
24015
24223
  --> readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-media-buffered title=dom-media-buffered>buffered</a>;
24016
24224
  void <a href=#dom-media-load title=dom-media-load>load</a>();
@@ -24026,13 +24234,13 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24026
24234
  readonly attribute boolean <a href=#dom-media-seeking title=dom-media-seeking>seeking</a>;
24027
24235
 
24028
24236
  // playback state
24029
- attribute float <a href=#dom-media-currenttime title=dom-media-currentTime>currentTime</a>;
24030
- readonly attribute float <a href=#dom-media-initialtime title=dom-media-initialTime>initialTime</a>;
24031
- readonly attribute float <a href=#dom-media-duration title=dom-media-duration>duration</a>;
24237
+ attribute double <a href=#dom-media-currenttime title=dom-media-currentTime>currentTime</a>;
24238
+ readonly attribute double <a href=#dom-media-initialtime title=dom-media-initialTime>initialTime</a>;
24239
+ readonly attribute double <a href=#dom-media-duration title=dom-media-duration>duration</a>;
24032
24240
  readonly attribute <span>Date</span> <a href=#dom-media-startoffsettime title=dom-media-startOffsetTime>startOffsetTime</a>;
24033
24241
  readonly attribute boolean <a href=#dom-media-paused title=dom-media-paused>paused</a>;
24034
- attribute float <a href=#dom-media-defaultplaybackrate title=dom-media-defaultPlaybackRate>defaultPlaybackRate</a>;
24035
- attribute float <a href=#dom-media-playbackrate title=dom-media-playbackRate>playbackRate</a>;
24242
+ attribute double <a href=#dom-media-defaultplaybackrate title=dom-media-defaultPlaybackRate>defaultPlaybackRate</a>;
24243
+ attribute double <a href=#dom-media-playbackrate title=dom-media-playbackRate>playbackRate</a>;
24036
24244
  readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-media-played title=dom-media-played>played</a>;
24037
24245
  readonly attribute <a href=#timeranges>TimeRanges</a> <a href=#dom-media-seekable title=dom-media-seekable>seekable</a>;
24038
24246
  readonly attribute boolean <a href=#dom-media-ended title=dom-media-ended>ended</a>;
@@ -24043,7 +24251,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24043
24251
 
24044
24252
  // controls
24045
24253
  attribute boolean <a href=#dom-media-controls title=dom-media-controls>controls</a>;
24046
- attribute float <a href=#dom-media-volume title=dom-media-volume>volume</a>;
24254
+ attribute double <a href=#dom-media-volume title=dom-media-volume>volume</a>;
24047
24255
  attribute boolean <a href=#dom-media-muted title=dom-media-muted>muted</a>;
24048
24256
  <!--TT-->
24049
24257
  // timed tracks
@@ -24245,16 +24453,19 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24245
24453
  not support, for example because it doesn't recognize the container
24246
24454
  type, or it doesn't support the listed codecs.</p>
24247
24455
 
24248
- <p>The <a href=#mime-type>MIME type</a> "<code title="">application/octet-stream</code>" with no parameters is
24249
- never <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user agent knows it cannot
24250
- render</a>. User agents must treat that type as equivalent to the
24251
- lack of any explicit <a href=#content-type title=Content-Type>Content-Type
24252
- metadata</a> when it is used to label a potential <a href=#media-resource>media
24456
+ <p>The <a href=#mime-type>MIME type</a>
24457
+ "<code>application/octet-stream</code>" with no parameters is never
24458
+ <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user agent knows it cannot render</a>. User
24459
+ agents must treat that type as equivalent to the lack of any
24460
+ explicit <a href=#content-type title=Content-Type>Content-Type metadata</a>
24461
+ when it is used to label a potential <a href=#media-resource>media
24253
24462
  resource</a>.</p>
24254
24463
 
24255
24464
  <p class=note>In the absence of a <!-- pretty crazy -->
24256
- specification to the contrary, the <a href=#mime-type>MIME type</a> "<code title="">application/octet-stream</code>" when used <em>with</em>
24257
- parameters, e.g. "<code title="">application/octet-stream;codecs=theora</code>", <em>is</em>
24465
+ specification to the contrary, the <a href=#mime-type>MIME type</a>
24466
+ "<code>application/octet-stream</code>" when used <em>with</em>
24467
+ parameters, e.g.
24468
+ "<code>application/octet-stream;codecs=theora</code>", <em>is</em>
24258
24469
  <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user agent knows it cannot render</a>.</p>
24259
24470
 
24260
24471
  <dl class=domintro><dt><var title="">media</var> . <code title=dom-navigator-canPlayType><a href=#dom-navigator-canplaytype>canPlayType</a></code>(<var title="">type</var>)</dt>
@@ -24271,14 +24482,14 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24271
24482
 
24272
24483
  <p>The <dfn id=dom-navigator-canplaytype title=dom-navigator-canPlayType><code>canPlayType(<var title="">type</var>)</code></dfn> method must return the empty
24273
24484
  string if <var title="">type</var> is <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user
24274
- agent knows it cannot render</a>; it must return "<code title="">probably</code>" if the user agent is confident that the
24485
+ agent knows it cannot render</a> or is the type
24486
+ "<code>application/octet-stream</code>"; it must return "<code title="">probably</code>" if the user agent is confident that the
24275
24487
  type represents a <a href=#media-resource>media resource</a> that it can render if
24276
24488
  used in with this <code><a href=#audio>audio</a></code> or <code><a href=#video>video</a></code> element;
24277
- and it must return "<code title="">maybe</code>"
24278
- otherwise. Implementors are encouraged to return "<code title="">maybe</code>" unless the type can be confidently
24279
- established as being supported or not. Generally, a user agent
24280
- should never return "<code title="">probably</code>" if the type
24281
- doesn't have a <code title="">codecs</code> parameter.</p>
24489
+ and it must return "<code title="">maybe</code>" otherwise.
24490
+ Implementors are encouraged to return "<code title="">maybe</code>"
24491
+ unless the type can be confidently established as being supported or
24492
+ not. Generally, a user agent should never return "<code title="">probably</code>" if the type doesn't have a <code title="">codecs</code> parameter.</p>
24282
24493
 
24283
24494
  </div>
24284
24495
 
@@ -24360,7 +24571,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24360
24571
  <dt><dfn id=dom-media-network_no_source title=dom-media-NETWORK_NO_SOURCE><code>NETWORK_NO_SOURCE</code></dfn> (numeric value 3)</dt>
24361
24572
 
24362
24573
  <dd>The element<span class=impl>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
24363
- algorithm</a> is active, but it</span> has failed to find a
24574
+ algorithm</a> is active, but it</span> has so not yet found a
24364
24575
  <a href=#media-resource title="media resource">resource</a> to use.</dd>
24365
24576
 
24366
24577
  </dl><div class=impl>
@@ -24448,8 +24659,16 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24448
24659
  <li><p>If <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> is true,
24449
24660
  set it to false.</li>
24450
24661
 
24451
- <li><p>Set the <a href=#current-playback-position>current playback position</a> to
24452
- 0.</li>
24662
+ <li>
24663
+
24664
+ <p>Set the <a href=#current-playback-position>current playback position</a> to 0.</p>
24665
+
24666
+ <p>If this changed the <a href=#current-playback-position>current playback position</a>,
24667
+ then <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
24668
+ event</a> named <code title=event-media-timeupdate><a href=#event-media-timeupdate>timeupdate</a></code> at the
24669
+ <a href=#media-element>media element</a>.</p>
24670
+
24671
+ </li>
24453
24672
 
24454
24673
  <li><p>Set the <a href=#initial-playback-position>initial playback position</a> to
24455
24674
  0.</li>
@@ -24776,9 +24995,12 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
24776
24995
  is <em>least</em> frequent, <a href=#queue-a-task>queue a task</a> to
24777
24996
  <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-progress><a href=#event-media-progress>progress</a></code> at the element.</p>
24778
24997
 
24779
- <p>If at any point the user agent has received no data for more
24780
- than about three seconds, then <a href=#queue-a-task>queue a task</a> to
24781
- <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-stalled><a href=#event-media-stalled>stalled</a></code> at the element.</p>
24998
+ <p>The <dfn id=stall-timeout>stall timeout</dfn> is a user-agent defined length of
24999
+ time, which should be about three seconds. When a <a href=#media-element>media
25000
+ element</a> that is actively attempting to obtain <a href=#media-data>media
25001
+ data</a> has failed to receive any data for a duration equal to
25002
+ the <a href=#stall-timeout>stall timeout</a>, the user agent must <a href=#queue-a-task>queue a
25003
+ task</a> to <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-media-stalled><a href=#event-media-stalled>stalled</a></code> at the element.</p>
24782
25004
 
24783
25005
  <p>User agents may allow users to selectively block or slow
24784
25006
  <a href=#media-data>media data</a> downloads. When a <a href=#media-element>media
@@ -25128,9 +25350,17 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
25128
25350
 
25129
25351
  <dd>
25130
25352
 
25131
- <p><a href=#queue-a-task>Queue a task</a> to run the <a href=#steps-to-expose-a-media-resource-specific-timed-track>steps to expose a
25353
+ <p>If the <a href=#media-resource>media resource</a>'s <a href=#origin>origin</a> is
25354
+ the <a href=#same-origin>same origin</a> as the <a href=#media-element>media element</a>'s
25355
+ <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a>, <a href=#queue-a-task>queue a
25356
+ task</a> to run the <a href=#steps-to-expose-a-media-resource-specific-timed-track>steps to expose a
25132
25357
  media-resource-specific timed track</a> with the relevant
25133
- data.</p>
25358
+ data.</p> <!-- CORS -->
25359
+
25360
+ <p class=note>Cross-origin files do not expose their subtitles
25361
+ in the DOM, for security reasons. However, user agents may still
25362
+ provide the user with access to such data in their user
25363
+ interface.</p>
25134
25364
 
25135
25365
  </dd>
25136
25366
  <!--TT-->
@@ -25199,7 +25429,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
25199
25429
 
25200
25430
  <p>The <dfn id=dom-media-preload title=dom-media-preload><code>preload</code></dfn> IDL
25201
25431
  attribute must <a href=#reflect>reflect</a> the content attribute of the
25202
- same name.</p>
25432
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
25203
25433
 
25204
25434
  </div>
25205
25435
 
@@ -26949,8 +27179,13 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
26949
27179
  unsupported (this causes the load to fail, as described below). If
26950
27180
  a type is obtained, and represents a supported timed track format,
26951
27181
  then the resource's data must be passed to the appropriate parser
26952
- as it is received, with the <a href=#timed-track-list-of-cues>timed track list of cues</a>
26953
- being used for that parser's output.</p>
27182
+ (e.g. the <a href=#websrt-parser>WebSRT parser</a> if the <a href=#content-type title=Content-Type>Content Type metadata</a> is is
27183
+ <code><a href=#text/srt>text/srt</a></code>) as it is received, with the <a href=#timed-track-list-of-cues>timed
27184
+ track list of cues</a> being used for that parser's output. If
27185
+ 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
27186
+ a supported character encoding, then that encoding must be given
27187
+ to the parser as a character encoding override. Otherwise the
27188
+ parser must use its default character encoding behavior.</p>
26954
27189
 
26955
27190
  <p>If the <a href=#fetch title=fetch>fetching algorithm</a> fails for
26956
27191
  any reason (network error, the server returns an error code, a
@@ -27358,7 +27593,7 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27358
27593
  <p>Raises an exception if the argument is null, associated with another <a href=#timed-track>timed track</a>, or already in the list of cues.</p>
27359
27594
  </dd>
27360
27595
 
27361
- <dt><var title="">mutableTimedTrack</var> . <code title=dom-MutableTimedTrack-addCue><a href=#dom-mutabletimedtrack-addcue>addCue</a></code>( <var title="">cue</var> )</dt>
27596
+ <dt><var title="">mutableTimedTrack</var> . <code title=dom-MutableTimedTrack-removeCue><a href=#dom-mutabletimedtrack-removecue>removeCue</a></code>( <var title="">cue</var> )</dt>
27362
27597
  <dd>
27363
27598
  <p>Removes the given cue from <var title="">mutableTimedTrack</var>'s <a href=#timed-track-list-of-cues>timed track list of cues</a>.</p>
27364
27599
  <p>Raises an exception if the argument is null, associated with another <a href=#timed-track>timed track</a>, or not in the list of cues.</p>
@@ -27510,13 +27745,13 @@ interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediael
27510
27745
 
27511
27746
  </div>
27512
27747
 
27513
- <hr><pre class=idl>[<a href=#dom-timedtrackcue title=dom-TimedTrackCue>Constructor</a>(in DOMString id, in float startTime, in float endTime, in DOMString text, in optional DOMString settings, in optional DOMString voice, in optional boolean pauseOnExit)]
27748
+ <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)]
27514
27749
  interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
27515
27750
  readonly attribute <a href=#timedtrack>TimedTrack</a> <a href=#dom-timedtrackcue-track title=dom-TimedTrackCue-track>track</a>;
27516
27751
  readonly attribute DOMString <a href=#dom-timedtrackcue-id title=dom-TimedTrackCue-id>id</a>;
27517
27752
 
27518
- readonly attribute float <a href=#dom-timedtrackcue-starttime title=dom-TimedTrackCue-startTime>startTime</a>;
27519
- readonly attribute float <a href=#dom-timedtrackcue-endtime title=dom-TimedTrackCue-endTime>endTime</a>;
27753
+ readonly attribute double <a href=#dom-timedtrackcue-starttime title=dom-TimedTrackCue-startTime>startTime</a>;
27754
+ readonly attribute double <a href=#dom-timedtrackcue-endtime title=dom-TimedTrackCue-endTime>endTime</a>;
27520
27755
  readonly attribute boolean <a href=#dom-timedtrackcue-pauseonexit title=dom-TimedTrackCue-pauseOnExit>pauseOnExit</a>;
27521
27756
 
27522
27757
  readonly attribute DOMString <a href=#dom-timedtrackcue-direction title=dom-TimedTrackCue-direction>direction</a>;
@@ -28097,13 +28332,14 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28097
28332
 
28098
28333
  <h6 id=parsing-0><span class=secno>4.8.10.11.2 </span>Parsing</h6>
28099
28334
 
28100
- <p>A <dfn id=websrt-parser>WebSRT parser</dfn>, given an input byte stream and a
28335
+ <p>A <dfn id=websrt-parser>WebSRT parser</dfn>, given an input byte stream, a
28101
28336
  <a href=#timed-track-list-of-cues>timed track list of cues</a> <var title="">output</var>,
28102
- must convert the bytes into a string of Unicode characters by
28103
- interpreting them as UTF-8, and then must parse the resulting string
28104
- according to the <a href=#websrt-parser-algorithm>WebSRT parser algorithm</a> below. This
28105
- results in <a href=#timed-track-cue title="timed track cue">timed track cues</a>
28106
- being added to <var title="">output</var>. <a href=#refsRFC3629>[RFC3629]</a></p>
28337
+ and optionally a character encoding override <var title="">encoding</var>, must convert the bytes into a string of
28338
+ Unicode characters by interpreting them as the given <var title="">encoding</var>, or UTF-8 if <var title="">encoding</var> is
28339
+ not provided, and then must parse the resulting string according to
28340
+ the <a href=#websrt-parser-algorithm>WebSRT parser algorithm</a> below. This results in
28341
+ <a href=#timed-track-cue title="timed track cue">timed track cues</a> being added to
28342
+ <var title="">output</var>. <a href=#refsRFC3629>[RFC3629]</a></p>
28107
28343
 
28108
28344
  <p>A <a href=#websrt-parser>WebSRT parser</a>, specifically its conversion and
28109
28345
  parsing steps, is typically run asynchronously, with the input byte
@@ -28115,10 +28351,11 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28115
28351
 
28116
28352
  <ul class=brief><li><code><a href=#text/srt>text/srt</a></code></li>
28117
28353
  </ul><!--<p class="note">Not all of these MIME types are valid registered
28118
- types.</p>--><p>When converting the bytes into Unicode characters, bytes or
28119
- sequences of bytes that are not valid UTF-8 sequences must be
28120
- interpreted as a U+FFFD REPLACEMENT CHARACTER, and all U+0000 NULL
28121
- characters must be replaced by U+FFFD REPLACEMENT CHARACTERs.</p>
28354
+ types.</p>--><p>When converting the bytes into Unicode characters, if the
28355
+ encoding used is UTF-8, bytes or sequences of bytes that are not
28356
+ valid UTF-8 sequences must be interpreted as a U+FFFD REPLACEMENT
28357
+ CHARACTER, and all U+0000 NULL characters must be replaced by U+FFFD
28358
+ REPLACEMENT CHARACTERs.</p>
28122
28359
 
28123
28360
  <p>The <dfn id=websrt-parser-algorithm>WebSRT parser algorithm</dfn> is as follows:</p>
28124
28361
 
@@ -28556,7 +28793,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
28556
28793
 
28557
28794
  <li><p>Jump back to the step labeled <i>settings</i>.</li>
28558
28795
 
28559
- </ol><p>When this specifications says that a user agent is to
28796
+ </ol><p>When this specification says that a user agent is to
28560
28797
  <dfn id=collect-a-websrt-timestamp>collect a WebSRT timestamp</dfn>, the user agent must run the
28561
28798
  following steps:</p>
28562
28799
 
@@ -29229,6 +29466,18 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29229
29466
  the DOM API described above, so that, e.g., all the same events
29230
29467
  fire.</p>
29231
29468
 
29469
+ <!--TT-->
29470
+ <p>For the purposes of listing chapters in the <a href=#media-resource>media
29471
+ resource</a>, only <a href=#timed-track title="timed track">timed tracks</a>
29472
+ in the <a href=#media-element>media element</a>'s <a href=#list-of-timed-tracks>list of timed
29473
+ tracks</a> <a href=#timed-track-showing title="timed track showing">showing</a> and
29474
+ 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.
29475
+ Each <a href=#timed-track-cue title="timed track cue">cue</a> in such a <a href=#timed-track>timed
29476
+ 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
29477
+ the chapter is the <a href=#timed-track-cue-text>timed track cue text</a>, interpreted
29478
+ literally.</p>
29479
+ <!--TT-->
29480
+
29232
29481
  <p>The <dfn id=dom-media-controls title=dom-media-controls><code>controls</code></dfn>
29233
29482
  IDL attribute must <a href=#reflect>reflect</a> the content attribute of the
29234
29483
  same name.</p>
@@ -29308,8 +29557,8 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29308
29557
 
29309
29558
  <pre class=idl>interface <dfn id=timeranges>TimeRanges</dfn> {
29310
29559
  readonly attribute unsigned long <a href=#dom-timeranges-length title=dom-TimeRanges-length>length</a>;
29311
- float <a href=#dom-timeranges-start title=dom-TimeRanges-start>start</a>(in unsigned long index);
29312
- float <a href=#dom-timeranges-end title=dom-TimeRanges-end>end</a>(in unsigned long index);
29560
+ double <a href=#dom-timeranges-start title=dom-TimeRanges-start>start</a>(in unsigned long index);
29561
+ double <a href=#dom-timeranges-end title=dom-TimeRanges-end>end</a>(in unsigned long index);
29313
29562
  };</pre>
29314
29563
 
29315
29564
  <dl class=domintro><dt><var title="">media</var> . <code title=dom-TimeRanges-length><a href=#dom-timeranges-length>length</a></code></dt>
@@ -29817,7 +30066,7 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29817
30066
  <p class=note>When trying to use types other than
29818
30067
  <code>image/png</code>, authors can check if the image was really
29819
30068
  returned in the requested format by checking to see if the returned
29820
- string starts with one the exact strings "<code title="">data:image/png,</code>" or "<code title="">data:image/png;</code>". If it does, the image is PNG, and
30069
+ string starts with one of the exact strings "<code title="">data:image/png,</code>" or "<code title="">data:image/png;</code>". If it does, the image is PNG, and
29821
30070
  thus the requested type was not supported. (The one exception to
29822
30071
  this is if the canvas has either no height or no width, in which
29823
30072
  case the result might simply be "<code title="">data:,</code>".)</p>
@@ -29896,18 +30145,18 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29896
30145
  // useful e.g. for when an image manipulation app uses <canvas> both for UI previews and the actual work
29897
30146
  -->
29898
30147
  // transformations (default transform is the identity matrix)
29899
- void <a href=#dom-context-2d-scale title=dom-context-2d-scale>scale</a>(in float x, in float y);
29900
- void <a href=#dom-context-2d-rotate title=dom-context-2d-rotate>rotate</a>(in float angle);
29901
- void <a href=#dom-context-2d-translate title=dom-context-2d-translate>translate</a>(in float x, in float y);
29902
- void <a href=#dom-context-2d-transform title=dom-context-2d-transform>transform</a>(in float a, in float b, in float c, in float d, in float e, in float f);
29903
- void <a href=#dom-context-2d-settransform title=dom-context-2d-setTransform>setTransform</a>(in float a, in float b, in float c, in float d, in float e, in float f);
30148
+ void <a href=#dom-context-2d-scale title=dom-context-2d-scale>scale</a>(in double x, in double y);
30149
+ void <a href=#dom-context-2d-rotate title=dom-context-2d-rotate>rotate</a>(in double angle);
30150
+ void <a href=#dom-context-2d-translate title=dom-context-2d-translate>translate</a>(in double x, in double y);
30151
+ void <a href=#dom-context-2d-transform title=dom-context-2d-transform>transform</a>(in double a, in double b, in double c, in double d, in double e, in double f);
30152
+ void <a href=#dom-context-2d-settransform title=dom-context-2d-setTransform>setTransform</a>(in double a, in double b, in double c, in double d, in double e, in double f);
29904
30153
  <!--
29905
30154
  // v5 we've also received requests for:
29906
30155
  void skew(...);
29907
30156
  void reflect(...); // or mirror(...)
29908
30157
  -->
29909
30158
  // compositing
29910
- attribute float <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>globalAlpha</a>; // (default 1.0)
30159
+ attribute double <a href=#dom-context-2d-globalalpha title=dom-context-2d-globalAlpha>globalAlpha</a>; // (default 1.0)
29911
30160
  attribute DOMString <a href=#dom-context-2d-globalcompositeoperation title=dom-context-2d-globalCompositeOperation>globalCompositeOperation</a>; // (default source-over)
29912
30161
  <!--
29913
30162
  // v5 we've also received requests for:
@@ -29921,75 +30170,75 @@ interface <dfn id=timedtrackcue>TimedTrackCue</dfn> {
29921
30170
  // colors and styles
29922
30171
  attribute any <a href=#dom-context-2d-strokestyle title=dom-context-2d-strokeStyle>strokeStyle</a>; // (default black)
29923
30172
  attribute any <a href=#dom-context-2d-fillstyle title=dom-context-2d-fillStyle>fillStyle</a>; // (default black)
29924
- <a href=#canvasgradient>CanvasGradient</a> <a href=#dom-context-2d-createlineargradient title=dom-context-2d-createLinearGradient>createLinearGradient</a>(in float x0, in float y0, in float x1, in float y1);
29925
- <a href=#canvasgradient>CanvasGradient</a> <a href=#dom-context-2d-createradialgradient title=dom-context-2d-createRadialGradient>createRadialGradient</a>(in float x0, in float y0, in float r0, in float x1, in float y1, in float r1);
30173
+ <a href=#canvasgradient>CanvasGradient</a> <a href=#dom-context-2d-createlineargradient title=dom-context-2d-createLinearGradient>createLinearGradient</a>(in double x0, in double y0, in double x1, in double y1);
30174
+ <a href=#canvasgradient>CanvasGradient</a> <a href=#dom-context-2d-createradialgradient title=dom-context-2d-createRadialGradient>createRadialGradient</a>(in double x0, in double y0, in double r0, in double x1, in double y1, in double r1);
29926
30175
  <a href=#canvaspattern>CanvasPattern</a> <a href=#dom-context-2d-createpattern title=dom-context-2d-createPattern>createPattern</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in DOMString repetition);
29927
30176
  <a href=#canvaspattern>CanvasPattern</a> <a href=#dom-context-2d-createpattern title=dom-context-2d-createPattern>createPattern</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in DOMString repetition);
29928
30177
  <a href=#canvaspattern>CanvasPattern</a> <a href=#dom-context-2d-createpattern title=dom-context-2d-createPattern>createPattern</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in DOMString repetition);
29929
30178
 
29930
30179
  // line caps/joins
29931
- attribute float <a href=#dom-context-2d-linewidth title=dom-context-2d-lineWidth>lineWidth</a>; // (default 1)
30180
+ attribute double <a href=#dom-context-2d-linewidth title=dom-context-2d-lineWidth>lineWidth</a>; // (default 1)
29932
30181
  attribute DOMString <a href=#dom-context-2d-linecap title=dom-context-2d-lineCap>lineCap</a>; // "butt", "round", "square" (default "butt")
29933
30182
  attribute DOMString <a href=#dom-context-2d-linejoin title=dom-context-2d-lineJoin>lineJoin</a>; // "round", "bevel", "miter" (default "miter")
29934
- attribute float <a href=#dom-context-2d-miterlimit title=dom-context-2d-miterLimit>miterLimit</a>; // (default 10)
30183
+ attribute double <a href=#dom-context-2d-miterlimit title=dom-context-2d-miterLimit>miterLimit</a>; // (default 10)
29935
30184
 
29936
30185
  // shadows
29937
- attribute float <a href=#dom-context-2d-shadowoffsetx title=dom-context-2d-shadowOffsetX>shadowOffsetX</a>; // (default 0)
29938
- attribute float <a href=#dom-context-2d-shadowoffsety title=dom-context-2d-shadowOffsetY>shadowOffsetY</a>; // (default 0)
29939
- attribute float <a href=#dom-context-2d-shadowblur title=dom-context-2d-shadowBlur>shadowBlur</a>; // (default 0)
30186
+ attribute double <a href=#dom-context-2d-shadowoffsetx title=dom-context-2d-shadowOffsetX>shadowOffsetX</a>; // (default 0)
30187
+ attribute double <a href=#dom-context-2d-shadowoffsety title=dom-context-2d-shadowOffsetY>shadowOffsetY</a>; // (default 0)
30188
+ attribute double <a href=#dom-context-2d-shadowblur title=dom-context-2d-shadowBlur>shadowBlur</a>; // (default 0)
29940
30189
  attribute DOMString <a href=#dom-context-2d-shadowcolor title=dom-context-2d-shadowColor>shadowColor</a>; // (default transparent black)
29941
30190
 
29942
30191
  // rects
29943
- void <a href=#dom-context-2d-clearrect title=dom-context-2d-clearRect>clearRect</a>(in float x, in float y, in float w, in float h);
29944
- void <a href=#dom-context-2d-fillrect title=dom-context-2d-fillRect>fillRect</a>(in float x, in float y, in float w, in float h);
29945
- void <a href=#dom-context-2d-strokerect title=dom-context-2d-strokeRect>strokeRect</a>(in float x, in float y, in float w, in float h);
30192
+ void <a href=#dom-context-2d-clearrect title=dom-context-2d-clearRect>clearRect</a>(in double x, in double y, in double w, in double h);
30193
+ void <a href=#dom-context-2d-fillrect title=dom-context-2d-fillRect>fillRect</a>(in double x, in double y, in double w, in double h);
30194
+ void <a href=#dom-context-2d-strokerect title=dom-context-2d-strokeRect>strokeRect</a>(in double x, in double y, in double w, in double h);
29946
30195
 
29947
30196
  // path API
29948
30197
  void <a href=#dom-context-2d-beginpath title=dom-context-2d-beginPath>beginPath</a>();
29949
30198
  void <a href=#dom-context-2d-closepath title=dom-context-2d-closePath>closePath</a>();
29950
- void <a href=#dom-context-2d-moveto title=dom-context-2d-moveTo>moveTo</a>(in float x, in float y);
29951
- void <a href=#dom-context-2d-lineto title=dom-context-2d-lineTo>lineTo</a>(in float x, in float y);
29952
- void <a href=#dom-context-2d-quadraticcurveto title=dom-context-2d-quadraticCurveTo>quadraticCurveTo</a>(in float cpx, in float cpy, in float x, in float y);
29953
- void <a href=#dom-context-2d-beziercurveto title=dom-context-2d-bezierCurveTo>bezierCurveTo</a>(in float cp1x, in float cp1y, in float cp2x, in float cp2y, in float x, in float y);
29954
- void <a href=#dom-context-2d-arcto title=dom-context-2d-arcTo>arcTo</a>(in float x1, in float y1, in float x2, in float y2, in float radius);
29955
- void <a href=#dom-context-2d-rect title=dom-context-2d-rect>rect</a>(in float x, in float y, in float w, in float h);
29956
- void <a href=#dom-context-2d-arc title=dom-context-2d-arc>arc</a>(in float x, in float y, in float radius, in float startAngle, in float endAngle, in boolean anticlockwise);
30199
+ void <a href=#dom-context-2d-moveto title=dom-context-2d-moveTo>moveTo</a>(in double x, in double y);
30200
+ void <a href=#dom-context-2d-lineto title=dom-context-2d-lineTo>lineTo</a>(in double x, in double y);
30201
+ void <a href=#dom-context-2d-quadraticcurveto title=dom-context-2d-quadraticCurveTo>quadraticCurveTo</a>(in double cpx, in double cpy, in double x, in double y);
30202
+ void <a href=#dom-context-2d-beziercurveto title=dom-context-2d-bezierCurveTo>bezierCurveTo</a>(in double cp1x, in double cp1y, in double cp2x, in double cp2y, in double x, in double y);
30203
+ void <a href=#dom-context-2d-arcto title=dom-context-2d-arcTo>arcTo</a>(in double x1, in double y1, in double x2, in double y2, in double radius);
30204
+ void <a href=#dom-context-2d-rect title=dom-context-2d-rect>rect</a>(in double x, in double y, in double w, in double h);
30205
+ void <a href=#dom-context-2d-arc title=dom-context-2d-arc>arc</a>(in double x, in double y, in double radius, in double startAngle, in double endAngle, in boolean anticlockwise);
29957
30206
  void <a href=#dom-context-2d-fill title=dom-context-2d-fill>fill</a>();
29958
30207
  void <a href=#dom-context-2d-stroke title=dom-context-2d-stroke>stroke</a>();
29959
30208
  void <a href=#dom-context-2d-clip title=dom-context-2d-clip>clip</a>();
29960
- boolean <a href=#dom-context-2d-ispointinpath title=dom-context-2d-isPointInPath>isPointInPath</a>(in float x, in float y);
30209
+ boolean <a href=#dom-context-2d-ispointinpath title=dom-context-2d-isPointInPath>isPointInPath</a>(in double x, in double y);
29961
30210
 
29962
30211
  // focus management
29963
- boolean <a href=#dom-context-2d-drawfocusring title=dom-context-2d-drawFocusRing>drawFocusRing</a>(in <a href=#element>Element</a> element, in float xCaret, in float yCaret, in optional boolean canDrawCustom);
30212
+ boolean <a href=#dom-context-2d-drawfocusring title=dom-context-2d-drawFocusRing>drawFocusRing</a>(in <a href=#element>Element</a> element, in double xCaret, in double yCaret, in optional boolean canDrawCustom);
29964
30213
 
29965
30214
  // text
29966
30215
  attribute DOMString <a href=#dom-context-2d-font title=dom-context-2d-font>font</a>; // (default 10px sans-serif)
29967
30216
  attribute DOMString <a href=#dom-context-2d-textalign title=dom-context-2d-textAlign>textAlign</a>; // "start", "end", "left", "right", "center" (default: "start")
29968
30217
  attribute DOMString <a href=#dom-context-2d-textbaseline title=dom-context-2d-textBaseline>textBaseline</a>; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
29969
- void <a href=#dom-context-2d-filltext title=dom-context-2d-fillText>fillText</a>(in DOMString text, in float x, in float y, in optional float maxWidth);
29970
- void <a href=#dom-context-2d-stroketext title=dom-context-2d-strokeText>strokeText</a>(in DOMString text, in float x, in float y, in optional float maxWidth);<!-- v5DVT
29971
- void <span title="dom-context-2d-fillVerticalText">fillVerticalText</span>(in DOMString text, in float x, in float y, in optional float maxHeight);
29972
- void <span title="dom-context-2d-strokeVerticalText">strokeVerticalText</span>(in DOMString text, in float x, in float y, in optional float maxHeight); -->
30218
+ void <a href=#dom-context-2d-filltext title=dom-context-2d-fillText>fillText</a>(in DOMString text, in double x, in double y, in optional double maxWidth);
30219
+ void <a href=#dom-context-2d-stroketext title=dom-context-2d-strokeText>strokeText</a>(in DOMString text, in double x, in double y, in optional double maxWidth);<!-- v5DVT
30220
+ void <span title="dom-context-2d-fillVerticalText">fillVerticalText</span>(in DOMString text, in double x, in double y, in optional double maxHeight);
30221
+ void <span title="dom-context-2d-strokeVerticalText">strokeVerticalText</span>(in DOMString text, in double x, in double y, in optional double maxHeight); -->
29973
30222
  <a href=#textmetrics>TextMetrics</a> <a href=#dom-context-2d-measuretext title=dom-context-2d-measureText>measureText</a>(in DOMString text);
29974
30223
 
29975
30224
  // drawing images
29976
- void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in float dx, in float dy, in optional float dw, in float dh);
29977
- void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
29978
- void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in float dx, in float dy, in optional float dw, in float dh);
29979
- void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
29980
- void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in float dx, in float dy, in optional float dw, in float dh);
29981
- void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in float sx, in float sy, in float sw, in float sh, in float dx, in float dy, in float dw, in float dh);
30225
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in double dx, in double dy, in optional double dw, in double dh);
30226
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlimageelement>HTMLImageElement</a> image, in double sx, in double sy, in double sw, in double sh, in double dx, in double dy, in double dw, in double dh);
30227
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in double dx, in double dy, in optional double dw, in double dh);
30228
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlcanvaselement>HTMLCanvasElement</a> image, in double sx, in double sy, in double sw, in double sh, in double dx, in double dy, in double dw, in double dh);
30229
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in double dx, in double dy, in optional double dw, in double dh);
30230
+ void <a href=#dom-context-2d-drawimage title=dom-context-2d-drawImage>drawImage</a>(in <a href=#htmlvideoelement>HTMLVideoElement</a> image, in double sx, in double sy, in double sw, in double sh, in double dx, in double dy, in double dw, in double dh);
29982
30231
 
29983
30232
  // pixel manipulation
29984
- <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-createimagedata title=dom-context-2d-createImageData>createImageData</a>(in float sw, in float sh);
30233
+ <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-createimagedata title=dom-context-2d-createImageData>createImageData</a>(in double sw, in double sh);
29985
30234
  <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-createimagedata title=dom-context-2d-createImageData>createImageData</a>(in <a href=#imagedata>ImageData</a> imagedata);
29986
- <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-getimagedata title=dom-context-2d-getImageData>getImageData</a>(in float sx, in float sy, in float sw, in float sh);
29987
- void <a href=#dom-context-2d-putimagedata title=dom-context-2d-putImageData>putImageData</a>(in <a href=#imagedata>ImageData</a> imagedata, in float dx, in float dy, in optional float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight);
30235
+ <a href=#imagedata>ImageData</a> <a href=#dom-context-2d-getimagedata title=dom-context-2d-getImageData>getImageData</a>(in double sx, in double sy, in double sw, in double sh);
30236
+ void <a href=#dom-context-2d-putimagedata title=dom-context-2d-putImageData>putImageData</a>(in <a href=#imagedata>ImageData</a> imagedata, in double dx, in double dy, in optional double dirtyX, in double dirtyY, in double dirtyWidth, in double dirtyHeight);
29988
30237
  };
29989
30238
 
29990
30239
  interface <dfn id=canvasgradient>CanvasGradient</dfn> {
29991
30240
  // opaque object
29992
- void <a href=#dom-canvasgradient-addcolorstop title=dom-canvasgradient-addColorStop>addColorStop</a>(in float offset, in DOMString color);
30241
+ void <a href=#dom-canvasgradient-addcolorstop title=dom-canvasgradient-addColorStop>addColorStop</a>(in double offset, in DOMString color);
29993
30242
  };
29994
30243
 
29995
30244
  interface <dfn id=canvaspattern>CanvasPattern</dfn> {
@@ -29997,7 +30246,7 @@ interface <dfn id=canvaspattern>CanvasPattern</dfn> {
29997
30246
  };
29998
30247
 
29999
30248
  interface <dfn id=textmetrics>TextMetrics</dfn> {
30000
- readonly attribute float <a href=#dom-textmetrics-width title=dom-textmetrics-width>width</a>;
30249
+ readonly attribute double <a href=#dom-textmetrics-width title=dom-textmetrics-width>width</a>;
30001
30250
  };
30002
30251
 
30003
30252
  interface <dfn id=imagedata>ImageData</dfn> {
@@ -30055,6 +30304,19 @@ interface <dfn id=canvaspixelarray>CanvasPixelArray</dfn> {
30055
30304
  computed value of the <code title="">currentColor</code> keyword is
30056
30305
  fully opaque black. <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
30057
30306
 
30307
+ <p>In the case of <code title=dom-canvasgradient-addColorStop><a href=#dom-canvasgradient-addcolorstop>addColorStop()</a></code> on
30308
+ <code><a href=#canvasgradient>CanvasGradient</a></code>, the "computed value of the 'color'
30309
+ property" for the purposes of determining the computed value of the
30310
+ <code title="">currentColor</code> keyword is always fully opaque
30311
+ black (there is no associated element). <a href=#refsCSSCOLOR>[CSSCOLOR]</a></p>
30312
+
30313
+ <p class=note>This is because <code><a href=#canvasgradient>CanvasGradient</a></code> objects
30314
+ are <code><a href=#the-canvas-element>canvas</a></code>-neutral &mdash; a
30315
+ <code><a href=#canvasgradient>CanvasGradient</a></code> object created by one
30316
+ <code><a href=#the-canvas-element>canvas</a></code> can be used by another, and there is therefore
30317
+ no way to know which is the "element in question" at the time that
30318
+ the color is specified.</p>
30319
+
30058
30320
  </div>
30059
30321
 
30060
30322
 
@@ -31188,7 +31450,7 @@ hairline width with transform. ack Shaun Morris.
31188
31450
 
31189
31451
  <dd>
31190
31452
 
31191
- <p>Adds the given point to the current path, connected to the previous one by a quadratic B&eacute;zier curve with the given control point.</p>
31453
+ <p>Adds the given point to the current subpath, connected to the previous one by a quadratic B&eacute;zier curve with the given control point.</p>
31192
31454
 
31193
31455
  </dd>
31194
31456
 
@@ -31196,7 +31458,7 @@ hairline width with transform. ack Shaun Morris.
31196
31458
 
31197
31459
  <dd>
31198
31460
 
31199
- <p>Adds the given point to the current path, connected to the previous one by a cubic B&eacute;zier curve with the given control points.</p>
31461
+ <p>Adds the given point to the current subpath, connected to the previous one by a cubic B&eacute;zier curve with the given control points.</p>
31200
31462
 
31201
31463
  </dd>
31202
31464
 
@@ -31204,10 +31466,9 @@ hairline width with transform. ack Shaun Morris.
31204
31466
 
31205
31467
  <dd>
31206
31468
 
31207
- <p>Adds a point to the current path, connected to the previous one
31208
- by a straight line, then adds a second point to the current path,
31209
- connected to the previous one by an arc whose properties are
31210
- described by the arguments.</p>
31469
+ <p>Adds an arc with the given control points and radius to the
31470
+ current subpath, connected to the previous point by a straight
31471
+ line.</p>
31211
31472
 
31212
31473
  <p>Throws an <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception if the given
31213
31474
  radius is negative.</p>
@@ -31833,7 +32094,11 @@ hairline width with transform. ack Shaun Morris.
31833
32094
  values. Specifically, when the methods are called, the user agent
31834
32095
  must run the following steps:</p>
31835
32096
 
31836
- <ol><li><p>Let <var title="">font</var> be the current font of the
32097
+ <ol><li><p>If <var title="">maxWidth</var> is present but less than or
32098
+ equal to zero, return without doing anything; abort these
32099
+ steps.</li>
32100
+
32101
+ <li><p>Let <var title="">font</var> be the current font of the
31837
32102
  context, as given by the <code title=dom-context-2d-font><a href=#dom-context-2d-font>font</a></code> attribute.</li>
31838
32103
 
31839
32104
  <li><p>Replace all the <a href=#space-character title="space character">space
@@ -31984,6 +32249,10 @@ WHEN EDITING THIS, FIX THE PARTS MARKED "&#x0058;&#x0058;&#x0058;" BELOW
31984
32249
 
31985
32250
  <ol>
31986
32251
 
32252
+ <li><p>If <var title="">maxHeight</var> is present but less than or
32253
+ equal to zero, return without doing anything; abort these
32254
+ steps.</p></li>
32255
+
31987
32256
  <li><p>Let <var title="">font</var> be the current font of the
31988
32257
  context, as given by the <code
31989
32258
  title="dom-context-2d-font">font</code> attribute.</p></li>
@@ -32219,11 +32488,14 @@ v5DVT (also check for '- -' bits in the part above) --><p>The <dfn id=dom-contex
32219
32488
  <p>The source rectangle is the rectangle whose corners are the four
32220
32489
  points (<var title="">sx</var>, <var title="">sy</var>), (<span title=""><var title="">sx</var>+<var title="">sw</var></span>, <var title="">sy</var>), (<span title=""><var title="">sx</var>+<var title="">sw</var></span>, <span title=""><var title="">sy</var>+<var title="">sh</var></span>), (<var title="">sx</var>, <span title=""><var title="">sy</var>+<var title="">sh</var></span>).</p>
32221
32490
 
32222
- <p>If the source rectangle is not entirely within the source image,
32223
- or if one of the <var title="">sw</var> or <var title="">sh</var>
32491
+ <p>If one of the <var title="">sw</var> or <var title="">sh</var>
32224
32492
  arguments is zero, the implementation must raise an
32225
32493
  <code><a href=#index_size_err>INDEX_SIZE_ERR</a></code> exception.</p>
32226
32494
 
32495
+ <p>Pixels of the source rectangle that are not entirely within the
32496
+ source image must be treated as transparent black.</p> <!-- see
32497
+ CORE-32111 http://krijnhoetmer.nl/irc-logs/whatwg/20100818#l-737 -->
32498
+
32227
32499
  <p>The destination rectangle is the rectangle whose corners are the
32228
32500
  four points (<var title="">dx</var>, <var title="">dy</var>),
32229
32501
  (<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>
@@ -32669,6 +32941,8 @@ function AddCloud(data, x, y) { ... }</pre>
32669
32941
 
32670
32942
  <p><i>This section is non-normative.</i></p>
32671
32943
 
32944
+ <div class=example>
32945
+
32672
32946
  <p>Here is an example of a script that uses canvas to draw pretty
32673
32947
  glowing lines.</p>
32674
32948
 
@@ -32713,6 +32987,8 @@ function AddCloud(data, x, y) { ... }</pre>
32713
32987
 
32714
32988
  &lt;/script&gt;</pre>
32715
32989
 
32990
+ </div>
32991
+
32716
32992
 
32717
32993
 
32718
32994
  </div><!--data-component-->
@@ -33114,7 +33390,9 @@ function AddCloud(data, x, y) { ... }</pre>
33114
33390
 
33115
33391
  <p>The <code><a href=#the-area-element>area</a></code> element also supports the complement of
33116
33392
  <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-area-protocol title=dom-area-protocol><code>protocol</code></dfn>, <dfn id=dom-area-host title=dom-area-host><code>host</code></dfn>, <dfn id=dom-area-port title=dom-area-port><code>port</code></dfn>, <dfn id=dom-area-hostname title=dom-area-hostname><code>hostname</code></dfn>, <dfn id=dom-area-pathname title=dom-area-pathname><code>pathname</code></dfn>, <dfn id=dom-area-search title=dom-area-search><code>search</code></dfn>, and <dfn id=dom-area-hash title=dom-area-hash><code>hash</code></dfn>. These must follow the
33117
- rules given for URL decomposition IDL attributes, with the <a href=#concept-uda-input title=concept-uda-input>input</a> being the result of <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute relative to the
33393
+ rules given for <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, with
33394
+ the <a href=#concept-uda-input title=concept-uda-input>input</a> being the result of
33395
+ <a href=#resolve-a-url title="resolve a url">resolving</a> the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute relative to the
33118
33396
  element, if there is such an attribute and resolving it is
33119
33397
  successful, or the empty string otherwise; and the <a href=#concept-uda-setter title=concept-uda-setter>common setter action</a> being the
33120
33398
  same as setting the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute to the new output
@@ -33410,7 +33688,7 @@ function AddCloud(data, x, y) { ... }</pre>
33410
33688
  </div>
33411
33689
 
33412
33690
  <p>The semantics of MathML elements are defined by the MathML
33413
- specification and other relevant specifications. <a href=#refsMATHML>[MATHML]</a></p>
33691
+ specification and <a href=#other-applicable-specifications>other applicable specifications</a>. <a href=#refsMATHML>[MATHML]</a></p>
33414
33692
 
33415
33693
  <div class=example>
33416
33694
 
@@ -33477,7 +33755,7 @@ function AddCloud(data, x, y) { ... }</pre>
33477
33755
  requirements given in the SVG specification.)</p>
33478
33756
 
33479
33757
  <p>The semantics of SVG elements are defined by the SVG
33480
- specification and other relevant specifications. <a href=#refsSVG>[SVG]</a></p>
33758
+ specification and <a href=#other-applicable-specifications>other applicable specifications</a>. <a href=#refsSVG>[SVG]</a></p>
33481
33759
 
33482
33760
  <!-- The following paragraph is for bug 7510 -->
33483
33761
  <p>The SVG specification includes requirements regarding the
@@ -34134,6 +34412,40 @@ side in the right column.&lt;/p&gt;
34134
34412
 
34135
34413
  </div>
34136
34414
 
34415
+ <div class=example>
34416
+
34417
+ <p>Here is an example of a table being used to mark up a Sudoku
34418
+ puzzle. Observe the lack of headers, which are not necessary in
34419
+ such a table.</p>
34420
+
34421
+ <pre>&lt;section&gt;
34422
+ &lt;style scoped&gt;
34423
+ table { border-collapse: collapse; border: solid thick }
34424
+ colgroup, tbody { border: solid medium; }
34425
+ td { border: solid thin; height: 1.4em; width: 1.4em; text-align: center; padding: 0; }
34426
+ &lt;/style&gt;
34427
+ &lt;h1&gt;Today's Sudoku&lt;/h1&gt;
34428
+ &lt;table&gt;
34429
+ &lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;
34430
+ &lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;
34431
+ &lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;
34432
+ &lt;tbody&gt;
34433
+ &lt;tr&gt; &lt;td&gt; 1 &lt;td&gt; &lt;td&gt; 3 &lt;td&gt; 6 &lt;td&gt; &lt;td&gt; 4 &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; 9
34434
+ &lt;tr&gt; &lt;td&gt; &lt;td&gt; 2 &lt;td&gt; &lt;td&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; &lt;td&gt; 1 &lt;td&gt;
34435
+ &lt;tr&gt; &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 6
34436
+ &lt;tbody&gt;
34437
+ &lt;tr&gt; &lt;td&gt; 2 &lt;td&gt; &lt;td&gt; 4 &lt;td&gt; &lt;td&gt; 3 &lt;td&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; 8
34438
+ &lt;tr&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt;
34439
+ &lt;tr&gt; &lt;td&gt; 5 &lt;td&gt; &lt;td&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; &lt;td&gt; 1
34440
+ &lt;tbody&gt;
34441
+ &lt;tr&gt; &lt;td&gt; 6 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 5 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 2
34442
+ &lt;tr&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt; 7 &lt;td&gt; &lt;td&gt; &lt;td&gt; &lt;td&gt;
34443
+ &lt;tr&gt; &lt;td&gt; 9 &lt;td&gt; &lt;td&gt; &lt;td&gt; 8 &lt;td&gt; &lt;td&gt; 2 &lt;td&gt; &lt;td&gt; &lt;td&gt; 5
34444
+ &lt;/table&gt;
34445
+ &lt;/section&gt;</pre>
34446
+
34447
+ </div>
34448
+
34137
34449
 
34138
34450
  <h4 id=the-caption-element><span class=secno>4.9.2 </span>The <dfn><code>caption</code></dfn> element</h4>
34139
34451
 
@@ -34770,14 +35082,14 @@ the cell that corresponds to the values of the two dice.
34770
35082
  attribute specified. The <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attribute, if specified,
34771
35083
  must contain a string consisting of an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique
34772
35084
  space-separated tokens</a>, each of which must have the value of
34773
- an ID of a <code><a href=#the-th-element>th</a></code> element taking part in the same <a href=#concept-table title=concept-table>table</a> as the <code><a href=#the-td-element>td</a></code> or
35085
+ an <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#the-th-element>th</a></code> element taking part in the same <a href=#concept-table title=concept-table>table</a> as the <code><a href=#the-td-element>td</a></code> or
34774
35086
  <code><a href=#the-th-element>th</a></code> element<span class=impl> (as defined by the
34775
35087
  <a href=#table-model>table model</a>)</span>.</p>
34776
35088
 
34777
- <p>A <code><a href=#the-th-element>th</a></code> element with ID <var title="">id</var> is said
35089
+ <p>A <code><a href=#the-th-element>th</a></code> element with <a href=#concept-id title=concept-id>ID</a> <var title="">id</var> is said
34778
35090
  to be <i>directly targeted</i> by all <code><a href=#the-td-element>td</a></code> and
34779
35091
  <code><a href=#the-th-element>th</a></code> elements in the same <a href=#concept-table title=concept-table>table</a> that have <code title=attr-tdth-headers><a href=#attr-tdth-headers>headers</a></code> attributes whose values
34780
- include as one of their tokens the ID <var title="">id</var>. A
35092
+ include as one of their tokens the <a href=#concept-id title=concept-id>ID</a> <var title="">id</var>. A
34781
35093
  <code><a href=#the-th-element>th</a></code> element <var title="">A</var> is said to be
34782
35094
  <i>targeted</i> by a <code><a href=#the-th-element>th</a></code> or <code><a href=#the-td-element>td</a></code> element
34783
35095
  <var title="">B</var> if either <var title="">A</var> is <i>directly
@@ -35540,7 +35852,7 @@ the cell that corresponds to the values of the two dice.
35540
35852
  <!-- support headers="" to <td> for legacy compat -->
35541
35853
  <!-- note that it's not conforming though -->
35542
35854
  <p>For each token in the <var title="">id list</var>, if the
35543
- first element in the <code><a href=#document>Document</a></code> with an ID equal to
35855
+ first element in the <code><a href=#document>Document</a></code> with an <a href=#concept-id title=concept-id>ID</a> equal to
35544
35856
  the token is a cell in the same <a href=#concept-table title=concept-table>table</a>, and that cell is not the
35545
35857
  <var title="">principal cell</var>, then add that cell to <var title="">header list</var>.</p>
35546
35858
 
@@ -36601,12 +36913,12 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
36601
36913
 
36602
36914
  <dd>
36603
36915
 
36604
- <p>Returns the form control in the form with the given ID or <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> (excluding image buttons for
36916
+ <p>Returns the form control in the form with the given <a href=#concept-id title=concept-id>ID</a> or <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> (excluding image buttons for
36605
36917
  historical reasons).</p>
36606
36918
 
36607
36919
  <p>Once an element has been referenced using a particular name,
36608
36920
  that name will continue being available as a way to reference that
36609
- element in this method, even if the element's actual ID or <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> changes, for as long as the
36921
+ element in this method, even if the element's actual <a href=#concept-id title=concept-id>ID</a> or <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> changes, for as long as the
36610
36922
  element remains in the <code><a href=#document>Document</a></code>.</p>
36611
36923
 
36612
36924
  <p>If there are multiple matching items, then a
@@ -36660,9 +36972,12 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
36660
36972
 
36661
36973
  </dl><div class=impl>
36662
36974
 
36663
- <p>The <dfn id=dom-form-autocomplete title=dom-form-autocomplete><code>autocomplete</code></dfn> and
36664
- <dfn id=dom-form-name title=dom-form-name><code>name</code></dfn> IDL attributes
36665
- must <a href=#reflect>reflect</a> the respective content attributes of the
36975
+ <p>The <dfn id=dom-form-autocomplete title=dom-form-autocomplete><code>autocomplete</code></dfn> IDL
36976
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
36977
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
36978
+
36979
+ <p>The <dfn id=dom-form-name title=dom-form-name><code>name</code></dfn> IDL
36980
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
36666
36981
  same name.</p>
36667
36982
 
36668
36983
  <p>The <dfn id=dom-form-acceptcharset title=dom-form-acceptCharset><code>acceptCharset</code></dfn> IDL
@@ -37003,11 +37318,11 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
37003
37318
  <p>The <dfn id=attr-label-for title=attr-label-for><code>for</code></dfn> attribute
37004
37319
  may be specified to indicate a form control with which the caption
37005
37320
  is to be associated. If the attribute is specified, the attribute's
37006
- value must be the ID of a <a href=#category-label title=category-label>labelable
37321
+ value must be the <a href=#concept-id title=concept-id>ID</a> of a <a href=#category-label title=category-label>labelable
37007
37322
  form-associated element</a> in the same <code><a href=#document>Document</a></code> as
37008
37323
  the <code><a href=#the-label-element>label</a></code> element. <span class=impl>If the attribute
37009
37324
  is specified and there is an element in the <code><a href=#document>Document</a></code>
37010
- whose ID is equal to the value of the <code title=attr-label-for><a href=#attr-label-for>for</a></code> attribute, and the first such
37325
+ whose <a href=#concept-id title=concept-id>ID</a> is equal to the value of the <code title=attr-label-for><a href=#attr-label-for>for</a></code> attribute, and the first such
37011
37326
  element is a <a href=#category-label title=category-label>labelable form-associated
37012
37327
  element</a>, then that element is the <code><a href=#the-label-element>label</a></code>
37013
37328
  element's <a href=#labeled-control>labeled control</a>.</span></p>
@@ -38272,12 +38587,8 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
38272
38587
 
38273
38588
  </table><div class=impl>
38274
38589
 
38275
- <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute changes state, and
38276
- when the element is first created, the element's rendering and
38277
- behavior must change to the new state's accordingly and the
38278
- <dfn id=value-sanitization-algorithm>value sanitization algorithm</dfn>, if one is defined for the
38279
- <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's new state,
38280
- must be invoked.</p>
38590
+ <p>Some states of the <code title=attr-input-type><a href=#attr-input-type>type</a></code>
38591
+ attribute define a <dfn id=value-sanitization-algorithm>value sanitization algorithm</dfn>.</p>
38281
38592
 
38282
38593
  <p>Each <code><a href=#the-input-element>input</a></code> element has a <a href=#concept-fe-value title=concept-fe-value>value</a>, which is exposed by the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute. Some states
38283
38594
  define an <dfn id=concept-input-value-string-number title=concept-input-value-string-number>algorithm
@@ -38293,8 +38604,7 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
38293
38604
  <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code>, and
38294
38605
  <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code>.</p>
38295
38606
 
38296
- <p>Each <code><a href=#the-input-element>input</a></code> element has a boolean <dfn id=concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</dfn>. When
38297
- it is true, the element is said to have a <dfn id=concept-input-value-dirty title=concept-input-value-dirty><i>dirty value</i></dfn>. The
38607
+ <p>Each <code><a href=#the-input-element>input</a></code> element has a boolean <dfn id=concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</dfn>. The
38298
38608
  <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a>
38299
38609
  must be initially set to false when the element is created, and must
38300
38610
  be set to true whenever the user interacts with the control in a way
@@ -38305,11 +38615,11 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
38305
38615
  <p>The <dfn id=attr-input-value title=attr-input-value><code>value</code></dfn>
38306
38616
  content attribute gives the default <a href=#concept-fe-value title=concept-fe-value>value</a> of the <code><a href=#the-input-element>input</a></code>
38307
38617
  element. <span class=impl>When the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute is added,
38308
- set, or removed, if the control does not have a <i title=concept-input-value-dirty><a href=#concept-input-value-dirty>dirty value</a></i>, the user agent
38309
- must set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the
38310
- element to the value of the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute, if there is
38311
- one, or the empty string otherwise, and then run the current
38312
- <a href=#value-sanitization-algorithm>value sanitization algorithm</a>, if one is
38618
+ set, or removed, if the control's <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a> is
38619
+ false, the user agent must set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element to the value of
38620
+ the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute,
38621
+ if there is one, or the empty string otherwise, and then run the
38622
+ current <a href=#value-sanitization-algorithm>value sanitization algorithm</a>, if one is
38313
38623
  defined.</span></p>
38314
38624
 
38315
38625
  <div class=impl>
@@ -38372,9 +38682,44 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
38372
38682
  <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a>, and <a href=#concept-input-checked-dirty-flag title=concept-input-checked-dirty-flag>dirty checkedness
38373
38683
  flag</a> must be propagated to the clone when it is created.</p>
38374
38684
 
38685
+ <hr><p>When an <code><a href=#the-input-element>input</a></code> element is first created, the
38686
+ element's rendering and behavior must be set to the rendering and
38687
+ behavior defined for the <code title=attr-input-type><a href=#attr-input-type>type</a></code>
38688
+ attribute's state, and the <a href=#value-sanitization-algorithm>value sanitization
38689
+ algorithm</a>, if one is defined for the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's state, must be
38690
+ invoked.</p>
38691
+
38375
38692
  </div>
38376
38693
 
38377
- <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
38694
+ <div class=impl id=input-type-change>
38695
+
38696
+ <p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute changes state, the
38697
+ user agent must run the following steps:</p>
38698
+
38699
+ <ol><!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/602 --><li><p>If the previous state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute put the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in the <i title=dom-input-value-value><a href=#dom-input-value-value>value</a></i> mode, and the element's
38700
+ <a href=#concept-fe-value title=concept-fe-value>value</a> is not the empty
38701
+ string, and the new state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute puts the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in either the <i title=dom-input-value-default><a href=#dom-input-value-default>default</a></i> mode or the <i title=dom-input-value-default-on><a href=#dom-input-value-default-on>default/on</a></i> mode, then set
38702
+ the element's <code title=attr-input-value><a href=#attr-input-value>value</a></code> content
38703
+ attribute to the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.</li>
38704
+
38705
+ <li><p>Otherwise, if the previous state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute put the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in any mode
38706
+ other than the <i title=dom-input-value-value><a href=#dom-input-value-value>value</a></i> mode, and
38707
+ the new state of the element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute puts the <code title=dom-input-value><a href=#dom-input-value>value</a></code> IDL attribute in the <i title=dom-input-value-value><a href=#dom-input-value-value>value</a></i> mode, then set the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element to the value
38708
+ of the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content
38709
+ attribute, if there is one, or the empty string otherwise, and
38710
+ then set the control's <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a> to
38711
+ false.</li>
38712
+
38713
+ <li><p>Update the element's rendering and behavior to the new
38714
+ state's.</li>
38715
+
38716
+ <li><p>Invoke the <a href=#value-sanitization-algorithm>value sanitization algorithm</a>, if one
38717
+ is defined for the <code title=attr-input-type><a href=#attr-input-type>type</a></code>
38718
+ attribute's new state.</li>
38719
+
38720
+ </ol></div>
38721
+
38722
+ <hr><p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
38378
38723
  explicitly associate the <code><a href=#the-input-element>input</a></code> element with its
38379
38724
  <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code>
38380
38725
  attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
@@ -38389,20 +38734,21 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
38389
38734
  the last value it was set to. On setting, it must be set to the new
38390
38735
  value. It has no effect except for changing the appearance of <a href=#checkbox-state title=attr-input-type-checkbox>checkbox</a> controls.</p>
38391
38736
 
38392
- <p>The <dfn id=dom-input-accept title=dom-input-accept><code>accept</code></dfn>, <dfn id=dom-input-alt title=dom-input-alt><code>alt</code></dfn>, <dfn id=dom-input-autocomplete title=dom-input-autocomplete><code>autocomplete</code></dfn>, <dfn id=dom-input-max title=dom-input-max><code>max</code></dfn>, <dfn id=dom-input-min title=dom-input-min><code>min</code></dfn>, <dfn id=dom-input-multiple title=dom-input-multiple><code>multiple</code></dfn>, <dfn id=dom-input-pattern title=dom-input-pattern><code>pattern</code></dfn>, <dfn id=dom-input-placeholder title=dom-input-placeholder><code>placeholder</code></dfn>, <dfn id=dom-input-required title=dom-input-required><code>required</code></dfn>, <dfn id=dom-input-size title=dom-input-size><code>size</code></dfn>, <dfn id=dom-input-src title=dom-input-src><code>src</code></dfn>, and <dfn id=dom-input-step title=dom-input-step><code>step</code></dfn> IDL attributes must
38737
+ <p>The <dfn id=dom-input-accept title=dom-input-accept><code>accept</code></dfn>, <dfn id=dom-input-alt title=dom-input-alt><code>alt</code></dfn>, <dfn id=dom-input-max title=dom-input-max><code>max</code></dfn>, <dfn id=dom-input-min title=dom-input-min><code>min</code></dfn>, <dfn id=dom-input-multiple title=dom-input-multiple><code>multiple</code></dfn>, <dfn id=dom-input-pattern title=dom-input-pattern><code>pattern</code></dfn>, <dfn id=dom-input-placeholder title=dom-input-placeholder><code>placeholder</code></dfn>, <dfn id=dom-input-required title=dom-input-required><code>required</code></dfn>, <dfn id=dom-input-size title=dom-input-size><code>size</code></dfn>, <dfn id=dom-input-src title=dom-input-src><code>src</code></dfn>, and <dfn id=dom-input-step title=dom-input-step><code>step</code></dfn> IDL attributes must
38393
38738
  <a href=#reflect>reflect</a> the respective content attributes of the same
38394
- name. The <dfn id=dom-input-maxlength title=dom-input-maxLength><code>maxLength</code></dfn> IDL
38395
- attribute must <a href=#reflect>reflect</a> the <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> content attribute,
38396
- <a href=#limited-to-only-non-negative-numbers>limited to only non-negative numbers</a>. The <dfn id=dom-input-readonly title=dom-input-readOnly><code>readOnly</code></dfn> IDL attribute
38739
+ name. The <dfn id=dom-input-readonly title=dom-input-readOnly><code>readOnly</code></dfn> IDL attribute
38397
38740
  must <a href=#reflect>reflect</a> the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> content attribute. The
38398
38741
  <dfn id=dom-input-defaultchecked title=dom-input-defaultChecked><code>defaultChecked</code></dfn>
38399
38742
  IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code> content attribute. The
38400
38743
  <dfn id=dom-input-defaultvalue title=dom-input-defaultValue><code>defaultValue</code></dfn>
38401
38744
  IDL attribute must <a href=#reflect>reflect</a> the <code title=attr-input-value><a href=#attr-input-value>value</a></code> content attribute.</p>
38402
38745
 
38403
- <p>The <dfn id=dom-input-type title=dom-input-type><code>type</code></dfn> IDL
38404
- attribute must <a href=#reflect>reflect</a> the content attribute of the
38405
- same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
38746
+ <p>The <dfn id=dom-input-autocomplete title=dom-input-autocomplete><code>autocomplete</code></dfn> and
38747
+ <dfn id=dom-input-type title=dom-input-type><code>type</code></dfn> IDL attributes
38748
+ must <a href=#reflect>reflect</a> the respective content attributes of the
38749
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>. The <dfn id=dom-input-maxlength title=dom-input-maxLength><code>maxLength</code></dfn> IDL
38750
+ attribute must <a href=#reflect>reflect</a> the <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> content attribute,
38751
+ <a href=#limited-to-only-non-negative-numbers>limited to only non-negative numbers</a>.</p>
38406
38752
 
38407
38753
  <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
38408
38754
  attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
@@ -40042,7 +40388,9 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
40042
40388
  <p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>,
40043
40389
  the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest number for
40044
40390
  which the element would not <a href=#suffering-from-a-step-mismatch title="suffering from a step
40045
- mismatch">suffer from a step mismatch</a>.</p>
40391
+ mismatch">suffer from a step mismatch</a>. If there are two such
40392
+ numbers, user agents are encouraged to pick the one nearest positive
40393
+ infinity.</p>
40046
40394
 
40047
40395
  <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
40048
40396
  string to a number</a>, given a string <var title="">input</var>,
@@ -40202,7 +40550,13 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
40202
40550
  than or equal to the <a href=#concept-input-min title=concept-input-min>minimum</a>,
40203
40551
  and, if the <a href=#concept-input-max title=concept-input-max>maximum</a> is not
40204
40552
  less than the <a href=#concept-input-min title=concept-input-min>minimum</a>, which
40205
- is less than or equal to the <a href=#concept-input-max title=concept-input-max>maximum</a>.</p>
40553
+ is less than or equal to the <a href=#concept-input-max title=concept-input-max>maximum</a>. If two numbers match these
40554
+ constraints, then user agents must use the one nearest to positive
40555
+ infinity.</p>
40556
+
40557
+ <p class=example>For example, the markup
40558
+ <code>&lt;input&nbsp;type="range"&nbsp;min=0&nbsp;max=100&nbsp;step=20&nbsp;value=50&gt;</code>
40559
+ results in a range control whose initial value is 60.</p>
40206
40560
 
40207
40561
  <p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
40208
40562
  string to a number</a>, given a string <var title="">input</var>,
@@ -41455,16 +41809,16 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
41455
41809
  attribute is used to identify an element that lists predefined
41456
41810
  options suggested to the user.</p>
41457
41811
 
41458
- <p>If present, its value must be the ID of a <code><a href=#the-datalist-element>datalist</a></code>
41812
+ <p>If present, its value must be the <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#the-datalist-element>datalist</a></code>
41459
41813
  element in the same document.</p>
41460
41814
 
41461
41815
  <div class=impl>
41462
41816
 
41463
41817
  <p>The <dfn id=concept-input-list title=concept-input-list>suggestions source
41464
41818
  element</dfn> is the first element in the document in <a href=#tree-order>tree
41465
- order</a> to have an ID equal to the value of the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute, if that element is a
41819
+ order</a> to have an <a href=#concept-id title=concept-id>ID</a> equal to the value of the <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute, if that element is a
41466
41820
  <code><a href=#the-datalist-element>datalist</a></code> element. If there is no <code title=attr-input-list><a href=#attr-input-list>list</a></code> attribute, or if there is no
41467
- element with that ID, or if the first element with that ID is not a
41821
+ element with that <a href=#concept-id title=concept-id>ID</a>, or if the first element with that <a href=#concept-id title=concept-id>ID</a> is not a
41468
41822
  <code><a href=#the-datalist-element>datalist</a></code> element, then there is no <a href=#concept-input-list title=concept-input-list>suggestions source element</a>.</p>
41469
41823
 
41470
41824
  <p>If there is a <a href=#concept-input-list title=concept-input-list>suggestions source
@@ -41574,7 +41928,7 @@ interface <dfn id=htmlformelement>HTMLFormElement</dfn> : <a href=#htmlelement>H
41574
41928
 
41575
41929
  <p>The <dfn id=attr-input-readonly title=attr-input-readonly><code>readonly</code></dfn>
41576
41930
  attribute is a <a href=#boolean-attribute>boolean attribute</a> that controls whether
41577
- or not the use can edit the form control. <span class=impl>When
41931
+ or not the user can edit the form control. <span class=impl>When
41578
41932
  specified, the element is <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>.</span></p>
41579
41933
 
41580
41934
  <div class=impl>
@@ -42819,9 +43173,9 @@ You cannot submit this form when the field is incorrect.</samp></pre>
42819
43173
  <dt><var title="">select</var>[<var title="">name</var>]</dt>
42820
43174
  <dt><var title="">select</var>(<var title="">name</var>)</dt>
42821
43175
  <dd>
42822
- <p>Returns the item with ID or <code title=attr-option-name><a href=#attr-option-name>name</a></code> <var title="">name</var> from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>.</p>
43176
+ <p>Returns the item with <a href=#concept-id title=concept-id>ID</a> or <code title=attr-option-name><a href=#attr-option-name>name</a></code> <var title="">name</var> from the <a href=#concept-select-option-list title=concept-select-option-list>list of options</a>.</p>
42823
43177
  <p>If there are multiple matching items, then a <code><a href=#nodelist>NodeList</a></code> object containing all those elements is returned.</p>
42824
- <p>Returns null if no element with that ID could be found.</p>
43178
+ <p>Returns null if no element with that <a href=#concept-id title=concept-id>ID</a> could be found.</p>
42825
43179
  </dd>
42826
43180
 
42827
43181
  <dt><var title="">select</var> . <code title=dom-select-add><a href=#dom-select-add>add</a></code>(<var title="">element</var> [, <var title="">before</var> ])</dt>
@@ -42954,7 +43308,8 @@ You cannot submit this form when the field is incorrect.</samp></pre>
42954
43308
  must <a href=#reflect>reflect</a> the respective content attributes of the
42955
43309
  same name. The <code title=dom-select-size><a href=#dom-select-size>size</a></code> IDL
42956
43310
  attribute is <a href=#limited-to-only-non-negative-numbers-greater-than-zero>limited to only non-negative numbers greater than
42957
- zero</a>.</p>
43311
+ zero</a>, and has no default value (unlike the <code title=attr-select-size><a href=#attr-select-size>size</a></code> content attribute that it
43312
+ reflects).</p>
42958
43313
 
42959
43314
  <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code>
42960
43315
  attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code>
@@ -43227,9 +43582,7 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
43227
43582
 
43228
43583
  <p>The <dfn id=concept-option-selectedness title=concept-option-selectedness>selectedness</dfn>
43229
43584
  of an <code><a href=#the-option-element>option</a></code> element is a boolean state, initially
43230
- false. If the element is <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, then the element's
43231
- <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is
43232
- always false and cannot be set to true. Except where otherwise
43585
+ false. Except where otherwise
43233
43586
  specified, when the element is created, its <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> must be set
43234
43587
  to true if the element has a <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute. Whenever an
43235
43588
  <code><a href=#the-option-element>option</a></code> element's <code title=attr-option-selected><a href=#attr-option-selected>selected</a></code> attribute is added, its
@@ -43245,6 +43598,8 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
43245
43598
  initial <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> state when
43246
43599
  using the constructor.</p>
43247
43600
 
43601
+ <!-- http://software.hixie.ch/utilities/js/live-dom-viewer/saved/604 -->
43602
+
43248
43603
  </div>
43249
43604
 
43250
43605
  <p>A <code><a href=#the-select-element>select</a></code> element whose <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute is not
@@ -43268,6 +43623,8 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
43268
43623
 
43269
43624
  <p>Returns true if the element is selected, and false otherwise.</p>
43270
43625
 
43626
+ <p>Can be set, to override the current state of the element.</p>
43627
+
43271
43628
  </dd>
43272
43629
 
43273
43630
  <dt><var title="">option</var> . <code title=dom-option-index><a href=#dom-option-index>index</a></code></dt>
@@ -43325,8 +43682,9 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
43325
43682
  to the new value.</p>
43326
43683
 
43327
43684
  <p>The <dfn id=dom-option-selected title=dom-option-selected><code>selected</code></dfn>
43328
- IDL attribute must return true if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, and
43329
- false otherwise.</p>
43685
+ IDL attribute, on getting, must return true if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, and
43686
+ false otherwise. On setting, it must set the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> to the new
43687
+ value.</p>
43330
43688
 
43331
43689
  <p>The <dfn id=dom-option-index title=dom-option-index><code>index</code></dfn> IDL
43332
43690
  attribute must return the element's <a href=#concept-option-index title=concept-option-index>index</a>.</p>
@@ -43528,11 +43886,21 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
43528
43886
  <p>The <dfn id=attr-textarea-wrap title=attr-textarea-wrap><code>wrap</code></dfn>
43529
43887
  attribute is an <a href=#enumerated-attribute>enumerated attribute</a> with two keywords
43530
43888
  and states: the <dfn id=attr-textarea-wrap-soft title=attr-textarea-wrap-soft><code>soft</code></dfn> keyword
43531
- which maps to the <dfn id=attr-textarea-wrap-soft-state title=attr-textarea-wrap-soft-state>Soft</dfn> state, and the
43889
+ which maps to the <a href=#attr-textarea-wrap-soft-state title=attr-textarea-wrap-soft-state>Soft</a> state, and the
43532
43890
  <dfn id=attr-textarea-wrap-hard title=attr-textarea-wrap-hard><code>hard</code></dfn> keyword
43533
- which maps to the <dfn id=attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</dfn> state. The
43891
+ which maps to the <a href=#attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</a> state. The
43534
43892
  <i>missing value default</i> is the <a href=#attr-textarea-wrap-soft-state title=attr-textarea-wrap-soft-state>Soft</a> state.</p>
43535
43893
 
43894
+ <p>The <dfn id=attr-textarea-wrap-soft-state title=attr-textarea-wrap-soft-state>Soft</dfn> state
43895
+ indicates that the text in the <code><a href=#the-textarea-element>textarea</a></code> is not to be
43896
+ wrapped when it is submitted (though it can still be wrapped in the
43897
+ rendering).</p>
43898
+
43899
+ <p>The <dfn id=attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</dfn> state
43900
+ indicates that the text in the <code><a href=#the-textarea-element>textarea</a></code> is to have
43901
+ newlines added by the user agent so that the text is wrapped when it
43902
+ is submitted.</p>
43903
+
43536
43904
  <p>If the element's <code title=attr-textarea-wrap><a href=#attr-textarea-wrap>wrap</a></code>
43537
43905
  attribute is in the <a href=#attr-textarea-wrap-hard-state title=attr-textarea-wrap-hard-state>Hard</a> state, the <code title=attr-textarea-cols><a href=#attr-textarea-cols>cols</a></code> attribute must be
43538
43906
  specified.</p>
@@ -44003,7 +44371,7 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
44003
44371
  <dt>DOM interface:</dt>
44004
44372
  <dd>
44005
44373
  <pre class=idl>interface <dfn id=htmloutputelement>HTMLOutputElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
44006
- [PutForwards=<a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <span title=dom-output-wrap>htmlFor</span>;
44374
+ [PutForwards=<a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-output-htmlfor title=dom-output-htmlFor>htmlFor</a>;
44007
44375
  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
44008
44376
  attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
44009
44377
 
@@ -44030,7 +44398,7 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
44030
44398
  calculation. The <code title=attr-output-for><a href=#attr-output-for>for</a></code> attribute,
44031
44399
  if specified, must contain a string consisting of an <a href=#unordered-set-of-unique-space-separated-tokens>unordered
44032
44400
  set of unique space-separated tokens</a>, each of which must have
44033
- the value of an ID of an element in the same
44401
+ the value of an <a href=#concept-id title=concept-id>ID</a> of an element in the same
44034
44402
  <code><a href=#document>Document</a></code>.</p>
44035
44403
 
44036
44404
  <p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to
@@ -44170,9 +44538,9 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
44170
44538
  <dt>DOM interface:</dt>
44171
44539
  <dd>
44172
44540
  <pre class=idl>interface <dfn id=htmlprogresselement>HTMLProgressElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
44173
- attribute float <a href=#dom-progress-value title=dom-progress-value>value</a>;
44174
- attribute float <a href=#dom-progress-max title=dom-progress-max>max</a>;
44175
- readonly attribute float <a href=#dom-progress-position title=dom-progress-position>position</a>;
44541
+ attribute double <a href=#dom-progress-value title=dom-progress-value>value</a>;
44542
+ attribute double <a href=#dom-progress-max title=dom-progress-max>max</a>;
44543
+ readonly attribute double <a href=#dom-progress-position title=dom-progress-position>position</a>;
44176
44544
  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
44177
44545
  readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
44178
44546
  };</pre>
@@ -44325,12 +44693,12 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href=#htmleleme
44325
44693
  <dt>DOM interface:</dt>
44326
44694
  <dd>
44327
44695
  <pre class=idl>interface <dfn id=htmlmeterelement>HTMLMeterElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
44328
- attribute float <a href=#dom-meter-value title=dom-meter-value>value</a>;
44329
- attribute float <a href=#dom-meter-min title=dom-meter-min>min</a>;
44330
- attribute float <a href=#dom-meter-max title=dom-meter-max>max</a>;
44331
- attribute float <a href=#dom-meter-low title=dom-meter-low>low</a>;
44332
- attribute float <a href=#dom-meter-high title=dom-meter-high>high</a>;
44333
- attribute float <a href=#dom-meter-optimum title=dom-meter-optimum>optimum</a>;
44696
+ attribute double <a href=#dom-meter-value title=dom-meter-value>value</a>;
44697
+ attribute double <a href=#dom-meter-min title=dom-meter-min>min</a>;
44698
+ attribute double <a href=#dom-meter-max title=dom-meter-max>max</a>;
44699
+ attribute double <a href=#dom-meter-low title=dom-meter-low>low</a>;
44700
+ attribute double <a href=#dom-meter-high title=dom-meter-high>high</a>;
44701
+ attribute double <a href=#dom-meter-optimum title=dom-meter-optimum>optimum</a>;
44334
44702
  readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
44335
44703
  readonly attribute <a href=#nodelist>NodeList</a> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>;
44336
44704
  };</pre>
@@ -44663,8 +45031,11 @@ out of 233&thinsp;257&thinsp;824 bytes available&lt;/meter&gt;&lt;/p&gt;</pre>
44663
45031
  below)</span>, but may have a <dfn id=attr-fae-form title=attr-fae-form><code>form</code></dfn> attribute specified to
44664
45032
  override this.</p>
44665
45033
 
45034
+ <p class=note>This feature allows authors to work around the lack
45035
+ of support for nested <code><a href=#the-form-element>form</a></code> elements.</p>
45036
+
44666
45037
  <p>If a <a href=#form-associated-element>form-associated element</a> has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute specified, then that
44667
- attribute's value must be the ID of a <code><a href=#the-form-element>form</a></code> element in
45038
+ attribute's value must be the <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#the-form-element>form</a></code> element in
44668
45039
  the element's owner <code><a href=#document>Document</a></code>.</p>
44669
45040
 
44670
45041
  <div class=impl>
@@ -44693,13 +45064,13 @@ out of 233&thinsp;257&thinsp;824 bytes available&lt;/meter&gt;&lt;/p&gt;</pre>
44693
45064
  has its value changed, then the user agent must <a href=#reset-the-form-owner>reset the form
44694
45065
  owner</a> of that element.</p>
44695
45066
 
44696
- <p>When a <a href=#form-associated-element>form-associated element</a> has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute and the ID of any of the
45067
+ <p>When a <a href=#form-associated-element>form-associated element</a> has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute and the <a href=#concept-id title=concept-id>ID</a> of any of the
44697
45068
  elements in the <code><a href=#document>Document</a></code> changes, then the user agent
44698
45069
  must <a href=#reset-the-form-owner>reset the form owner</a> of that <a href=#form-associated-element>form-associated
44699
45070
  element</a>.</p>
44700
45071
 
44701
45072
  <p>When a <a href=#form-associated-element>form-associated element</a> has a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute and an element with an
44702
- ID is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted
45073
+ <a href=#concept-id title=concept-id>ID</a> is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted
44703
45074
  into</a> or <a href=#remove-an-element-from-a-document title="remove an element from a
44704
45075
  document">removed from</a> the <code><a href=#document>Document</a></code>, then the
44705
45076
  user agent must <a href=#reset-the-form-owner>reset the form owner</a> of that
@@ -44725,7 +45096,7 @@ out of 233&thinsp;257&thinsp;824 bytes available&lt;/meter&gt;&lt;/p&gt;</pre>
44725
45096
 
44726
45097
  <ol><!-- note that this ignores the name="" attribute and is
44727
45098
  unaffected by quirks mode (it's always case sensitive) --><li><p>If the first element <a href=#in-a-document title="in a Document">in the
44728
- <code>Document</code></a> to have an ID that is <a href=#case-sensitive title=case-sensitive>case-sensitively</a> equal to the
45099
+ <code>Document</code></a> to have an <a href=#concept-id title=concept-id>ID</a> that is <a href=#case-sensitive title=case-sensitive>case-sensitively</a> equal to the
44729
45100
  element's <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content
44730
45101
  attribute's value is a <code><a href=#the-form-element>form</a></code> element, then <a href=#concept-form-association title=concept-form-association>associate</a> the
44731
45102
  <a href=#form-associated-element>form-associated element</a> with that <code><a href=#the-form-element>form</a></code>
@@ -45086,7 +45457,7 @@ out of 233&thinsp;257&thinsp;824 bytes available&lt;/meter&gt;&lt;/p&gt;</pre>
45086
45457
 
45087
45458
  <pre>&lt;form action="editor.cgi" method="post"&gt;
45088
45459
  &lt;p&gt;&lt;label&gt;Name: &lt;input required name=fn&gt;&lt;/label&gt;&lt;/p&gt;
45089
- &lt;p&gt;&lt;label&gt;Essay: &lt;textarea name=essay&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
45460
+ &lt;p&gt;&lt;label&gt;Essay: &lt;textarea required name=essay&gt;&lt;/textarea&gt;&lt;/label&gt;&lt;/p&gt;
45090
45461
  &lt;p&gt;&lt;input type=submit name=submit value="Submit essay"&gt;&lt;/p&gt;
45091
45462
  &lt;p&gt;&lt;input type=submit formnovalidate name=save value="Save essay"&gt;&lt;/p&gt;
45092
45463
  &lt;p&gt;&lt;input type=submit formnovalidate name=cancel value="Cancel"&gt;&lt;/p&gt;
@@ -45788,8 +46159,8 @@ fur
45788
46159
  there are no <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>,
45789
46160
  then append an entry in the <var title="">form data set</var>
45790
46161
  with the <var title="">name</var> as the name, the empty string
45791
- as the value, and <code title="">application/octet-stream</code>
45792
- as the type.</li>
46162
+ as the value, and <code>application/octet-stream</code> as the
46163
+ type.</li>
45793
46164
  <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=529859 -->
45794
46165
 
45795
46166
  <li><p>Otherwise, if the <var title="">field</var> element is an
@@ -49283,7 +49654,11 @@ interface <dfn>DataGridListener</dfn> {
49283
49654
 
49284
49655
  <div class=impl>
49285
49656
 
49286
- <p>The <dfn id=dom-command-type title=dom-command-type><code>type</code></dfn>, <dfn id=dom-command-label title=dom-command-label><code>label</code></dfn>, <dfn id=dom-command-icon title=dom-command-icon><code>icon</code></dfn>, <dfn id=dom-command-disabled title=dom-command-disabled><code>disabled</code></dfn>, <dfn id=dom-command-checked title=dom-command-checked><code>checked</code></dfn>, and <dfn id=dom-command-radiogroup title=dom-command-radiogroup><code>radiogroup</code></dfn><!--,
49657
+ <p>The <dfn id=dom-command-type title=dom-command-type><code>type</code></dfn> IDL
49658
+ attribute must <a href=#reflect>reflect</a> the content attribute of the
49659
+ same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
49660
+
49661
+ <p>The <dfn id=dom-command-label title=dom-command-label><code>label</code></dfn>, <dfn id=dom-command-icon title=dom-command-icon><code>icon</code></dfn>, <dfn id=dom-command-disabled title=dom-command-disabled><code>disabled</code></dfn>, <dfn id=dom-command-checked title=dom-command-checked><code>checked</code></dfn>, and <dfn id=dom-command-radiogroup title=dom-command-radiogroup><code>radiogroup</code></dfn><!--,
49287
49662
  and <dfn title="dom-command-default"><code>default</code></dfn>-->
49288
49663
  IDL attributes must <a href=#reflect>reflect</a> the respective content
49289
49664
  attributes of the same name.</p>
@@ -49592,7 +49967,7 @@ interface <dfn>DataGridListener</dfn> {
49592
49967
 
49593
49968
  <p>The <dfn id=attr-contextmenu title=attr-contextmenu><code>contextmenu</code></dfn>
49594
49969
  attribute gives the element's <a href=#context-menus title="context menus">context
49595
- menu</a>. The value must be the ID of a <code><a href=#menus>menu</a></code> element
49970
+ menu</a>. The value must be the <a href=#concept-id title=concept-id>ID</a> of a <code><a href=#menus>menu</a></code> element
49596
49971
  in the DOM. <span class=impl>If the node that would be obtained by
49597
49972
  the invoking the <code title=dom-Document-getElementById><a href=#dom-document-getelementbyid>getElementById()</a></code> method
49598
49973
  using the attribute's value as the only argument is null or not a
@@ -50108,7 +50483,7 @@ interface <dfn>DataGridListener</dfn> {
50108
50483
  <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
50109
50484
  State</a> of the command is true (disabled) if the element is
50110
50485
  <a href=#concept-option-disabled title=concept-option-disabled>disabled</a> or if its
50111
- nearest ancestor <code><a href=#the-select-element>select</a></code> element is <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, and false
50486
+ nearest ancestor <code><a href=#the-select-element>select</a></code> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, and false
50112
50487
  otherwise.</p>
50113
50488
 
50114
50489
  <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
@@ -50327,6 +50702,8 @@ interface <dfn>DataGridListener</dfn> {
50327
50702
 
50328
50703
 
50329
50704
  <!--DEVICE-->
50705
+ <div data-component="other Hixie drafts (editor: Ian Hickson)">
50706
+
50330
50707
 
50331
50708
  <h4 id=devices><span class=secno>4.11.6 </span>The <dfn><code>device</code></dfn> element</h4>
50332
50709
 
@@ -50450,7 +50827,7 @@ interface <dfn>DataGridListener</dfn> {
50450
50827
 
50451
50828
  <pre class=idl>[Constructor(in DOMString serverConfiguration)]
50452
50829
  interface <dfn id=connectionpeer>ConnectionPeer</dfn> {
50453
- void sendText(in DOMString text);
50830
+ void sendText(in DOMString text, in optional boolean unimportant); // if second arg is true, then use unreliable low-latency transport (UDP-like), otherwise guarantee delivery (TCP-like)
50454
50831
  attribute <a href=#function>Function</a> ontext; // receiving
50455
50832
 
50456
50833
  void sendBitmap(in HTMLImageElement image);
@@ -50465,8 +50842,8 @@ interface <dfn id=connectionpeer>ConnectionPeer</dfn> {
50465
50842
  readonly attribute Stream[] remoteStreams;
50466
50843
  attribute <a href=#function>Function</a> onstream; // receiving
50467
50844
 
50468
- void <span title=dom-ConnectionPeer-getLocalConfiguration>getLocalConfiguration</span>(in <a href=#connectionpeerconfigurationcallback>ConnectionPeerConfigurationCallback</a> callback); // maybe this should be in the constructor
50469
- void <span title=dom-ConnectionPeer-addRemoteConfiguration>addRemoteConfiguration</span>(in DOMString configuration);
50845
+ void <span title=dom-ConnectionPeer-getLocalConfiguration>getLocalConfiguration</span>(in <a href=#connectionpeerconfigurationcallback>ConnectionPeerConfigurationCallback</a> callback); // maybe this should be in the constructor, or be an event
50846
+ void <span title=dom-ConnectionPeer-addRemoteConfiguration>addRemoteConfiguration</span>(in DOMString configuration, in optional DOMString remoteOrigin); // remote origin is assumed to be same-origin if not specified. If specified, has to match remote origin (checked in handshake). Should support leading "*." to mean "any subdomain of".
50470
50847
  void close(); // disconnects and stops listening
50471
50848
 
50472
50849
  attribute <a href=#function>Function</a> onconnect;
@@ -50541,6 +50918,8 @@ local.onconnect = function (event) {
50541
50918
  client, the configuration information should always be transmitted
50542
50919
  using an encrypted connection.</p>
50543
50920
 
50921
+
50922
+ </div>
50544
50923
  <!--DEVICE-->
50545
50924
 
50546
50925
 
@@ -51367,7 +51746,7 @@ local.onconnect = function (event) {
51367
51746
  &lt;link rel=icon href=favicon.png sizes="16x16" type="image/png"&gt;
51368
51747
  &lt;link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon"&gt;
51369
51748
  &lt;link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768"&gt;
51370
- &lt;link rel=icon href=iphone.png sizes="59x60" type="image/png"&gt;
51749
+ &lt;link rel=icon href=iphone.png sizes="57x57" type="image/png"&gt;
51371
51750
  &lt;link rel=icon href=gnome.svg sizes="any" type="image/svg+xml"&gt;
51372
51751
  &lt;link rel=stylesheet href=lsforums.css&gt;
51373
51752
  &lt;script src=lsforums.js&gt;&lt;/script&gt;
@@ -51546,10 +51925,22 @@ local.onconnect = function (event) {
51546
51925
 
51547
51926
  <div class=impl>
51548
51927
 
51928
+ <p>The appropriate time to <a href=#concept-link-obtain title=concept-link-obtain>obtain</a> the resource is when the
51929
+ <a href=#external-resource-link title="external resource link">external resource link</a>
51930
+ is created or when its element is <a href=#insert-an-element-into-a-document title="insert an element
51931
+ into a document">inserted into a document</a>, whichever happens
51932
+ last. If the resource is <a href=#the-link-is-an-alternative-stylesheet title="the link is an alternative
51933
+ stylesheet">an alternative stylesheet</a> then the user agent may
51934
+ defer obtaining the resource until it is part of the <span>preferred
51935
+ style sheet set</span>. <a href=#refsCSSOM>[CSSOM]</a></p> <!--
51936
+ what about DOM access of alt style sheets? -->
51937
+
51549
51938
  <p><strong>Quirk</strong>: If the document has been set to
51550
- <a href=#quirks-mode>quirks mode</a> and the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the external
51551
- resource is not a supported style sheet type, the user agent must
51552
- instead assume it to be <code title="">text/css</code>.</p>
51939
+ <a href=#quirks-mode>quirks mode</a>, has the <a href=#same-origin>same origin</a> as the
51940
+ <a href=#url>URL</a> of the external resource<!-- CVE-2010-0654 -->, and
51941
+ the <a href=#content-type title=Content-Type>Content-Type metadata</a> of the
51942
+ external resource is not a supported style sheet type, the user
51943
+ agent must instead assume it to be <code title="">text/css</code>.</p>
51553
51944
 
51554
51945
  </div>
51555
51946
 
@@ -52473,7 +52864,7 @@ contradict people?
52473
52864
 
52474
52865
  <li><code><a href=#the-textarea-element>textarea</a></code> elements that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
52475
52866
 
52476
- <li><code><a href=#the-option-element>option</a></code> elements that do not have a <code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code> attribute</li>
52867
+ <li><code><a href=#the-option-element>option</a></code> elements that are not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a></li>
52477
52868
 
52478
52869
  <li><code><a href=#the-command>command</a></code> elements that do not have a <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> attribute</li>
52479
52870
 
@@ -52503,7 +52894,7 @@ contradict people?
52503
52894
 
52504
52895
  <li><code><a href=#the-textarea-element>textarea</a></code> elements that are <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
52505
52896
 
52506
- <li><code><a href=#the-option-element>option</a></code> elements that have a <code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code> attribute</li>
52897
+ <li><code><a href=#the-option-element>option</a></code> elements that are <a href=#concept-option-disabled title=concept-option-disabled>disabled</a></li>
52507
52898
 
52508
52899
  <li><code><a href=#the-command>command</a></code> elements that have a <code title=attr-command-disabled><a href=#attr-command-disabled>disabled</a></code> attribute</li>
52509
52900
 
@@ -57258,6 +57649,14 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
57258
57649
  <p class=note>This value is used below; it is calculated here
57259
57650
  because in certain cases the next step mutates the <var title="">cloned article</var>.</p>
57260
57651
 
57652
+ <p class=note>Any <code><a href=#the-ins-element>ins</a></code> or <code><a href=#the-del-element>del</a></code>
57653
+ elements whose <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code>
57654
+ attributes have values that are just <a href=#valid-date-string title="valid date
57655
+ string">valid date strings</a> (i.e. that have no time
57656
+ component) are ignored for the purposes of finding the update
57657
+ time of an entry.</p> <!-- because atom needs a time, as far as
57658
+ I can tell -->
57659
+
57261
57660
  </li>
57262
57661
 
57263
57662
  <li>
@@ -57762,10 +58161,12 @@ _:n2 hcard:adr%20street-address "Avenue Q" ;
57762
58161
  <h4 id=groupings-of-browsing-contexts><span class=secno>6.1.5 </span>Groupings of browsing contexts</h4>
57763
58162
 
57764
58163
  <p>Each <a href=#browsing-context>browsing context</a> is defined as having a list of
57765
- zero or more <dfn id=directly-reachable-browsing-contexts>directly reachable browsing contexts</dfn>. These
58164
+ one or more <dfn id=directly-reachable-browsing-contexts>directly reachable browsing contexts</dfn>. These
57766
58165
  are:</p>
57767
58166
 
57768
- <ul><li>All the <a href=#browsing-context>browsing context</a>'s <a href=#child-browsing-context title="child
58167
+ <ul><li>The <a href=#browsing-context>browsing context</a> itself.</li>
58168
+
58169
+ <li>All the <a href=#browsing-context>browsing context</a>'s <a href=#child-browsing-context title="child
57769
58170
  browsing context">child browsing contexts</a>.</li>
57770
58171
 
57771
58172
  <li>The <a href=#browsing-context>browsing context</a>'s <a href=#parent-browsing-context>parent browsing
@@ -58110,7 +58511,8 @@ interface <dfn id=window>Window</dfn> {
58110
58511
  <p>The <dfn id=dom-document-defaultview title=dom-document-defaultView><code>defaultView</code></dfn> IDL
58111
58512
  attribute of the <code><a href=#htmldocument>HTMLDocument</a></code> interface must return the
58112
58513
  <code><a href=#document>Document</a></code>'s <a href=#browsing-context>browsing context</a>'s
58113
- <code><a href=#windowproxy>WindowProxy</a></code> object.</p>
58514
+ <code><a href=#windowproxy>WindowProxy</a></code> object, if there is one, or null
58515
+ otherwise.</p>
58114
58516
 
58115
58517
  </div>
58116
58518
 
@@ -58227,7 +58629,7 @@ interface <dfn id=window>Window</dfn> {
58227
58629
  <a href=#browsing-context-name title="browsing context name">name</a> of the browsing
58228
58630
  context that is to be navigated. It must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing
58229
58631
  context name or keyword</a>. If fewer than two arguments are
58230
- provided, then the <var title="">name</var> argument defaults to the
58632
+ provided, then the <var title="">target</var> argument defaults to the
58231
58633
  value "<code>_blank</code>".</p>
58232
58634
 
58233
58635
  <p>The third argument, <var title="">features</var>, has no effect
@@ -58474,8 +58876,8 @@ interface <dfn id=window>Window</dfn> {
58474
58876
  false.</li>
58475
58877
 
58476
58878
  <li><p>Run any <a href=#unloading-document-cleanup-steps>unloading document cleanup steps</a> for
58477
- the <code><a href=#document>Document</a></code> that are defined by this specification or
58478
- any other relevant specifications.</li>
58879
+ the <code><a href=#document>Document</a></code> that are defined by this specification
58880
+ and <a href=#other-applicable-specifications>other applicable specifications</a>.</li>
58479
58881
 
58480
58882
  <li><p>Remove any <a href=#concept-task title=concept-task>tasks</a>
58481
58883
  associated with the <code><a href=#document>Document</a></code> in any <a href=#task-source>task
@@ -59065,18 +59467,17 @@ x === this; // true</pre>
59065
59467
  brackets from the host portion of the <a href=#url-host title=url-host>&lt;host&gt;</a> component must be omitted from
59066
59468
  the attribute's value.</p>
59067
59469
 
59068
- <p>On getting, the attribute must return its current
59069
- value, unless the document was created by
59070
- <code>XMLHttpRequest</code>, in which case it must throw an
59071
- <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code> exception.</p>
59470
+ <p>On getting, the attribute must return its current value, unless
59471
+ the <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing context</a>, in
59472
+ which case it must return the empty string.</p>
59072
59473
 
59073
59474
  <p>On setting, the user agent must run the following algorithm:</p>
59074
59475
 
59075
59476
  <ol><li>
59076
59477
 
59077
- <p>If the document was created by <code>XMLHttpRequest</code>,
59078
- throw an <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code> exception and abort these
59079
- steps.</p>
59478
+ <p>If the <code><a href=#document>Document</a></code> has no <a href=#browsing-context>browsing
59479
+ context</a>, throw a <code><a href=#security_err>SECURITY_ERR</a></code> exception and
59480
+ abort these steps.</p>
59080
59481
 
59081
59482
  </li>
59082
59483
 
@@ -59369,7 +59770,7 @@ x === this; // true</pre>
59369
59770
 
59370
59771
  <dd>
59371
59772
 
59372
- <p>Updates the current entry in the session histor to have the given data, title, and, if provided, URL.</p>
59773
+ <p>Updates the current entry in the session history to have the given data, title, and, if provided, URL.</p>
59373
59774
 
59374
59775
  </dd>
59375
59776
 
@@ -59432,7 +59833,7 @@ x === this; // true</pre>
59432
59833
  <li><p>If the index of the <a href=#current-entry-of-the-joint-session-history>current entry of the joint session
59433
59834
  history</a> plus <var title="">delta</var> is less than zero or
59434
59835
  greater than or equal to the number of items in the <a href=#joint-session-history>joint
59435
- session history</a>, then the user agent must do nothing.</p>
59836
+ session history</a>, then abort these steps.</p>
59436
59837
 
59437
59838
  <li><p>Let <var title="">specified entry</var> be the entry in the
59438
59839
  <a href=#joint-session-history>joint session history</a> whose index is the sum of <var title="">delta</var> and the index of the <a href=#current-entry-of-the-joint-session-history>current entry of
@@ -59442,8 +59843,15 @@ x === this; // true</pre>
59442
59843
  <a href=#browsing-context>browsing context</a> of the <var title="">specified
59443
59844
  entry</var>.</li>
59444
59845
 
59445
- <!-- XXX if going to another doc, try to unload the document here
59446
- (firing beforeunload, unload, pagehide) -->
59846
+ <li><p><a href=#prompt-to-unload-a-document title="prompt to unload a document">Prompt to
59847
+ unload</a> the <a href=#active-document>active document</a> of the <var title="">specified browsing context</var>. If the user
59848
+ <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
59849
+ abort these steps.</li>
59850
+
59851
+ <li><p><a href=#unload-a-document title="unload a document">Unload</a> the the
59852
+ <a href=#active-document>active document</a> of the <var title="">specified
59853
+ browsing context</var> with the <var title="">recycle</var>
59854
+ parameter set to false.</li>
59447
59855
 
59448
59856
  <li><p><a href=#traverse-the-history>Traverse the history</a> of the <var title="">specified browsing context</var> to the <var title="">specified entry</var>.</p>
59449
59857
 
@@ -59592,14 +60000,14 @@ x === this; // true</pre>
59592
60000
  &lt;title&gt;Line Game - 5&lt;/title&gt;
59593
60001
  &lt;p&gt;You are at coordinate &lt;span id="coord"&gt;5&lt;/span&gt; on the line.&lt;/p&gt;
59594
60002
  &lt;p&gt;
59595
- &lt;a href="?x=6" onclick="go(1)"&gt;Advance to 6&lt;/a&gt; or
59596
- &lt;a href="?x=4" onclick="go(-1)"&gt;retreat to 4&lt;/a&gt;?
60003
+ &lt;a href="?x=6" onclick="go(1); return false;"&gt;Advance to 6&lt;/a&gt; or
60004
+ &lt;a href="?x=4" onclick="go(-1); return false;"&gt;retreat to 4&lt;/a&gt;?
59597
60005
  &lt;/p&gt;
59598
60006
  &lt;script&gt;
59599
60007
  var currentPage = 5; // prefilled by server
59600
60008
  function go(d) {
59601
- history.pushState(currentPage, 'Line Game - ' + currentPage, '?x=' + currentPage);
59602
60009
  setupPage(currentPage + d);
60010
+ history.pushState(currentPage, document.title, '?x=' + currentPage);
59603
60011
  }
59604
60012
  onpopstate = function(event) {
59605
60013
  setupPage(event.state);
@@ -59849,13 +60257,14 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
59849
60257
  </div>
59850
60258
 
59851
60259
  <p>The <code><a href=#location>Location</a></code> interface also has the complement of
59852
- <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-location-protocol title=dom-location-protocol><code>protocol</code></dfn>, <dfn id=dom-location-host title=dom-location-host><code>host</code></dfn>, <dfn id=dom-location-port title=dom-location-port><code>port</code></dfn>, <dfn id=dom-location-hostname title=dom-location-hostname><code>hostname</code></dfn>, <dfn id=dom-location-pathname title=dom-location-pathname><code>pathname</code></dfn>, <dfn id=dom-location-search title=dom-location-search><code>search</code></dfn>, and <dfn id=dom-location-hash title=dom-location-hash><code>hash</code></dfn>. <span class=impl>These must follow the rules given for URL decomposition IDL
59853
- attributes, with the <a href=#concept-uda-input title=concept-uda-input>input</a>
59854
- being <a href="#the-document's-current-address" title="the document's current address">the current
59855
- address</a> of the associated <code><a href=#document>Document</a></code> object, as an
59856
- <a href=#absolute-url>absolute URL</a> (same as the <code title=dom-location-href><a href=#dom-location-href>href</a></code> attribute), and the <a href=#concept-uda-setter title=concept-uda-setter>common setter action</a> being the
59857
- same as setting the <code title=dom-location-href><a href=#dom-location-href>href</a></code>
59858
- attribute to the new output value.</span></p>
60260
+ <a href=#url-decomposition-idl-attributes>URL decomposition IDL attributes</a>, <dfn id=dom-location-protocol title=dom-location-protocol><code>protocol</code></dfn>, <dfn id=dom-location-host title=dom-location-host><code>host</code></dfn>, <dfn id=dom-location-port title=dom-location-port><code>port</code></dfn>, <dfn id=dom-location-hostname title=dom-location-hostname><code>hostname</code></dfn>, <dfn id=dom-location-pathname title=dom-location-pathname><code>pathname</code></dfn>, <dfn id=dom-location-search title=dom-location-search><code>search</code></dfn>, and <dfn id=dom-location-hash title=dom-location-hash><code>hash</code></dfn>. <span class=impl>These must follow the rules given for <a href=#url-decomposition-idl-attributes>URL
60261
+ decomposition IDL attributes</a>, with the <a href=#concept-uda-input title=concept-uda-input>input</a> being <a href="#the-document's-current-address" title="the
60262
+ document's current address">the current address</a> of the
60263
+ associated <code><a href=#document>Document</a></code> object, as an <a href=#absolute-url>absolute
60264
+ URL</a> (same as the <code title=dom-location-href><a href=#dom-location-href>href</a></code>
60265
+ attribute), and the <a href=#concept-uda-setter title=concept-uda-setter>common setter
60266
+ action</a> being the same as setting the <code title=dom-location-href><a href=#dom-location-href>href</a></code> attribute to the new output
60267
+ value.</span></p>
59859
60268
 
59860
60269
  <div class=impl>
59861
60270
 
@@ -60017,6 +60426,15 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
60017
60426
  <a href=#browsing-context>browsing context</a>.</li>
60018
60427
  <!-- http://www.hixie.ch/tests/adhoc/html/navigation/unload/ -->
60019
60428
 
60429
+ <li><p>If a <a href=#concept-task title=concept-task>task</a> queued by the
60430
+ <a href=#traverse-the-history-by-a-delta>traverse the history by a delta</a> algorithm is running
60431
+ the <a href=#unload-a-document>unload a document</a> algorithm for the <a href=#active-document>active
60432
+ document</a> of the <a href=#browsing-context>browsing context</a> being
60433
+ navigated, then abort these steps without affecting the
60434
+ <a href=#unload-a-document>unload a document</a> algorithm or the aforementioned
60435
+ history traversal task.</li> <!-- this stops pages from
60436
+ hijacking the back/forward button -->
60437
+
60020
60438
  <li><p>If there is a preexisting attempt to navigate the
60021
60439
  <a href=#browsing-context>browsing context</a>, and either that attempt has not yet
60022
60440
  <a href=#concept-navigate-mature title=concept-navigate-mature>matured</a> (i.e. it has
@@ -60692,7 +61110,7 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
60692
61110
  will <a href=#scroll-to-the-fragment-identifier>scroll to the fragment identifier</a> given in what
60693
61111
  is now <a href="#the-document's-current-address">the document's current address</a>.</li>
60694
61112
 
60695
- </ol><p class=note>If the scrolling fails because the relevant ID has
61113
+ </ol><p class=note>If the scrolling fails because the relevant <a href=#concept-id title=concept-id>ID</a> has
60696
61114
  not yet been parsed, then the original <a href=#navigate title=navigate>navigation</a> algorithm will take care of the
60697
61115
  scrolling instead, as the last few steps of its <a href=#update-the-session-history-with-the-new-page>update the
60698
61116
  session history with the new page</a> algorithm.</p>
@@ -60733,7 +61151,7 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
60733
61151
  the next one.</p>
60734
61152
 
60735
61153
  <li><p>If this step was not skipped and there is an element in the
60736
- DOM that has an ID exactly equal to <var title="">decoded
61154
+ DOM that has an <a href=#concept-id title=concept-id>ID</a> exactly equal to <var title="">decoded
60737
61155
  fragid</var>, then the first such element in tree order is
60738
61156
  <a href=#the-indicated-part-of-the-document>the indicated part of the document</a>; stop the algorithm
60739
61157
  here.</li>
@@ -60767,7 +61185,14 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
60767
61185
 
60768
61186
  <p>When a user agent is required to <dfn id=traverse-the-history>traverse the history</dfn>
60769
61187
  to a <i>specified entry</i>, optionally with <a href=#replacement-enabled>replacement
60770
- enabled</a>, the user agent must act as follows:</p>
61188
+ enabled</a>, the user agent must act as follows.</p>
61189
+
61190
+ <p class=note>This algorithm is not just invoked when <a href=#traverse-the-history-by-a-delta title="traverse the history by a delta">explicitly going back or
61191
+ forwards in the session history</a> &mdash; it is also invoked in
61192
+ other situations, for example when <a href=#navigate title=navigate>navigating
61193
+ a browsing context</a>, as part of <a href=#update-the-session-history-with-the-new-page title="update the session
61194
+ history with the new page">updating the session history with the new
61195
+ page</a>.</p>
60771
61196
 
60772
61197
  <ol><li><p>If there is no longer a <code><a href=#document>Document</a></code> object for the
60773
61198
  entry in question, the user agent must <a href=#navigate>navigate</a> the
@@ -60884,42 +61309,34 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
60884
61309
  its rendering, for instance the scroll position or values of form
60885
61310
  fields, that it had previously recorded.</li>
60886
61311
 
60887
- <li>
60888
-
60889
- <p>If the <i>specified entry</i> is a state object or the first
60890
- entry for a <code><a href=#document>Document</a></code>, the user agent must run the
60891
- following substeps:</p>
60892
-
60893
- <ol><li><p>If the entry is a <a href=#state-object>state object</a> entry, let <var title="">state</var> be a <a href=#structured-clone>structured clone</a> of that
60894
- state object. Otherwise, let <var title="">state</var> be
60895
- null.</li>
61312
+ <li><p>If the entry is a <a href=#state-object>state object</a> entry, let <var title="">state</var> be a <a href=#structured-clone>structured clone</a> of that
61313
+ state object. Otherwise, let <var title="">state</var> be
61314
+ null.</li>
60896
61315
 
60897
- <li>
60898
-
60899
- <p>Run the appropriate steps according to the conditions
60900
- described:</p>
61316
+ <li>
60901
61317
 
60902
- <dl class=switch><dt>If the <a href=#current-document-readiness>current document readiness</a> is set to the
60903
- string "complete"</dt>
61318
+ <p>Run the appropriate steps according to the conditions
61319
+ described:</p>
60904
61320
 
60905
- <dd><p><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
60906
- <code><a href=#window>Window</a></code> object of the <code><a href=#document>Document</a></code>, using
60907
- the <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
60908
- the value of <var title="">state</var>. This event must bubble
60909
- but not be cancelable and has no default action.</dd>
61321
+ <dl class=switch><dt>If the <a href=#current-document-readiness>current document readiness</a> is set to the
61322
+ string "complete"</dt>
60910
61323
 
60911
- <dt>Otherwise</dt>
61324
+ <dd><p><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
61325
+ <code><a href=#window>Window</a></code> object of the <code><a href=#document>Document</a></code>, using
61326
+ the <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
61327
+ value of <var title="">state</var>. This event must bubble but
61328
+ not be cancelable and has no default action.</dd>
60912
61329
 
60913
- <dd><p>Let the <code><a href=#document>Document</a></code>'s <dfn id=pending-state-object>pending state
60914
- object</dfn> be <var title="">state</var>. (If there was already
60915
- a <a href=#pending-state-object>pending state object</a>, the previous one is
60916
- discarded.)</p>
61330
+ <dt>Otherwise</dt>
60917
61331
 
60918
- <p class=note>The event will then be fired just after the <code title=event-load>load</code> event.</dd>
61332
+ <dd><p>Let the <code><a href=#document>Document</a></code>'s <dfn id=pending-state-object>pending state
61333
+ object</dfn> be <var title="">state</var>. (If there was already
61334
+ a <a href=#pending-state-object>pending state object</a>, the previous one is
61335
+ discarded.)</p>
60919
61336
 
60920
- </dl></li>
61337
+ <p class=note>The event will then be fired just after the <code title=event-load>load</code> event.</dd>
60921
61338
 
60922
- </ol></li>
61339
+ </dl></li>
60923
61340
 
60924
61341
  <li><p>If <var title="">hash changed</var> is true, then
60925
61342
  <a href=#queue-a-task>queue a task</a> to fire a <code title=event-hashchange><a href=#event-hashchange>hashchange</a></code> event at the
@@ -61154,8 +61571,8 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
61154
61571
  false.</li>
61155
61572
 
61156
61573
  <li><p>Run any <a href=#unloading-document-cleanup-steps>unloading document cleanup steps</a> for
61157
- <code><a href=#document>Document</a></code> that are defined by this specification or any
61158
- other relevant specifications.</li>
61574
+ <code><a href=#document>Document</a></code> that are defined by this specification and
61575
+ <a href=#other-applicable-specifications>other applicable specifications</a>.</li>
61159
61576
 
61160
61577
  <li><p>If this algorithm was invoked by another instance of the
61161
61578
  "unload a document" algorithm (i.e. through the steps below that
@@ -61503,10 +61920,17 @@ clock.js</pre>
61503
61920
  namespace URL has the <a href=#same-origin>same origin</a> as <a href=#concept-appcache-manifest title=concept-appcache-manifest>the manifest</a>.</li>
61504
61921
 
61505
61922
  <li>Zero or more URLs that form the <dfn id=concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist
61506
- namespaces</dfn>.
61923
+ namespaces</dfn>: URLs, used as prefix match patterns, that the
61924
+ user agent will never load from the cache but will instead always
61925
+ attempt to obtain from the network.</li>
61507
61926
 
61508
61927
  <li>An <dfn id=concept-appcache-onlinewhitelist-wildcard title=concept-appcache-onlinewhitelist-wildcard>online whitelist
61509
- wildcard flag</dfn>, which is either <i title="">open</i> or <i title="">blocking</i>.</li>
61928
+ wildcard flag</dfn>, which is either <i title="">open</i>
61929
+ (indicating that any URL not listed as cached is to be implicitly
61930
+ treated as being in the <a href=#concept-appcache-onlinewhitelist title=concept-appcache-onlinewhitelist>online whitelist
61931
+ namespaces</a>) or <i title="">blocking</i> (indicating that
61932
+ URLs not listed explicitly in the manifest are to be treated as
61933
+ unavailable).</li>
61510
61934
 
61511
61935
  </ul><p>Each <a href=#application-cache>application cache</a> has a <dfn id=concept-appcache-completeness title=concept-appcache-completeness>completeness flag</dfn>, which is
61512
61936
  either <i>complete</i> or <i>incomplete</i>.</p>
@@ -62771,7 +63195,7 @@ NETWORK:
62771
63195
  <i>idle</i>.</li>
62772
63196
 
62773
63197
  <li><p>For each <a href=#concept-task title=concept-task>task</a> in <var title="">task list</var>, <a href=#queue-a-post-load-task title="queue a post-load
62774
- task">queue that task as a post-oad task</a>.</li>
63198
+ task">queue that task as a post-load task</a>.</li>
62775
63199
 
62776
63200
  </ol><p>The <dfn id=cache-failure-steps>cache failure steps</dfn> are as follows:</p>
62777
63201
 
@@ -63702,8 +64126,9 @@ NETWORK:
63702
64126
 
63703
64127
  <dt>Parsing</dt>
63704
64128
 
63705
- <dd><p>The <a href=#html-parser>HTML parser</a> tokenizing a single byte, and
63706
- then processing any resulting tokens, is a task.</dd>
64129
+ <dd><p>The <a href=#html-parser>HTML parser</a> tokenizing one or more bytes,
64130
+ and then processing any resulting tokens, is typically a
64131
+ task.</dd>
63707
64132
 
63708
64133
 
63709
64134
  <dt>Callbacks</dt>
@@ -64681,7 +65106,10 @@ interface <dfn id=windowtimers>WindowTimers</dfn> {
64681
65106
  from the <a href=#list-of-active-timeouts>list of active timeouts</a> of the
64682
65107
  <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
64683
65108
  where <var title="">handle</var> is the argument passed to the
64684
- method.</p>
65109
+ method, if any. (If <var title="">handle</var> does not identify an
65110
+ entry in the <a href=#list-of-active-timeouts>list of active timeouts</a> of the
65111
+ <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
65112
+ the method does nothing.)</p>
64685
65113
 
64686
65114
  <hr><p>The <dfn id=dom-windowtimers-setinterval title=dom-windowtimers-setInterval><code>setInterval()</code></dfn>
64687
65115
  method must run the following steps:
@@ -64735,7 +65163,10 @@ interface <dfn id=windowtimers>WindowTimers</dfn> {
64735
65163
  from the <a href=#list-of-active-intervals>list of active intervals</a> of the
64736
65164
  <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
64737
65165
  where <var title="">handle</var> is the argument passed to the
64738
- method.</p>
65166
+ method, if any. (If <var title="">handle</var> does not identify an
65167
+ entry in the <a href=#list-of-active-intervals>list of active intervals</a> of the
65168
+ <code><a href=#windowtimers>WindowTimers</a></code> object on which the method was invoked,
65169
+ the method does nothing.)</p>
64739
65170
 
64740
65171
  <hr><p>The <dfn id=method-context>method context</dfn>, when referenced by the algorithms
64741
65172
  in this section, is the object on which the method for which the
@@ -67594,9 +68025,9 @@ interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
67594
68025
 
67595
68026
  <pre>&lt;p&gt;What fruits do you like?&lt;/p&gt;
67596
68027
  &lt;ol ondragstart="dragStartHandler(event)"&gt;
67597
- &lt;li draggable data-value="fruit-apple"&gt;Apples&lt;/li&gt;
67598
- &lt;li draggable data-value="fruit-orange"&gt;Oranges&lt;/li&gt;
67599
- &lt;li draggable data-value="fruit-pear"&gt;Pears&lt;/li&gt;
68028
+ &lt;li draggable="true" data-value="fruit-apple"&gt;Apples&lt;/li&gt;
68029
+ &lt;li draggable="true" data-value="fruit-orange"&gt;Oranges&lt;/li&gt;
68030
+ &lt;li draggable="true" data-value="fruit-pear"&gt;Pears&lt;/li&gt;
67600
68031
  &lt;/ol&gt;
67601
68032
  &lt;script&gt;
67602
68033
  var internalDNDType = 'text/x-example'; // set this to something specific to your site
@@ -68585,7 +69016,13 @@ interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
68585
69016
 
68586
69017
  </ol></li>
68587
69018
 
68588
- </ol></div>
69019
+ </ol><p class=note>User agents are encouraged to consider how to react
69020
+ to drags near the edge of scrollable regions. For example, if a user
69021
+ drags a link to the bottom of the viewport on a long page, it might
69022
+ make sense to scroll the page so that the user can drop the link
69023
+ lower on the page.</p>
69024
+
69025
+ </div>
68589
69026
 
68590
69027
 
68591
69028
  <div class=impl>
@@ -69711,12 +70148,14 @@ v2 (well, really v0):
69711
70148
 
69712
70149
  </div>
69713
70150
 
70151
+
69714
70152
 
69715
70153
  </div><!--data-component-->
69716
70154
 
69717
70155
 
69718
70156
 
69719
70157
 
70158
+
69720
70159
  <div data-component="Web Messaging (editor: Ian Hickson)">
69721
70160
 
69722
70161
 
@@ -72325,8 +72764,7 @@ interface <dfn id=messageport>MessagePort</dfn> {
72325
72764
  these steps, we'll need to uncomment out the commented-out bits -->
72326
72765
 
72327
72766
  <li>If <var title="">node</var> is an element from the <a href=#mathml-namespace>MathML
72328
- namespace</a> or the <a href=#svg-namespace>SVG namespace</a>, then set the
72329
- <var title="">foreign</var> flag to true.</li>
72767
+ namespace</a> or the <a href=#svg-namespace>SVG namespace</a>, then set <var title="">foreign</var> to true.</li>
72330
72768
 
72331
72769
  <li>If <var title="">last</var> is true, then switch the
72332
72770
  <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inbody title="insertion mode: in
@@ -73741,8 +74179,8 @@ interface <dfn id=messageport>MessagePort</dfn> {
73741
74179
  <p>Otherwise, append the returned character token to the current
73742
74180
  attribute's value.</p>
73743
74181
 
73744
- <p>Finally, switch back to the attribute value state that you were
73745
- in when were switched into this state.</p>
74182
+ <p>Finally, switch back to the attribute value state that switched
74183
+ into this state.</p>
73746
74184
 
73747
74185
 
73748
74186
  <h5 id=after-attribute-value-(quoted)-state><span class=secno>10.2.4.42 </span><dfn>After attribute value (quoted) state</dfn></h5>
@@ -76673,14 +77111,12 @@ document.body.appendChild(text);
76673
77111
 
76674
77112
  <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
76675
77113
 
76676
- <p>If the <a href=#insertion-mode>insertion mode</a> is one of <a href=#parsing-main-intable title="insertion mode: in table">in table</a>", "<a href=#parsing-main-incaption title="insertion mode: in caption">in caption</a>", "<a href=#parsing-main-incolgroup title="insertion mode: in column group">in column group</a>",
76677
- "<a href=#parsing-main-intbody title="insertion mode: in table body">in table
76678
- body</a>", "<a href=#parsing-main-intr title="insertion mode: in row">in
76679
- row</a>", or "<a href=#parsing-main-intd title="insertion mode: in cell">in
76680
- cell</a>", then switch the <a href=#insertion-mode>insertion mode</a> to
76681
- "<a href=#parsing-main-inselectintable title="insertion mode: in select in table">in select in
76682
- table</a>". Otherwise, switch the <a href=#insertion-mode>insertion mode</a>
76683
- to "<a href=#parsing-main-inselect title="insertion mode: in select">in select</a>".</p>
77114
+ <p>If the <a href=#insertion-mode>insertion mode</a> is one of "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>", "<a href=#parsing-main-incaption title="insertion mode: in caption">in caption</a>", "<a href=#parsing-main-intbody title="insertion mode: in table body">in table body</a>",
77115
+ "<a href=#parsing-main-intr title="insertion mode: in row">in row</a>", or "<a href=#parsing-main-intd title="insertion mode: in cell">in cell</a>", then switch the
77116
+ <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inselectintable title="insertion mode: in
77117
+ select in table">in select in table</a>". Otherwise, switch the
77118
+ <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inselect title="insertion mode: in
77119
+ select">in select</a>".</p>
76684
77120
 
76685
77121
  </dd>
76686
77122
 
@@ -79706,6 +80142,7 @@ rt { display: ruby-text; }</pre>
79706
80142
  <code><a href=#the-br-element>br</a></code> elements with <code title=attr-br-clear><a href=#attr-br-clear>clear</a></code> attributes) in the manner
79707
80143
  described in the non-normative note to this effect in CSS2.1.</p>
79708
80144
  <!-- section 9.5.2 of CSS2.1 -->
80145
+ <!-- br { content: '\A'; } /* waiting for 'content' to apply to elements */ -->
79709
80146
 
79710
80147
  <p>The user agent is expected to hide <code><a href=#the-noscript-element>noscript</a></code> elements
79711
80148
  for whom <a href=#concept-n-script title=concept-n-script>scripting is enabled</a>,
@@ -79946,20 +80383,20 @@ p[align=justify], h1[align=justify], h2[align=justify], h3[align=justify],
79946
80383
  h4[align=justify], h5[align=justify], h6[align=justify] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
79947
80384
  text-align: justify;
79948
80385
  }
79949
- col[valign=top], thead[valign=top], tbody[valign=top],
79950
- tfoot[valign=top], tr[valign=top], td[valign=top], th[valign=top] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
80386
+ thead[valign=top], tbody[valign=top], tfoot[valign=top],
80387
+ tr[valign=top], td[valign=top], th[valign=top] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
79951
80388
  vertical-align: top;
79952
80389
  }
79953
- col[valign=middle], thead[valign=middle], tbody[valign=middle],
79954
- tfoot[valign=middle], tr[valign=middle], td[valign=middle], th[valign=middle] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
80390
+ thead[valign=middle], tbody[valign=middle], tfoot[valign=middle],
80391
+ tr[valign=middle], td[valign=middle], th[valign=middle] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
79955
80392
  vertical-align: middle;
79956
80393
  }
79957
- col[valign=bottom], thead[valign=bottom], tbody[valign=bottom],
79958
- tfoot[valign=bottom], tr[valign=bottom], td[valign=bottom], th[valign=bottom] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
80394
+ thead[valign=bottom], tbody[valign=bottom], tfoot[valign=bottom],
80395
+ tr[valign=bottom], td[valign=bottom], th[valign=bottom] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
79959
80396
  vertical-align: bottom;
79960
80397
  }
79961
- col[valign=baseline], thead[valign=baseline], tbody[valign=baseline],
79962
- tfoot[valign=baseline], tr[valign=baseline], td[valign=baseline], th[valign=baseline] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
80398
+ thead[valign=baseline], tbody[valign=baseline], tfoot[valign=baseline],
80399
+ tr[valign=baseline], td[valign=baseline], th[valign=baseline] { /* <a href=#case-insensitive-selector-exception>case-insensitive</a> */
79963
80400
  vertical-align: baseline;
79964
80401
  }</pre>
79965
80402
 
@@ -80406,8 +80843,8 @@ table[border] &gt; tfoot &gt; tr &gt; td, table[border] &gt; tfoot &gt; tr &gt;
80406
80843
  }</pre>
80407
80844
 
80408
80845
  <p>When rendering <code><a href=#the-li-element>li</a></code> elements, user agents are expected
80409
- to use the ordinal value of the <code><a href=#the-li-element>li</a></code> element to render
80410
- the counter in the list item marker.</p>
80846
+ to use the <a href=#ordinal-value>ordinal value</a> of the <code><a href=#the-li-element>li</a></code> element
80847
+ to render the counter in the list item marker.</p>
80411
80848
 
80412
80849
  <p>The <code><a href=#the-table-element>table</a></code> element's <code title=attr-table-border><a href=#attr-table-border>border</a></code> attribute <a href=#maps-to-the-pixel-length-property title="maps
80413
80850
  to the pixel length property">maps to the pixel length
@@ -82731,12 +83168,30 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
82731
83168
  that the user agent will expose the contents of that attribute as a
82732
83169
  tooltip.</p>
82733
83170
 
83171
+ <p>U+000A LINE FEED (LF) characters are expected to cause line
83172
+ breaks in the tooltip.</p>
83173
+
82734
83174
  <p>User agents are encouraged to make it possible to view tooltips
82735
83175
  without the use of a pointing device, since not all users are able
82736
83176
  to use pointing devices.</p>
82737
83177
 
82738
- <p>U+000A LINE FEED (LF) characters are expected to cause line
82739
- breaks in the tooltip.</p>
83178
+ <div class=example>
83179
+
83180
+ <p>For example, a visual user agent could make elements with a
83181
+ <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute focusable, and
83182
+ could make any focused element with a <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute show its tooltip under
83183
+ the element while the element has focus. This would allow a user to
83184
+ tab around the document to find all the advisory text.</p>
83185
+
83186
+ </div>
83187
+
83188
+ <div class=example>
83189
+
83190
+ <p>As another example, a screen reader could provide an audio cue
83191
+ when reading an element with a tooltip, with an associated key to
83192
+ read the last tooltip for which a cue was played.</p>
83193
+
83194
+ </div>
82740
83195
 
82741
83196
 
82742
83197
  <h4 id=editing-hosts><span class=secno>12.6.3 </span>Editing hosts</h4>
@@ -83234,7 +83689,7 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
83234
83689
  attribute long <a href=#dom-marquee-loop title=dom-marquee-loop>loop</a>;
83235
83690
  attribute unsigned long <a href=#dom-marquee-scrollamount title=dom-marquee-scrollamount>scrollAmount</a>;
83236
83691
  attribute unsigned long <a href=#dom-marquee-scrolldelay title=dom-marquee-scrollDelay>scrollDelay</a>;
83237
- attribute DOMString <a href=#dom-marquee-truespeed title=dom-marquee-trueSpeed>trueSpeed</a>;
83692
+ attribute boolean <a href=#dom-marquee-truespeed title=dom-marquee-trueSpeed>trueSpeed</a>;
83238
83693
  attribute unsigned long <a href=#dom-marquee-vspace title=dom-marquee-vspace>vspace</a>;
83239
83694
  attribute DOMString <a href=#dom-marquee-width title=dom-marquee-width>width</a>;
83240
83695
 
@@ -83292,17 +83747,8 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
83292
83747
  </table><p>The <i>missing value default</i> is the <a href=#attr-marquee-direction-left title=attr-marquee-direction-left>left</a> state.</p>
83293
83748
 
83294
83749
  <hr><p>The <dfn id=attr-marquee-truespeed title=attr-marquee-truespeed><code>truespeed</code></dfn> content
83295
- attribute on <code><a href=#the-marquee-element>marquee</a></code> elements is an <a href=#enumerated-attribute>enumerated
83296
- attribute</a> with the following keywords (all
83297
- non-conforming):</p>
83298
-
83299
- <table><thead><tr><th>Keyword
83300
- <th>State
83301
- <tbody><tr><td><code title="">true</code>
83302
- <td><dfn id=attr-marquee-truespeed-true title=attr-marquee-truespeed-true>true</dfn>
83303
- <tr><td><code title="">false</code>
83304
- <td><dfn id=attr-marquee-truespeed-false title=attr-marquee-truespeed-false>false</dfn>
83305
- </table><p>The <i>missing value default</i> is the <a href=#attr-marquee-truespeed-false title=attr-marquee-truespeed-false>false</a> state.</p>
83750
+ attribute on <code><a href=#the-marquee-element>marquee</a></code> elements is a <a href=#boolean-attribute>boolean
83751
+ attribute</a>.</p>
83306
83752
 
83307
83753
  <hr><p>A <code><a href=#the-marquee-element>marquee</a></code> element has a <dfn id=marquee-scroll-interval>marquee scroll
83308
83754
  interval</dfn>, which is obtained as follows:</p>
@@ -83311,8 +83757,7 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
83311
83757
  parsing its value using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative
83312
83758
  integers</a> does not return an error, then let <var title="">delay</var> be the parsed value. Otherwise, let <var title="">delay</var> be 85.</li>
83313
83759
 
83314
- <li><p>If the element does not have a <code title=attr-marquee-truespeed><a href=#attr-marquee-truespeed>truespeed</a></code> attribute, or if it
83315
- does but that attribute is in the <a href=#attr-marquee-truespeed-false title=attr-marquee-truespeed-false>false</a> state, and the
83760
+ <li><p>If the element does not have a <code title=attr-marquee-truespeed><a href=#attr-marquee-truespeed>truespeed</a></code> attribute, and the
83316
83761
  <var title="">delay</var> value is less than 60, then let <var title="">delay</var> be 60 instead.</li>
83317
83762
 
83318
83763
  <li><p>The <a href=#marquee-scroll-interval>marquee scroll interval</a> is <var title="">delay</var>, interpreted in milliseconds.</li>
@@ -83533,6 +83978,7 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
83533
83978
  attribute DOMString <a href=#dom-frame-scrolling title=dom-frame-scrolling>scrolling</a>;
83534
83979
  attribute DOMString <a href=#dom-frame-src title=dom-frame-src>src</a>;
83535
83980
  readonly attribute Document <a href=#dom-frame-contentdocument title=dom-frame-contentDocument>contentDocument</a>;
83981
+ readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-frame-contentwindow title=dom-frame-contentWindow>contentWindow</a>;
83536
83982
  };</pre>
83537
83983
 
83538
83984
  <p>The <dfn id=dom-frame-name title=dom-frame-name><code>name</code></dfn>, <dfn id=dom-frame-scrolling title=dom-frame-scrolling><code>scrolling</code></dfn>, and <dfn id=dom-frame-src title=dom-frame-src><code>src</code></dfn> IDL attributes of the
@@ -83568,12 +84014,18 @@ time[datetime] { binding: <i title="">time</i>; }</pre>
83568
84014
  the <code><a href=#frame>frame</a></code> element's <a href=#nested-browsing-context>nested browsing
83569
84015
  context</a>.</p>
83570
84016
 
84017
+ <p>The <dfn id=dom-frame-contentwindow title=dom-frame-contentWindow><code>contentWindow</code></dfn>
84018
+ IDL attribute must return the <code><a href=#windowproxy>WindowProxy</a></code> object of the
84019
+ <code><a href=#frame>frame</a></code> element's <a href=#nested-browsing-context>nested browsing
84020
+ context</a>.</p>
84021
+
83571
84022
 
83572
84023
 
83573
84024
  <h4 id=other-elements,-attributes-and-apis><span class=secno>13.3.4 </span>Other elements, attributes and APIs</h4> <!-- alphabetical by name and attribute -->
83574
84025
 
83575
84026
  <p>User agents must treat <code><a href=#acronym>acronym</a></code> elements in a manner
83576
- equivalent to <code><a href=#the-abbr-element>abbr</a></code> elements.</p>
84027
+ equivalent to <code><a href=#the-abbr-element>abbr</a></code> elements in terms of semantics and
84028
+ for purposes of rendering.</p>
83577
84029
 
83578
84030
  <hr><pre class=idl>[Supplemental]
83579
84031
  interface <a href=#htmlanchorelement>HTMLAnchorElement</a> {
@@ -83701,7 +84153,8 @@ interface <a href=#htmltablecolelement>HTMLTableColElement</a> {
83701
84153
  attribute.</p>
83702
84154
 
83703
84155
  <hr><p>User agents must treat <code><a href=#dir>dir</a></code> elements in a manner
83704
- equivalent to <code><a href=#the-ul-element>ul</a></code> elements.</p>
84156
+ equivalent to <code><a href=#the-ul-element>ul</a></code> elements in terms of semantics and for
84157
+ purposes of rendering.</p>
83705
84158
 
83706
84159
  <p>The <code><a href=#dir>dir</a></code> element must implement the
83707
84160
  <code><a href=#htmldirectoryelement>HTMLDirectoryElement</a></code> interface.</p>
@@ -83898,7 +84351,8 @@ interface <a href=#htmllinkelement>HTMLLinkElement</a> {
83898
84351
  respective content attributes of the same name.</p>
83899
84352
 
83900
84353
  <hr><p>User agents must treat <code><a href=#listing>listing</a></code> elements in a manner
83901
- equivalent to <code><a href=#the-pre-element>pre</a></code> elements.</p>
84354
+ equivalent to <code><a href=#the-pre-element>pre</a></code> elements in terms of semantics and
84355
+ for purposes of rendering.</p>
83902
84356
 
83903
84357
  <hr><pre class=idl>[Supplemental]
83904
84358
  interface <a href=#htmlmenuelement>HTMLMenuElement</a> {
@@ -84015,7 +84469,8 @@ interface <a href=#htmlparamelement>HTMLParamElement</a> {
84015
84469
  <a href=#reflect>reflect</a> the element's <code title=attr-param-valuetype><a href=#attr-param-valuetype>valuetype</a></code> content attribute.</p>
84016
84470
 
84017
84471
  <hr><p>User agents must treat <code><a href=#plaintext>plaintext</a></code> elements in a
84018
- manner equivalent to <code><a href=#the-pre-element>pre</a></code> elements.</p>
84472
+ manner equivalent to <code><a href=#the-pre-element>pre</a></code> elements in terms of semantics and
84473
+ for purposes of rendering.</p>
84019
84474
 
84020
84475
  <hr><pre class=idl>[Supplemental]
84021
84476
  interface <a href=#htmlpreelement>HTMLPreElement</a> {
@@ -84180,7 +84635,8 @@ interface <a href=#htmlulistelement>HTMLUListElement</a> {
84180
84635
  content attributes of the same name.</p>
84181
84636
 
84182
84637
  <hr><p>User agents must treat <code><a href=#xmp>xmp</a></code> elements in a manner
84183
- equivalent to <code><a href=#the-pre-element>pre</a></code> elements.</p>
84638
+ equivalent to <code><a href=#the-pre-element>pre</a></code> elements in terms of semantics and
84639
+ for purposes of rendering.</p>
84184
84640
 
84185
84641
  <hr><p>The <code><a href=#bgsound>bgsound</a></code>, <code><a href=#isindex-0>isindex</a></code>,
84186
84642
  <code><a href=#multicol>multicol</a></code>, <code><a href=#nextid>nextid</a></code>, <code><a href=#rb>rb</a></code>, and
@@ -84703,7 +85159,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
84703
85159
  <dt>Optional parameters:</dt>
84704
85160
  <dd>No parameters</dd>
84705
85161
  <dt>Encoding considerations:</dt>
84706
- <dd>Always UTF-8.</dd>
85162
+ <dd>Must always be UTF-8.</dd>
84707
85163
  <dt>Security considerations:</dt>
84708
85164
  <dd>
84709
85165
  <p>Timed track files themselves pose no immediate risk unless
@@ -84716,8 +85172,9 @@ interface <a href=#htmldocument>HTMLDocument</a> {
84716
85172
  </dd>
84717
85173
  <dt>Interoperability considerations:</dt>
84718
85174
  <dd>
84719
- Rules for processing both conforming and non-conforming content
84720
- are defined in this specification.
85175
+ <p>Rules for processing both conforming and non-conforming content
85176
+ are defined in this specification.</p>
85177
+ <p>Some legacy files violate the requirement to use UTF-8.</p>
84721
85178
  </dd>
84722
85179
  <dt>Published specification:</dt>
84723
85180
  <dd>
@@ -86423,7 +86880,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86423
86880
  <tr><th> <code title="">contextmenu</code>
86424
86881
  <td> <a href=#attr-contextmenu title=attr-contextmenu>HTML elements</a>
86425
86882
  <td> The element's context menu
86426
- <td> ID*
86883
+ <td> <a href=#concept-id title=concept-id>ID</a>*
86427
86884
  <tr><th> <code title="">controls</code>
86428
86885
  <td> <code title=attr-media-controls><a href=#attr-media-controls>audio</a></code>;
86429
86886
  <code title=attr-media-controls><a href=#attr-media-controls>video</a></code>
@@ -86440,8 +86897,8 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86440
86897
  <tr><th> <code title="">datetime</code>
86441
86898
  <td> <code title=attr-mod-datetime><a href=#attr-mod-datetime>del</a></code>;
86442
86899
  <code title=attr-mod-datetime><a href=#attr-mod-datetime>ins</a></code>
86443
- <td> Time and date of the change
86444
- <td> <a href=#valid-global-date-and-time-string>Valid global date and time string</a>
86900
+ <td> Date and (optionally) time of the change
86901
+ <td> <a href=#valid-date-string-with-optional-time>Valid date string with optional time</a>
86445
86902
  <tr><th> <code title="">datetime</code>
86446
86903
  <td> <code title=attr-time-datetime><a href=#attr-time-datetime>time</a></code>
86447
86904
  <td> Value of the element
@@ -86477,7 +86934,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86477
86934
  <tr><th> <code title="">for</code>
86478
86935
  <td> <code title=attr-label-for><a href=#attr-label-for>label</a></code>
86479
86936
  <td> Associate the label with form control
86480
- <td> ID*
86937
+ <td> <a href=#concept-id title=concept-id>ID</a>*
86481
86938
  <tr><th> <code title="">for</code>
86482
86939
  <td> <code title=attr-output-for><a href=#attr-output-for>output</a></code>
86483
86940
  <td> Specifies controls from which the output was calculated
@@ -86495,7 +86952,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86495
86952
  <code title=attr-fae-form><a href=#attr-fae-form>select</a></code>;
86496
86953
  <code title=attr-fae-form><a href=#attr-fae-form>textarea</a></code>
86497
86954
  <td> Associates the control with a <code><a href=#the-form-element>form</a></code> element
86498
- <td> ID*
86955
+ <td> <a href=#concept-id title=concept-id>ID</a>*
86499
86956
  <tr><th> <code title="">formaction</code>
86500
86957
  <td> <code title=attr-fs-formaction><a href=#attr-fs-formaction>button</a></code>;
86501
86958
  <code title=attr-fs-formaction><a href=#attr-fs-formaction>input</a></code>
@@ -86589,7 +87046,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86589
87046
  <td> <a href=#property-names>Property names</a> of a microdata item
86590
87047
  <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a> consisting of <a href=#absolute-url title="absolute URL">valid absolute URLs</a>, <a href=#defined-property-name title="defined property name">defined property names</a>, or text*
86591
87048
  <tr><th> <code title="">itemref</code>
86592
- <td> <code title=attr-itemref><a href=#attr-itemref>itemref</a></code>
87049
+ <td> <a href=#attr-itemref title=attr-itemref>HTML elements</a>
86593
87050
  <td> Referenced elements
86594
87051
  <td> <a href=#unordered-set-of-unique-space-separated-tokens>Unordered set of unique space-separated tokens</a> consisting of IDs*
86595
87052
  <tr><th> <code title="">itemscope</code>
@@ -86632,7 +87089,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86632
87089
  <tr><th> <code title="">list</code>
86633
87090
  <td> <code title=attr-input-list><a href=#attr-input-list>input</a></code>
86634
87091
  <td> List of autocomplete options
86635
- <td> ID*
87092
+ <td> <a href=#concept-id title=concept-id>ID</a>*
86636
87093
  <tr><th> <code title="">loop</code>
86637
87094
  <td> <code title=attr-media-loop><a href=#attr-media-loop>audio</a></code>;
86638
87095
  <code title=attr-media-loop><a href=#attr-media-loop>video</a></code>
@@ -86870,7 +87327,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86870
87327
  <!--TT-->
86871
87328
  <tr><th> <code title="">start</code>
86872
87329
  <td> <code title=attr-ol-start><a href=#attr-ol-start>ol</a></code>
86873
- <td> Ordinal value of the first item
87330
+ <td> <a href=#ordinal-value>Ordinal value</a> of the first item
86874
87331
  <td> <a href=#valid-integer>Valid integer</a>
86875
87332
  <tr><th> <code title="">step</code>
86876
87333
  <td> <code title=attr-input-step><a href=#attr-input-step>input</a></code>
@@ -86974,7 +87431,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
86974
87431
  <td> varies*
86975
87432
  <tr><th> <code title="">value</code>
86976
87433
  <td> <code title=attr-li-value><a href=#attr-li-value>li</a></code>
86977
- <td> Ordinal value of the list item
87434
+ <td> <a href=#ordinal-value>Ordinal value</a> of the list item
86978
87435
  <td> <a href=#valid-integer>Valid integer</a>
86979
87436
  <tr><th> <code title="">value</code>
86980
87437
  <td> <code title=attr-meter-value><a href=#attr-meter-value>meter</a></code>;
@@ -88830,7 +89287,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88830
89287
  Leif Halvard Silli,
88831
89288
  Lenny Domnitser,
88832
89289
  Leons Petrazickis,
88833
- Lobotom Dysmon<!-- may be the same as Thomas Bouchardon -->,
89290
+ Lobotom Dysmon,
88834
89291
  Logan<!-- on moz irc -->,
88835
89292
  Loune,
88836
89293
  Luke Kenneth Casson Leighton,
@@ -88853,6 +89310,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88853
89310
  Martin Thomson,
88854
89311
  Masataka Yakura,
88855
89312
  Mathieu Henri,
89313
+ Matias Larsson,
88856
89314
  Matt Schmidt,
88857
89315
  Matt Wright,
88858
89316
  Matthew Gregan,
@@ -88879,6 +89337,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88879
89337
  Michelangelo De Simone,
88880
89338
  Michiel van der Blonk,
88881
89339
  Mihai &#350;ucan<!-- from ROBO Design -->,
89340
+ Mihai Parparita,
88882
89341
  Mike Brown,
88883
89342
  Mike Dierken<!-- S. Mike Dierken -->,
88884
89343
  Mike Dixon,
@@ -88899,10 +89358,12 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88899
89358
  Nicolas Gallagher,
88900
89359
  Noah Mendelsohn,
88901
89360
  Noah Slater,
89361
+ NoozNooz42,
88902
89362
  Ojan Vafai,
88903
89363
  Olaf Hoffmann,
88904
89364
  Olav Junker Kj&aelig;r,
88905
89365
  Old&#345;ich Vete&scaron;n&iacute;k,
89366
+ Oli Studholme,
88906
89367
  Oliver Hunt,
88907
89368
  Oliver Rigby,
88908
89369
  Olivier Gendrin,
@@ -88998,8 +89459,8 @@ interface <a href=#htmldocument>HTMLDocument</a> {
88998
89459
  &#30000;&#26449;&#20581;&#20154; (TAMURA Kent),
88999
89460
  Ted Mielczarek,
89000
89461
  Terrence Wood,
89001
- Thomas Bouchardon<!-- may be the same as Lobotom Dysmon -->,
89002
89462
  Thomas Broyer,
89463
+ Thomas Koetter,
89003
89464
  Thomas O'Connor,
89004
89465
  Tim Altman,
89005
89466
  Tim Johansson,
@@ -89023,6 +89484,7 @@ interface <a href=#htmldocument>HTMLDocument</a> {
89023
89484
  Wojciech Mach,
89024
89485
  Wolfram Kriesing,
89025
89486
  Yang Chen,
89487
+ Ye-Kui Wang,
89026
89488
  Yehuda Katz,
89027
89489
  Yi-An Huang,
89028
89490
  Yngve Nysaeter Pettersen,