[html5] r8125 - [e] (0) Cleanup Affected topics: DOM APIs, HTML, HTML Syntax and Parsing
whatwg at whatwg.org
whatwg at whatwg.org
Sat Aug 3 09:05:04 PDT 2013
Author: ianh
Date: 2013-08-03 09:04:58 -0700 (Sat, 03 Aug 2013)
New Revision: 8125
Modified:
complete.html
index
source
Log:
[e] (0) Cleanup
Affected topics: DOM APIs, HTML, HTML Syntax and Parsing
Modified: complete.html
===================================================================
--- complete.html 2013-08-02 21:48:03 UTC (rev 8124)
+++ complete.html 2013-08-03 16:04:58 UTC (rev 8125)
@@ -256,7 +256,7 @@
<header class=head id=head><p><a href=http://www.whatwg.org/ class=logo><img width=101 src=/images/logo alt=WHATWG height=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
- <h2 class="no-num no-toc">Living Standard — Last Updated 2 August 2013</h2>
+ <h2 class="no-num no-toc">Living Standard — Last Updated 3 August 2013</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>
@@ -12266,11 +12266,10 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>A <code><a href=#the-head-element>head</a></code> element followed by a <code><a href=#the-body-element>body</a></code> element.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
- <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-html-element>html</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted
+ if the first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-html-element>html</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> — <a href=#concept-appcache-manifest title=concept-appcache-manifest>Application cache manifest</a></dd>
@@ -12340,12 +12339,11 @@
<dd>If the document is <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a> or if title information is available from a higher-level protocol: Zero or more elements of <a href=#metadata-content>metadata content</a>, of which no more than one is a <code><a href=#the-title-element>title</a></code> element.</dd>
<dd>Otherwise: One or more elements of <a href=#metadata-content>metadata content</a>, of which exactly one is a <code><a href=#the-title-element>title</a></code> element.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- element is empty, or if the first thing inside the
- <code><a href=#the-head-element>head</a></code> element is an element.</dd>
- <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-head-element>head</a></code> element is not
- immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-head-element>head</a></code> element is an
+ element.</dd>
+ <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-head-element>head</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -15556,17 +15554,15 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code>
- element is not a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the first thing
- inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or
- <code><a href=#the-style-element>style</a></code> element. <!-- Note that even if the </head> end
- tag is present, the parser makes <style> and <script> elements
- between </head> and <body> end up in the <head> instead of implying
- the <body> --></dd>
- <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-body-element>body</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code> element is not a
+ <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the
+ first thing inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or <code><a href=#the-style-element>style</a></code>
+ element. <!-- Note that even if the </head> end tag is present, the parser makes <style> and
+ <script> elements between </head> and <body> end up in the <head> instead of implying the <body>
+ --></dd>
+ <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-body-element>body</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=handler-window-onafterprint><a href=#handler-window-onafterprint>onafterprint</a></code></dd>
@@ -17700,19 +17696,15 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#phrasing-content>Phrasing content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-p-element>p</a></code> element is
- immediately followed by an <code><a href=#the-address-element>address</a></code>,
- <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>,
- <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
- <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
- <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>,
- <code><a href=#the-nav-element>nav</a></code>, <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>,
- <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or <code><a href=#the-ul-element>ul</a></code>,
- element, or if there is no more content in the parent element and
- the parent element is not an <code><a href=#the-a-element>a</a></code> element.</dd>
+ <dd>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-p-element>p</a></code> element is immediately followed by an <code><a href=#the-address-element>address</a></code>, <code><a href=#the-article-element>article</a></code>,
+ <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>, <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
+ <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
+ <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>, <code><a href=#the-nav-element>nav</a></code>,
+ <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>, <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or
+ <code><a href=#the-ul-element>ul</a></code>, element, or if there is no more content in the parent element and the parent
+ element is not an <code><a href=#the-a-element>a</a></code> element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -18494,10 +18486,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-li-element>li</a></code> element is
- immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there
- is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-li-element>li</a></code> element is immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there is
+ no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd>If the element is a child of an <code><a href=#the-ol-element>ol</a></code> element: <code title=attr-li-value><a href=#attr-li-value>value</a></code> — <a href=#ordinal-value>Ordinal value</a> of the list item</dd>
@@ -18756,9 +18747,8 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, <a href=#sectioning-content>sectioning content</a>, or <a href=#heading-content>heading content</a> descendants.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-dt-element>dt</a></code> element is
- immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
+ <dd>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-dt-element>dt</a></code> element is immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
<code><a href=#the-dd-element>dd</a></code> element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
@@ -18804,11 +18794,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-dd-element>dd</a></code> element is
- immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
- <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the
- parent element.</dd>
+ <dd>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-dd-element>dd</a></code> element is immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
+ <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -21544,10 +21532,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#phrasing-content>Phrasing content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-rt-element>rt</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-rt-element>rt</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -21574,10 +21561,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#phrasing-content>Phrasing content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-rp-element>rp</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-rp-element>rp</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -26143,45 +26129,38 @@
// <a href="#HTMLParamElement-partial">also has obsolete members</a>
};</pre>
</dd>
- </dl><!--TOPIC:HTML--><!--CLEANUP--><p>The <code><a href=#the-param-element>param</a></code> element defines parameters for plugins
- invoked by <code><a href=#the-object-element>object</a></code> elements. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
+ </dl><!--TOPIC:HTML--><p>The <code><a href=#the-param-element>param</a></code> element defines parameters for plugins invoked by <code><a href=#the-object-element>object</a></code>
+ elements. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
- <p>The <dfn id=attr-param-name title=attr-param-name><code>name</code></dfn>
- attribute gives the name of the parameter.</p>
+ <p>The <dfn id=attr-param-name title=attr-param-name><code>name</code></dfn> attribute gives the name of the
+ parameter.</p>
- <p>The <dfn id=attr-param-value title=attr-param-value><code>value</code></dfn>
- attribute gives the value of the parameter.</p>
+ <p>The <dfn id=attr-param-value title=attr-param-value><code>value</code></dfn> attribute gives the value of the
+ parameter.</p>
<p>Both attributes must be present. They may have any value.</p>
<div class=impl>
- <p>If both attributes are present, and if the parent element of the
- <code><a href=#the-param-element>param</a></code> is an <code><a href=#the-object-element>object</a></code> element, then the
- element defines a <dfn id=concept-param-parameter title=concept-param-parameter>parameter</dfn> with the given
- name-value pair.</p>
+ <p>If both attributes are present, and if the parent element of the <code><a href=#the-param-element>param</a></code> is an
+ <code><a href=#the-object-element>object</a></code> element, then the element defines a <dfn id=concept-param-parameter title=concept-param-parameter>parameter</dfn> with the given name-value pair.</p>
- <p>If either the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> defined by a
- <code><a href=#the-param-element>param</a></code> element that is the child of an
- <code><a href=#the-object-element>object</a></code> element that <a href=#represents>represents</a> an
- instantiated <a href=#plugin>plugin</a> changes, and if that
- <a href=#plugin>plugin</a> is communicating with the user agent using an
- API that features the ability to update the <a href=#plugin>plugin</a> when
- the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> so changes, then
- the user agent must appropriately exercise that ability to notify
- the <a href=#plugin>plugin</a> of the change.</p>
+ <p>If either the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> defined
+ by a <code><a href=#the-param-element>param</a></code> element that is the child of an <code><a href=#the-object-element>object</a></code> element that
+ <a href=#represents>represents</a> an instantiated <a href=#plugin>plugin</a> changes, and if that
+ <a href=#plugin>plugin</a> is communicating with the user agent using an API that features the ability to
+ update the <a href=#plugin>plugin</a> when the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> so changes, then the user agent must
+ appropriately exercise that ability to notify the <a href=#plugin>plugin</a> of the change.</p>
- <p>The IDL attributes <dfn id=dom-param-name title=dom-param-name><code>name</code></dfn> and <dfn id=dom-param-value title=dom-param-value><code>value</code></dfn> must both
- <a href=#reflect>reflect</a> the respective content attributes of the same
- name.</p>
+ <p>The IDL attributes <dfn id=dom-param-name title=dom-param-name><code>name</code></dfn> and <dfn id=dom-param-value title=dom-param-value><code>value</code></dfn> must both <a href=#reflect>reflect</a> the respective
+ content attributes of the same name.</p>
</div>
<div class=example>
- <p>The following example shows how the <code><a href=#the-param-element>param</a></code> element
- can be used to pass a parameter to a plugin, in this case the O3D
- plugin.</p>
+ <p>The following example shows how the <code><a href=#the-param-element>param</a></code> element can be used to pass a parameter
+ to a plugin, in this case the O3D plugin.</p>
<pre><!DOCTYPE HTML>
<html lang="en">
@@ -26253,15 +26232,13 @@
attribute DOMString <a href=#dom-video-poster title=dom-video-poster>poster</a>;
};</pre>
</dd>
- </dl><!--TOPIC:HTML--><p>A <code><a href=#the-video-element>video</a></code> element is used for playing videos or
- movies, and audio files with captions.</p>
+ </dl><!--TOPIC:HTML--><p>A <code><a href=#the-video-element>video</a></code> element is used for playing videos or movies, and audio files with
+ captions.</p>
- <p>Content may be provided inside the <code><a href=#the-video-element>video</a></code>
- element<span class=impl>. User agents should not show this content
- to the user</span>; it is intended for older Web browsers which do
- not support <code><a href=#the-video-element>video</a></code>, so that legacy video plugins can be
- tried, or to show text to the users of these older browsers informing
- them of how to access the video contents.</p>
+ <p>Content may be provided inside the <code><a href=#the-video-element>video</a></code> element<span class=impl>. User agents
+ should not show this content to the user</span>; it is intended for older Web browsers which do
+ not support <code><a href=#the-video-element>video</a></code>, so that legacy video plugins can be tried, or to show text to the
+ users of these older browsers informing them of how to access the video contents.</p>
<p class=note>In particular, this content is not intended to address accessibility concerns. To
make video content accessible to the partially sighted, the blind, the hard-of-hearing, the deaf,
@@ -26277,21 +26254,17 @@
users who would rather not use a media element at all, transcripts or other textual alternatives
can be provided by simply linking to them in the prose near the <code><a href=#the-video-element>video</a></code> element. <a href=#refsWEBVTT>[WEBVTT]</a></p>
- <p>The <code><a href=#the-video-element>video</a></code> element is a <a href=#media-element>media element</a>
- whose <a href=#media-data>media data</a> is ostensibly video data, possibly
- with associated audio data.</p>
+ <p>The <code><a href=#the-video-element>video</a></code> element is a <a href=#media-element>media element</a> whose <a href=#media-data>media data</a> is
+ ostensibly video data, possibly with associated audio data.</p>
- <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>, <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>,
- <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>,
- <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>,
- <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
+ <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>,
+ <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>, <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>, <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>, <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code>
+ attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
elements</a>.</p>
- <p>The <dfn id=attr-video-poster title=attr-video-poster><code>poster</code></dfn>
- attribute gives the address of an image file that the user agent can
- show while no video data is available. The attribute, if present,
- must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
- spaces</a>.</p>
+ <p>The <dfn id=attr-video-poster title=attr-video-poster><code>poster</code></dfn> attribute gives the address of an
+ image file that the user agent can show while no video data is available. The attribute, if
+ present, must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by spaces</a>.</p>
<div class=impl>
@@ -26300,23 +26273,20 @@
value of the element's <a href=#show-poster-flag>show poster flag</a>):</p> <!-- thus it is unaffected by changes
to the base URL. -->
- <ol><li><p>If there is an existing instance of this algorithm running
- for this <code><a href=#the-video-element>video</a></code> element, abort that instance of this
- algorithm without changing the <a href=#poster-frame>poster frame</a>.</li>
+ <ol><li><p>If there is an existing instance of this algorithm running for this <code><a href=#the-video-element>video</a></code>
+ element, abort that instance of this algorithm without changing the <a href=#poster-frame>poster
+ frame</a>.</li>
- <li><p>If the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code>
- attribute's value is the empty string or if the attribute is
- absent, then there is no <a href=#poster-frame>poster frame</a>; abort these
+ <li><p>If the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute's value is the empty string
+ or if the attribute is absent, then there is no <a href=#poster-frame>poster frame</a>; abort these
steps.</li>
- <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute's value relative
- to the element. If this fails, then there is no <a href=#poster-frame>poster
- frame</a>; abort these steps.</li>
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute's value relative to the element. If this fails,
+ then there is no <a href=#poster-frame>poster frame</a>; abort these steps.</li>
- <li><p><a href=#fetch>Fetch</a><!--FETCH--> the resulting <a href=#absolute-url>absolute
- URL</a>, from the element's <code><a href=#document>Document</a></code>'s
- <a href=#origin>origin</a>. This must <a href=#delay-the-load-event>delay the load event</a> of
- the element's document.</li>
+ <li><p><a href=#fetch>Fetch</a><!--FETCH--> the resulting <a href=#absolute-url>absolute URL</a>, from the element's
+ <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a>. This must <a href=#delay-the-load-event>delay the load event</a> of the
+ element's document.</li>
<!-- could define how to sniff for an image here -->
@@ -26407,44 +26377,34 @@
</dl><div class=impl>
- <p>The <dfn id=concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic
- width</dfn> and <dfn id=concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</dfn> of the
- <a href=#media-resource>media resource</a> are the dimensions of the resource in
- CSS pixels after taking into account the resource's dimensions,
- aspect ratio, clean aperture, resolution, and so forth, as defined
- for the format used by the resource. If an anamorphic format does
- not define how to apply the aspect ratio to the video data's
- dimensions to obtain the "correct" dimensions, then the user agent
- must apply the ratio by increasing one dimension and leaving the
- other unchanged.</p>
+ <p>The <dfn id=concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</dfn> and <dfn id=concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</dfn> of the <a href=#media-resource>media resource</a>
+ are the dimensions of the resource in CSS pixels after taking into account the resource's
+ dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used
+ by the resource. If an anamorphic format does not define how to apply the aspect ratio to the
+ video data's dimensions to obtain the "correct" dimensions, then the user agent must apply the
+ ratio by increasing one dimension and leaving the other unchanged.</p>
- <p>The <dfn id=dom-video-videowidth title=dom-video-videoWidth><code>videoWidth</code></dfn> IDL
- attribute must return the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a> of the
- video in CSS pixels. The <dfn id=dom-video-videoheight title=dom-video-videoHeight><code>videoHeight</code></dfn> IDL
- attribute must return the <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a> of
- the video in CSS pixels. If the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then the
- attributes must return 0.</p>
+ <p>The <dfn id=dom-video-videowidth title=dom-video-videoWidth><code>videoWidth</code></dfn> IDL attribute must return
+ the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a> of the video in CSS pixels.
+ The <dfn id=dom-video-videoheight title=dom-video-videoHeight><code>videoHeight</code></dfn> IDL attribute must return
+ the <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a> of the video in CSS
+ pixels. If the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then the attributes must return 0.</p>
</div>
- <p>The <code><a href=#the-video-element>video</a></code> element supports <a href=#dimension-attributes>dimension
- attributes</a>.</p>
+ <p>The <code><a href=#the-video-element>video</a></code> element supports <a href=#dimension-attributes>dimension attributes</a>.</p>
<div class=impl>
- <p>In the absence of style rules to the contrary, video content
- should be rendered inside the element's playback area such that the
- video content is shown centered in the playback area at the largest
- possible size that fits completely within it, with the video
- content's aspect ratio being preserved. Thus, if the aspect ratio of
- the playback area does not match the aspect ratio of the video, the
- video will be shown letterboxed or pillarboxed. Areas of the
- element's playback area that do not contain the video represent
- nothing.</p>
+ <p>In the absence of style rules to the contrary, video content should be rendered inside the
+ element's playback area such that the video content is shown centered in the playback area at the
+ largest possible size that fits completely within it, with the video content's aspect ratio being
+ preserved. Thus, if the aspect ratio of the playback area does not match the aspect ratio of the
+ video, the video will be shown letterboxed or pillarboxed. Areas of the element's playback area
+ that do not contain the video represent nothing.</p>
- <p class=note>In user agents that implement CSS, the above
- requirement can be implemented by using the <a href=#video-object-fit>style rule suggested in the rendering
- section</a>.</p>
+ <p class=note>In user agents that implement CSS, the above requirement can be implemented by
+ using the <a href=#video-object-fit>style rule suggested in the rendering section</a>.</p>
<p>The intrinsic width of a <code><a href=#the-video-element>video</a></code> element's playback area is the intrinsic width of
the <a href=#poster-frame>poster frame</a>, if that is available and the element currently
@@ -26459,36 +26419,29 @@
<p>The <a href=#default-object-size>default object size</a> is a width of 300 CSS pixels and a height of 150 CSS
pixels. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
- <hr><p>User agents should provide controls to enable or disable the
- display of closed captions, audio description tracks, and other
- additional data associated with the video stream, though such
- features should, again, not interfere with the page's normal
- rendering.</p>
+ <hr><p>User agents should provide controls to enable or disable the display of closed captions, audio
+ description tracks, and other additional data associated with the video stream, though such
+ features should, again, not interfere with the page's normal rendering.</p>
- <p>User agents may allow users to view the video content in manners
- more suitable to the user (e.g. full-screen or in an independent
- resizable window). As for the other user interface features,
- controls to enable this should not interfere with the page's normal
- rendering unless the user agent is <a href=#expose-a-user-interface-to-the-user title="expose a user
- interface to the user">exposing a user interface</a>. In such an
- independent context, however, user agents may make full user
- interfaces visible, with, e.g., play, pause, seeking, and volume
- controls, even if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is absent.</p>
+ <p>User agents may allow users to view the video content in manners more suitable to the user
+ (e.g. full-screen or in an independent resizable window). As for the other user interface
+ features, controls to enable this should not interfere with the page's normal rendering unless the
+ user agent is <a href=#expose-a-user-interface-to-the-user title="expose a user interface to the user">exposing a user interface</a>.
+ In such an independent context, however, user agents may make full user interfaces visible, with,
+ e.g., play, pause, seeking, and volume controls, even if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is absent.</p>
- <p>User agents may allow video playback to affect system features
- that could interfere with the user's experience; for example, user
- agents could disable screensavers while video playback is in
+ <p>User agents may allow video playback to affect system features that could interfere with the
+ user's experience; for example, user agents could disable screensavers while video playback is in
progress.</p>
- <hr><p>The <dfn id=dom-video-poster title=dom-video-poster><code>poster</code></dfn> IDL
- attribute must <a href=#reflect>reflect</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> content attribute.</p>
+ <hr><p>The <dfn id=dom-video-poster title=dom-video-poster><code>poster</code></dfn> IDL attribute must
+ <a href=#reflect>reflect</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> content attribute.</p>
</div>
<div class=example>
- <p>This example shows how to detect when a video has failed to play
- correctly:</p>
+ <p>This example shows how to detect when a video has failed to play correctly:</p>
<pre><script>
function failed(e) {
@@ -26526,17 +26479,15 @@
<h5>Video and audio codecs for <code>video</code> elements</h5>
- <p>User agents may support any video and audio codecs and container
- formats.</p>
+ <p>User agents may support any video and audio codecs and container formats.</p>
- <p class="note">Certain user agents might support no codecs at all,
- e.g. text browsers running over SSH connections.</p>
+ <p class="note">Certain user agents might support no codecs at all, e.g. text browsers running
+ over SSH connections.</p>
<!- - similar note in audio codecs section - ->
- <p class="note">Implementations are free to implement support for
- video codecs either natively, or using platform-specific APIs, or
- using plugins: this specification does not specify how codecs are to
- be implemented.</p>
+ <p class="note">Implementations are free to implement support for video codecs either natively, or
+ using platform-specific APIs, or using plugins: this specification does not specify how codecs are
+ to be implemented.</p>
</div>
@@ -26580,8 +26531,7 @@
<pre class=idl>[NamedConstructor=<a href=#dom-audio title=dom-Audio>Audio</a>(optional DOMString src)]
interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediaelement>HTMLMediaElement</a> {};</pre>
</dd>
- </dl><!--TOPIC:HTML--><p>An <code><a href=#the-audio-element>audio</a></code> element <a href=#represents>represents</a> a sound or
- audio stream.</p>
+ </dl><!--TOPIC:HTML--><p>An <code><a href=#the-audio-element>audio</a></code> element <a href=#represents>represents</a> a sound or audio stream.</p>
<!-- v2 (actually v3) suggestions:
* Audio syntesis. Use cases from Charles Pritchard:
@@ -26600,12 +26550,10 @@
> Support very simple audio codecs, and programmable synthesizers.
-->
- <p>Content may be provided inside the <code><a href=#the-audio-element>audio</a></code>
- element<span class=impl>. User agents should not show this content
- to the user</span>; it is intended for older Web browsers which do
- not support <code><a href=#the-audio-element>audio</a></code>, so that legacy audio plugins can be
- tried, or to show text to the users of these older browsers informing
- them of how to access the audio contents.</p>
+ <p>Content may be provided inside the <code><a href=#the-audio-element>audio</a></code> element<span class=impl>. User agents
+ should not show this content to the user</span>; it is intended for older Web browsers which do
+ not support <code><a href=#the-audio-element>audio</a></code>, so that legacy audio plugins can be tried, or to show text to the
+ users of these older browsers informing them of how to access the audio contents.</p>
<p class=note>In particular, this content is not intended to address accessibility concerns. To
make audio content accessible to the deaf or to those with other physical or cognitive
@@ -26616,24 +26564,22 @@
naturally, transcripts or other textual alternatives can be provided by simply linking to them in
the prose near the <code><a href=#the-audio-element>audio</a></code> element. <a href=#refsWEBVTT>[WEBVTT]</a></p>
- <p>The <code><a href=#the-audio-element>audio</a></code> element is a <a href=#media-element>media element</a>
- whose <a href=#media-data>media data</a> is ostensibly audio data.</p>
+ <p>The <code><a href=#the-audio-element>audio</a></code> element is a <a href=#media-element>media element</a> whose <a href=#media-data>media data</a> is
+ ostensibly audio data.</p>
- <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>, <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>,
- <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>,
- <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>,
- <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
+ <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>,
+ <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>, <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>, <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>, <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code>
+ attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
elements</a>.</p>
<div class=impl>
- <p>When an <code><a href=#the-audio-element>audio</a></code> element is <a href=#potentially-playing>potentially
- playing</a>, it must have its audio data played synchronized with
- the <a href=#current-playback-position>current playback position</a>, at the element's
+ <p>When an <code><a href=#the-audio-element>audio</a></code> element is <a href=#potentially-playing>potentially playing</a>, it must have its audio
+ data played synchronized with the <a href=#current-playback-position>current playback position</a>, at the element's
<a href=#effective-media-volume>effective media volume</a>.</p>
- <p>When an <code><a href=#the-audio-element>audio</a></code> element is not <a href=#potentially-playing>potentially
- playing</a>, audio must not play for the element.</p>
+ <p>When an <code><a href=#the-audio-element>audio</a></code> element is not <a href=#potentially-playing>potentially playing</a>, audio must not play
+ for the element.</p>
</div>
@@ -26641,8 +26587,8 @@
<dd>
- <p>Returns a new <code><a href=#the-audio-element>audio</a></code> element, with the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute set to the value
- passed in the argument, if applicable.</p>
+ <p>Returns a new <code><a href=#the-audio-element>audio</a></code> element, with the <code title=attr-media-src><a href=#attr-media-src>src</a></code>
+ attribute set to the value passed in the argument, if applicable.</p>
</dd>
@@ -26668,12 +26614,10 @@
<h5>Audio codecs for <code>audio</code> elements</h5>
- <p>User agents may support any audio codecs and container
- formats.</p>
+ <p>User agents may support any audio codecs and container formats.</p>
- <p>User agents must support the WAVE container format with audio
- encoded using the 16 bit PCM (LE) codec, at sampling frequencies of
- 11.025kHz, 22.050kHz, and 44.100kHz, and for both mono and
+ <p>User agents must support the WAVE container format with audio encoded using the 16 bit PCM (LE)
+ codec, at sampling frequencies of 11.025kHz, 22.050kHz, and 44.100kHz, and for both mono and
stereo. <a href="#- -refsWAVE">[WAVE]</a></p>
<!- -
@@ -26682,10 +26626,9 @@
- ->
<!- - similar note in video codecs section - ->
- <p class="note">Implementations are free to implement support for
- audio codecs either natively, or using platform-specific APIs, or
- using plugins: this specification does not specify how codecs are to
- be implemented.</p>
+ <p class="note">Implementations are free to implement support for audio codecs either natively, or
+ using platform-specific APIs, or using plugins: this specification does not specify how codecs are
+ to be implemented.</p>
</div>
@@ -40706,14 +40649,14 @@
<dd>If the <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute is present: Empty.</dd>
<dd>If the <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute is absent: Zero or more <code><a href=#the-col-element>col</a></code> and <code><a href=#the-template-element>template</a></code> elements.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a
- <code><a href=#the-col-element>col</a></code> element, and if the element is not immediately
- preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be
- omitted if the element is empty.)</dd>
- <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
- <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a
- <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be
+ omitted if the first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a <code><a href=#the-col-element>col</a></code> element,
+ and if the element is not immediately preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose
+ <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be omitted if the element
+ is empty.)</dd>
+ <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or
+ a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> — Number of columns spanned by the element</dd>
@@ -40804,17 +40747,14 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-tr-element>tr</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a
- <code><a href=#the-tr-element>tr</a></code> element, and if the element is not immediately
- preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
- <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> has been omitted. (It can't be omitted if the element is
- empty.)</dd>
- <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-tbody-element>tbody</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted
+ if the first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a <code><a href=#the-tr-element>tr</a></code> element, and if the
+ element is not immediately preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It
+ can't be omitted if the element is empty.)</dd>
+ <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-tbody-element>tbody</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element, or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -40909,10 +40849,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-tr-element>tr</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-thead-element>thead</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element.</dd>
+ <dd>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-thead-element>thead</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -40988,10 +40927,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-tr-element>tr</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-tfoot-element>tfoot</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if there is
- no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-tfoot-element>tfoot</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if
+ there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -41025,10 +40963,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-td-element>td</a></code>, <code><a href=#the-th-element>th</a></code>, and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-tr-element>tr</a></code> element is
- immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there
- is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-tr-element>tr</a></code> element is immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there is
+ no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -41164,10 +41101,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-td-element>td</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-td-element>td</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code> — Number of columns that the cell is to span</dd>
@@ -41209,10 +41145,9 @@
<dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, <a href=#sectioning-content>sectioning content</a>, or <a href=#heading-content>heading content</a> descendants, and if the <code><a href=#the-th-element>th</a></code> element is a <a href=#sorting-interface-th-element>sorting interface <code>th</code> element</a>, no <a href=#interactive-content>interactive content</a> descendants.</dd>
<!-- EDITING NOTE: If you remove 'heading content' from the list above, make sure to fix the definition of 'sectioning root' to include <th> -->
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-th-element>th</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-th-element>th</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code> — Number of columns that the cell is to span</dd>
@@ -51275,14 +51210,12 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-option-element>option</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
- <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor
- <code>select</code> element and--> is immediately followed by
- another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements
- that are ancestors of the <code>optgroup</code> element, up to and
- including the first ancestor element that is not an
- <code>optgroup</code> element, have no more content--> there is no
- more content in the parent element.</dd>
+ <dd>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted
+ if the <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor <code>select</code> element and--> is
+ immediately followed by another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements that
+ are ancestors of the <code>optgroup</code> element, up to and including the first ancestor element
+ that is not an <code>optgroup</code> element, have no more content--> there is no more content in
+ the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>disabled</a></code> — Whether the form control is disabled</dd>
@@ -51371,11 +51304,10 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#text-content title="text content">Text</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-option-element>option</a></code> element is
- immediately followed by another <code><a href=#the-option-element>option</a></code> element, or if
- it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or
- if there is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-option-element>option</a></code> element is immediately followed by another <code><a href=#the-option-element>option</a></code> element, or
+ if it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or if there is no more content
+ in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code> — Whether the form control is disabled</dd>
@@ -81844,6 +81776,8 @@
domain. Authors can avoid this using the relatively complex mechanism of using unique domain names
per connection, or by allowing the user to enable or disable the <code><a href=#eventsource>EventSource</a></code>
functionality on a per-page basis, or by sharing a single <code><a href=#eventsource>EventSource</a></code> object using a
+ <a href=#sharedworkerglobalscope title=SharedWorkerGlobalScope>shared worker</a>.
+ </p>
<h4 id=eventsource-push><span class=secno>10.2.7 </span>Connectionless push and other features</h4>
@@ -84081,66 +84015,51 @@
};
<a href=#window>Window</a> implements <a href=#windowsessionstorage>WindowSessionStorage</a>;</pre>
- <p>The <dfn id=dom-sessionstorage title=dom-sessionStorage><code>sessionStorage</code></dfn>
- attribute represents the set of storage areas specific to the
- current <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
+ <p>The <dfn id=dom-sessionstorage title=dom-sessionStorage><code>sessionStorage</code></dfn> attribute represents the
+ set of storage areas specific to the current <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
- <p>Each <a href=#top-level-browsing-context>top-level browsing context</a> has a unique set of
- session storage areas, one for each <a href=#origin>origin</a>.</p>
+ <p>Each <a href=#top-level-browsing-context>top-level browsing context</a> has a unique set of session storage areas, one for
+ each <a href=#origin>origin</a>.</p>
- <p>User agents should not expire data from a browsing context's
- session storage areas, but may do so when the user requests that
- such data be deleted, or when the UA detects that it has limited
- storage space, or for security reasons. User agents should always
- avoid deleting data while a script that could access that data is
- running. When a top-level browsing context is destroyed (and
- therefore permanently inaccessible to the user) the data stored in
- its session storage areas can be discarded with it, as the API
- described in this specification provides no way for that data to
+ <p>User agents should not expire data from a browsing context's session storage areas, but may do
+ so when the user requests that such data be deleted, or when the UA detects that it has limited
+ storage space, or for security reasons. User agents should always avoid deleting data while a
+ script that could access that data is running. When a top-level browsing context is destroyed (and
+ therefore permanently inaccessible to the user) the data stored in its session storage areas can
+ be discarded with it, as the API described in this specification provides no way for that data to
ever be subsequently retrieved.</p>
- <p class=note>The lifetime of a browsing context can be unrelated
- to the lifetime of the actual user agent process itself, as the user
- agent may support resuming sessions after a restart.</p>
+ <p class=note>The lifetime of a browsing context can be unrelated to the lifetime of the actual
+ user agent process itself, as the user agent may support resuming sessions after a restart.</p>
- <p>When a new <code><a href=#document>Document</a></code> is created in a <a href=#browsing-context>browsing
- context</a> which has a <a href=#top-level-browsing-context>top-level browsing context</a>,
- the user agent must check to see if that <a href=#top-level-browsing-context>top-level browsing
- context</a> has a session storage area for that document's
- <a href=#origin>origin</a>. If it does, then that is the
- <code><a href=#document>Document</a></code>'s assigned session storage area. If it does
- not, a new storage area for that document's <a href=#origin>origin</a> must
- be created, and then <em>that</em> is the <code><a href=#document>Document</a></code>'s
- assigned session storage area. A <code><a href=#document>Document</a></code>'s assigned
- storage area does not change during the lifetime of a
- <code><a href=#document>Document</a></code>.</p>
+ <p>When a new <code><a href=#document>Document</a></code> is created in a <a href=#browsing-context>browsing context</a> which has a
+ <a href=#top-level-browsing-context>top-level browsing context</a>, the user agent must check to see if that <a href=#top-level-browsing-context>top-level
+ browsing context</a> has a session storage area for that document's <a href=#origin>origin</a>. If it
+ does, then that is the <code><a href=#document>Document</a></code>'s assigned session storage area. If it does not, a
+ new storage area for that document's <a href=#origin>origin</a> must be created, and then <em>that</em>
+ is the <code><a href=#document>Document</a></code>'s assigned session storage area. A <code><a href=#document>Document</a></code>'s assigned
+ storage area does not change during the lifetime of a <code><a href=#document>Document</a></code>.</p>
- <p class=note>In the case of an <code><a href=#the-iframe-element>iframe</a></code> being moved to
- another <code><a href=#document>Document</a></code>, the nested browsing context is
- destroyed and a new one created.</p>
+ <p class=note>In the case of an <code><a href=#the-iframe-element>iframe</a></code> being moved to another
+ <code><a href=#document>Document</a></code>, the nested browsing context is destroyed and a new one created.</p>
- <p>The <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code>
- attribute must return a <code><a href=#storage-0>Storage</a></code> object associated with
- the <code><a href=#document>Document</a></code>'s assigned session storage area, if any,
- or null if there isn't one. Each <code><a href=#document>Document</a></code> object must
- have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> attribute.</p>
+ <p>The <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> attribute must return a
+ <code><a href=#storage-0>Storage</a></code> object associated with the <code><a href=#document>Document</a></code>'s assigned session storage
+ area, if any, or null if there isn't one. Each <code><a href=#document>Document</a></code> object must have a separate
+ object for its <code><a href=#window>Window</a></code>'s <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code>
+ attribute.</p>
- <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by
- cloning an existing <a href=#browsing-context>browsing context</a>, the new browsing
- context must start with the same session storage areas as the
- original, but the two sets must from that point on be considered
- separate, not affecting each other in any way.</p>
+ <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by cloning an existing
+ <a href=#browsing-context>browsing context</a>, the new browsing context must start with the same session storage
+ areas as the original, but the two sets must from that point on be considered separate, not
+ affecting each other in any way.</p>
- <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by
- a <a href=#concept-script title=concept-script>script</a> in an existing
- <a href=#browsing-context>browsing context</a>, or by the user following a link in an
- existing browsing context, or in some other way related to a
- specific <code><a href=#document>Document</a></code>, and the creation is not <a href=#a-new-start-for-session-storage>a
- new start for session storage</a>, then the session storage area of the
- <a href=#origin>origin</a> of that <code><a href=#document>Document</a></code> must be copied
- into the new browsing context when it is created. From that point
- on, however, the two session storage areas must be considered
- separate, not affecting each other in any way.</p>
+ <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by a <a href=#concept-script title=concept-script>script</a> in an existing <a href=#browsing-context>browsing context</a>, or by the user
+ following a link in an existing browsing context, or in some other way related to a specific
+ <code><a href=#document>Document</a></code>, and the creation is not <a href=#a-new-start-for-session-storage>a new start for session storage</a>, then
+ the session storage area of the <a href=#origin>origin</a> of that <code><a href=#document>Document</a></code> must be copied
+ into the new browsing context when it is created. From that point on, however, the two session
+ storage areas must be considered separate, not affecting each other in any way.</p>
<p id=sessionStorageEvent>When the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code>, <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code>, and <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> methods are called on a <code><a href=#storage-0>Storage</a></code> object <var title="">x</var> that is associated with a session storage area, if the methods did not throw an
exception or "do nothing" as defined above, then for every <code><a href=#document>Document</a></code> object whose
@@ -84156,59 +84075,48 @@
};
<a href=#window>Window</a> implements <a href=#windowlocalstorage>WindowLocalStorage</a>;</pre>
-<!--CLEANUP-->
- <p>The <dfn id=dom-localstorage title=dom-localStorage><code>localStorage</code></dfn>
- object provides a <code><a href=#storage-0>Storage</a></code> object for an
- <a href=#origin>origin</a>.
+ <p>The <dfn id=dom-localstorage title=dom-localStorage><code>localStorage</code></dfn> object provides a
+ <code><a href=#storage-0>Storage</a></code> object for an <a href=#origin>origin</a>.
<a href=#fingerprinting-vector class=fingerprint title="fingerprinting vector"><img src=http://images.whatwg.org/fingerprint.png width=46 alt="(This is a fingerprinting vector.)" height=64></a>
</p>
- <p>User agents must have a set of local storage areas, one for each
- <a href=#origin>origin</a>.</p>
+ <p>User agents must have a set of local storage areas, one for each <a href=#origin>origin</a>.</p>
- <p>User agents should expire data from the local storage areas only
- for security reasons or when requested to do so by the user. User
- agents should always avoid deleting data while a script that could
- access that data is running.</p>
+ <p>User agents should expire data from the local storage areas only for security reasons or when
+ requested to do so by the user. User agents should always avoid deleting data while a script that
+ could access that data is running.</p>
- <p>When the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>
- attribute is accessed, the user agent must run the following steps,
- which are known as the <dfn id=storage-object-initialization-steps><code>Storage</code> object
- initialization steps</dfn>:</p> <!-- these steps are named because
- marcos uses them from another spec -->
+ <p>When the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute is accessed, the user
+ agent must run the following steps, which are known as the <dfn id=storage-object-initialization-steps><code>Storage</code> object
+ initialization steps</dfn>:</p> <!-- these steps are named because marcos uses them from another
+ spec -->
- <ol><li><p>The user agent may throw a <code><a href=#securityerror>SecurityError</a></code>
- exception and abort these steps instead of returning a <code><a href=#storage-0>Storage</a></code> object if the
- request violates a policy decision (e.g. if the user agent is
- configured to not allow the page to persist data).</li>
+ <ol><li><p>The user agent may throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort these steps
+ instead of returning a <code><a href=#storage-0>Storage</a></code> object if the request violates a policy decision
+ (e.g. if the user agent is configured to not allow the page to persist data).</li>
- <li><p>If the <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a> is not a
- scheme/host/port tuple, then throw a <code><a href=#securityerror>SecurityError</a></code>
- exception and abort these steps.</li>
+ <li><p>If the <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a> is not a scheme/host/port tuple, then
+ throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort these steps.</li>
- <li><p>Check to see if the user agent has allocated a local storage
- area for the <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> of
- the <code><a href=#window>Window</a></code> object on which the attribute was accessed.
- If it has not, create a new storage area for that
+ <li><p>Check to see if the user agent has allocated a local storage area for the
+ <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> of the <code><a href=#window>Window</a></code> object on which the
+ attribute was accessed. If it has not, create a new storage area for that
<a href=#origin>origin</a>.</li>
- <li><p>Return the <code><a href=#storage-0>Storage</a></code> object associated with that
- origin's local storage area. Each <code><a href=#document>Document</a></code> object must
- have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute.</p>
+ <li><p>Return the <code><a href=#storage-0>Storage</a></code> object associated with that origin's local storage area.
+ Each <code><a href=#document>Document</a></code> object must have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute.</p>
</ol><p id=localStorageEvent>When the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code>, <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code>, and <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> methods are called on a <code><a href=#storage-0>Storage</a></code> object <var title="">x</var> that is associated with a local storage area, if the methods did not throw an
exception or "do nothing" as defined above, then for every <code><a href=#document>Document</a></code> object whose
<code><a href=#window>Window</a></code> object's <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's
<code><a href=#storage-0>Storage</a></code> object is associated with the same storage area, other than <var title="">x</var>, <a href=#send-a-storage-notification>send a storage notification</a>.
- <p id=localStorageMutex>Whenever the properties of a <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's
- <code><a href=#storage-0>Storage</a></code> object are to be examined, returned, set, or
- deleted, whether as part of a direct property access, when checking
- for the presence of a property, during property enumeration, when
- determining the number of properties present, or as part of the
- execution of any of the methods or attributes defined on the
- <code><a href=#storage-0>Storage</a></code> interface, the user agent must first
- <a href=#obtain-the-storage-mutex>obtain the storage mutex</a>.</p>
+ <p id=localStorageMutex>Whenever the properties of a <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's <code><a href=#storage-0>Storage</a></code> object are to be
+ examined, returned, set, or deleted, whether as part of a direct property access, when checking
+ for the presence of a property, during property enumeration, when determining the number of
+ properties present, or as part of the execution of any of the methods or attributes defined on the
+ <code><a href=#storage-0>Storage</a></code> interface, the user agent must first <a href=#obtain-the-storage-mutex>obtain the storage
+ mutex</a>.</p>
<h4 id=the-storage-event><span class=secno>11.2.4 </span>The <code title=event-storage><a href=#event-storage>storage</a></code> event</h4>
@@ -84655,55 +84563,45 @@
<dd>All other allowed <a href=#html-elements>HTML elements</a> are normal
elements.</dd>
- </dl><!--CLEANUP--><p><dfn id=syntax-tags title=syntax-tags>Tags</dfn> are used to delimit the start
- and end of elements in the markup. <a href=#raw-text-elements title="raw text
- elements">Raw text</a>, <a href=#escapable-raw-text-elements title="escapable raw text
- elements">escapable raw text</a>, and <a href=#normal-elements title="normal
- elements">normal</a> elements have a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> to indicate where they
- begin, and an <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> to
- indicate where they end. The start and end tags of certain
- <a href=#normal-elements>normal elements</a> can be <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>, as described
- below in the section on <a href=#syntax-tag-omission title=syntax-tag-omission>optional tags</a>. Those that cannot be omitted must not be omitted. <a href=#void-elements>Void
- elements</a> only have a start tag; end tags must not be
- specified for <a href=#void-elements>void elements</a>. <a href=#foreign-elements>Foreign
- elements</a> must either have a start tag and an end tag, or a
- start tag that is marked as self-closing, in which case they must
- not have an end tag.</p>
+ </dl><p><dfn id=syntax-tags title=syntax-tags>Tags</dfn> are used to delimit the start and end of elements in the
+ markup. <a href=#raw-text-elements title="raw text elements">Raw text</a>, <a href=#escapable-raw-text-elements title="escapable raw text
+ elements">escapable raw text</a>, and <a href=#normal-elements title="normal elements">normal</a> elements have
+ a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> to indicate where they begin, and an <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> to indicate where they end. The start and end tags of
+ certain <a href=#normal-elements>normal elements</a> can be <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>, as
+ described below in the section on <a href=#syntax-tag-omission title=syntax-tag-omission>optional tags</a>. Those
+ that cannot be omitted must not be omitted. <a href=#void-elements>Void elements</a> only have a start tag; end
+ tags must not be specified for <a href=#void-elements>void elements</a>. <a href=#foreign-elements>Foreign elements</a> must
+ either have a start tag and an end tag, or a start tag that is marked as self-closing, in which
+ case they must not have an end tag.</p>
- <p>The <a href=#concept-html-contents title=concept-html-contents>contents</a> of the element must be placed between just after the
- start tag (which <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied,
- in certain cases</a>) and just before the end tag (which again,
- <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied in certain
- cases</a>). The exact allowed contents of each individual element
- depend on the <a href=#content-models title="content models">content model</a> of that element, as described earlier in
- this specification. Elements must not contain content that their
- content model disallows. In addition to the restrictions placed on
- the contents by those content models, however, the five types of
- elements have additional <em>syntactic</em> requirements.</p>
+ <p>The <a href=#concept-html-contents title=concept-html-contents>contents</a> of the element must be placed between
+ just after the start tag (which <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied, in certain
+ cases</a>) and just before the end tag (which again, <a href=#syntax-tag-omission title=syntax-tag-omission>might be
+ implied in certain cases</a>). The exact allowed contents of each individual element depend on
+ the <a href=#content-models title="content models">content model</a> of that element, as described earlier in
+ this specification. Elements must not contain content that their content model disallows. In
+ addition to the restrictions placed on the contents by those content models, however, the five
+ types of elements have additional <em>syntactic</em> requirements.</p>
- <p><a href=#void-elements>Void elements</a> can't have any contents (since there's
- no end tag, no content can be put between the start tag and the end
- tag).</p>
+ <p><a href=#void-elements>Void elements</a> can't have any contents (since there's no end tag, no content can be
+ put between the start tag and the end tag).</p>
- <p><a href=#raw-text-elements>Raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, though it has <a href=#cdata-rcdata-restrictions>restrictions</a> described
- below.</p>
+ <p><a href=#raw-text-elements>Raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, though it has <a href=#cdata-rcdata-restrictions>restrictions</a> described below.</p>
- <p><a href=#escapable-raw-text-elements>Escapable raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>, but the text
- must not contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.
- There are also <a href=#cdata-rcdata-restrictions>further
- restrictions</a> described below.</p>
+ <p><a href=#escapable-raw-text-elements>Escapable raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a> and
+ <a href=#syntax-charref title=syntax-charref>character references</a>, but the text must not contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>. There are also <a href=#cdata-rcdata-restrictions>further restrictions</a> described below.</p>
- <p><a href=#foreign-elements>Foreign elements</a> whose start tag is marked as
- self-closing can't have any contents (since, again, as there's no
- end tag, no content can be put between the start tag and the end
- tag). <a href=#foreign-elements>Foreign elements</a> whose start tag is <em>not</em>
- marked as self-closing can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, <a href=#syntax-cdata title=syntax-cdata>CDATA sections</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but the text must not
- contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
+ <p><a href=#foreign-elements>Foreign elements</a> whose start tag is marked as self-closing can't have any contents
+ (since, again, as there's no end tag, no content can be put between the start tag and the end
+ tag). <a href=#foreign-elements>Foreign elements</a> whose start tag is <em>not</em> marked as self-closing can
+ have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character
+ references</a>, <a href=#syntax-cdata title=syntax-cdata>CDATA sections</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but
+ the text must not contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
<div class=note>
- <p>The HTML syntax does not support namespace
- declarations, even in <a href=#foreign-elements>foreign elements</a>.</p>
+ <p>The HTML syntax does not support namespace declarations, even in <a href=#foreign-elements>foreign
+ elements</a>.</p>
<p>For instance, consider the following HTML fragment:</p>
@@ -84716,20 +84614,19 @@
</svg>
</p></pre>
- <p>The innermost element, <code title="">cdr:license</code>, is
- actually in the SVG namespace, as the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in
- XML). In fact, as the comment in the fragment above says, the
- fragment is actually non-conforming. This is because the SVG
- specification does not define any elements called "<code title="">cdr:license</code>" in the SVG namespace.</p>
+ <p>The innermost element, <code title="">cdr:license</code>, is actually in the SVG namespace, as
+ the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in XML). In fact, as the
+ comment in the fragment above says, the fragment is actually non-conforming. This is because the
+ SVG specification does not define any elements called "<code title="">cdr:license</code>" in the
+ SVG namespace.</p>
</div>
- <p><a href=#normal-elements>Normal elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but the text must not
- contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>. Some
- <a href=#normal-elements>normal elements</a> also have <a href=#element-restrictions>yet more restrictions</a> on what
- content they are allowed to hold, beyond the restrictions imposed by
- the content model and those described in this paragraph. Those
- restrictions are described below.</p>
+ <p><a href=#normal-elements>Normal elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but
+ the text must not contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>. Some <a href=#normal-elements>normal elements</a>
+ also have <a href=#element-restrictions>yet more restrictions</a> on what content they are
+ allowed to hold, beyond the restrictions imposed by the content model and those described in this
+ paragraph. Those restrictions are described below.</p>
<p>Tags contain a <dfn id=syntax-tag-name title=syntax-tag-name>tag name</dfn>, giving the element's name. HTML
elements all have names that only use <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>. In the HTML
@@ -84740,78 +84637,60 @@
<h5 id=start-tags><span class=secno>12.1.2.1 </span>Start tags</h5>
- <p><dfn id=syntax-start-tag title=syntax-start-tag>Start tags</dfn> must have the
- following format:</p>
+ <p><dfn id=syntax-start-tag title=syntax-start-tag>Start tags</dfn> must have the following format:</p>
- <ol><li>The first character of a start tag must be a U+003C LESS-THAN
- SIGN character (<).</li>
+ <ol><li>The first character of a start tag must be a U+003C LESS-THAN SIGN character (<).</li>
- <li>The next few characters of a start tag must be the element's
- <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
+ <li>The next few characters of a start tag must be the element's <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
- <li>If there are to be any attributes in the next step, there must
- first be one or more <a href=#space-character title="space character">space
+ <li>If there are to be any attributes in the next step, there must first be one or more <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li>Then, the start tag may have a number of attributes, the <a href=#syntax-attributes title=syntax-attributes>syntax for which</a> is described below. Attributes must be
+ separated from each other by one or more <a href=#space-character title="space character">space
characters</a>.</li>
- <li>Then, the start tag may have a number of attributes, the <a href=#syntax-attributes title=syntax-attributes>syntax for which</a> is described
- below. Attributes must be separated from each other by one or more
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>After the attributes, or after the <a href=#syntax-tag-name title=syntax-tag-name>tag name</a> if there are
+ no attributes, there may be one or more <a href=#space-character title="space character">space characters</a>.
+ (Some attributes are required to be followed by a space. See the <a href=#syntax-attributes title=syntax-attributes>attributes section</a> below.)</li>
- <li>After the attributes, or after the <a href=#syntax-tag-name title=syntax-tag-name>tag name</a> if there are no attributes,
- there may be one or more <a href=#space-character title="space character">space
- characters</a>. (Some attributes are required to be followed by
- a space. See the <a href=#syntax-attributes title=syntax-attributes>attributes
- section</a> below.)</li>
+ <li>Then, if the element is one of the <a href=#void-elements>void elements</a>, or if the element is a <a href=#foreign-elements title="foreign elements">foreign element</a>, then there may be a single U+002F SOLIDUS
+ character (/). This character has no effect on <a href=#void-elements>void elements</a>, but on <a href=#foreign-elements>foreign
+ elements</a> it marks the start tag as self-closing.</li>
- <li>Then, if the element is one of the <a href=#void-elements>void elements</a>,
- or if the element is a <a href=#foreign-elements title="foreign elements">foreign
- element</a>, then there may be a single U+002F SOLIDUS character
- (/). This character has no effect on <a href=#void-elements>void elements</a>,
- but on <a href=#foreign-elements>foreign elements</a> it marks the start tag as
- self-closing.</li>
+ <li>Finally, start tags must be closed by a U+003E GREATER-THAN SIGN character (>).</li>
- <li>Finally, start tags must be closed by a U+003E GREATER-THAN
- SIGN character (>).</li>
-
</ol><h5 id=end-tags><span class=secno>12.1.2.2 </span>End tags</h5>
- <p><dfn id=syntax-end-tag title=syntax-end-tag>End tags</dfn> must have the
- following format:</p>
+ <p><dfn id=syntax-end-tag title=syntax-end-tag>End tags</dfn> must have the following format:</p>
- <ol><li>The first character of an end tag must be a U+003C LESS-THAN
- SIGN character (<).</li>
+ <ol><li>The first character of an end tag must be a U+003C LESS-THAN SIGN character (<).</li>
- <li>The second character of an end tag must be a U+002F SOLIDUS
- character (/).</li>
+ <li>The second character of an end tag must be a U+002F SOLIDUS character (/).</li>
- <li>The next few characters of an end tag must be the element's
- <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
+ <li>The next few characters of an end tag must be the element's <a href=#syntax-tag-name title=syntax-tag-name>tag
+ name</a>.</li>
- <li>After the tag name, there may be one or more <a href=#space-character title="space
- character">space characters</a>.</li>
+ <li>After the tag name, there may be one or more <a href=#space-character title="space character">space
+ characters</a>.</li>
- <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN
- character (>).</li>
+ <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN character (>).</li>
</ol><h5 id=attributes-0><span class=secno>12.1.2.3 </span>Attributes</h5>
- <p><dfn id=syntax-attributes title=syntax-attributes>Attributes</dfn> for an element
- are expressed inside the element's start tag.</p>
+ <p><dfn id=syntax-attributes title=syntax-attributes>Attributes</dfn> for an element are expressed inside the
+ element's start tag.</p>
- <p>Attributes have a name and a value. <dfn id=syntax-attribute-name title=syntax-attribute-name>Attribute names</dfn> must consist of
- one or more characters other than the <a href=#space-character title="space
- character">space characters</a>, U+0000 NULL, U+0022 QUOTATION
- MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN
- (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters,
- the control characters, and any characters that are not defined by
- Unicode. In the HTML syntax, attribute names, even those for
- <a href=#foreign-elements>foreign elements</a>, may be written with any mix of lower-
- and uppercase letters that are an <a href=#ascii-case-insensitive>ASCII
- case-insensitive</a> match for the attribute's name.</p>
+ <p>Attributes have a name and a value. <dfn id=syntax-attribute-name title=syntax-attribute-name>Attribute names</dfn>
+ must consist of one or more characters other than the <a href=#space-character title="space character">space
+ characters</a>, U+0000 NULL, U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E
+ GREATER-THAN SIGN (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control
+ characters, and any characters that are not defined by Unicode. In the HTML syntax, attribute
+ names, even those for <a href=#foreign-elements>foreign elements</a>, may be written with any mix of lower- and
+ uppercase letters that are an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the attribute's
+ name.</p>
- <p><dfn id=syntax-attribute-value title=syntax-attribute-value>Attribute values</dfn> are a
- mixture of <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>, except with the
- additional restriction that the text cannot contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
+ <p><dfn id=syntax-attribute-value title=syntax-attribute-value>Attribute values</dfn> are a mixture of <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>,
+ except with the additional restriction that the text cannot contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
<p>Attributes can be specified in four different ways:</p>
@@ -84819,21 +84698,20 @@
<dd>
- <p>Just the <a href=#syntax-attribute-name title=syntax-attribute-name>attribute
- name</a>. The value is implicitly the empty string.</p>
+ <p>Just the <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>. The value is implicitly
+ the empty string.</p>
<div class=example>
- <p>In the following example, the <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is given with
- the empty attribute syntax:</p>
+ <p>In the following example, the <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is
+ given with the empty attribute syntax:</p>
<pre><input <em>disabled</em>></pre>
</div>
- <p>If an attribute using the empty attribute syntax is to be
- followed by another attribute, then there must be a <a href=#space-character>space
- character</a> separating the two.</p>
+ <p>If an attribute using the empty attribute syntax is to be followed by another attribute, then
+ there must be a <a href=#space-character>space character</a> separating the two.</p>
</dd>
@@ -84841,28 +84719,21 @@
<dd>
- <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
- followed by zero or more <a href=#space-character title="space character">space
- characters</a>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <a href=#space-character title="space
- character">space characters</a>, followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal <a href=#space-character title="space character">space
- characters</a>, any U+0022 QUOTATION MARK characters ("),
- U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN
- characters (=), U+003C LESS-THAN SIGN characters (<), U+003E
- GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT
- characters (`), and must not be the empty string.</p>
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>, followed by zero or more <a href=#space-character title="space character">space characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space character">space characters</a>,
+ followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in addition
+ to the requirements given above for attribute values, must not contain any literal <a href=#space-character title="space character">space characters</a>, any U+0022 QUOTATION MARK characters ("),
+ U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN characters (=), U+003C LESS-THAN SIGN
+ characters (<), U+003E GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT characters
+ (`), and must not be the empty string.</p>
- <!-- The ` character is in this list on a temporary basis, waiting
- for IE to fix its parsing bug whereby it treats ` as an
- attribute value delimiter. Otherwise, escaping software that
- tries to be clever and not use quotes when it doesn't need to
- could be tricked by an attacker.
+ <!-- The ` character is in this list on a temporary basis, waiting for IE to fix its parsing bug
+ whereby it treats ` as an attribute value delimiter. Otherwise, escaping software that
+ tries to be clever and not use quotes when it doesn't need to could be tricked by an
+ attacker.
- Posit a site that allows the user to input text that is used
- verbatim in two attributes, such that the user can set the
- first attribute's value to:
+ Posit a site that allows the user to input text that is used verbatim in two attributes,
+ such that the user can set the first attribute's value to:
`
@@ -84870,8 +84741,8 @@
` onload='...payload...' end=x
- ...with the assumption that the site is going to not quote
- the first one, and quote the second one with double quotes:
+ ...with the assumption that the site is going to not quote the first one, and quote the
+ second one with double quotes:
<body title=` class="` onload='...payload...' end=x">
@@ -84893,10 +84764,9 @@
</div>
- <p>If an attribute using the unquoted attribute syntax is to be
- followed by another attribute or by the optional U+002F SOLIDUS
- character (/) allowed in step 6 of the <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> syntax above, then there
- must be a <a href=#space-character>space character</a> separating the two.</p>
+ <p>If an attribute using the unquoted attribute syntax is to be followed by another attribute or
+ by the optional U+002F SOLIDUS character (/) allowed in step 6 of the <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> syntax above, then there must be a <a href=#space-character>space
+ character</a> separating the two.</p>
</dd>
@@ -84904,29 +84774,23 @@
<dd>
- <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
- followed by zero or more <a href=#space-character title="space character">space
- characters</a>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <a href=#space-character title="space
- character">space characters</a>, followed by a single U+0027
- APOSTROPHE character ('), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal U+0027 APOSTROPHE characters ('), and
- finally followed by a second single U+0027 APOSTROPHE character
- (').</p>
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>, followed by zero or more <a href=#space-character title="space character">space characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space character">space characters</a>,
+ followed by a single U+0027 APOSTROPHE character ('), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in addition to the requirements
+ given above for attribute values, must not contain any literal U+0027 APOSTROPHE characters ('),
+ and finally followed by a second single U+0027 APOSTROPHE character (').</p>
<div class=example>
- <p>In the following example, the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is given with the
- single-quoted attribute value syntax:</p>
+ <p>In the following example, the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is given
+ with the single-quoted attribute value syntax:</p>
<pre><input <em>type='checkbox'</em>></pre>
</div>
- <p>If an attribute using the single-quoted attribute syntax is to
- be followed by another attribute, then there must be a <a href=#space-character>space
- character</a> separating the two.</p>
+ <p>If an attribute using the single-quoted attribute syntax is to be followed by another
+ attribute, then there must be a <a href=#space-character>space character</a> separating the two.</p>
</dd>
@@ -84934,41 +84798,32 @@
<dd>
- <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
- followed by zero or more <a href=#space-character title="space character">space
- characters</a>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <a href=#space-character title="space
- character">space characters</a>, followed by a single U+0022
- QUOTATION MARK character ("), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal U+0022 QUOTATION MARK characters ("),
- and finally followed by a second single U+0022 QUOTATION MARK
- character (").</p>
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>, followed by zero or more <a href=#space-character title="space character">space characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space character">space characters</a>,
+ followed by a single U+0022 QUOTATION MARK character ("), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in addition to the requirements
+ given above for attribute values, must not contain any literal U+0022 QUOTATION MARK characters
+ ("), and finally followed by a second single U+0022 QUOTATION MARK character (").</p>
<div class=example>
- <p>In the following example, the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute is given with the
- double-quoted attribute value syntax:</p>
+ <p>In the following example, the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute is given with
+ the double-quoted attribute value syntax:</p>
<pre><input <em>name="be evil"</em>></pre>
</div>
- <p>If an attribute using the double-quoted attribute syntax is to
- be followed by another attribute, then there must be a <a href=#space-character>space
- character</a> separating the two.</p>
+ <p>If an attribute using the double-quoted attribute syntax is to be followed by another
+ attribute, then there must be a <a href=#space-character>space character</a> separating the two.</p>
</dd>
- </dl><p>There must never be two or more attributes on the same start tag
- whose names are an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for
- each other.</p>
+ </dl><p>There must never be two or more attributes on the same start tag whose names are an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for each other.</p>
- <hr><p>When a <a href=#foreign-elements title="foreign elements">foreign element</a> has
- one of the namespaced attributes given by the local name and
- namespace of the first and second cells of a row from the following
- table, it must be written using the name given by the third cell
- from the same row.</p>
+ <hr><p>When a <a href=#foreign-elements title="foreign elements">foreign element</a> has one of the namespaced
+ attributes given by the local name and namespace of the first and second cells of a row from the
+ following table, it must be written using the name given by the third cell from the same row.</p>
<table><thead><tr><th> Local name <th> Namespace <th> Attribute name
<tbody><tr><td> <code title="">actuate</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:actuate</code>
@@ -84983,115 +84838,96 @@
<tr><td> <code title="">space</code> <td> <a href=#xml-namespace>XML namespace</a> <td> <code title="">xml:space</code>
<tr><td> <code title="">xmlns</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a> <td> <code title="">xmlns</code>
<tr><td> <code title="">xlink</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a> <td> <code title="">xmlns:xlink</code>
- </table><p>No other namespaced attribute can be expressed in <a href=#syntax>the
- HTML syntax</a>.</p>
+ </table><p>No other namespaced attribute can be expressed in <a href=#syntax>the HTML syntax</a>.</p>
- <p class=note>Whether the attributes in the table above are
- conforming or not is defined by other specifications (e.g. the SVG
- and MathML specifications); this section only describes the syntax
- rules if the attributes are serialized using the HTML syntax.</p>
+ <p class=note>Whether the attributes in the table above are conforming or not is defined by
+ other specifications (e.g. the SVG and MathML specifications); this section only describes the
+ syntax rules if the attributes are serialized using the HTML syntax.</p>
<h5 id=optional-tags><span class=secno>12.1.2.4 </span>Optional tags</h5>
<p>Certain tags can be <dfn id=syntax-tag-omission title=syntax-tag-omission>omitted</dfn>.</p>
- <p class=note>Omitting an element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> in the situations
- described below does not mean the element is not present; it is
- implied, but it is still there. For example, an HTML document always
- has a root <code><a href=#the-html-element>html</a></code> element, even if the string <code title=""><html></code> doesn't appear anywhere in the markup.</p>
+ <p class=note>Omitting an element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> in the
+ situations described below does not mean the element is not present; it is implied, but it is
+ still there. For example, an HTML document always has a root <code><a href=#the-html-element>html</a></code> element, even if
+ the string <code title=""><html></code> doesn't appear anywhere in the markup.</p>
<!-- <html> -->
- <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted
+ if the first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- </html> -->
- <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-html-element>html</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-html-element>html</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- <head> -->
- <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- element is empty, or if the first thing inside the
- <code><a href=#the-head-element>head</a></code> element is an element.</p>
+ <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-head-element>head</a></code> element is an
+ element.</p>
<!-- </head> -->
- <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-head-element>head</a></code> element is not
- immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-head-element>head</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- <body> -->
- <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code>
- element is not a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the first thing
- inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or
- <code><a href=#the-style-element>style</a></code> element. <!-- Note that even if the </head> end
- tag is present, the parser makes <style> and <script> elements
- between </head> and <body> end up in the <head> instead of implying
- the <body> --></p>
+ <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code> element is not a
+ <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the
+ first thing inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or <code><a href=#the-style-element>style</a></code>
+ element. <!-- Note that even if the </head> end tag is present, the parser makes <style> and
+ <script> elements between </head> and <body> end up in the <head> instead of implying the <body>
+ --></p>
<!-- </body> -->
- <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-body-element>body</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-body-element>body</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- </li> -->
- <p>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-li-element>li</a></code> element is
- immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there
- is no more content in the parent element.</p>
+ <p>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-li-element>li</a></code> element is immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there is
+ no more content in the parent element.</p>
<!-- </dt> -->
- <p>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-dt-element>dt</a></code> element is
- immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
+ <p>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-dt-element>dt</a></code> element is immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
<code><a href=#the-dd-element>dd</a></code> element.</p>
<!-- </dd> -->
- <p>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-dd-element>dd</a></code> element is
- immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
- <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the
- parent element.</p>
+ <p>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-dd-element>dd</a></code> element is immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
+ <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the parent element.</p>
<!-- </p> -->
- <p>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-p-element>p</a></code> element is
- immediately followed by an <code><a href=#the-address-element>address</a></code>,
- <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>,
- <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
- <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
- <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>,
- <code><a href=#the-nav-element>nav</a></code>, <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>,
- <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or <code><a href=#the-ul-element>ul</a></code>,
- element, or if there is no more content in the parent element and
- the parent element is not an <code><a href=#the-a-element>a</a></code> element.</p>
+ <p>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-p-element>p</a></code> element is immediately followed by an <code><a href=#the-address-element>address</a></code>, <code><a href=#the-article-element>article</a></code>,
+ <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>, <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
+ <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
+ <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>, <code><a href=#the-nav-element>nav</a></code>,
+ <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>, <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or
+ <code><a href=#the-ul-element>ul</a></code>, element, or if there is no more content in the parent element and the parent
+ element is not an <code><a href=#the-a-element>a</a></code> element.</p>
<!-- </rt> -->
- <p>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-rt-element>rt</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-rt-element>rt</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</p>
<!-- </rp> -->
- <p>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-rp-element>rp</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-rp-element>rp</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</p>
- <!-- </optgroup> (the text assumes <optgroup> can only be inside a
- <select>; commented out text below can handle the non-<select> case
- if we ever allow it) -->
- <p>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
- <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor
- <code>select</code> element and--> is immediately followed by
- another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements
- that are ancestors of the <code>optgroup</code> element, up to and
- including the first ancestor element that is not an
- <code>optgroup</code> element, have no more content--> there is no
- more content in the parent element.</p>
+ <!-- </optgroup> (the text assumes <optgroup> can only be inside a <select>; commented out text
+ below can handle the non-<select> case if we ever allow it) -->
+ <p>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted
+ if the <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor <code>select</code> element and--> is
+ immediately followed by another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements that
+ are ancestors of the <code>optgroup</code> element, up to and including the first ancestor element
+ that is not an <code>optgroup</code> element, have no more content--> there is no more content in
+ the parent element.</p>
<!-- so e.g. the max number of </optgroup>s are omitted here:
<select><optgroup></select>
<p id=x><optgroup></optgroup>x</p>
@@ -85101,94 +84937,79 @@
-->
<!-- </option> -->
- <p>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-option-element>option</a></code> element is
- immediately followed by another <code><a href=#the-option-element>option</a></code> element, or if
- it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or
- if there is no more content in the parent element.</p>
+ <p>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-option-element>option</a></code> element is immediately followed by another <code><a href=#the-option-element>option</a></code> element, or
+ if it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or if there is no more content
+ in the parent element.</p>
<!-- <colgroup> -->
- <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a
- <code><a href=#the-col-element>col</a></code> element, and if the element is not immediately
- preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be
- omitted if the element is empty.)</p>
+ <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be
+ omitted if the first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a <code><a href=#the-col-element>col</a></code> element,
+ and if the element is not immediately preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose
+ <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be omitted if the element
+ is empty.)</p>
<!-- </colgroup> -->
- <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
- <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a
- <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or
+ a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- </thead> -->
- <p>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-thead-element>thead</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element.</p>
+ <p>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-thead-element>thead</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element.</p>
<!-- <tbody> -->
- <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a
- <code><a href=#the-tr-element>tr</a></code> element, and if the element is not immediately
- preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
- <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> has been omitted. (It can't be omitted if the element is
- empty.)</p>
+ <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted
+ if the first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a <code><a href=#the-tr-element>tr</a></code> element, and if the
+ element is not immediately preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It
+ can't be omitted if the element is empty.)</p>
<!-- </tbody> -->
- <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-tbody-element>tbody</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-tbody-element>tbody</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element, or if there is no more content in the parent element.</p>
<!-- </tfoot> -->
- <p>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-tfoot-element>tfoot</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if there is
- no more content in the parent element.</p>
+ <p>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-tfoot-element>tfoot</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if
+ there is no more content in the parent element.</p>
<!-- </tr> -->
- <p>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-tr-element>tr</a></code> element is
- immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there
- is no more content in the parent element.</p>
+ <p>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-tr-element>tr</a></code> element is immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there is
+ no more content in the parent element.</p>
<!-- </td> -->
- <p>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-td-element>td</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-td-element>td</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</p>
<!-- </th> -->
- <p>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-th-element>th</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-th-element>th</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</p>
- <p><strong>However</strong>, a <a href=#syntax-start-tag title=syntax-start-tag>start
- tag</a> must never be omitted if it has any attributes.</p>
+ <p><strong>However</strong>, a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> must never be
+ omitted if it has any attributes.</p>
<h5 id=element-restrictions><span class=secno>12.1.2.5 </span>Restrictions on content models</h5>
- <p>For historical reasons, certain elements have extra restrictions
- beyond even the restrictions given by their content model.</p>
+ <p>For historical reasons, certain elements have extra restrictions beyond even the restrictions
+ given by their content model.</p>
- <p>A <code><a href=#the-table-element>table</a></code> element must not contain <code><a href=#the-tr-element>tr</a></code>
- elements, even though these elements are technically allowed inside
- <code><a href=#the-table-element>table</a></code> elements according to the content models
- described in this specification. (If a <code><a href=#the-tr-element>tr</a></code> element is
- put inside a <code><a href=#the-table-element>table</a></code> in the markup, it will in fact imply
- a <code><a href=#the-tbody-element>tbody</a></code> start tag before it.)</p>
+ <p>A <code><a href=#the-table-element>table</a></code> element must not contain <code><a href=#the-tr-element>tr</a></code> elements, even though these
+ elements are technically allowed inside <code><a href=#the-table-element>table</a></code> elements according to the content
+ models described in this specification. (If a <code><a href=#the-tr-element>tr</a></code> element is put inside a
+ <code><a href=#the-table-element>table</a></code> in the markup, it will in fact imply a <code><a href=#the-tbody-element>tbody</a></code> start tag before
+ it.)</p>
- <p>A single <a href=#syntax-newlines title=syntax-newlines>newline</a> may be
- placed immediately after the <a href=#syntax-start-tag title=syntax-start-tag>start
- tag</a> of <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-textarea-element>textarea</a></code>
- elements. This does not affect the processing of the element. The
- otherwise optional <a href=#syntax-newlines title=syntax-newlines>newline</a>
- <em>must</em> be included if the element's contents themselves start
- with a <a href=#syntax-newlines title=syntax-newlines>newline</a> (because
- otherwise the leading newline in the contents would be treated like
- the optional newline, and ignored).</p>
+ <p>A single <a href=#syntax-newlines title=syntax-newlines>newline</a> may be placed immediately after the <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> of <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-textarea-element>textarea</a></code> elements.
+ This does not affect the processing of the element. The otherwise optional <a href=#syntax-newlines title=syntax-newlines>newline</a> <em>must</em> be included if the element's contents
+ themselves start with a <a href=#syntax-newlines title=syntax-newlines>newline</a> (because otherwise the
+ leading newline in the contents would be treated like the optional newline, and ignored).</p>
<div class=example>
<p>The following two <code><a href=#the-pre-element>pre</a></code> blocks are equivalent:</p>
@@ -85199,53 +85020,46 @@
<h5 id=cdata-rcdata-restrictions><span class=secno>12.1.2.6 </span>Restrictions on the contents of raw text and escapable raw text elements</h5>
- <p>The text in <a href=#raw-text-elements title="raw text elements">raw text</a> and
- <a href=#escapable-raw-text-elements>escapable raw text elements</a> must not contain any occurrences of the
- string "<code title=""></</code>" (U+003C LESS-THAN SIGN, U+002F
- SOLIDUS) followed by characters that case-insensitively match the
- tag name of the element followed by one of U+0009 CHARACTER
- TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D
- CARRIAGE RETURN (CR), U+0020 SPACE, U+003E GREATER-THAN SIGN (>), or
- U+002F SOLIDUS (/).</p>
+ <p>The text in <a href=#raw-text-elements title="raw text elements">raw text</a> and <a href=#escapable-raw-text-elements>escapable raw text
+ elements</a> must not contain any occurrences of the string "<code title=""></</code>"
+ (U+003C LESS-THAN SIGN, U+002F SOLIDUS) followed by characters that case-insensitively match the
+ tag name of the element followed by one of U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED
+ (LF), U+000C FORM FEED (FF), U+000D CARRIAGE RETURN (CR), U+0020 SPACE, U+003E GREATER-THAN SIGN
+ (>), or U+002F SOLIDUS (/).</p>
<h4 id=text-0><span class=secno>12.1.3 </span>Text</h4>
- <p><dfn id=syntax-text title=syntax-text>Text</dfn> is allowed inside elements,
- attribute values, and comments. Extra constraints are placed on what
- is and what is not allowed in text based on where the text is to be
- put, as described in the other sections.</p>
+ <p><dfn id=syntax-text title=syntax-text>Text</dfn> is allowed inside elements, attribute values, and comments.
+ Extra constraints are placed on what is and what is not allowed in text based on where the text is
+ to be put, as described in the other sections.</p>
<h5 id=newlines><span class=secno>12.1.3.1 </span>Newlines</h5>
- <p><dfn id=syntax-newlines title=syntax-newlines>Newlines</dfn> in HTML may be
- represented either as U+000D CARRIAGE RETURN (CR) characters, U+000A
- LINE FEED (LF) characters, or pairs of U+000D CARRIAGE RETURN (CR),
- U+000A LINE FEED (LF) characters in that order.</p>
+ <p><dfn id=syntax-newlines title=syntax-newlines>Newlines</dfn> in HTML may be represented either as U+000D
+ CARRIAGE RETURN (CR) characters, U+000A LINE FEED (LF) characters, or pairs of U+000D CARRIAGE
+ RETURN (CR), U+000A LINE FEED (LF) characters in that order.</p>
- <p>Where <a href=#syntax-charref title=syntax-charref>character references</a>
- are allowed, a character reference of a U+000A LINE FEED (LF)
- character (but not a U+000D CARRIAGE RETURN (CR) character) also
- represents a <a href=#syntax-newlines title=syntax-newlines>newline</a>.</p>
+ <p>Where <a href=#syntax-charref title=syntax-charref>character references</a> are allowed, a character
+ reference of a U+000A LINE FEED (LF) character (but not a U+000D CARRIAGE RETURN (CR) character)
+ also represents a <a href=#syntax-newlines title=syntax-newlines>newline</a>.</p>
<h4 id=character-references><span class=secno>12.1.4 </span>Character references</h4>
- <p>In certain cases described in other sections, <a href=#syntax-text title=syntax-text>text</a> may be mixed with <dfn id=syntax-charref title=syntax-charref>character references</dfn>. These can be used
- to escape characters that couldn't otherwise legally be included in
- <a href=#syntax-text title=syntax-text>text</a>.</p>
+ <p>In certain cases described in other sections, <a href=#syntax-text title=syntax-text>text</a> may be
+ mixed with <dfn id=syntax-charref title=syntax-charref>character references</dfn>. These can be used to escape
+ characters that couldn't otherwise legally be included in <a href=#syntax-text title=syntax-text>text</a>.</p>
- <p>Character references must start with a U+0026 AMPERSAND character
- (&). Following this, there are three possible kinds of character
- references:</p>
+ <p>Character references must start with a U+0026 AMPERSAND character (&). Following this,
+ there are three possible kinds of character references:</p>
<dl><dt>Named character references</dt>
- <dd>The ampersand must be followed by one of the names given in the
- <a href=#named-character-references>named character references</a> section, using the same
- case. <span class=impl>The name must be one that is terminated by
- a U+003B SEMICOLON character (;).</span></dd>
+ <dd>The ampersand must be followed by one of the names given in the <a href=#named-character-references>named character
+ references</a> section, using the same case. <span class=impl>The name must be one that is
+ terminated by a U+003B SEMICOLON character (;).</span></dd>
<dt>Decimal numeric character reference</dt>
@@ -85265,11 +85079,9 @@
according to the definition below. The digits must then be followed by a U+003B SEMICOLON
character (;).</dd>
- </dl><p>The numeric character reference forms described above are allowed
- to reference any Unicode code point other than U+0000, U+000D,
- permanently undefined Unicode characters (noncharacters), and
- control characters other than <a href=#space-character title="space character">space
- characters</a>.</p>
+ </dl><p>The numeric character reference forms described above are allowed to reference any Unicode code
+ point other than U+0000, U+000D, permanently undefined Unicode characters (noncharacters), and
+ control characters other than <a href=#space-character title="space character">space characters</a>.</p>
<p>An <dfn id=syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</dfn> is a U+0026 AMPERSAND
character (&) that is followed by one or more <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
@@ -85279,22 +85091,20 @@
<h4 id=cdata-sections><span class=secno>12.1.5 </span>CDATA sections</h4>
- <p><dfn id=syntax-cdata title=syntax-cdata>CDATA sections</dfn> must consist of
- the following components, in this order:</p>
+ <p><dfn id=syntax-cdata title=syntax-cdata>CDATA sections</dfn> must consist of the following components, in
+ this order:</p>
<ol><li>The string "<code title=""><![CDATA[</code>".</li>
- <li>Optionally, <a href=#syntax-text title=syntax-text>text</a>, with the
- additional restriction that the text must not contain the string
- "<code title="">]]></code>".</li>
+ <li>Optionally, <a href=#syntax-text title=syntax-text>text</a>, with the additional restriction that the
+ text must not contain the string "<code title="">]]></code>".</li>
<li>The string "<code title="">]]></code>".</li>
</ol><div class=example>
- <p>CDATA sections can only be used in foreign content (MathML or
- SVG). In this example, a CDATA section is used to escape the
- contents of an <code>ms</code> element:</p>
+ <p>CDATA sections can only be used in foreign content (MathML or SVG). In this example, a CDATA
+ section is used to escape the contents of an <code>ms</code> element:</p>
<pre><p>You can add a string to a number, but this stringifies the number:</p>
<math>
@@ -85310,18 +85120,13 @@
<h4 id=comments><span class=secno>12.1.6 </span>Comments</h4>
- <p><dfn id=syntax-comments title=syntax-comments>Comments</dfn> must start with the
- four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
- MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code title=""><!--</code>). Following this sequence, the comment may
- have <a href=#syntax-text title=syntax-text>text</a>, with the additional
- restriction that the text must not start with a single U+003E
- GREATER-THAN SIGN character (>), nor start with a U+002D
- HYPHEN-MINUS character (-) followed by a U+003E GREATER-THAN SIGN
- (>) character, nor contain two consecutive U+002D HYPHEN-MINUS
- characters (<code title="">--</code>), nor end with a U+002D
- HYPHEN-MINUS character (-). Finally, the comment must be ended by
- the three character sequence U+002D HYPHEN-MINUS, U+002D
- HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--></code>).</p>
+ <p><dfn id=syntax-comments title=syntax-comments>Comments</dfn> must start with the four character sequence U+003C
+ LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code title=""><!--</code>). Following this sequence, the comment may have <a href=#syntax-text title=syntax-text>text</a>, with the additional restriction that the text must not start with
+ a single U+003E GREATER-THAN SIGN character (>), nor start with a U+002D HYPHEN-MINUS character
+ (-) followed by a U+003E GREATER-THAN SIGN (>) character, nor contain two consecutive U+002D
+ HYPHEN-MINUS characters (<code title="">--</code>), nor end with a U+002D HYPHEN-MINUS character
+ (-). Finally, the comment must be ended by the three character sequence U+002D HYPHEN-MINUS,
+ U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--></code>).</p>
<!--HTMLPARSER-->
@@ -85329,69 +85134,54 @@
<div class=impl>
<h3 id=parsing><span class=secno>12.2 </span>Parsing HTML documents</h3>
-<!--CLEANUP-->
- <p><i>This section only applies to user agents, data mining tools,
- and conformance checkers.</i></p>
+ <p><i>This section only applies to user agents, data mining tools, and conformance
+ checkers.</i></p>
- <p class=note>The rules for parsing XML documents into DOM trees
- are covered by the next section, entitled "<a href=#the-xhtml-syntax>The XHTML
- syntax</a>".</p>
+ <p class=note>The rules for parsing XML documents into DOM trees are covered by the next
+ section, entitled "<a href=#the-xhtml-syntax>The XHTML syntax</a>".</p>
- <p>User agents must use the parsing rules described in this section
- to generate the DOM trees from <code><a href=#text/html>text/html</a></code> resources.
- Together, these rules define what is referred to as the <dfn id=html-parser>HTML
- parser</dfn>.</p>
+ <p>User agents must use the parsing rules described in this section to generate the DOM trees from
+ <code><a href=#text/html>text/html</a></code> resources. Together, these rules define what is referred to as the
+ <dfn id=html-parser>HTML parser</dfn>.</p>
<div class=note>
- <p>While the HTML syntax described in this specification bears a
- close resemblance to SGML and XML, it is a separate language with
- its own parsing rules.</p>
+ <p>While the HTML syntax described in this specification bears a close resemblance to SGML and
+ XML, it is a separate language with its own parsing rules.</p>
- <p>Some earlier versions of HTML (in particular from HTML2 to
- HTML4) were based on SGML and used SGML parsing rules. However, few
- (if any) web browsers ever implemented true SGML parsing for HTML
- documents; the only user agents to strictly handle HTML as an SGML
- application have historically been validators. The resulting
- confusion — with validators claiming documents to have one
- representation while widely deployed Web browsers interoperably
- implemented a different representation — has wasted decades
- of productivity. This version of HTML thus returns to a non-SGML
- basis.</p>
+ <p>Some earlier versions of HTML (in particular from HTML2 to HTML4) were based on SGML and used
+ SGML parsing rules. However, few (if any) web browsers ever implemented true SGML parsing for
+ HTML documents; the only user agents to strictly handle HTML as an SGML application have
+ historically been validators. The resulting confusion — with validators claiming documents
+ to have one representation while widely deployed Web browsers interoperably implemented a
+ different representation — has wasted decades of productivity. This version of HTML thus
+ returns to a non-SGML basis.</p>
- <p>Authors interested in using SGML tools in their authoring
- pipeline are encouraged to use XML tools and the XML serialization
- of HTML.</p>
+ <p>Authors interested in using SGML tools in their authoring pipeline are encouraged to use XML
+ tools and the XML serialization of HTML.</p>
</div>
- <p>This specification defines the parsing rules for HTML documents,
- whether they are syntactically correct or not. Certain points in the
- parsing algorithm are said to be <dfn id=parse-error title="parse error">parse
- errors</dfn>. The error handling for parse errors is well-defined
- (that's the processing rules described throughout this specification), but
- user agents, while parsing an HTML document, may <a href=#abort-a-parser title="abort a
- parser">abort the parser</a> at the first <a href=#parse-error>parse error</a> that they
- encounter for which they do not wish to apply the rules described
- in this specification.</p>
+ <p>This specification defines the parsing rules for HTML documents, whether they are syntactically
+ correct or not. Certain points in the parsing algorithm are said to be <dfn id=parse-error title="parse
+ error">parse errors</dfn>. The error handling for parse errors is well-defined (that's the
+ processing rules described throughout this specification), but user agents, while parsing an HTML
+ document, may <a href=#abort-a-parser title="abort a parser">abort the parser</a> at the first <a href=#parse-error>parse
+ error</a> that they encounter for which they do not wish to apply the rules described in this
+ specification.</p>
- <p>Conformance checkers must report at least one parse error
- condition to the user if one or more parse error conditions exist in
- the document and must not report parse error conditions if none
- exist in the document. Conformance checkers may report more than one
- parse error condition if more than one parse error condition exists
- in the document.</p>
+ <p>Conformance checkers must report at least one parse error condition to the user if one or more
+ parse error conditions exist in the document and must not report parse error conditions if none
+ exist in the document. Conformance checkers may report more than one parse error condition if more
+ than one parse error condition exists in the document.</p>
- <p class=note>Parse errors are only errors with the
- <em>syntax</em> of HTML. In addition to checking for parse errors,
- conformance checkers will also verify that the document obeys all
- the other conformance requirements described in this
- specification.</p>
+ <p class=note>Parse errors are only errors with the <em>syntax</em> of HTML. In addition to
+ checking for parse errors, conformance checkers will also verify that the document obeys all the
+ other conformance requirements described in this specification.</p>
- <p>For the purposes of conformance checkers, if a resource is
- determined to be in <a href=#syntax>the HTML syntax</a>, then it is an
- <a href=#html-documents title="HTML documents">HTML document</a>.</p>
+ <p>For the purposes of conformance checkers, if a resource is determined to be in <a href=#syntax>the HTML
+ syntax</a>, then it is an <a href=#html-documents title="HTML documents">HTML document</a>.</p>
</div>
@@ -85402,34 +85192,28 @@
<p class=overview><object width=345 height=535 data=images/parsing-model-overview.svg><img src=http://images.whatwg.org/parsing-model-overview.png width=345 alt="" height=450></object></p>
- <p>The input to the HTML parsing process consists of a stream of
- <a href=#unicode-code-point title="Unicode code point">Unicode code points</a>, which
- is passed through a <a href=#tokenization>tokenization</a> stage followed by a
- <a href=#tree-construction>tree construction</a> stage. The output is a
- <code><a href=#document>Document</a></code> object.</p>
+ <p>The input to the HTML parsing process consists of a stream of <a href=#unicode-code-point title="Unicode code
+ point">Unicode code points</a>, which is passed through a <a href=#tokenization>tokenization</a> stage
+ followed by a <a href=#tree-construction>tree construction</a> stage. The output is a <code><a href=#document>Document</a></code>
+ object.</p>
- <p class=note>Implementations that <a href=#non-scripted>do not
- support scripting</a> do not have to actually create a DOM
- <code><a href=#document>Document</a></code> object, but the DOM tree in such cases is
+ <p class=note>Implementations that <a href=#non-scripted>do not support scripting</a> do not
+ have to actually create a DOM <code><a href=#document>Document</a></code> object, but the DOM tree in such cases is
still used as the model for the rest of the specification.</p>
- <p>In the common case, the data handled by the tokenization stage
- comes from the network, but <a href=#dynamic-markup-insertion title="dynamic markup
- insertion">it can also come from script</a> running in the user
+ <p>In the common case, the data handled by the tokenization stage comes from the network, but
+ <a href=#dynamic-markup-insertion title="dynamic markup insertion">it can also come from script</a> running in the user
agent, e.g. using the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> API.</p>
- <p id=nestedParsing>There is only one set of states for the
- tokenizer stage and the tree construction stage, but the tree
- construction stage is reentrant, meaning that while the tree
- construction stage is handling one token, the tokenizer might be
- resumed, causing further tokens to be emitted and processed before
- the first token's processing is complete.</p>
+ <p id=nestedParsing>There is only one set of states for the tokenizer stage and the tree
+ construction stage, but the tree construction stage is reentrant, meaning that while the tree
+ construction stage is handling one token, the tokenizer might be resumed, causing further tokens
+ to be emitted and processed before the first token's processing is complete.</p>
<div class=example>
- <p>In the following example, the tree construction stage will be
- called upon to handle a "p" start tag token while handling the
- "script" end tag token:</p>
+ <p>In the following example, the tree construction stage will be called upon to handle a "p"
+ start tag token while handling the "script" end tag token:</p>
<pre>...
<script>
@@ -85439,9 +85223,8 @@
</div>
- <p>To handle these cases, parsers have a <dfn id=script-nesting-level>script nesting
- level</dfn>, which must be initially set to zero, and a <dfn id=parser-pause-flag>parser
- pause flag</dfn>, which must be initially set to false.</p>
+ <p>To handle these cases, parsers have a <dfn id=script-nesting-level>script nesting level</dfn>, which must be initially
+ set to zero, and a <dfn id=parser-pause-flag>parser pause flag</dfn>, which must be initially set to false.</p>
</div>
@@ -85451,29 +85234,23 @@
<h4 id=the-input-byte-stream><span class=secno>12.2.2 </span>The <dfn>input byte stream</dfn></h4>
-<!--CLEANUP-->
- <p>The stream of Unicode code points that comprises the input to the
- tokenization stage will be initially seen by the user agent as a
- stream of bytes (typically coming over the network or from the local
- file system). The bytes encode the actual characters according to a
- particular <i>character encoding</i>, which the user agent uses
- to decode the bytes into characters.</p>
+ <p>The stream of Unicode code points that comprises the input to the tokenization stage will be
+ initially seen by the user agent as a stream of bytes (typically coming over the network or from
+ the local file system). The bytes encode the actual characters according to a particular
+ <i>character encoding</i>, which the user agent uses to decode the bytes into characters.</p>
- <p class=note>For XML documents, the algorithm user agents must
- use to determine the character encoding is given by the XML
- specification. This section does not apply to XML documents. <a href=#refsXML>[XML]</a></p>
+ <p class=note>For XML documents, the algorithm user agents must use to determine the character
+ encoding is given by the XML specification. This section does not apply to XML documents. <a href=#refsXML>[XML]</a></p>
- <p>Usually, the <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> defined below is
- used to determine the character encoding.</p>
+ <p>Usually, the <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> defined below is used to determine the
+ character encoding.</p>
- <p>Given a character encoding, the bytes in the <a href=#the-input-byte-stream>input byte
- stream</a> must be converted to Unicode code points for the
- tokenizer's <a href=#input-stream>input stream</a>, as described by the rules for
- that encoding's <a href=#decoder>decoder</a>.</p>
+ <p>Given a character encoding, the bytes in the <a href=#the-input-byte-stream>input byte stream</a> must be converted
+ to Unicode code points for the tokenizer's <a href=#input-stream>input stream</a>, as described by the rules
+ for that encoding's <a href=#decoder>decoder</a>.</p>
- <p class=note>Bytes or sequences of bytes in the original byte
- stream that did not conform to the encoding specification (e.g.
- invalid UTF-8 byte sequences in a UTF-8 input byte stream) are
+ <p class=note>Bytes or sequences of bytes in the original byte stream that did not conform to
+ the encoding specification (e.g. invalid UTF-8 byte sequences in a UTF-8 input byte stream) are
errors that conformance checkers are expected to report.</p>
<p class=note>Leading Byte Order Marks (BOMs) are not stripped by the decoder algorithms, they
@@ -95225,7 +95002,7 @@
:root:lang(uk), :not(:lang(uk)) > :lang(uk) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */
:root:lang(ur), :not(:lang(ur)) > :lang(ur) { quotes: '\201d' '\201c' '\2019' '\2018' } /* ” “ ’ ‘ */
:root:lang(uz), :not(:lang(uz)) > :lang(uz) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
-:root:lang(uz-Latn), :not(:lang(uz-Latn)) > :lang(uz-Latn) { quotes: '\0022' '\0022' '\0027' '\0027' } /* " " ' ' */
+:root:lang(uz-Latn), :not(:lang(uz-Latn)) > :lang(uz-Latn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(vai), :not(:lang(vai)) > :lang(vai) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(vai-Latn), :not(:lang(vai-Latn)) > :lang(vai-Latn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(vi), :not(:lang(vi)) > :lang(vi) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
Modified: index
===================================================================
--- index 2013-08-02 21:48:03 UTC (rev 8124)
+++ index 2013-08-03 16:04:58 UTC (rev 8125)
@@ -256,7 +256,7 @@
<header class=head id=head><p><a href=http://www.whatwg.org/ class=logo><img width=101 src=/images/logo alt=WHATWG height=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
- <h2 class="no-num no-toc">Living Standard — Last Updated 2 August 2013</h2>
+ <h2 class="no-num no-toc">Living Standard — Last Updated 3 August 2013</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>
@@ -12266,11 +12266,10 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>A <code><a href=#the-head-element>head</a></code> element followed by a <code><a href=#the-body-element>body</a></code> element.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
- <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-html-element>html</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted
+ if the first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-html-element>html</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code> — <a href=#concept-appcache-manifest title=concept-appcache-manifest>Application cache manifest</a></dd>
@@ -12340,12 +12339,11 @@
<dd>If the document is <a href=#an-iframe-srcdoc-document>an <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code> document</a> or if title information is available from a higher-level protocol: Zero or more elements of <a href=#metadata-content>metadata content</a>, of which no more than one is a <code><a href=#the-title-element>title</a></code> element.</dd>
<dd>Otherwise: One or more elements of <a href=#metadata-content>metadata content</a>, of which exactly one is a <code><a href=#the-title-element>title</a></code> element.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- element is empty, or if the first thing inside the
- <code><a href=#the-head-element>head</a></code> element is an element.</dd>
- <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-head-element>head</a></code> element is not
- immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-head-element>head</a></code> element is an
+ element.</dd>
+ <dd>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-head-element>head</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -15556,17 +15554,15 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code>
- element is not a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the first thing
- inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or
- <code><a href=#the-style-element>style</a></code> element. <!-- Note that even if the </head> end
- tag is present, the parser makes <style> and <script> elements
- between </head> and <body> end up in the <head> instead of implying
- the <body> --></dd>
- <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-body-element>body</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code> element is not a
+ <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the
+ first thing inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or <code><a href=#the-style-element>style</a></code>
+ element. <!-- Note that even if the </head> end tag is present, the parser makes <style> and
+ <script> elements between </head> and <body> end up in the <head> instead of implying the <body>
+ --></dd>
+ <dd>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-body-element>body</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=handler-window-onafterprint><a href=#handler-window-onafterprint>onafterprint</a></code></dd>
@@ -17700,19 +17696,15 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#phrasing-content>Phrasing content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-p-element>p</a></code> element is
- immediately followed by an <code><a href=#the-address-element>address</a></code>,
- <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>,
- <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
- <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
- <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>,
- <code><a href=#the-nav-element>nav</a></code>, <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>,
- <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or <code><a href=#the-ul-element>ul</a></code>,
- element, or if there is no more content in the parent element and
- the parent element is not an <code><a href=#the-a-element>a</a></code> element.</dd>
+ <dd>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-p-element>p</a></code> element is immediately followed by an <code><a href=#the-address-element>address</a></code>, <code><a href=#the-article-element>article</a></code>,
+ <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>, <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
+ <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
+ <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>, <code><a href=#the-nav-element>nav</a></code>,
+ <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>, <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or
+ <code><a href=#the-ul-element>ul</a></code>, element, or if there is no more content in the parent element and the parent
+ element is not an <code><a href=#the-a-element>a</a></code> element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -18494,10 +18486,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-li-element>li</a></code> element is
- immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there
- is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-li-element>li</a></code> element is immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there is
+ no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd>If the element is a child of an <code><a href=#the-ol-element>ol</a></code> element: <code title=attr-li-value><a href=#attr-li-value>value</a></code> — <a href=#ordinal-value>Ordinal value</a> of the list item</dd>
@@ -18756,9 +18747,8 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, <a href=#sectioning-content>sectioning content</a>, or <a href=#heading-content>heading content</a> descendants.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-dt-element>dt</a></code> element is
- immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
+ <dd>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-dt-element>dt</a></code> element is immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
<code><a href=#the-dd-element>dd</a></code> element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
@@ -18804,11 +18794,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-dd-element>dd</a></code> element is
- immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
- <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the
- parent element.</dd>
+ <dd>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-dd-element>dd</a></code> element is immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
+ <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -21544,10 +21532,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#phrasing-content>Phrasing content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-rt-element>rt</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-rt-element>rt</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -21574,10 +21561,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#phrasing-content>Phrasing content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-rp-element>rp</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-rp-element>rp</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -26143,45 +26129,38 @@
// <a href="#HTMLParamElement-partial">also has obsolete members</a>
};</pre>
</dd>
- </dl><!--TOPIC:HTML--><!--CLEANUP--><p>The <code><a href=#the-param-element>param</a></code> element defines parameters for plugins
- invoked by <code><a href=#the-object-element>object</a></code> elements. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
+ </dl><!--TOPIC:HTML--><p>The <code><a href=#the-param-element>param</a></code> element defines parameters for plugins invoked by <code><a href=#the-object-element>object</a></code>
+ elements. It does not <a href=#represents title=represents>represent</a> anything on its own.</p>
- <p>The <dfn id=attr-param-name title=attr-param-name><code>name</code></dfn>
- attribute gives the name of the parameter.</p>
+ <p>The <dfn id=attr-param-name title=attr-param-name><code>name</code></dfn> attribute gives the name of the
+ parameter.</p>
- <p>The <dfn id=attr-param-value title=attr-param-value><code>value</code></dfn>
- attribute gives the value of the parameter.</p>
+ <p>The <dfn id=attr-param-value title=attr-param-value><code>value</code></dfn> attribute gives the value of the
+ parameter.</p>
<p>Both attributes must be present. They may have any value.</p>
<div class=impl>
- <p>If both attributes are present, and if the parent element of the
- <code><a href=#the-param-element>param</a></code> is an <code><a href=#the-object-element>object</a></code> element, then the
- element defines a <dfn id=concept-param-parameter title=concept-param-parameter>parameter</dfn> with the given
- name-value pair.</p>
+ <p>If both attributes are present, and if the parent element of the <code><a href=#the-param-element>param</a></code> is an
+ <code><a href=#the-object-element>object</a></code> element, then the element defines a <dfn id=concept-param-parameter title=concept-param-parameter>parameter</dfn> with the given name-value pair.</p>
- <p>If either the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> defined by a
- <code><a href=#the-param-element>param</a></code> element that is the child of an
- <code><a href=#the-object-element>object</a></code> element that <a href=#represents>represents</a> an
- instantiated <a href=#plugin>plugin</a> changes, and if that
- <a href=#plugin>plugin</a> is communicating with the user agent using an
- API that features the ability to update the <a href=#plugin>plugin</a> when
- the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> so changes, then
- the user agent must appropriately exercise that ability to notify
- the <a href=#plugin>plugin</a> of the change.</p>
+ <p>If either the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> defined
+ by a <code><a href=#the-param-element>param</a></code> element that is the child of an <code><a href=#the-object-element>object</a></code> element that
+ <a href=#represents>represents</a> an instantiated <a href=#plugin>plugin</a> changes, and if that
+ <a href=#plugin>plugin</a> is communicating with the user agent using an API that features the ability to
+ update the <a href=#plugin>plugin</a> when the name or value of a <a href=#concept-param-parameter title=concept-param-parameter>parameter</a> so changes, then the user agent must
+ appropriately exercise that ability to notify the <a href=#plugin>plugin</a> of the change.</p>
- <p>The IDL attributes <dfn id=dom-param-name title=dom-param-name><code>name</code></dfn> and <dfn id=dom-param-value title=dom-param-value><code>value</code></dfn> must both
- <a href=#reflect>reflect</a> the respective content attributes of the same
- name.</p>
+ <p>The IDL attributes <dfn id=dom-param-name title=dom-param-name><code>name</code></dfn> and <dfn id=dom-param-value title=dom-param-value><code>value</code></dfn> must both <a href=#reflect>reflect</a> the respective
+ content attributes of the same name.</p>
</div>
<div class=example>
- <p>The following example shows how the <code><a href=#the-param-element>param</a></code> element
- can be used to pass a parameter to a plugin, in this case the O3D
- plugin.</p>
+ <p>The following example shows how the <code><a href=#the-param-element>param</a></code> element can be used to pass a parameter
+ to a plugin, in this case the O3D plugin.</p>
<pre><!DOCTYPE HTML>
<html lang="en">
@@ -26253,15 +26232,13 @@
attribute DOMString <a href=#dom-video-poster title=dom-video-poster>poster</a>;
};</pre>
</dd>
- </dl><!--TOPIC:HTML--><p>A <code><a href=#the-video-element>video</a></code> element is used for playing videos or
- movies, and audio files with captions.</p>
+ </dl><!--TOPIC:HTML--><p>A <code><a href=#the-video-element>video</a></code> element is used for playing videos or movies, and audio files with
+ captions.</p>
- <p>Content may be provided inside the <code><a href=#the-video-element>video</a></code>
- element<span class=impl>. User agents should not show this content
- to the user</span>; it is intended for older Web browsers which do
- not support <code><a href=#the-video-element>video</a></code>, so that legacy video plugins can be
- tried, or to show text to the users of these older browsers informing
- them of how to access the video contents.</p>
+ <p>Content may be provided inside the <code><a href=#the-video-element>video</a></code> element<span class=impl>. User agents
+ should not show this content to the user</span>; it is intended for older Web browsers which do
+ not support <code><a href=#the-video-element>video</a></code>, so that legacy video plugins can be tried, or to show text to the
+ users of these older browsers informing them of how to access the video contents.</p>
<p class=note>In particular, this content is not intended to address accessibility concerns. To
make video content accessible to the partially sighted, the blind, the hard-of-hearing, the deaf,
@@ -26277,21 +26254,17 @@
users who would rather not use a media element at all, transcripts or other textual alternatives
can be provided by simply linking to them in the prose near the <code><a href=#the-video-element>video</a></code> element. <a href=#refsWEBVTT>[WEBVTT]</a></p>
- <p>The <code><a href=#the-video-element>video</a></code> element is a <a href=#media-element>media element</a>
- whose <a href=#media-data>media data</a> is ostensibly video data, possibly
- with associated audio data.</p>
+ <p>The <code><a href=#the-video-element>video</a></code> element is a <a href=#media-element>media element</a> whose <a href=#media-data>media data</a> is
+ ostensibly video data, possibly with associated audio data.</p>
- <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>, <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>,
- <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>,
- <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>,
- <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
+ <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>,
+ <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>, <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>, <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>, <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code>
+ attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
elements</a>.</p>
- <p>The <dfn id=attr-video-poster title=attr-video-poster><code>poster</code></dfn>
- attribute gives the address of an image file that the user agent can
- show while no video data is available. The attribute, if present,
- must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by
- spaces</a>.</p>
+ <p>The <dfn id=attr-video-poster title=attr-video-poster><code>poster</code></dfn> attribute gives the address of an
+ image file that the user agent can show while no video data is available. The attribute, if
+ present, must contain a <a href=#valid-non-empty-url-potentially-surrounded-by-spaces>valid non-empty URL potentially surrounded by spaces</a>.</p>
<div class=impl>
@@ -26300,23 +26273,20 @@
value of the element's <a href=#show-poster-flag>show poster flag</a>):</p> <!-- thus it is unaffected by changes
to the base URL. -->
- <ol><li><p>If there is an existing instance of this algorithm running
- for this <code><a href=#the-video-element>video</a></code> element, abort that instance of this
- algorithm without changing the <a href=#poster-frame>poster frame</a>.</li>
+ <ol><li><p>If there is an existing instance of this algorithm running for this <code><a href=#the-video-element>video</a></code>
+ element, abort that instance of this algorithm without changing the <a href=#poster-frame>poster
+ frame</a>.</li>
- <li><p>If the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code>
- attribute's value is the empty string or if the attribute is
- absent, then there is no <a href=#poster-frame>poster frame</a>; abort these
+ <li><p>If the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute's value is the empty string
+ or if the attribute is absent, then there is no <a href=#poster-frame>poster frame</a>; abort these
steps.</li>
- <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute's value relative
- to the element. If this fails, then there is no <a href=#poster-frame>poster
- frame</a>; abort these steps.</li>
+ <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute's value relative to the element. If this fails,
+ then there is no <a href=#poster-frame>poster frame</a>; abort these steps.</li>
- <li><p><a href=#fetch>Fetch</a><!--FETCH--> the resulting <a href=#absolute-url>absolute
- URL</a>, from the element's <code><a href=#document>Document</a></code>'s
- <a href=#origin>origin</a>. This must <a href=#delay-the-load-event>delay the load event</a> of
- the element's document.</li>
+ <li><p><a href=#fetch>Fetch</a><!--FETCH--> the resulting <a href=#absolute-url>absolute URL</a>, from the element's
+ <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a>. This must <a href=#delay-the-load-event>delay the load event</a> of the
+ element's document.</li>
<!-- could define how to sniff for an image here -->
@@ -26407,44 +26377,34 @@
</dl><div class=impl>
- <p>The <dfn id=concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic
- width</dfn> and <dfn id=concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</dfn> of the
- <a href=#media-resource>media resource</a> are the dimensions of the resource in
- CSS pixels after taking into account the resource's dimensions,
- aspect ratio, clean aperture, resolution, and so forth, as defined
- for the format used by the resource. If an anamorphic format does
- not define how to apply the aspect ratio to the video data's
- dimensions to obtain the "correct" dimensions, then the user agent
- must apply the ratio by increasing one dimension and leaving the
- other unchanged.</p>
+ <p>The <dfn id=concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</dfn> and <dfn id=concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</dfn> of the <a href=#media-resource>media resource</a>
+ are the dimensions of the resource in CSS pixels after taking into account the resource's
+ dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used
+ by the resource. If an anamorphic format does not define how to apply the aspect ratio to the
+ video data's dimensions to obtain the "correct" dimensions, then the user agent must apply the
+ ratio by increasing one dimension and leaving the other unchanged.</p>
- <p>The <dfn id=dom-video-videowidth title=dom-video-videoWidth><code>videoWidth</code></dfn> IDL
- attribute must return the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a> of the
- video in CSS pixels. The <dfn id=dom-video-videoheight title=dom-video-videoHeight><code>videoHeight</code></dfn> IDL
- attribute must return the <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a> of
- the video in CSS pixels. If the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then the
- attributes must return 0.</p>
+ <p>The <dfn id=dom-video-videowidth title=dom-video-videoWidth><code>videoWidth</code></dfn> IDL attribute must return
+ the <a href=#concept-video-intrinsic-width title=concept-video-intrinsic-width>intrinsic width</a> of the video in CSS pixels.
+ The <dfn id=dom-video-videoheight title=dom-video-videoHeight><code>videoHeight</code></dfn> IDL attribute must return
+ the <a href=#concept-video-intrinsic-height title=concept-video-intrinsic-height>intrinsic height</a> of the video in CSS
+ pixels. If the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then the attributes must return 0.</p>
</div>
- <p>The <code><a href=#the-video-element>video</a></code> element supports <a href=#dimension-attributes>dimension
- attributes</a>.</p>
+ <p>The <code><a href=#the-video-element>video</a></code> element supports <a href=#dimension-attributes>dimension attributes</a>.</p>
<div class=impl>
- <p>In the absence of style rules to the contrary, video content
- should be rendered inside the element's playback area such that the
- video content is shown centered in the playback area at the largest
- possible size that fits completely within it, with the video
- content's aspect ratio being preserved. Thus, if the aspect ratio of
- the playback area does not match the aspect ratio of the video, the
- video will be shown letterboxed or pillarboxed. Areas of the
- element's playback area that do not contain the video represent
- nothing.</p>
+ <p>In the absence of style rules to the contrary, video content should be rendered inside the
+ element's playback area such that the video content is shown centered in the playback area at the
+ largest possible size that fits completely within it, with the video content's aspect ratio being
+ preserved. Thus, if the aspect ratio of the playback area does not match the aspect ratio of the
+ video, the video will be shown letterboxed or pillarboxed. Areas of the element's playback area
+ that do not contain the video represent nothing.</p>
- <p class=note>In user agents that implement CSS, the above
- requirement can be implemented by using the <a href=#video-object-fit>style rule suggested in the rendering
- section</a>.</p>
+ <p class=note>In user agents that implement CSS, the above requirement can be implemented by
+ using the <a href=#video-object-fit>style rule suggested in the rendering section</a>.</p>
<p>The intrinsic width of a <code><a href=#the-video-element>video</a></code> element's playback area is the intrinsic width of
the <a href=#poster-frame>poster frame</a>, if that is available and the element currently
@@ -26459,36 +26419,29 @@
<p>The <a href=#default-object-size>default object size</a> is a width of 300 CSS pixels and a height of 150 CSS
pixels. <a href=#refsCSSIMAGES>[CSSIMAGES]</a></p>
- <hr><p>User agents should provide controls to enable or disable the
- display of closed captions, audio description tracks, and other
- additional data associated with the video stream, though such
- features should, again, not interfere with the page's normal
- rendering.</p>
+ <hr><p>User agents should provide controls to enable or disable the display of closed captions, audio
+ description tracks, and other additional data associated with the video stream, though such
+ features should, again, not interfere with the page's normal rendering.</p>
- <p>User agents may allow users to view the video content in manners
- more suitable to the user (e.g. full-screen or in an independent
- resizable window). As for the other user interface features,
- controls to enable this should not interfere with the page's normal
- rendering unless the user agent is <a href=#expose-a-user-interface-to-the-user title="expose a user
- interface to the user">exposing a user interface</a>. In such an
- independent context, however, user agents may make full user
- interfaces visible, with, e.g., play, pause, seeking, and volume
- controls, even if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is absent.</p>
+ <p>User agents may allow users to view the video content in manners more suitable to the user
+ (e.g. full-screen or in an independent resizable window). As for the other user interface
+ features, controls to enable this should not interfere with the page's normal rendering unless the
+ user agent is <a href=#expose-a-user-interface-to-the-user title="expose a user interface to the user">exposing a user interface</a>.
+ In such an independent context, however, user agents may make full user interfaces visible, with,
+ e.g., play, pause, seeking, and volume controls, even if the <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attribute is absent.</p>
- <p>User agents may allow video playback to affect system features
- that could interfere with the user's experience; for example, user
- agents could disable screensavers while video playback is in
+ <p>User agents may allow video playback to affect system features that could interfere with the
+ user's experience; for example, user agents could disable screensavers while video playback is in
progress.</p>
- <hr><p>The <dfn id=dom-video-poster title=dom-video-poster><code>poster</code></dfn> IDL
- attribute must <a href=#reflect>reflect</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> content attribute.</p>
+ <hr><p>The <dfn id=dom-video-poster title=dom-video-poster><code>poster</code></dfn> IDL attribute must
+ <a href=#reflect>reflect</a> the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> content attribute.</p>
</div>
<div class=example>
- <p>This example shows how to detect when a video has failed to play
- correctly:</p>
+ <p>This example shows how to detect when a video has failed to play correctly:</p>
<pre><script>
function failed(e) {
@@ -26526,17 +26479,15 @@
<h5>Video and audio codecs for <code>video</code> elements</h5>
- <p>User agents may support any video and audio codecs and container
- formats.</p>
+ <p>User agents may support any video and audio codecs and container formats.</p>
- <p class="note">Certain user agents might support no codecs at all,
- e.g. text browsers running over SSH connections.</p>
+ <p class="note">Certain user agents might support no codecs at all, e.g. text browsers running
+ over SSH connections.</p>
<!- - similar note in audio codecs section - ->
- <p class="note">Implementations are free to implement support for
- video codecs either natively, or using platform-specific APIs, or
- using plugins: this specification does not specify how codecs are to
- be implemented.</p>
+ <p class="note">Implementations are free to implement support for video codecs either natively, or
+ using platform-specific APIs, or using plugins: this specification does not specify how codecs are
+ to be implemented.</p>
</div>
@@ -26580,8 +26531,7 @@
<pre class=idl>[NamedConstructor=<a href=#dom-audio title=dom-Audio>Audio</a>(optional DOMString src)]
interface <dfn id=htmlaudioelement>HTMLAudioElement</dfn> : <a href=#htmlmediaelement>HTMLMediaElement</a> {};</pre>
</dd>
- </dl><!--TOPIC:HTML--><p>An <code><a href=#the-audio-element>audio</a></code> element <a href=#represents>represents</a> a sound or
- audio stream.</p>
+ </dl><!--TOPIC:HTML--><p>An <code><a href=#the-audio-element>audio</a></code> element <a href=#represents>represents</a> a sound or audio stream.</p>
<!-- v2 (actually v3) suggestions:
* Audio syntesis. Use cases from Charles Pritchard:
@@ -26600,12 +26550,10 @@
> Support very simple audio codecs, and programmable synthesizers.
-->
- <p>Content may be provided inside the <code><a href=#the-audio-element>audio</a></code>
- element<span class=impl>. User agents should not show this content
- to the user</span>; it is intended for older Web browsers which do
- not support <code><a href=#the-audio-element>audio</a></code>, so that legacy audio plugins can be
- tried, or to show text to the users of these older browsers informing
- them of how to access the audio contents.</p>
+ <p>Content may be provided inside the <code><a href=#the-audio-element>audio</a></code> element<span class=impl>. User agents
+ should not show this content to the user</span>; it is intended for older Web browsers which do
+ not support <code><a href=#the-audio-element>audio</a></code>, so that legacy audio plugins can be tried, or to show text to the
+ users of these older browsers informing them of how to access the audio contents.</p>
<p class=note>In particular, this content is not intended to address accessibility concerns. To
make audio content accessible to the deaf or to those with other physical or cognitive
@@ -26616,24 +26564,22 @@
naturally, transcripts or other textual alternatives can be provided by simply linking to them in
the prose near the <code><a href=#the-audio-element>audio</a></code> element. <a href=#refsWEBVTT>[WEBVTT]</a></p>
- <p>The <code><a href=#the-audio-element>audio</a></code> element is a <a href=#media-element>media element</a>
- whose <a href=#media-data>media data</a> is ostensibly audio data.</p>
+ <p>The <code><a href=#the-audio-element>audio</a></code> element is a <a href=#media-element>media element</a> whose <a href=#media-data>media data</a> is
+ ostensibly audio data.</p>
- <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>, <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>,
- <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>,
- <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>,
- <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code> attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
+ <p>The <code title=attr-media-src><a href=#attr-media-src>src</a></code>, <code title=attr-media-preload><a href=#attr-media-preload>preload</a></code>,
+ <code title=attr-media-autoplay><a href=#attr-media-autoplay>autoplay</a></code>, <code title=attr-media-mediagroup><a href=#attr-media-mediagroup>mediagroup</a></code>, <code title=attr-media-loop><a href=#attr-media-loop>loop</a></code>, <code title=attr-media-muted><a href=#attr-media-muted>muted</a></code>, and <code title=attr-media-controls><a href=#attr-media-controls>controls</a></code>
+ attributes are <a href=#media-element-attributes title="media element attributes">the attributes common to all media
elements</a>.</p>
<div class=impl>
- <p>When an <code><a href=#the-audio-element>audio</a></code> element is <a href=#potentially-playing>potentially
- playing</a>, it must have its audio data played synchronized with
- the <a href=#current-playback-position>current playback position</a>, at the element's
+ <p>When an <code><a href=#the-audio-element>audio</a></code> element is <a href=#potentially-playing>potentially playing</a>, it must have its audio
+ data played synchronized with the <a href=#current-playback-position>current playback position</a>, at the element's
<a href=#effective-media-volume>effective media volume</a>.</p>
- <p>When an <code><a href=#the-audio-element>audio</a></code> element is not <a href=#potentially-playing>potentially
- playing</a>, audio must not play for the element.</p>
+ <p>When an <code><a href=#the-audio-element>audio</a></code> element is not <a href=#potentially-playing>potentially playing</a>, audio must not play
+ for the element.</p>
</div>
@@ -26641,8 +26587,8 @@
<dd>
- <p>Returns a new <code><a href=#the-audio-element>audio</a></code> element, with the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute set to the value
- passed in the argument, if applicable.</p>
+ <p>Returns a new <code><a href=#the-audio-element>audio</a></code> element, with the <code title=attr-media-src><a href=#attr-media-src>src</a></code>
+ attribute set to the value passed in the argument, if applicable.</p>
</dd>
@@ -26668,12 +26614,10 @@
<h5>Audio codecs for <code>audio</code> elements</h5>
- <p>User agents may support any audio codecs and container
- formats.</p>
+ <p>User agents may support any audio codecs and container formats.</p>
- <p>User agents must support the WAVE container format with audio
- encoded using the 16 bit PCM (LE) codec, at sampling frequencies of
- 11.025kHz, 22.050kHz, and 44.100kHz, and for both mono and
+ <p>User agents must support the WAVE container format with audio encoded using the 16 bit PCM (LE)
+ codec, at sampling frequencies of 11.025kHz, 22.050kHz, and 44.100kHz, and for both mono and
stereo. <a href="#- -refsWAVE">[WAVE]</a></p>
<!- -
@@ -26682,10 +26626,9 @@
- ->
<!- - similar note in video codecs section - ->
- <p class="note">Implementations are free to implement support for
- audio codecs either natively, or using platform-specific APIs, or
- using plugins: this specification does not specify how codecs are to
- be implemented.</p>
+ <p class="note">Implementations are free to implement support for audio codecs either natively, or
+ using platform-specific APIs, or using plugins: this specification does not specify how codecs are
+ to be implemented.</p>
</div>
@@ -40706,14 +40649,14 @@
<dd>If the <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute is present: Empty.</dd>
<dd>If the <code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> attribute is absent: Zero or more <code><a href=#the-col-element>col</a></code> and <code><a href=#the-template-element>template</a></code> elements.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a
- <code><a href=#the-col-element>col</a></code> element, and if the element is not immediately
- preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be
- omitted if the element is empty.)</dd>
- <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
- <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a
- <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
+ <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be
+ omitted if the first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a <code><a href=#the-col-element>col</a></code> element,
+ and if the element is not immediately preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose
+ <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be omitted if the element
+ is empty.)</dd>
+ <dd>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or
+ a <a href=#syntax-comments title=syntax-comments>comment</a>.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-colgroup-span><a href=#attr-colgroup-span>span</a></code> — Number of columns spanned by the element</dd>
@@ -40804,17 +40747,14 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-tr-element>tr</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted if the
- first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a
- <code><a href=#the-tr-element>tr</a></code> element, and if the element is not immediately
- preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
- <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> has been omitted. (It can't be omitted if the element is
- empty.)</dd>
- <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-tbody-element>tbody</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> can be omitted
+ if the first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a <code><a href=#the-tr-element>tr</a></code> element, and if the
+ element is not immediately preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It
+ can't be omitted if the element is empty.)</dd>
+ <dd>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-tbody-element>tbody</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element, or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -40909,10 +40849,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-tr-element>tr</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-thead-element>thead</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element.</dd>
+ <dd>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-thead-element>thead</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -40988,10 +40927,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-tr-element>tr</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-tfoot-element>tfoot</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if there is
- no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-tfoot-element>tfoot</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if
+ there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -41025,10 +40963,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-td-element>td</a></code>, <code><a href=#the-th-element>th</a></code>, and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-tr-element>tr</a></code> element is
- immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there
- is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-tr-element>tr</a></code> element is immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there is
+ no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
@@ -41164,10 +41101,9 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#flow-content>Flow content</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-td-element>td</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-td-element>td</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code> — Number of columns that the cell is to span</dd>
@@ -41209,10 +41145,9 @@
<dd><a href=#flow-content>Flow content</a>, but with no <code><a href=#the-header-element>header</a></code>, <code><a href=#the-footer-element>footer</a></code>, <a href=#sectioning-content>sectioning content</a>, or <a href=#heading-content>heading content</a> descendants, and if the <code><a href=#the-th-element>th</a></code> element is a <a href=#sorting-interface-th-element>sorting interface <code>th</code> element</a>, no <a href=#interactive-content>interactive content</a> descendants.</dd>
<!-- EDITING NOTE: If you remove 'heading content' from the list above, make sure to fix the definition of 'sectioning root' to include <th> -->
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-th-element>th</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</dd>
+ <dd>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
+ <code><a href=#the-th-element>th</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-tdth-colspan><a href=#attr-tdth-colspan>colspan</a></code> — Number of columns that the cell is to span</dd>
@@ -51275,14 +51210,12 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd>Zero or more <code><a href=#the-option-element>option</a></code> and <a href=#script-supporting-elements title="script-supporting elements">script-supporting</a> elements.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if the
- <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor
- <code>select</code> element and--> is immediately followed by
- another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements
- that are ancestors of the <code>optgroup</code> element, up to and
- including the first ancestor element that is not an
- <code>optgroup</code> element, have no more content--> there is no
- more content in the parent element.</dd>
+ <dd>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted
+ if the <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor <code>select</code> element and--> is
+ immediately followed by another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements that
+ are ancestors of the <code>optgroup</code> element, up to and including the first ancestor element
+ that is not an <code>optgroup</code> element, have no more content--> there is no more content in
+ the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-optgroup-disabled><a href=#attr-optgroup-disabled>disabled</a></code> — Whether the form control is disabled</dd>
@@ -51371,11 +51304,10 @@
<dt><a href=#element-dfn-content-model title=element-dfn-content-model>Content model</a>:</dt>
<dd><a href=#text-content title="text content">Text</a>.</dd>
<dt><a href=#element-dfn-tag-omission title=element-dfn-tag-omission>Tag omission in text/html</a>:</dt>
- <dd>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> can be omitted if the <code><a href=#the-option-element>option</a></code> element is
- immediately followed by another <code><a href=#the-option-element>option</a></code> element, or if
- it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or
- if there is no more content in the parent element.</dd>
+ <dd>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> can be omitted if
+ the <code><a href=#the-option-element>option</a></code> element is immediately followed by another <code><a href=#the-option-element>option</a></code> element, or
+ if it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or if there is no more content
+ in the parent element.</dd>
<dt><a href=#element-dfn-attributes title=element-dfn-attributes>Content attributes</a>:</dt>
<dd><a href=#global-attributes>Global attributes</a></dd>
<dd><code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code> — Whether the form control is disabled</dd>
@@ -81844,6 +81776,8 @@
domain. Authors can avoid this using the relatively complex mechanism of using unique domain names
per connection, or by allowing the user to enable or disable the <code><a href=#eventsource>EventSource</a></code>
functionality on a per-page basis, or by sharing a single <code><a href=#eventsource>EventSource</a></code> object using a
+ <a href=#sharedworkerglobalscope title=SharedWorkerGlobalScope>shared worker</a>.
+ </p>
<h4 id=eventsource-push><span class=secno>10.2.7 </span>Connectionless push and other features</h4>
@@ -84081,66 +84015,51 @@
};
<a href=#window>Window</a> implements <a href=#windowsessionstorage>WindowSessionStorage</a>;</pre>
- <p>The <dfn id=dom-sessionstorage title=dom-sessionStorage><code>sessionStorage</code></dfn>
- attribute represents the set of storage areas specific to the
- current <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
+ <p>The <dfn id=dom-sessionstorage title=dom-sessionStorage><code>sessionStorage</code></dfn> attribute represents the
+ set of storage areas specific to the current <a href=#top-level-browsing-context>top-level browsing context</a>.</p>
- <p>Each <a href=#top-level-browsing-context>top-level browsing context</a> has a unique set of
- session storage areas, one for each <a href=#origin>origin</a>.</p>
+ <p>Each <a href=#top-level-browsing-context>top-level browsing context</a> has a unique set of session storage areas, one for
+ each <a href=#origin>origin</a>.</p>
- <p>User agents should not expire data from a browsing context's
- session storage areas, but may do so when the user requests that
- such data be deleted, or when the UA detects that it has limited
- storage space, or for security reasons. User agents should always
- avoid deleting data while a script that could access that data is
- running. When a top-level browsing context is destroyed (and
- therefore permanently inaccessible to the user) the data stored in
- its session storage areas can be discarded with it, as the API
- described in this specification provides no way for that data to
+ <p>User agents should not expire data from a browsing context's session storage areas, but may do
+ so when the user requests that such data be deleted, or when the UA detects that it has limited
+ storage space, or for security reasons. User agents should always avoid deleting data while a
+ script that could access that data is running. When a top-level browsing context is destroyed (and
+ therefore permanently inaccessible to the user) the data stored in its session storage areas can
+ be discarded with it, as the API described in this specification provides no way for that data to
ever be subsequently retrieved.</p>
- <p class=note>The lifetime of a browsing context can be unrelated
- to the lifetime of the actual user agent process itself, as the user
- agent may support resuming sessions after a restart.</p>
+ <p class=note>The lifetime of a browsing context can be unrelated to the lifetime of the actual
+ user agent process itself, as the user agent may support resuming sessions after a restart.</p>
- <p>When a new <code><a href=#document>Document</a></code> is created in a <a href=#browsing-context>browsing
- context</a> which has a <a href=#top-level-browsing-context>top-level browsing context</a>,
- the user agent must check to see if that <a href=#top-level-browsing-context>top-level browsing
- context</a> has a session storage area for that document's
- <a href=#origin>origin</a>. If it does, then that is the
- <code><a href=#document>Document</a></code>'s assigned session storage area. If it does
- not, a new storage area for that document's <a href=#origin>origin</a> must
- be created, and then <em>that</em> is the <code><a href=#document>Document</a></code>'s
- assigned session storage area. A <code><a href=#document>Document</a></code>'s assigned
- storage area does not change during the lifetime of a
- <code><a href=#document>Document</a></code>.</p>
+ <p>When a new <code><a href=#document>Document</a></code> is created in a <a href=#browsing-context>browsing context</a> which has a
+ <a href=#top-level-browsing-context>top-level browsing context</a>, the user agent must check to see if that <a href=#top-level-browsing-context>top-level
+ browsing context</a> has a session storage area for that document's <a href=#origin>origin</a>. If it
+ does, then that is the <code><a href=#document>Document</a></code>'s assigned session storage area. If it does not, a
+ new storage area for that document's <a href=#origin>origin</a> must be created, and then <em>that</em>
+ is the <code><a href=#document>Document</a></code>'s assigned session storage area. A <code><a href=#document>Document</a></code>'s assigned
+ storage area does not change during the lifetime of a <code><a href=#document>Document</a></code>.</p>
- <p class=note>In the case of an <code><a href=#the-iframe-element>iframe</a></code> being moved to
- another <code><a href=#document>Document</a></code>, the nested browsing context is
- destroyed and a new one created.</p>
+ <p class=note>In the case of an <code><a href=#the-iframe-element>iframe</a></code> being moved to another
+ <code><a href=#document>Document</a></code>, the nested browsing context is destroyed and a new one created.</p>
- <p>The <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code>
- attribute must return a <code><a href=#storage-0>Storage</a></code> object associated with
- the <code><a href=#document>Document</a></code>'s assigned session storage area, if any,
- or null if there isn't one. Each <code><a href=#document>Document</a></code> object must
- have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> attribute.</p>
+ <p>The <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code> attribute must return a
+ <code><a href=#storage-0>Storage</a></code> object associated with the <code><a href=#document>Document</a></code>'s assigned session storage
+ area, if any, or null if there isn't one. Each <code><a href=#document>Document</a></code> object must have a separate
+ object for its <code><a href=#window>Window</a></code>'s <code title=dom-sessionStorage><a href=#dom-sessionstorage>sessionStorage</a></code>
+ attribute.</p>
- <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by
- cloning an existing <a href=#browsing-context>browsing context</a>, the new browsing
- context must start with the same session storage areas as the
- original, but the two sets must from that point on be considered
- separate, not affecting each other in any way.</p>
+ <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by cloning an existing
+ <a href=#browsing-context>browsing context</a>, the new browsing context must start with the same session storage
+ areas as the original, but the two sets must from that point on be considered separate, not
+ affecting each other in any way.</p>
- <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by
- a <a href=#concept-script title=concept-script>script</a> in an existing
- <a href=#browsing-context>browsing context</a>, or by the user following a link in an
- existing browsing context, or in some other way related to a
- specific <code><a href=#document>Document</a></code>, and the creation is not <a href=#a-new-start-for-session-storage>a
- new start for session storage</a>, then the session storage area of the
- <a href=#origin>origin</a> of that <code><a href=#document>Document</a></code> must be copied
- into the new browsing context when it is created. From that point
- on, however, the two session storage areas must be considered
- separate, not affecting each other in any way.</p>
+ <p>When a new <a href=#top-level-browsing-context>top-level browsing context</a> is created by a <a href=#concept-script title=concept-script>script</a> in an existing <a href=#browsing-context>browsing context</a>, or by the user
+ following a link in an existing browsing context, or in some other way related to a specific
+ <code><a href=#document>Document</a></code>, and the creation is not <a href=#a-new-start-for-session-storage>a new start for session storage</a>, then
+ the session storage area of the <a href=#origin>origin</a> of that <code><a href=#document>Document</a></code> must be copied
+ into the new browsing context when it is created. From that point on, however, the two session
+ storage areas must be considered separate, not affecting each other in any way.</p>
<p id=sessionStorageEvent>When the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code>, <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code>, and <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> methods are called on a <code><a href=#storage-0>Storage</a></code> object <var title="">x</var> that is associated with a session storage area, if the methods did not throw an
exception or "do nothing" as defined above, then for every <code><a href=#document>Document</a></code> object whose
@@ -84156,59 +84075,48 @@
};
<a href=#window>Window</a> implements <a href=#windowlocalstorage>WindowLocalStorage</a>;</pre>
-<!--CLEANUP-->
- <p>The <dfn id=dom-localstorage title=dom-localStorage><code>localStorage</code></dfn>
- object provides a <code><a href=#storage-0>Storage</a></code> object for an
- <a href=#origin>origin</a>.
+ <p>The <dfn id=dom-localstorage title=dom-localStorage><code>localStorage</code></dfn> object provides a
+ <code><a href=#storage-0>Storage</a></code> object for an <a href=#origin>origin</a>.
<a href=#fingerprinting-vector class=fingerprint title="fingerprinting vector"><img src=http://images.whatwg.org/fingerprint.png width=46 alt="(This is a fingerprinting vector.)" height=64></a>
</p>
- <p>User agents must have a set of local storage areas, one for each
- <a href=#origin>origin</a>.</p>
+ <p>User agents must have a set of local storage areas, one for each <a href=#origin>origin</a>.</p>
- <p>User agents should expire data from the local storage areas only
- for security reasons or when requested to do so by the user. User
- agents should always avoid deleting data while a script that could
- access that data is running.</p>
+ <p>User agents should expire data from the local storage areas only for security reasons or when
+ requested to do so by the user. User agents should always avoid deleting data while a script that
+ could access that data is running.</p>
- <p>When the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>
- attribute is accessed, the user agent must run the following steps,
- which are known as the <dfn id=storage-object-initialization-steps><code>Storage</code> object
- initialization steps</dfn>:</p> <!-- these steps are named because
- marcos uses them from another spec -->
+ <p>When the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute is accessed, the user
+ agent must run the following steps, which are known as the <dfn id=storage-object-initialization-steps><code>Storage</code> object
+ initialization steps</dfn>:</p> <!-- these steps are named because marcos uses them from another
+ spec -->
- <ol><li><p>The user agent may throw a <code><a href=#securityerror>SecurityError</a></code>
- exception and abort these steps instead of returning a <code><a href=#storage-0>Storage</a></code> object if the
- request violates a policy decision (e.g. if the user agent is
- configured to not allow the page to persist data).</li>
+ <ol><li><p>The user agent may throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort these steps
+ instead of returning a <code><a href=#storage-0>Storage</a></code> object if the request violates a policy decision
+ (e.g. if the user agent is configured to not allow the page to persist data).</li>
- <li><p>If the <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a> is not a
- scheme/host/port tuple, then throw a <code><a href=#securityerror>SecurityError</a></code>
- exception and abort these steps.</li>
+ <li><p>If the <code><a href=#document>Document</a></code>'s <a href=#origin>origin</a> is not a scheme/host/port tuple, then
+ throw a <code><a href=#securityerror>SecurityError</a></code> exception and abort these steps.</li>
- <li><p>Check to see if the user agent has allocated a local storage
- area for the <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> of
- the <code><a href=#window>Window</a></code> object on which the attribute was accessed.
- If it has not, create a new storage area for that
+ <li><p>Check to see if the user agent has allocated a local storage area for the
+ <a href=#origin>origin</a> of the <code><a href=#document>Document</a></code> of the <code><a href=#window>Window</a></code> object on which the
+ attribute was accessed. If it has not, create a new storage area for that
<a href=#origin>origin</a>.</li>
- <li><p>Return the <code><a href=#storage-0>Storage</a></code> object associated with that
- origin's local storage area. Each <code><a href=#document>Document</a></code> object must
- have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute.</p>
+ <li><p>Return the <code><a href=#storage-0>Storage</a></code> object associated with that origin's local storage area.
+ Each <code><a href=#document>Document</a></code> object must have a separate object for its <code><a href=#window>Window</a></code>'s <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute.</p>
</ol><p id=localStorageEvent>When the <code title=dom-Storage-setItem><a href=#dom-storage-setitem>setItem()</a></code>, <code title=dom-Storage-removeItem><a href=#dom-storage-removeitem>removeItem()</a></code>, and <code title=dom-Storage-clear><a href=#dom-storage-clear>clear()</a></code> methods are called on a <code><a href=#storage-0>Storage</a></code> object <var title="">x</var> that is associated with a local storage area, if the methods did not throw an
exception or "do nothing" as defined above, then for every <code><a href=#document>Document</a></code> object whose
<code><a href=#window>Window</a></code> object's <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's
<code><a href=#storage-0>Storage</a></code> object is associated with the same storage area, other than <var title="">x</var>, <a href=#send-a-storage-notification>send a storage notification</a>.
- <p id=localStorageMutex>Whenever the properties of a <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's
- <code><a href=#storage-0>Storage</a></code> object are to be examined, returned, set, or
- deleted, whether as part of a direct property access, when checking
- for the presence of a property, during property enumeration, when
- determining the number of properties present, or as part of the
- execution of any of the methods or attributes defined on the
- <code><a href=#storage-0>Storage</a></code> interface, the user agent must first
- <a href=#obtain-the-storage-mutex>obtain the storage mutex</a>.</p>
+ <p id=localStorageMutex>Whenever the properties of a <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> attribute's <code><a href=#storage-0>Storage</a></code> object are to be
+ examined, returned, set, or deleted, whether as part of a direct property access, when checking
+ for the presence of a property, during property enumeration, when determining the number of
+ properties present, or as part of the execution of any of the methods or attributes defined on the
+ <code><a href=#storage-0>Storage</a></code> interface, the user agent must first <a href=#obtain-the-storage-mutex>obtain the storage
+ mutex</a>.</p>
<h4 id=the-storage-event><span class=secno>11.2.4 </span>The <code title=event-storage><a href=#event-storage>storage</a></code> event</h4>
@@ -84655,55 +84563,45 @@
<dd>All other allowed <a href=#html-elements>HTML elements</a> are normal
elements.</dd>
- </dl><!--CLEANUP--><p><dfn id=syntax-tags title=syntax-tags>Tags</dfn> are used to delimit the start
- and end of elements in the markup. <a href=#raw-text-elements title="raw text
- elements">Raw text</a>, <a href=#escapable-raw-text-elements title="escapable raw text
- elements">escapable raw text</a>, and <a href=#normal-elements title="normal
- elements">normal</a> elements have a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> to indicate where they
- begin, and an <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> to
- indicate where they end. The start and end tags of certain
- <a href=#normal-elements>normal elements</a> can be <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>, as described
- below in the section on <a href=#syntax-tag-omission title=syntax-tag-omission>optional tags</a>. Those that cannot be omitted must not be omitted. <a href=#void-elements>Void
- elements</a> only have a start tag; end tags must not be
- specified for <a href=#void-elements>void elements</a>. <a href=#foreign-elements>Foreign
- elements</a> must either have a start tag and an end tag, or a
- start tag that is marked as self-closing, in which case they must
- not have an end tag.</p>
+ </dl><p><dfn id=syntax-tags title=syntax-tags>Tags</dfn> are used to delimit the start and end of elements in the
+ markup. <a href=#raw-text-elements title="raw text elements">Raw text</a>, <a href=#escapable-raw-text-elements title="escapable raw text
+ elements">escapable raw text</a>, and <a href=#normal-elements title="normal elements">normal</a> elements have
+ a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> to indicate where they begin, and an <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> to indicate where they end. The start and end tags of
+ certain <a href=#normal-elements>normal elements</a> can be <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>, as
+ described below in the section on <a href=#syntax-tag-omission title=syntax-tag-omission>optional tags</a>. Those
+ that cannot be omitted must not be omitted. <a href=#void-elements>Void elements</a> only have a start tag; end
+ tags must not be specified for <a href=#void-elements>void elements</a>. <a href=#foreign-elements>Foreign elements</a> must
+ either have a start tag and an end tag, or a start tag that is marked as self-closing, in which
+ case they must not have an end tag.</p>
- <p>The <a href=#concept-html-contents title=concept-html-contents>contents</a> of the element must be placed between just after the
- start tag (which <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied,
- in certain cases</a>) and just before the end tag (which again,
- <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied in certain
- cases</a>). The exact allowed contents of each individual element
- depend on the <a href=#content-models title="content models">content model</a> of that element, as described earlier in
- this specification. Elements must not contain content that their
- content model disallows. In addition to the restrictions placed on
- the contents by those content models, however, the five types of
- elements have additional <em>syntactic</em> requirements.</p>
+ <p>The <a href=#concept-html-contents title=concept-html-contents>contents</a> of the element must be placed between
+ just after the start tag (which <a href=#syntax-tag-omission title=syntax-tag-omission>might be implied, in certain
+ cases</a>) and just before the end tag (which again, <a href=#syntax-tag-omission title=syntax-tag-omission>might be
+ implied in certain cases</a>). The exact allowed contents of each individual element depend on
+ the <a href=#content-models title="content models">content model</a> of that element, as described earlier in
+ this specification. Elements must not contain content that their content model disallows. In
+ addition to the restrictions placed on the contents by those content models, however, the five
+ types of elements have additional <em>syntactic</em> requirements.</p>
- <p><a href=#void-elements>Void elements</a> can't have any contents (since there's
- no end tag, no content can be put between the start tag and the end
- tag).</p>
+ <p><a href=#void-elements>Void elements</a> can't have any contents (since there's no end tag, no content can be
+ put between the start tag and the end tag).</p>
- <p><a href=#raw-text-elements>Raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, though it has <a href=#cdata-rcdata-restrictions>restrictions</a> described
- below.</p>
+ <p><a href=#raw-text-elements>Raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, though it has <a href=#cdata-rcdata-restrictions>restrictions</a> described below.</p>
- <p><a href=#escapable-raw-text-elements>Escapable raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>, but the text
- must not contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.
- There are also <a href=#cdata-rcdata-restrictions>further
- restrictions</a> described below.</p>
+ <p><a href=#escapable-raw-text-elements>Escapable raw text elements</a> can have <a href=#syntax-text title=syntax-text>text</a> and
+ <a href=#syntax-charref title=syntax-charref>character references</a>, but the text must not contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>. There are also <a href=#cdata-rcdata-restrictions>further restrictions</a> described below.</p>
- <p><a href=#foreign-elements>Foreign elements</a> whose start tag is marked as
- self-closing can't have any contents (since, again, as there's no
- end tag, no content can be put between the start tag and the end
- tag). <a href=#foreign-elements>Foreign elements</a> whose start tag is <em>not</em>
- marked as self-closing can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, <a href=#syntax-cdata title=syntax-cdata>CDATA sections</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but the text must not
- contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
+ <p><a href=#foreign-elements>Foreign elements</a> whose start tag is marked as self-closing can't have any contents
+ (since, again, as there's no end tag, no content can be put between the start tag and the end
+ tag). <a href=#foreign-elements>Foreign elements</a> whose start tag is <em>not</em> marked as self-closing can
+ have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character
+ references</a>, <a href=#syntax-cdata title=syntax-cdata>CDATA sections</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but
+ the text must not contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
<div class=note>
- <p>The HTML syntax does not support namespace
- declarations, even in <a href=#foreign-elements>foreign elements</a>.</p>
+ <p>The HTML syntax does not support namespace declarations, even in <a href=#foreign-elements>foreign
+ elements</a>.</p>
<p>For instance, consider the following HTML fragment:</p>
@@ -84716,20 +84614,19 @@
</svg>
</p></pre>
- <p>The innermost element, <code title="">cdr:license</code>, is
- actually in the SVG namespace, as the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in
- XML). In fact, as the comment in the fragment above says, the
- fragment is actually non-conforming. This is because the SVG
- specification does not define any elements called "<code title="">cdr:license</code>" in the SVG namespace.</p>
+ <p>The innermost element, <code title="">cdr:license</code>, is actually in the SVG namespace, as
+ the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in XML). In fact, as the
+ comment in the fragment above says, the fragment is actually non-conforming. This is because the
+ SVG specification does not define any elements called "<code title="">cdr:license</code>" in the
+ SVG namespace.</p>
</div>
- <p><a href=#normal-elements>Normal elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but the text must not
- contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>. Some
- <a href=#normal-elements>normal elements</a> also have <a href=#element-restrictions>yet more restrictions</a> on what
- content they are allowed to hold, beyond the restrictions imposed by
- the content model and those described in this paragraph. Those
- restrictions are described below.</p>
+ <p><a href=#normal-elements>Normal elements</a> can have <a href=#syntax-text title=syntax-text>text</a>, <a href=#syntax-charref title=syntax-charref>character references</a>, other <a href=#syntax-elements title=syntax-elements>elements</a>, and <a href=#syntax-comments title=syntax-comments>comments</a>, but
+ the text must not contain the character U+003C LESS-THAN SIGN (<) or an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>. Some <a href=#normal-elements>normal elements</a>
+ also have <a href=#element-restrictions>yet more restrictions</a> on what content they are
+ allowed to hold, beyond the restrictions imposed by the content model and those described in this
+ paragraph. Those restrictions are described below.</p>
<p>Tags contain a <dfn id=syntax-tag-name title=syntax-tag-name>tag name</dfn>, giving the element's name. HTML
elements all have names that only use <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>. In the HTML
@@ -84740,78 +84637,60 @@
<h5 id=start-tags><span class=secno>12.1.2.1 </span>Start tags</h5>
- <p><dfn id=syntax-start-tag title=syntax-start-tag>Start tags</dfn> must have the
- following format:</p>
+ <p><dfn id=syntax-start-tag title=syntax-start-tag>Start tags</dfn> must have the following format:</p>
- <ol><li>The first character of a start tag must be a U+003C LESS-THAN
- SIGN character (<).</li>
+ <ol><li>The first character of a start tag must be a U+003C LESS-THAN SIGN character (<).</li>
- <li>The next few characters of a start tag must be the element's
- <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
+ <li>The next few characters of a start tag must be the element's <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
- <li>If there are to be any attributes in the next step, there must
- first be one or more <a href=#space-character title="space character">space
+ <li>If there are to be any attributes in the next step, there must first be one or more <a href=#space-character title="space character">space characters</a>.</li>
+
+ <li>Then, the start tag may have a number of attributes, the <a href=#syntax-attributes title=syntax-attributes>syntax for which</a> is described below. Attributes must be
+ separated from each other by one or more <a href=#space-character title="space character">space
characters</a>.</li>
- <li>Then, the start tag may have a number of attributes, the <a href=#syntax-attributes title=syntax-attributes>syntax for which</a> is described
- below. Attributes must be separated from each other by one or more
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>After the attributes, or after the <a href=#syntax-tag-name title=syntax-tag-name>tag name</a> if there are
+ no attributes, there may be one or more <a href=#space-character title="space character">space characters</a>.
+ (Some attributes are required to be followed by a space. See the <a href=#syntax-attributes title=syntax-attributes>attributes section</a> below.)</li>
- <li>After the attributes, or after the <a href=#syntax-tag-name title=syntax-tag-name>tag name</a> if there are no attributes,
- there may be one or more <a href=#space-character title="space character">space
- characters</a>. (Some attributes are required to be followed by
- a space. See the <a href=#syntax-attributes title=syntax-attributes>attributes
- section</a> below.)</li>
+ <li>Then, if the element is one of the <a href=#void-elements>void elements</a>, or if the element is a <a href=#foreign-elements title="foreign elements">foreign element</a>, then there may be a single U+002F SOLIDUS
+ character (/). This character has no effect on <a href=#void-elements>void elements</a>, but on <a href=#foreign-elements>foreign
+ elements</a> it marks the start tag as self-closing.</li>
- <li>Then, if the element is one of the <a href=#void-elements>void elements</a>,
- or if the element is a <a href=#foreign-elements title="foreign elements">foreign
- element</a>, then there may be a single U+002F SOLIDUS character
- (/). This character has no effect on <a href=#void-elements>void elements</a>,
- but on <a href=#foreign-elements>foreign elements</a> it marks the start tag as
- self-closing.</li>
+ <li>Finally, start tags must be closed by a U+003E GREATER-THAN SIGN character (>).</li>
- <li>Finally, start tags must be closed by a U+003E GREATER-THAN
- SIGN character (>).</li>
-
</ol><h5 id=end-tags><span class=secno>12.1.2.2 </span>End tags</h5>
- <p><dfn id=syntax-end-tag title=syntax-end-tag>End tags</dfn> must have the
- following format:</p>
+ <p><dfn id=syntax-end-tag title=syntax-end-tag>End tags</dfn> must have the following format:</p>
- <ol><li>The first character of an end tag must be a U+003C LESS-THAN
- SIGN character (<).</li>
+ <ol><li>The first character of an end tag must be a U+003C LESS-THAN SIGN character (<).</li>
- <li>The second character of an end tag must be a U+002F SOLIDUS
- character (/).</li>
+ <li>The second character of an end tag must be a U+002F SOLIDUS character (/).</li>
- <li>The next few characters of an end tag must be the element's
- <a href=#syntax-tag-name title=syntax-tag-name>tag name</a>.</li>
+ <li>The next few characters of an end tag must be the element's <a href=#syntax-tag-name title=syntax-tag-name>tag
+ name</a>.</li>
- <li>After the tag name, there may be one or more <a href=#space-character title="space
- character">space characters</a>.</li>
+ <li>After the tag name, there may be one or more <a href=#space-character title="space character">space
+ characters</a>.</li>
- <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN
- character (>).</li>
+ <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN character (>).</li>
</ol><h5 id=attributes-0><span class=secno>12.1.2.3 </span>Attributes</h5>
- <p><dfn id=syntax-attributes title=syntax-attributes>Attributes</dfn> for an element
- are expressed inside the element's start tag.</p>
+ <p><dfn id=syntax-attributes title=syntax-attributes>Attributes</dfn> for an element are expressed inside the
+ element's start tag.</p>
- <p>Attributes have a name and a value. <dfn id=syntax-attribute-name title=syntax-attribute-name>Attribute names</dfn> must consist of
- one or more characters other than the <a href=#space-character title="space
- character">space characters</a>, U+0000 NULL, U+0022 QUOTATION
- MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN
- (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters,
- the control characters, and any characters that are not defined by
- Unicode. In the HTML syntax, attribute names, even those for
- <a href=#foreign-elements>foreign elements</a>, may be written with any mix of lower-
- and uppercase letters that are an <a href=#ascii-case-insensitive>ASCII
- case-insensitive</a> match for the attribute's name.</p>
+ <p>Attributes have a name and a value. <dfn id=syntax-attribute-name title=syntax-attribute-name>Attribute names</dfn>
+ must consist of one or more characters other than the <a href=#space-character title="space character">space
+ characters</a>, U+0000 NULL, U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E
+ GREATER-THAN SIGN (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control
+ characters, and any characters that are not defined by Unicode. In the HTML syntax, attribute
+ names, even those for <a href=#foreign-elements>foreign elements</a>, may be written with any mix of lower- and
+ uppercase letters that are an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the attribute's
+ name.</p>
- <p><dfn id=syntax-attribute-value title=syntax-attribute-value>Attribute values</dfn> are a
- mixture of <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>, except with the
- additional restriction that the text cannot contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
+ <p><dfn id=syntax-attribute-value title=syntax-attribute-value>Attribute values</dfn> are a mixture of <a href=#syntax-text title=syntax-text>text</a> and <a href=#syntax-charref title=syntax-charref>character references</a>,
+ except with the additional restriction that the text cannot contain an <a href=#syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</a>.</p>
<p>Attributes can be specified in four different ways:</p>
@@ -84819,21 +84698,20 @@
<dd>
- <p>Just the <a href=#syntax-attribute-name title=syntax-attribute-name>attribute
- name</a>. The value is implicitly the empty string.</p>
+ <p>Just the <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>. The value is implicitly
+ the empty string.</p>
<div class=example>
- <p>In the following example, the <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is given with
- the empty attribute syntax:</p>
+ <p>In the following example, the <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is
+ given with the empty attribute syntax:</p>
<pre><input <em>disabled</em>></pre>
</div>
- <p>If an attribute using the empty attribute syntax is to be
- followed by another attribute, then there must be a <a href=#space-character>space
- character</a> separating the two.</p>
+ <p>If an attribute using the empty attribute syntax is to be followed by another attribute, then
+ there must be a <a href=#space-character>space character</a> separating the two.</p>
</dd>
@@ -84841,28 +84719,21 @@
<dd>
- <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
- followed by zero or more <a href=#space-character title="space character">space
- characters</a>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <a href=#space-character title="space
- character">space characters</a>, followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal <a href=#space-character title="space character">space
- characters</a>, any U+0022 QUOTATION MARK characters ("),
- U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN
- characters (=), U+003C LESS-THAN SIGN characters (<), U+003E
- GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT
- characters (`), and must not be the empty string.</p>
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>, followed by zero or more <a href=#space-character title="space character">space characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space character">space characters</a>,
+ followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in addition
+ to the requirements given above for attribute values, must not contain any literal <a href=#space-character title="space character">space characters</a>, any U+0022 QUOTATION MARK characters ("),
+ U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN characters (=), U+003C LESS-THAN SIGN
+ characters (<), U+003E GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT characters
+ (`), and must not be the empty string.</p>
- <!-- The ` character is in this list on a temporary basis, waiting
- for IE to fix its parsing bug whereby it treats ` as an
- attribute value delimiter. Otherwise, escaping software that
- tries to be clever and not use quotes when it doesn't need to
- could be tricked by an attacker.
+ <!-- The ` character is in this list on a temporary basis, waiting for IE to fix its parsing bug
+ whereby it treats ` as an attribute value delimiter. Otherwise, escaping software that
+ tries to be clever and not use quotes when it doesn't need to could be tricked by an
+ attacker.
- Posit a site that allows the user to input text that is used
- verbatim in two attributes, such that the user can set the
- first attribute's value to:
+ Posit a site that allows the user to input text that is used verbatim in two attributes,
+ such that the user can set the first attribute's value to:
`
@@ -84870,8 +84741,8 @@
` onload='...payload...' end=x
- ...with the assumption that the site is going to not quote
- the first one, and quote the second one with double quotes:
+ ...with the assumption that the site is going to not quote the first one, and quote the
+ second one with double quotes:
<body title=` class="` onload='...payload...' end=x">
@@ -84893,10 +84764,9 @@
</div>
- <p>If an attribute using the unquoted attribute syntax is to be
- followed by another attribute or by the optional U+002F SOLIDUS
- character (/) allowed in step 6 of the <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> syntax above, then there
- must be a <a href=#space-character>space character</a> separating the two.</p>
+ <p>If an attribute using the unquoted attribute syntax is to be followed by another attribute or
+ by the optional U+002F SOLIDUS character (/) allowed in step 6 of the <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> syntax above, then there must be a <a href=#space-character>space
+ character</a> separating the two.</p>
</dd>
@@ -84904,29 +84774,23 @@
<dd>
- <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
- followed by zero or more <a href=#space-character title="space character">space
- characters</a>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <a href=#space-character title="space
- character">space characters</a>, followed by a single U+0027
- APOSTROPHE character ('), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal U+0027 APOSTROPHE characters ('), and
- finally followed by a second single U+0027 APOSTROPHE character
- (').</p>
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>, followed by zero or more <a href=#space-character title="space character">space characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space character">space characters</a>,
+ followed by a single U+0027 APOSTROPHE character ('), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in addition to the requirements
+ given above for attribute values, must not contain any literal U+0027 APOSTROPHE characters ('),
+ and finally followed by a second single U+0027 APOSTROPHE character (').</p>
<div class=example>
- <p>In the following example, the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is given with the
- single-quoted attribute value syntax:</p>
+ <p>In the following example, the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is given
+ with the single-quoted attribute value syntax:</p>
<pre><input <em>type='checkbox'</em>></pre>
</div>
- <p>If an attribute using the single-quoted attribute syntax is to
- be followed by another attribute, then there must be a <a href=#space-character>space
- character</a> separating the two.</p>
+ <p>If an attribute using the single-quoted attribute syntax is to be followed by another
+ attribute, then there must be a <a href=#space-character>space character</a> separating the two.</p>
</dd>
@@ -84934,41 +84798,32 @@
<dd>
- <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>,
- followed by zero or more <a href=#space-character title="space character">space
- characters</a>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <a href=#space-character title="space
- character">space characters</a>, followed by a single U+0022
- QUOTATION MARK character ("), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal U+0022 QUOTATION MARK characters ("),
- and finally followed by a second single U+0022 QUOTATION MARK
- character (").</p>
+ <p>The <a href=#syntax-attribute-name title=syntax-attribute-name>attribute name</a>, followed by zero or more <a href=#space-character title="space character">space characters</a>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <a href=#space-character title="space character">space characters</a>,
+ followed by a single U+0022 QUOTATION MARK character ("), followed by the <a href=#syntax-attribute-value title=syntax-attribute-value>attribute value</a>, which, in addition to the requirements
+ given above for attribute values, must not contain any literal U+0022 QUOTATION MARK characters
+ ("), and finally followed by a second single U+0022 QUOTATION MARK character (").</p>
<div class=example>
- <p>In the following example, the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute is given with the
- double-quoted attribute value syntax:</p>
+ <p>In the following example, the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute is given with
+ the double-quoted attribute value syntax:</p>
<pre><input <em>name="be evil"</em>></pre>
</div>
- <p>If an attribute using the double-quoted attribute syntax is to
- be followed by another attribute, then there must be a <a href=#space-character>space
- character</a> separating the two.</p>
+ <p>If an attribute using the double-quoted attribute syntax is to be followed by another
+ attribute, then there must be a <a href=#space-character>space character</a> separating the two.</p>
</dd>
- </dl><p>There must never be two or more attributes on the same start tag
- whose names are an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for
- each other.</p>
+ </dl><p>There must never be two or more attributes on the same start tag whose names are an <a href=#ascii-case-insensitive>ASCII
+ case-insensitive</a> match for each other.</p>
- <hr><p>When a <a href=#foreign-elements title="foreign elements">foreign element</a> has
- one of the namespaced attributes given by the local name and
- namespace of the first and second cells of a row from the following
- table, it must be written using the name given by the third cell
- from the same row.</p>
+ <hr><p>When a <a href=#foreign-elements title="foreign elements">foreign element</a> has one of the namespaced
+ attributes given by the local name and namespace of the first and second cells of a row from the
+ following table, it must be written using the name given by the third cell from the same row.</p>
<table><thead><tr><th> Local name <th> Namespace <th> Attribute name
<tbody><tr><td> <code title="">actuate</code> <td> <a href=#xlink-namespace>XLink namespace</a> <td> <code title="">xlink:actuate</code>
@@ -84983,115 +84838,96 @@
<tr><td> <code title="">space</code> <td> <a href=#xml-namespace>XML namespace</a> <td> <code title="">xml:space</code>
<tr><td> <code title="">xmlns</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a> <td> <code title="">xmlns</code>
<tr><td> <code title="">xlink</code> <td> <a href=#xmlns-namespace>XMLNS namespace</a> <td> <code title="">xmlns:xlink</code>
- </table><p>No other namespaced attribute can be expressed in <a href=#syntax>the
- HTML syntax</a>.</p>
+ </table><p>No other namespaced attribute can be expressed in <a href=#syntax>the HTML syntax</a>.</p>
- <p class=note>Whether the attributes in the table above are
- conforming or not is defined by other specifications (e.g. the SVG
- and MathML specifications); this section only describes the syntax
- rules if the attributes are serialized using the HTML syntax.</p>
+ <p class=note>Whether the attributes in the table above are conforming or not is defined by
+ other specifications (e.g. the SVG and MathML specifications); this section only describes the
+ syntax rules if the attributes are serialized using the HTML syntax.</p>
<h5 id=optional-tags><span class=secno>12.1.2.4 </span>Optional tags</h5>
<p>Certain tags can be <dfn id=syntax-tag-omission title=syntax-tag-omission>omitted</dfn>.</p>
- <p class=note>Omitting an element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> in the situations
- described below does not mean the element is not present; it is
- implied, but it is still there. For example, an HTML document always
- has a root <code><a href=#the-html-element>html</a></code> element, even if the string <code title=""><html></code> doesn't appear anywhere in the markup.</p>
+ <p class=note>Omitting an element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> in the
+ situations described below does not mean the element is not present; it is implied, but it is
+ still there. For example, an HTML document always has a root <code><a href=#the-html-element>html</a></code> element, even if
+ the string <code title=""><html></code> doesn't appear anywhere in the markup.</p>
<!-- <html> -->
- <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted
+ if the first thing inside the <code><a href=#the-html-element>html</a></code> element is not a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- </html> -->
- <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-html-element>html</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>An <code><a href=#the-html-element>html</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-html-element>html</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- <head> -->
- <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- element is empty, or if the first thing inside the
- <code><a href=#the-head-element>head</a></code> element is an element.</p>
+ <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-head-element>head</a></code> element is an
+ element.</p>
<!-- </head> -->
- <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-head-element>head</a></code> element is not
- immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>A <code><a href=#the-head-element>head</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-head-element>head</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- <body> -->
- <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code>
- element is not a <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the first thing
- inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or
- <code><a href=#the-style-element>style</a></code> element. <!-- Note that even if the </head> end
- tag is present, the parser makes <style> and <script> elements
- between </head> and <body> end up in the <head> instead of implying
- the <body> --></p>
+ <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if
+ the element is empty, or if the first thing inside the <code><a href=#the-body-element>body</a></code> element is not a
+ <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>, except if the
+ first thing inside the <code><a href=#the-body-element>body</a></code> element is a <code><a href=#the-script-element>script</a></code> or <code><a href=#the-style-element>style</a></code>
+ element. <!-- Note that even if the </head> end tag is present, the parser makes <style> and
+ <script> elements between </head> and <body> end up in the <head> instead of implying the <body>
+ --></p>
<!-- </body> -->
- <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-body-element>body</a></code> element is not
- immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>A <code><a href=#the-body-element>body</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-body-element>body</a></code> element is not immediately followed by a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- </li> -->
- <p>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-li-element>li</a></code> element is
- immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there
- is no more content in the parent element.</p>
+ <p>An <code><a href=#the-li-element>li</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-li-element>li</a></code> element is immediately followed by another <code><a href=#the-li-element>li</a></code> element or if there is
+ no more content in the parent element.</p>
<!-- </dt> -->
- <p>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-dt-element>dt</a></code> element is
- immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
+ <p>A <code><a href=#the-dt-element>dt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-dt-element>dt</a></code> element is immediately followed by another <code><a href=#the-dt-element>dt</a></code> element or a
<code><a href=#the-dd-element>dd</a></code> element.</p>
<!-- </dd> -->
- <p>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-dd-element>dd</a></code> element is
- immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
- <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the
- parent element.</p>
+ <p>A <code><a href=#the-dd-element>dd</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-dd-element>dd</a></code> element is immediately followed by another <code><a href=#the-dd-element>dd</a></code> element or a
+ <code><a href=#the-dt-element>dt</a></code> element, or if there is no more content in the parent element.</p>
<!-- </p> -->
- <p>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-p-element>p</a></code> element is
- immediately followed by an <code><a href=#the-address-element>address</a></code>,
- <code><a href=#the-article-element>article</a></code>, <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>,
- <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
- <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>,
- <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
- <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>,
- <code><a href=#the-nav-element>nav</a></code>, <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>,
- <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or <code><a href=#the-ul-element>ul</a></code>,
- element, or if there is no more content in the parent element and
- the parent element is not an <code><a href=#the-a-element>a</a></code> element.</p>
+ <p>A <code><a href=#the-p-element>p</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-p-element>p</a></code> element is immediately followed by an <code><a href=#the-address-element>address</a></code>, <code><a href=#the-article-element>article</a></code>,
+ <code><a href=#the-aside-element>aside</a></code>, <code><a href=#the-blockquote-element>blockquote</a></code>, <code><a href=#dir>dir</a></code>, <code><a href=#the-div-element>div</a></code>, <code><a href=#the-dl-element>dl</a></code>,
+ <code><a href=#the-fieldset-element>fieldset</a></code>, <code><a href=#the-footer-element>footer</a></code>, <code><a href=#the-form-element>form</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h1</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h2</a></code>,
+ <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h3</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h4</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h5</a></code>, <code><a href=#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements>h6</a></code>, <code><a href=#the-header-element>header</a></code>,
+ <code><a href=#the-hgroup-element>hgroup</a></code>, <code><a href=#the-hr-element>hr</a></code>, <code><a href=#the-main-element>main</a></code>, <code><a href=#the-menu-element>menu</a></code>, <code><a href=#the-nav-element>nav</a></code>,
+ <code><a href=#the-ol-element>ol</a></code>, <code><a href=#the-p-element>p</a></code>, <code><a href=#the-pre-element>pre</a></code>, <code><a href=#the-section-element>section</a></code>, <code><a href=#the-table-element>table</a></code>, or
+ <code><a href=#the-ul-element>ul</a></code>, element, or if there is no more content in the parent element and the parent
+ element is not an <code><a href=#the-a-element>a</a></code> element.</p>
<!-- </rt> -->
- <p>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-rt-element>rt</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>An <code><a href=#the-rt-element>rt</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-rt-element>rt</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</p>
<!-- </rp> -->
- <p>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-rp-element>rp</a></code> element is
- immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>An <code><a href=#the-rp-element>rp</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-rp-element>rp</a></code> element is immediately followed by an <code><a href=#the-rt-element>rt</a></code> or <code><a href=#the-rp-element>rp</a></code> element,
+ or if there is no more content in the parent element.</p>
- <!-- </optgroup> (the text assumes <optgroup> can only be inside a
- <select>; commented out text below can handle the non-<select> case
- if we ever allow it) -->
- <p>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
- <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor
- <code>select</code> element and--> is immediately followed by
- another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements
- that are ancestors of the <code>optgroup</code> element, up to and
- including the first ancestor element that is not an
- <code>optgroup</code> element, have no more content--> there is no
- more content in the parent element.</p>
+ <!-- </optgroup> (the text assumes <optgroup> can only be inside a <select>; commented out text
+ below can handle the non-<select> case if we ever allow it) -->
+ <p>An <code><a href=#the-optgroup-element>optgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted
+ if the <code><a href=#the-optgroup-element>optgroup</a></code> element <!--has an ancestor <code>select</code> element and--> is
+ immediately followed by another <code><a href=#the-optgroup-element>optgroup</a></code> element, or if <!--all of the elements that
+ are ancestors of the <code>optgroup</code> element, up to and including the first ancestor element
+ that is not an <code>optgroup</code> element, have no more content--> there is no more content in
+ the parent element.</p>
<!-- so e.g. the max number of </optgroup>s are omitted here:
<select><optgroup></select>
<p id=x><optgroup></optgroup>x</p>
@@ -85101,94 +84937,79 @@
-->
<!-- </option> -->
- <p>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-option-element>option</a></code> element is
- immediately followed by another <code><a href=#the-option-element>option</a></code> element, or if
- it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or
- if there is no more content in the parent element.</p>
+ <p>An <code><a href=#the-option-element>option</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-option-element>option</a></code> element is immediately followed by another <code><a href=#the-option-element>option</a></code> element, or
+ if it is immediately followed by an <code><a href=#the-optgroup-element>optgroup</a></code> element, or if there is no more content
+ in the parent element.</p>
<!-- <colgroup> -->
- <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a
- <code><a href=#the-col-element>col</a></code> element, and if the element is not immediately
- preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be
- omitted if the element is empty.)</p>
+ <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be
+ omitted if the first thing inside the <code><a href=#the-colgroup-element>colgroup</a></code> element is a <code><a href=#the-col-element>col</a></code> element,
+ and if the element is not immediately preceded by another <code><a href=#the-colgroup-element>colgroup</a></code> element whose
+ <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It can't be omitted if the element
+ is empty.)</p>
<!-- </colgroup> -->
- <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
- <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a
- <a href=#space-character>space character</a> or a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
+ <p>A <code><a href=#the-colgroup-element>colgroup</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-colgroup-element>colgroup</a></code> element is not immediately followed by a <a href=#space-character>space character</a> or
+ a <a href=#syntax-comments title=syntax-comments>comment</a>.</p>
<!-- </thead> -->
- <p>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-thead-element>thead</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element.</p>
+ <p>A <code><a href=#the-thead-element>thead</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-thead-element>thead</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element.</p>
<!-- <tbody> -->
- <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted if the
- first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a
- <code><a href=#the-tr-element>tr</a></code> element, and if the element is not immediately
- preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
- <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> has been omitted. (It can't be omitted if the element is
- empty.)</p>
+ <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> may be omitted
+ if the first thing inside the <code><a href=#the-tbody-element>tbody</a></code> element is a <code><a href=#the-tr-element>tr</a></code> element, and if the
+ element is not immediately preceded by a <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-thead-element>thead</a></code>, or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element whose <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> has been omitted. (It
+ can't be omitted if the element is empty.)</p>
<!-- </tbody> -->
- <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-tbody-element>tbody</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or <code><a href=#the-tfoot-element>tfoot</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code><a href=#the-tbody-element>tbody</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-tbody-element>tbody</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> or
+ <code><a href=#the-tfoot-element>tfoot</a></code> element, or if there is no more content in the parent element.</p>
<!-- </tfoot> -->
- <p>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-tfoot-element>tfoot</a></code> element is
- immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if there is
- no more content in the parent element.</p>
+ <p>A <code><a href=#the-tfoot-element>tfoot</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if
+ the <code><a href=#the-tfoot-element>tfoot</a></code> element is immediately followed by a <code><a href=#the-tbody-element>tbody</a></code> element, or if
+ there is no more content in the parent element.</p>
<!-- </tr> -->
- <p>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-tr-element>tr</a></code> element is
- immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there
- is no more content in the parent element.</p>
+ <p>A <code><a href=#the-tr-element>tr</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-tr-element>tr</a></code> element is immediately followed by another <code><a href=#the-tr-element>tr</a></code> element, or if there is
+ no more content in the parent element.</p>
<!-- </td> -->
- <p>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-td-element>td</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code><a href=#the-td-element>td</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-td-element>td</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</p>
<!-- </th> -->
- <p>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end
- tag</a> may be omitted if the <code><a href=#the-th-element>th</a></code> element is
- immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code><a href=#the-th-element>th</a></code> element's <a href=#syntax-end-tag title=syntax-end-tag>end tag</a> may be omitted if the
+ <code><a href=#the-th-element>th</a></code> element is immediately followed by a <code><a href=#the-td-element>td</a></code> or <code><a href=#the-th-element>th</a></code> element,
+ or if there is no more content in the parent element.</p>
- <p><strong>However</strong>, a <a href=#syntax-start-tag title=syntax-start-tag>start
- tag</a> must never be omitted if it has any attributes.</p>
+ <p><strong>However</strong>, a <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> must never be
+ omitted if it has any attributes.</p>
<h5 id=element-restrictions><span class=secno>12.1.2.5 </span>Restrictions on content models</h5>
- <p>For historical reasons, certain elements have extra restrictions
- beyond even the restrictions given by their content model.</p>
+ <p>For historical reasons, certain elements have extra restrictions beyond even the restrictions
+ given by their content model.</p>
- <p>A <code><a href=#the-table-element>table</a></code> element must not contain <code><a href=#the-tr-element>tr</a></code>
- elements, even though these elements are technically allowed inside
- <code><a href=#the-table-element>table</a></code> elements according to the content models
- described in this specification. (If a <code><a href=#the-tr-element>tr</a></code> element is
- put inside a <code><a href=#the-table-element>table</a></code> in the markup, it will in fact imply
- a <code><a href=#the-tbody-element>tbody</a></code> start tag before it.)</p>
+ <p>A <code><a href=#the-table-element>table</a></code> element must not contain <code><a href=#the-tr-element>tr</a></code> elements, even though these
+ elements are technically allowed inside <code><a href=#the-table-element>table</a></code> elements according to the content
+ models described in this specification. (If a <code><a href=#the-tr-element>tr</a></code> element is put inside a
+ <code><a href=#the-table-element>table</a></code> in the markup, it will in fact imply a <code><a href=#the-tbody-element>tbody</a></code> start tag before
+ it.)</p>
- <p>A single <a href=#syntax-newlines title=syntax-newlines>newline</a> may be
- placed immediately after the <a href=#syntax-start-tag title=syntax-start-tag>start
- tag</a> of <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-textarea-element>textarea</a></code>
- elements. This does not affect the processing of the element. The
- otherwise optional <a href=#syntax-newlines title=syntax-newlines>newline</a>
- <em>must</em> be included if the element's contents themselves start
- with a <a href=#syntax-newlines title=syntax-newlines>newline</a> (because
- otherwise the leading newline in the contents would be treated like
- the optional newline, and ignored).</p>
+ <p>A single <a href=#syntax-newlines title=syntax-newlines>newline</a> may be placed immediately after the <a href=#syntax-start-tag title=syntax-start-tag>start tag</a> of <code><a href=#the-pre-element>pre</a></code> and <code><a href=#the-textarea-element>textarea</a></code> elements.
+ This does not affect the processing of the element. The otherwise optional <a href=#syntax-newlines title=syntax-newlines>newline</a> <em>must</em> be included if the element's contents
+ themselves start with a <a href=#syntax-newlines title=syntax-newlines>newline</a> (because otherwise the
+ leading newline in the contents would be treated like the optional newline, and ignored).</p>
<div class=example>
<p>The following two <code><a href=#the-pre-element>pre</a></code> blocks are equivalent:</p>
@@ -85199,53 +85020,46 @@
<h5 id=cdata-rcdata-restrictions><span class=secno>12.1.2.6 </span>Restrictions on the contents of raw text and escapable raw text elements</h5>
- <p>The text in <a href=#raw-text-elements title="raw text elements">raw text</a> and
- <a href=#escapable-raw-text-elements>escapable raw text elements</a> must not contain any occurrences of the
- string "<code title=""></</code>" (U+003C LESS-THAN SIGN, U+002F
- SOLIDUS) followed by characters that case-insensitively match the
- tag name of the element followed by one of U+0009 CHARACTER
- TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D
- CARRIAGE RETURN (CR), U+0020 SPACE, U+003E GREATER-THAN SIGN (>), or
- U+002F SOLIDUS (/).</p>
+ <p>The text in <a href=#raw-text-elements title="raw text elements">raw text</a> and <a href=#escapable-raw-text-elements>escapable raw text
+ elements</a> must not contain any occurrences of the string "<code title=""></</code>"
+ (U+003C LESS-THAN SIGN, U+002F SOLIDUS) followed by characters that case-insensitively match the
+ tag name of the element followed by one of U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED
+ (LF), U+000C FORM FEED (FF), U+000D CARRIAGE RETURN (CR), U+0020 SPACE, U+003E GREATER-THAN SIGN
+ (>), or U+002F SOLIDUS (/).</p>
<h4 id=text-0><span class=secno>12.1.3 </span>Text</h4>
- <p><dfn id=syntax-text title=syntax-text>Text</dfn> is allowed inside elements,
- attribute values, and comments. Extra constraints are placed on what
- is and what is not allowed in text based on where the text is to be
- put, as described in the other sections.</p>
+ <p><dfn id=syntax-text title=syntax-text>Text</dfn> is allowed inside elements, attribute values, and comments.
+ Extra constraints are placed on what is and what is not allowed in text based on where the text is
+ to be put, as described in the other sections.</p>
<h5 id=newlines><span class=secno>12.1.3.1 </span>Newlines</h5>
- <p><dfn id=syntax-newlines title=syntax-newlines>Newlines</dfn> in HTML may be
- represented either as U+000D CARRIAGE RETURN (CR) characters, U+000A
- LINE FEED (LF) characters, or pairs of U+000D CARRIAGE RETURN (CR),
- U+000A LINE FEED (LF) characters in that order.</p>
+ <p><dfn id=syntax-newlines title=syntax-newlines>Newlines</dfn> in HTML may be represented either as U+000D
+ CARRIAGE RETURN (CR) characters, U+000A LINE FEED (LF) characters, or pairs of U+000D CARRIAGE
+ RETURN (CR), U+000A LINE FEED (LF) characters in that order.</p>
- <p>Where <a href=#syntax-charref title=syntax-charref>character references</a>
- are allowed, a character reference of a U+000A LINE FEED (LF)
- character (but not a U+000D CARRIAGE RETURN (CR) character) also
- represents a <a href=#syntax-newlines title=syntax-newlines>newline</a>.</p>
+ <p>Where <a href=#syntax-charref title=syntax-charref>character references</a> are allowed, a character
+ reference of a U+000A LINE FEED (LF) character (but not a U+000D CARRIAGE RETURN (CR) character)
+ also represents a <a href=#syntax-newlines title=syntax-newlines>newline</a>.</p>
<h4 id=character-references><span class=secno>12.1.4 </span>Character references</h4>
- <p>In certain cases described in other sections, <a href=#syntax-text title=syntax-text>text</a> may be mixed with <dfn id=syntax-charref title=syntax-charref>character references</dfn>. These can be used
- to escape characters that couldn't otherwise legally be included in
- <a href=#syntax-text title=syntax-text>text</a>.</p>
+ <p>In certain cases described in other sections, <a href=#syntax-text title=syntax-text>text</a> may be
+ mixed with <dfn id=syntax-charref title=syntax-charref>character references</dfn>. These can be used to escape
+ characters that couldn't otherwise legally be included in <a href=#syntax-text title=syntax-text>text</a>.</p>
- <p>Character references must start with a U+0026 AMPERSAND character
- (&). Following this, there are three possible kinds of character
- references:</p>
+ <p>Character references must start with a U+0026 AMPERSAND character (&). Following this,
+ there are three possible kinds of character references:</p>
<dl><dt>Named character references</dt>
- <dd>The ampersand must be followed by one of the names given in the
- <a href=#named-character-references>named character references</a> section, using the same
- case. <span class=impl>The name must be one that is terminated by
- a U+003B SEMICOLON character (;).</span></dd>
+ <dd>The ampersand must be followed by one of the names given in the <a href=#named-character-references>named character
+ references</a> section, using the same case. <span class=impl>The name must be one that is
+ terminated by a U+003B SEMICOLON character (;).</span></dd>
<dt>Decimal numeric character reference</dt>
@@ -85265,11 +85079,9 @@
according to the definition below. The digits must then be followed by a U+003B SEMICOLON
character (;).</dd>
- </dl><p>The numeric character reference forms described above are allowed
- to reference any Unicode code point other than U+0000, U+000D,
- permanently undefined Unicode characters (noncharacters), and
- control characters other than <a href=#space-character title="space character">space
- characters</a>.</p>
+ </dl><p>The numeric character reference forms described above are allowed to reference any Unicode code
+ point other than U+0000, U+000D, permanently undefined Unicode characters (noncharacters), and
+ control characters other than <a href=#space-character title="space character">space characters</a>.</p>
<p>An <dfn id=syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</dfn> is a U+0026 AMPERSAND
character (&) that is followed by one or more <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
@@ -85279,22 +85091,20 @@
<h4 id=cdata-sections><span class=secno>12.1.5 </span>CDATA sections</h4>
- <p><dfn id=syntax-cdata title=syntax-cdata>CDATA sections</dfn> must consist of
- the following components, in this order:</p>
+ <p><dfn id=syntax-cdata title=syntax-cdata>CDATA sections</dfn> must consist of the following components, in
+ this order:</p>
<ol><li>The string "<code title=""><![CDATA[</code>".</li>
- <li>Optionally, <a href=#syntax-text title=syntax-text>text</a>, with the
- additional restriction that the text must not contain the string
- "<code title="">]]></code>".</li>
+ <li>Optionally, <a href=#syntax-text title=syntax-text>text</a>, with the additional restriction that the
+ text must not contain the string "<code title="">]]></code>".</li>
<li>The string "<code title="">]]></code>".</li>
</ol><div class=example>
- <p>CDATA sections can only be used in foreign content (MathML or
- SVG). In this example, a CDATA section is used to escape the
- contents of an <code>ms</code> element:</p>
+ <p>CDATA sections can only be used in foreign content (MathML or SVG). In this example, a CDATA
+ section is used to escape the contents of an <code>ms</code> element:</p>
<pre><p>You can add a string to a number, but this stringifies the number:</p>
<math>
@@ -85310,18 +85120,13 @@
<h4 id=comments><span class=secno>12.1.6 </span>Comments</h4>
- <p><dfn id=syntax-comments title=syntax-comments>Comments</dfn> must start with the
- four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
- MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code title=""><!--</code>). Following this sequence, the comment may
- have <a href=#syntax-text title=syntax-text>text</a>, with the additional
- restriction that the text must not start with a single U+003E
- GREATER-THAN SIGN character (>), nor start with a U+002D
- HYPHEN-MINUS character (-) followed by a U+003E GREATER-THAN SIGN
- (>) character, nor contain two consecutive U+002D HYPHEN-MINUS
- characters (<code title="">--</code>), nor end with a U+002D
- HYPHEN-MINUS character (-). Finally, the comment must be ended by
- the three character sequence U+002D HYPHEN-MINUS, U+002D
- HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--></code>).</p>
+ <p><dfn id=syntax-comments title=syntax-comments>Comments</dfn> must start with the four character sequence U+003C
+ LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code title=""><!--</code>). Following this sequence, the comment may have <a href=#syntax-text title=syntax-text>text</a>, with the additional restriction that the text must not start with
+ a single U+003E GREATER-THAN SIGN character (>), nor start with a U+002D HYPHEN-MINUS character
+ (-) followed by a U+003E GREATER-THAN SIGN (>) character, nor contain two consecutive U+002D
+ HYPHEN-MINUS characters (<code title="">--</code>), nor end with a U+002D HYPHEN-MINUS character
+ (-). Finally, the comment must be ended by the three character sequence U+002D HYPHEN-MINUS,
+ U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--></code>).</p>
<!--HTMLPARSER-->
@@ -85329,69 +85134,54 @@
<div class=impl>
<h3 id=parsing><span class=secno>12.2 </span>Parsing HTML documents</h3>
-<!--CLEANUP-->
- <p><i>This section only applies to user agents, data mining tools,
- and conformance checkers.</i></p>
+ <p><i>This section only applies to user agents, data mining tools, and conformance
+ checkers.</i></p>
- <p class=note>The rules for parsing XML documents into DOM trees
- are covered by the next section, entitled "<a href=#the-xhtml-syntax>The XHTML
- syntax</a>".</p>
+ <p class=note>The rules for parsing XML documents into DOM trees are covered by the next
+ section, entitled "<a href=#the-xhtml-syntax>The XHTML syntax</a>".</p>
- <p>User agents must use the parsing rules described in this section
- to generate the DOM trees from <code><a href=#text/html>text/html</a></code> resources.
- Together, these rules define what is referred to as the <dfn id=html-parser>HTML
- parser</dfn>.</p>
+ <p>User agents must use the parsing rules described in this section to generate the DOM trees from
+ <code><a href=#text/html>text/html</a></code> resources. Together, these rules define what is referred to as the
+ <dfn id=html-parser>HTML parser</dfn>.</p>
<div class=note>
- <p>While the HTML syntax described in this specification bears a
- close resemblance to SGML and XML, it is a separate language with
- its own parsing rules.</p>
+ <p>While the HTML syntax described in this specification bears a close resemblance to SGML and
+ XML, it is a separate language with its own parsing rules.</p>
- <p>Some earlier versions of HTML (in particular from HTML2 to
- HTML4) were based on SGML and used SGML parsing rules. However, few
- (if any) web browsers ever implemented true SGML parsing for HTML
- documents; the only user agents to strictly handle HTML as an SGML
- application have historically been validators. The resulting
- confusion — with validators claiming documents to have one
- representation while widely deployed Web browsers interoperably
- implemented a different representation — has wasted decades
- of productivity. This version of HTML thus returns to a non-SGML
- basis.</p>
+ <p>Some earlier versions of HTML (in particular from HTML2 to HTML4) were based on SGML and used
+ SGML parsing rules. However, few (if any) web browsers ever implemented true SGML parsing for
+ HTML documents; the only user agents to strictly handle HTML as an SGML application have
+ historically been validators. The resulting confusion — with validators claiming documents
+ to have one representation while widely deployed Web browsers interoperably implemented a
+ different representation — has wasted decades of productivity. This version of HTML thus
+ returns to a non-SGML basis.</p>
- <p>Authors interested in using SGML tools in their authoring
- pipeline are encouraged to use XML tools and the XML serialization
- of HTML.</p>
+ <p>Authors interested in using SGML tools in their authoring pipeline are encouraged to use XML
+ tools and the XML serialization of HTML.</p>
</div>
- <p>This specification defines the parsing rules for HTML documents,
- whether they are syntactically correct or not. Certain points in the
- parsing algorithm are said to be <dfn id=parse-error title="parse error">parse
- errors</dfn>. The error handling for parse errors is well-defined
- (that's the processing rules described throughout this specification), but
- user agents, while parsing an HTML document, may <a href=#abort-a-parser title="abort a
- parser">abort the parser</a> at the first <a href=#parse-error>parse error</a> that they
- encounter for which they do not wish to apply the rules described
- in this specification.</p>
+ <p>This specification defines the parsing rules for HTML documents, whether they are syntactically
+ correct or not. Certain points in the parsing algorithm are said to be <dfn id=parse-error title="parse
+ error">parse errors</dfn>. The error handling for parse errors is well-defined (that's the
+ processing rules described throughout this specification), but user agents, while parsing an HTML
+ document, may <a href=#abort-a-parser title="abort a parser">abort the parser</a> at the first <a href=#parse-error>parse
+ error</a> that they encounter for which they do not wish to apply the rules described in this
+ specification.</p>
- <p>Conformance checkers must report at least one parse error
- condition to the user if one or more parse error conditions exist in
- the document and must not report parse error conditions if none
- exist in the document. Conformance checkers may report more than one
- parse error condition if more than one parse error condition exists
- in the document.</p>
+ <p>Conformance checkers must report at least one parse error condition to the user if one or more
+ parse error conditions exist in the document and must not report parse error conditions if none
+ exist in the document. Conformance checkers may report more than one parse error condition if more
+ than one parse error condition exists in the document.</p>
- <p class=note>Parse errors are only errors with the
- <em>syntax</em> of HTML. In addition to checking for parse errors,
- conformance checkers will also verify that the document obeys all
- the other conformance requirements described in this
- specification.</p>
+ <p class=note>Parse errors are only errors with the <em>syntax</em> of HTML. In addition to
+ checking for parse errors, conformance checkers will also verify that the document obeys all the
+ other conformance requirements described in this specification.</p>
- <p>For the purposes of conformance checkers, if a resource is
- determined to be in <a href=#syntax>the HTML syntax</a>, then it is an
- <a href=#html-documents title="HTML documents">HTML document</a>.</p>
+ <p>For the purposes of conformance checkers, if a resource is determined to be in <a href=#syntax>the HTML
+ syntax</a>, then it is an <a href=#html-documents title="HTML documents">HTML document</a>.</p>
</div>
@@ -85402,34 +85192,28 @@
<p class=overview><object width=345 height=535 data=images/parsing-model-overview.svg><img src=http://images.whatwg.org/parsing-model-overview.png width=345 alt="" height=450></object></p>
- <p>The input to the HTML parsing process consists of a stream of
- <a href=#unicode-code-point title="Unicode code point">Unicode code points</a>, which
- is passed through a <a href=#tokenization>tokenization</a> stage followed by a
- <a href=#tree-construction>tree construction</a> stage. The output is a
- <code><a href=#document>Document</a></code> object.</p>
+ <p>The input to the HTML parsing process consists of a stream of <a href=#unicode-code-point title="Unicode code
+ point">Unicode code points</a>, which is passed through a <a href=#tokenization>tokenization</a> stage
+ followed by a <a href=#tree-construction>tree construction</a> stage. The output is a <code><a href=#document>Document</a></code>
+ object.</p>
- <p class=note>Implementations that <a href=#non-scripted>do not
- support scripting</a> do not have to actually create a DOM
- <code><a href=#document>Document</a></code> object, but the DOM tree in such cases is
+ <p class=note>Implementations that <a href=#non-scripted>do not support scripting</a> do not
+ have to actually create a DOM <code><a href=#document>Document</a></code> object, but the DOM tree in such cases is
still used as the model for the rest of the specification.</p>
- <p>In the common case, the data handled by the tokenization stage
- comes from the network, but <a href=#dynamic-markup-insertion title="dynamic markup
- insertion">it can also come from script</a> running in the user
+ <p>In the common case, the data handled by the tokenization stage comes from the network, but
+ <a href=#dynamic-markup-insertion title="dynamic markup insertion">it can also come from script</a> running in the user
agent, e.g. using the <code title=dom-document-write><a href=#dom-document-write>document.write()</a></code> API.</p>
- <p id=nestedParsing>There is only one set of states for the
- tokenizer stage and the tree construction stage, but the tree
- construction stage is reentrant, meaning that while the tree
- construction stage is handling one token, the tokenizer might be
- resumed, causing further tokens to be emitted and processed before
- the first token's processing is complete.</p>
+ <p id=nestedParsing>There is only one set of states for the tokenizer stage and the tree
+ construction stage, but the tree construction stage is reentrant, meaning that while the tree
+ construction stage is handling one token, the tokenizer might be resumed, causing further tokens
+ to be emitted and processed before the first token's processing is complete.</p>
<div class=example>
- <p>In the following example, the tree construction stage will be
- called upon to handle a "p" start tag token while handling the
- "script" end tag token:</p>
+ <p>In the following example, the tree construction stage will be called upon to handle a "p"
+ start tag token while handling the "script" end tag token:</p>
<pre>...
<script>
@@ -85439,9 +85223,8 @@
</div>
- <p>To handle these cases, parsers have a <dfn id=script-nesting-level>script nesting
- level</dfn>, which must be initially set to zero, and a <dfn id=parser-pause-flag>parser
- pause flag</dfn>, which must be initially set to false.</p>
+ <p>To handle these cases, parsers have a <dfn id=script-nesting-level>script nesting level</dfn>, which must be initially
+ set to zero, and a <dfn id=parser-pause-flag>parser pause flag</dfn>, which must be initially set to false.</p>
</div>
@@ -85451,29 +85234,23 @@
<h4 id=the-input-byte-stream><span class=secno>12.2.2 </span>The <dfn>input byte stream</dfn></h4>
-<!--CLEANUP-->
- <p>The stream of Unicode code points that comprises the input to the
- tokenization stage will be initially seen by the user agent as a
- stream of bytes (typically coming over the network or from the local
- file system). The bytes encode the actual characters according to a
- particular <i>character encoding</i>, which the user agent uses
- to decode the bytes into characters.</p>
+ <p>The stream of Unicode code points that comprises the input to the tokenization stage will be
+ initially seen by the user agent as a stream of bytes (typically coming over the network or from
+ the local file system). The bytes encode the actual characters according to a particular
+ <i>character encoding</i>, which the user agent uses to decode the bytes into characters.</p>
- <p class=note>For XML documents, the algorithm user agents must
- use to determine the character encoding is given by the XML
- specification. This section does not apply to XML documents. <a href=#refsXML>[XML]</a></p>
+ <p class=note>For XML documents, the algorithm user agents must use to determine the character
+ encoding is given by the XML specification. This section does not apply to XML documents. <a href=#refsXML>[XML]</a></p>
- <p>Usually, the <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> defined below is
- used to determine the character encoding.</p>
+ <p>Usually, the <a href=#encoding-sniffing-algorithm>encoding sniffing algorithm</a> defined below is used to determine the
+ character encoding.</p>
- <p>Given a character encoding, the bytes in the <a href=#the-input-byte-stream>input byte
- stream</a> must be converted to Unicode code points for the
- tokenizer's <a href=#input-stream>input stream</a>, as described by the rules for
- that encoding's <a href=#decoder>decoder</a>.</p>
+ <p>Given a character encoding, the bytes in the <a href=#the-input-byte-stream>input byte stream</a> must be converted
+ to Unicode code points for the tokenizer's <a href=#input-stream>input stream</a>, as described by the rules
+ for that encoding's <a href=#decoder>decoder</a>.</p>
- <p class=note>Bytes or sequences of bytes in the original byte
- stream that did not conform to the encoding specification (e.g.
- invalid UTF-8 byte sequences in a UTF-8 input byte stream) are
+ <p class=note>Bytes or sequences of bytes in the original byte stream that did not conform to
+ the encoding specification (e.g. invalid UTF-8 byte sequences in a UTF-8 input byte stream) are
errors that conformance checkers are expected to report.</p>
<p class=note>Leading Byte Order Marks (BOMs) are not stripped by the decoder algorithms, they
@@ -95225,7 +95002,7 @@
:root:lang(uk), :not(:lang(uk)) > :lang(uk) { quotes: '\00ab' '\00bb' '\201e' '\201c' } /* « » „ “ */
:root:lang(ur), :not(:lang(ur)) > :lang(ur) { quotes: '\201d' '\201c' '\2019' '\2018' } /* ” “ ’ ‘ */
:root:lang(uz), :not(:lang(uz)) > :lang(uz) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
-:root:lang(uz-Latn), :not(:lang(uz-Latn)) > :lang(uz-Latn) { quotes: '\0022' '\0022' '\0027' '\0027' } /* " " ' ' */
+:root:lang(uz-Latn), :not(:lang(uz-Latn)) > :lang(uz-Latn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(vai), :not(:lang(vai)) > :lang(vai) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(vai-Latn), :not(:lang(vai-Latn)) > :lang(vai-Latn) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
:root:lang(vi), :not(:lang(vi)) > :lang(vi) { quotes: '\201c' '\201d' '\2018' '\2019' } /* “ ” ‘ ’ */
Modified: source
===================================================================
--- source 2013-08-02 21:48:03 UTC (rev 8124)
+++ source 2013-08-03 16:04:58 UTC (rev 8125)
@@ -27564,52 +27564,41 @@
</dd>
</dl><!--TOPIC:HTML-->
-<!--CLEANUP-->
- <p>The <code>param</code> element defines parameters for plugins
- invoked by <code>object</code> elements. It does not <span
- title="represents">represent</span> anything on its own.</p>
+ <p>The <code>param</code> element defines parameters for plugins invoked by <code>object</code>
+ elements. It does not <span title="represents">represent</span> anything on its own.</p>
- <p>The <dfn title="attr-param-name"><code>name</code></dfn>
- attribute gives the name of the parameter.</p>
+ <p>The <dfn title="attr-param-name"><code>name</code></dfn> attribute gives the name of the
+ parameter.</p>
- <p>The <dfn title="attr-param-value"><code>value</code></dfn>
- attribute gives the value of the parameter.</p>
+ <p>The <dfn title="attr-param-value"><code>value</code></dfn> attribute gives the value of the
+ parameter.</p>
<p>Both attributes must be present. They may have any value.</p>
<div class="impl">
- <p>If both attributes are present, and if the parent element of the
- <code>param</code> is an <code>object</code> element, then the
- element defines a <dfn
- title="concept-param-parameter">parameter</dfn> with the given
- name-value pair.</p>
+ <p>If both attributes are present, and if the parent element of the <code>param</code> is an
+ <code>object</code> element, then the element defines a <dfn
+ title="concept-param-parameter">parameter</dfn> with the given name-value pair.</p>
- <p>If either the name or value of a <span
- title="concept-param-parameter">parameter</span> defined by a
- <code>param</code> element that is the child of an
- <code>object</code> element that <span>represents</span> an
- instantiated <span>plugin</span> changes, and if that
- <span>plugin</span> is communicating with the user agent using an
- API that features the ability to update the <span>plugin</span> when
- the name or value of a <span
- title="concept-param-parameter">parameter</span> so changes, then
- the user agent must appropriately exercise that ability to notify
- the <span>plugin</span> of the change.</p>
+ <p>If either the name or value of a <span title="concept-param-parameter">parameter</span> defined
+ by a <code>param</code> element that is the child of an <code>object</code> element that
+ <span>represents</span> an instantiated <span>plugin</span> changes, and if that
+ <span>plugin</span> is communicating with the user agent using an API that features the ability to
+ update the <span>plugin</span> when the name or value of a <span
+ title="concept-param-parameter">parameter</span> so changes, then the user agent must
+ appropriately exercise that ability to notify the <span>plugin</span> of the change.</p>
- <p>The IDL attributes <dfn
- title="dom-param-name"><code>name</code></dfn> and <dfn
- title="dom-param-value"><code>value</code></dfn> must both
- <span>reflect</span> the respective content attributes of the same
- name.</p>
+ <p>The IDL attributes <dfn title="dom-param-name"><code>name</code></dfn> and <dfn
+ title="dom-param-value"><code>value</code></dfn> must both <span>reflect</span> the respective
+ content attributes of the same name.</p>
</div>
<div class="example">
- <p>The following example shows how the <code>param</code> element
- can be used to pass a parameter to a plugin, in this case the O3D
- plugin.</p>
+ <p>The following example shows how the <code>param</code> element can be used to pass a parameter
+ to a plugin, in this case the O3D plugin.</p>
<pre><!DOCTYPE HTML>
<html lang="en">
@@ -27682,15 +27671,13 @@
</dd>
</dl><!--TOPIC:HTML-->
- <p>A <code>video</code> element is used for playing videos or
- movies, and audio files with captions.</p>
+ <p>A <code>video</code> element is used for playing videos or movies, and audio files with
+ captions.</p>
- <p>Content may be provided inside the <code>video</code>
- element<span class="impl">. User agents should not show this content
- to the user</span>; it is intended for older Web browsers which do
- not support <code>video</code>, so that legacy video plugins can be
- tried, or to show text to the users of these older browsers informing
- them of how to access the video contents.</p>
+ <p>Content may be provided inside the <code>video</code> element<span class="impl">. User agents
+ should not show this content to the user</span>; it is intended for older Web browsers which do
+ not support <code>video</code>, so that legacy video plugins can be tried, or to show text to the
+ users of these older browsers informing them of how to access the video contents.</p>
<p class="note">In particular, this content is not intended to address accessibility concerns. To
make video content accessible to the partially sighted, the blind, the hard-of-hearing, the deaf,
@@ -27708,25 +27695,19 @@
can be provided by simply linking to them in the prose near the <code>video</code> element. <a
href="#refsWEBVTT">[WEBVTT]</a></p>
- <p>The <code>video</code> element is a <span>media element</span>
- whose <span>media data</span> is ostensibly video data, possibly
- with associated audio data.</p>
+ <p>The <code>video</code> element is a <span>media element</span> whose <span>media data</span> is
+ ostensibly video data, possibly with associated audio data.</p>
- <p>The <code title="attr-media-src">src</code>, <code
- title="attr-media-preload">preload</code>, <code
- title="attr-media-autoplay">autoplay</code>,
- <code title="attr-media-mediagroup">mediagroup</code>,
- <code title="attr-media-loop">loop</code>,
- <code title="attr-media-muted">muted</code>, and <code
- title="attr-media-controls">controls</code> attributes are <span
- title="media element attributes">the attributes common to all media
+ <p>The <code title="attr-media-src">src</code>, <code title="attr-media-preload">preload</code>,
+ <code title="attr-media-autoplay">autoplay</code>, <code
+ title="attr-media-mediagroup">mediagroup</code>, <code title="attr-media-loop">loop</code>, <code
+ title="attr-media-muted">muted</code>, and <code title="attr-media-controls">controls</code>
+ attributes are <span title="media element attributes">the attributes common to all media
elements</span>.</p>
- <p>The <dfn title="attr-video-poster"><code>poster</code></dfn>
- attribute gives the address of an image file that the user agent can
- show while no video data is available. The attribute, if present,
- must contain a <span>valid non-empty URL potentially surrounded by
- spaces</span>.</p>
+ <p>The <dfn title="attr-video-poster"><code>poster</code></dfn> attribute gives the address of an
+ image file that the user agent can show while no video data is available. The attribute, if
+ present, must contain a <span>valid non-empty URL potentially surrounded by spaces</span>.</p>
<div class="impl">
@@ -27738,24 +27719,21 @@
<ol>
- <li><p>If there is an existing instance of this algorithm running
- for this <code>video</code> element, abort that instance of this
- algorithm without changing the <span>poster frame</span>.</p></li>
+ <li><p>If there is an existing instance of this algorithm running for this <code>video</code>
+ element, abort that instance of this algorithm without changing the <span>poster
+ frame</span>.</p></li>
- <li><p>If the <code title="attr-video-poster">poster</code>
- attribute's value is the empty string or if the attribute is
- absent, then there is no <span>poster frame</span>; abort these
+ <li><p>If the <code title="attr-video-poster">poster</code> attribute's value is the empty string
+ or if the attribute is absent, then there is no <span>poster frame</span>; abort these
steps.</p></li>
<li><p><span title="resolve a url">Resolve</span> the <code
- title="attr-video-poster">poster</code> attribute's value relative
- to the element. If this fails, then there is no <span>poster
- frame</span>; abort these steps.</p></li>
+ title="attr-video-poster">poster</code> attribute's value relative to the element. If this fails,
+ then there is no <span>poster frame</span>; abort these steps.</p></li>
- <li><p><span>Fetch</span><!--FETCH--> the resulting <span>absolute
- URL</span>, from the element's <code>Document</code>'s
- <span>origin</span>. This must <span>delay the load event</span> of
- the element's document.</p></li>
+ <li><p><span>Fetch</span><!--FETCH--> the resulting <span>absolute URL</span>, from the element's
+ <code>Document</code>'s <span>origin</span>. This must <span>delay the load event</span> of the
+ element's document.</p></li>
<!-- could define how to sniff for an image here -->
@@ -27867,52 +27845,36 @@
<div class="impl">
- <p>The <dfn title="concept-video-intrinsic-width">intrinsic
- width</dfn> and <dfn
- title="concept-video-intrinsic-height">intrinsic height</dfn> of the
- <span>media resource</span> are the dimensions of the resource in
- CSS pixels after taking into account the resource's dimensions,
- aspect ratio, clean aperture, resolution, and so forth, as defined
- for the format used by the resource. If an anamorphic format does
- not define how to apply the aspect ratio to the video data's
- dimensions to obtain the "correct" dimensions, then the user agent
- must apply the ratio by increasing one dimension and leaving the
- other unchanged.</p>
+ <p>The <dfn title="concept-video-intrinsic-width">intrinsic width</dfn> and <dfn
+ title="concept-video-intrinsic-height">intrinsic height</dfn> of the <span>media resource</span>
+ are the dimensions of the resource in CSS pixels after taking into account the resource's
+ dimensions, aspect ratio, clean aperture, resolution, and so forth, as defined for the format used
+ by the resource. If an anamorphic format does not define how to apply the aspect ratio to the
+ video data's dimensions to obtain the "correct" dimensions, then the user agent must apply the
+ ratio by increasing one dimension and leaving the other unchanged.</p>
- <p>The <dfn
- title="dom-video-videoWidth"><code>videoWidth</code></dfn> IDL
- attribute must return the <span
- title="concept-video-intrinsic-width">intrinsic width</span> of the
- video in CSS pixels. The <dfn
- title="dom-video-videoHeight"><code>videoHeight</code></dfn> IDL
- attribute must return the <span
- title="concept-video-intrinsic-height">intrinsic height</span> of
- the video in CSS pixels. If the element's <code
- title="dom-media-readyState">readyState</code> attribute is <code
- title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, then the
- attributes must return 0.</p>
+ <p>The <dfn title="dom-video-videoWidth"><code>videoWidth</code></dfn> IDL attribute must return
+ the <span title="concept-video-intrinsic-width">intrinsic width</span> of the video in CSS pixels.
+ The <dfn title="dom-video-videoHeight"><code>videoHeight</code></dfn> IDL attribute must return
+ the <span title="concept-video-intrinsic-height">intrinsic height</span> of the video in CSS
+ pixels. If the element's <code title="dom-media-readyState">readyState</code> attribute is <code
+ title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, then the attributes must return 0.</p>
</div>
- <p>The <code>video</code> element supports <span>dimension
- attributes</span>.</p>
+ <p>The <code>video</code> element supports <span>dimension attributes</span>.</p>
<div class="impl">
- <p>In the absence of style rules to the contrary, video content
- should be rendered inside the element's playback area such that the
- video content is shown centered in the playback area at the largest
- possible size that fits completely within it, with the video
- content's aspect ratio being preserved. Thus, if the aspect ratio of
- the playback area does not match the aspect ratio of the video, the
- video will be shown letterboxed or pillarboxed. Areas of the
- element's playback area that do not contain the video represent
- nothing.</p>
+ <p>In the absence of style rules to the contrary, video content should be rendered inside the
+ element's playback area such that the video content is shown centered in the playback area at the
+ largest possible size that fits completely within it, with the video content's aspect ratio being
+ preserved. Thus, if the aspect ratio of the playback area does not match the aspect ratio of the
+ video, the video will be shown letterboxed or pillarboxed. Areas of the element's playback area
+ that do not contain the video represent nothing.</p>
- <p class="note">In user agents that implement CSS, the above
- requirement can be implemented by using the <a
- href="#video-object-fit">style rule suggested in the rendering
- section</a>.</p>
+ <p class="note">In user agents that implement CSS, the above requirement can be implemented by
+ using the <a href="#video-object-fit">style rule suggested in the rendering section</a>.</p>
<p>The intrinsic width of a <code>video</code> element's playback area is the intrinsic width of
the <span>poster frame</span>, if that is available and the element currently
@@ -27931,40 +27893,32 @@
<hr>
- <p>User agents should provide controls to enable or disable the
- display of closed captions, audio description tracks, and other
- additional data associated with the video stream, though such
- features should, again, not interfere with the page's normal
- rendering.</p>
+ <p>User agents should provide controls to enable or disable the display of closed captions, audio
+ description tracks, and other additional data associated with the video stream, though such
+ features should, again, not interfere with the page's normal rendering.</p>
- <p>User agents may allow users to view the video content in manners
- more suitable to the user (e.g. full-screen or in an independent
- resizable window). As for the other user interface features,
- controls to enable this should not interfere with the page's normal
- rendering unless the user agent is <span title="expose a user
- interface to the user">exposing a user interface</span>. In such an
- independent context, however, user agents may make full user
- interfaces visible, with, e.g., play, pause, seeking, and volume
- controls, even if the <code
+ <p>User agents may allow users to view the video content in manners more suitable to the user
+ (e.g. full-screen or in an independent resizable window). As for the other user interface
+ features, controls to enable this should not interfere with the page's normal rendering unless the
+ user agent is <span title="expose a user interface to the user">exposing a user interface</span>.
+ In such an independent context, however, user agents may make full user interfaces visible, with,
+ e.g., play, pause, seeking, and volume controls, even if the <code
title="attr-media-controls">controls</code> attribute is absent.</p>
- <p>User agents may allow video playback to affect system features
- that could interfere with the user's experience; for example, user
- agents could disable screensavers while video playback is in
+ <p>User agents may allow video playback to affect system features that could interfere with the
+ user's experience; for example, user agents could disable screensavers while video playback is in
progress.</p>
<hr>
- <p>The <dfn title="dom-video-poster"><code>poster</code></dfn> IDL
- attribute must <span>reflect</span> the <code
- title="attr-video-poster">poster</code> content attribute.</p>
+ <p>The <dfn title="dom-video-poster"><code>poster</code></dfn> IDL attribute must
+ <span>reflect</span> the <code title="attr-video-poster">poster</code> content attribute.</p>
</div>
<div class="example">
- <p>This example shows how to detect when a video has failed to play
- correctly:</p>
+ <p>This example shows how to detect when a video has failed to play correctly:</p>
<pre><script>
function failed(e) {
@@ -28002,17 +27956,15 @@
<h5>Video and audio codecs for <code>video</code> elements</h5>
- <p>User agents may support any video and audio codecs and container
- formats.</p>
+ <p>User agents may support any video and audio codecs and container formats.</p>
- <p class="note">Certain user agents might support no codecs at all,
- e.g. text browsers running over SSH connections.</p>
+ <p class="note">Certain user agents might support no codecs at all, e.g. text browsers running
+ over SSH connections.</p>
<!- - similar note in audio codecs section - ->
- <p class="note">Implementations are free to implement support for
- video codecs either natively, or using platform-specific APIs, or
- using plugins: this specification does not specify how codecs are to
- be implemented.</p>
+ <p class="note">Implementations are free to implement support for video codecs either natively, or
+ using platform-specific APIs, or using plugins: this specification does not specify how codecs are
+ to be implemented.</p>
</div>
@@ -28057,8 +28009,7 @@
</dd>
</dl><!--TOPIC:HTML-->
- <p>An <code>audio</code> element <span>represents</span> a sound or
- audio stream.</p>
+ <p>An <code>audio</code> element <span>represents</span> a sound or audio stream.</p>
<!-- v2 (actually v3) suggestions:
* Audio syntesis. Use cases from Charles Pritchard:
@@ -28077,12 +28028,10 @@
> Support very simple audio codecs, and programmable synthesizers.
-->
- <p>Content may be provided inside the <code>audio</code>
- element<span class="impl">. User agents should not show this content
- to the user</span>; it is intended for older Web browsers which do
- not support <code>audio</code>, so that legacy audio plugins can be
- tried, or to show text to the users of these older browsers informing
- them of how to access the audio contents.</p>
+ <p>Content may be provided inside the <code>audio</code> element<span class="impl">. User agents
+ should not show this content to the user</span>; it is intended for older Web browsers which do
+ not support <code>audio</code>, so that legacy audio plugins can be tried, or to show text to the
+ users of these older browsers informing them of how to access the audio contents.</p>
<p class="note">In particular, this content is not intended to address accessibility concerns. To
make audio content accessible to the deaf or to those with other physical or cognitive
@@ -28093,28 +28042,24 @@
naturally, transcripts or other textual alternatives can be provided by simply linking to them in
the prose near the <code>audio</code> element. <a href="#refsWEBVTT">[WEBVTT]</a></p>
- <p>The <code>audio</code> element is a <span>media element</span>
- whose <span>media data</span> is ostensibly audio data.</p>
+ <p>The <code>audio</code> element is a <span>media element</span> whose <span>media data</span> is
+ ostensibly audio data.</p>
- <p>The <code title="attr-media-src">src</code>, <code
- title="attr-media-preload">preload</code>, <code
- title="attr-media-autoplay">autoplay</code>,
- <code title="attr-media-mediagroup">mediagroup</code>,
- <code title="attr-media-loop">loop</code>,
- <code title="attr-media-muted">muted</code>, and <code
- title="attr-media-controls">controls</code> attributes are <span
- title="media element attributes">the attributes common to all media
+ <p>The <code title="attr-media-src">src</code>, <code title="attr-media-preload">preload</code>,
+ <code title="attr-media-autoplay">autoplay</code>, <code
+ title="attr-media-mediagroup">mediagroup</code>, <code title="attr-media-loop">loop</code>, <code
+ title="attr-media-muted">muted</code>, and <code title="attr-media-controls">controls</code>
+ attributes are <span title="media element attributes">the attributes common to all media
elements</span>.</p>
<div class="impl">
- <p>When an <code>audio</code> element is <span>potentially
- playing</span>, it must have its audio data played synchronized with
- the <span>current playback position</span>, at the element's
+ <p>When an <code>audio</code> element is <span>potentially playing</span>, it must have its audio
+ data played synchronized with the <span>current playback position</span>, at the element's
<span>effective media volume</span>.</p>
- <p>When an <code>audio</code> element is not <span>potentially
- playing</span>, audio must not play for the element.</p>
+ <p>When an <code>audio</code> element is not <span>potentially playing</span>, audio must not play
+ for the element.</p>
</div>
@@ -28124,9 +28069,8 @@
<dd>
- <p>Returns a new <code>audio</code> element, with the <code
- title="attr-media-src">src</code> attribute set to the value
- passed in the argument, if applicable.</p>
+ <p>Returns a new <code>audio</code> element, with the <code title="attr-media-src">src</code>
+ attribute set to the value passed in the argument, if applicable.</p>
</dd>
@@ -28157,12 +28101,10 @@
<h5>Audio codecs for <code>audio</code> elements</h5>
- <p>User agents may support any audio codecs and container
- formats.</p>
+ <p>User agents may support any audio codecs and container formats.</p>
- <p>User agents must support the WAVE container format with audio
- encoded using the 16 bit PCM (LE) codec, at sampling frequencies of
- 11.025kHz, 22.050kHz, and 44.100kHz, and for both mono and
+ <p>User agents must support the WAVE container format with audio encoded using the 16 bit PCM (LE)
+ codec, at sampling frequencies of 11.025kHz, 22.050kHz, and 44.100kHz, and for both mono and
stereo. <a href="#- -refsWAVE">[WAVE]</a></p>
<!- -
@@ -28171,10 +28113,9 @@
- ->
<!- - similar note in video codecs section - ->
- <p class="note">Implementations are free to implement support for
- audio codecs either natively, or using platform-specific APIs, or
- using plugins: this specification does not specify how codecs are to
- be implemented.</p>
+ <p class="note">Implementations are free to implement support for audio codecs either natively, or
+ using platform-specific APIs, or using plugins: this specification does not specify how codecs are
+ to be implemented.</p>
</div>
@@ -91179,8 +91120,11 @@
domain. Authors can avoid this using the relatively complex mechanism of using unique domain names
per connection, or by allowing the user to enable or disable the <code>EventSource</code>
functionality on a per-page basis, or by sharing a single <code>EventSource</code> object using a
- <span title="SharedWorkerGlobalScope">shared worker</span>. <!--END complete--> <a
- href="#refsWEBWORKERS">[WEBWORKERS]</a> <!--START complete--> </p>
+ <span title="SharedWorkerGlobalScope">shared worker</span>.
+ <!--END complete-->
+ <a href="#refsWEBWORKERS">[WEBWORKERS]</a>
+ <!--START complete-->
+ </p>
<h4 id="eventsource-push">Connectionless push and other features</h4>
@@ -93791,68 +93735,52 @@
};
<span>Window</span> implements <span>WindowSessionStorage</span>;</pre>
- <p>The <dfn
- title="dom-sessionStorage"><code>sessionStorage</code></dfn>
- attribute represents the set of storage areas specific to the
- current <span>top-level browsing context</span>.</p>
+ <p>The <dfn title="dom-sessionStorage"><code>sessionStorage</code></dfn> attribute represents the
+ set of storage areas specific to the current <span>top-level browsing context</span>.</p>
- <p>Each <span>top-level browsing context</span> has a unique set of
- session storage areas, one for each <span>origin</span>.</p>
+ <p>Each <span>top-level browsing context</span> has a unique set of session storage areas, one for
+ each <span>origin</span>.</p>
- <p>User agents should not expire data from a browsing context's
- session storage areas, but may do so when the user requests that
- such data be deleted, or when the UA detects that it has limited
- storage space, or for security reasons. User agents should always
- avoid deleting data while a script that could access that data is
- running. When a top-level browsing context is destroyed (and
- therefore permanently inaccessible to the user) the data stored in
- its session storage areas can be discarded with it, as the API
- described in this specification provides no way for that data to
+ <p>User agents should not expire data from a browsing context's session storage areas, but may do
+ so when the user requests that such data be deleted, or when the UA detects that it has limited
+ storage space, or for security reasons. User agents should always avoid deleting data while a
+ script that could access that data is running. When a top-level browsing context is destroyed (and
+ therefore permanently inaccessible to the user) the data stored in its session storage areas can
+ be discarded with it, as the API described in this specification provides no way for that data to
ever be subsequently retrieved.</p>
- <p class="note">The lifetime of a browsing context can be unrelated
- to the lifetime of the actual user agent process itself, as the user
- agent may support resuming sessions after a restart.</p>
+ <p class="note">The lifetime of a browsing context can be unrelated to the lifetime of the actual
+ user agent process itself, as the user agent may support resuming sessions after a restart.</p>
- <p>When a new <code>Document</code> is created in a <span>browsing
- context</span> which has a <span>top-level browsing context</span>,
- the user agent must check to see if that <span>top-level browsing
- context</span> has a session storage area for that document's
- <span>origin</span>. If it does, then that is the
- <code>Document</code>'s assigned session storage area. If it does
- not, a new storage area for that document's <span>origin</span> must
- be created, and then <em>that</em> is the <code>Document</code>'s
- assigned session storage area. A <code>Document</code>'s assigned
- storage area does not change during the lifetime of a
- <code>Document</code>.</p>
+ <p>When a new <code>Document</code> is created in a <span>browsing context</span> which has a
+ <span>top-level browsing context</span>, the user agent must check to see if that <span>top-level
+ browsing context</span> has a session storage area for that document's <span>origin</span>. If it
+ does, then that is the <code>Document</code>'s assigned session storage area. If it does not, a
+ new storage area for that document's <span>origin</span> must be created, and then <em>that</em>
+ is the <code>Document</code>'s assigned session storage area. A <code>Document</code>'s assigned
+ storage area does not change during the lifetime of a <code>Document</code>.</p>
- <p class="note">In the case of an <code>iframe</code> being moved to
- another <code>Document</code>, the nested browsing context is
- destroyed and a new one created.</p>
+ <p class="note">In the case of an <code>iframe</code> being moved to another
+ <code>Document</code>, the nested browsing context is destroyed and a new one created.</p>
- <p>The <code title="dom-sessionStorage">sessionStorage</code>
- attribute must return a <code>Storage</code> object associated with
- the <code>Document</code>'s assigned session storage area, if any,
- or null if there isn't one. Each <code>Document</code> object must
- have a separate object for its <code>Window</code>'s <code
- title="dom-sessionStorage">sessionStorage</code> attribute.</p>
+ <p>The <code title="dom-sessionStorage">sessionStorage</code> attribute must return a
+ <code>Storage</code> object associated with the <code>Document</code>'s assigned session storage
+ area, if any, or null if there isn't one. Each <code>Document</code> object must have a separate
+ object for its <code>Window</code>'s <code title="dom-sessionStorage">sessionStorage</code>
+ attribute.</p>
- <p>When a new <span>top-level browsing context</span> is created by
- cloning an existing <span>browsing context</span>, the new browsing
- context must start with the same session storage areas as the
- original, but the two sets must from that point on be considered
- separate, not affecting each other in any way.</p>
+ <p>When a new <span>top-level browsing context</span> is created by cloning an existing
+ <span>browsing context</span>, the new browsing context must start with the same session storage
+ areas as the original, but the two sets must from that point on be considered separate, not
+ affecting each other in any way.</p>
- <p>When a new <span>top-level browsing context</span> is created by
- a <span title="concept-script">script</span> in an existing
- <span>browsing context</span>, or by the user following a link in an
- existing browsing context, or in some other way related to a
- specific <code>Document</code>, and the creation is not <span>a
- new start for session storage</span>, then the session storage area of the
- <span>origin</span> of that <code>Document</code> must be copied
- into the new browsing context when it is created. From that point
- on, however, the two session storage areas must be considered
- separate, not affecting each other in any way.</p>
+ <p>When a new <span>top-level browsing context</span> is created by a <span
+ title="concept-script">script</span> in an existing <span>browsing context</span>, or by the user
+ following a link in an existing browsing context, or in some other way related to a specific
+ <code>Document</code>, and the creation is not <span>a new start for session storage</span>, then
+ the session storage area of the <span>origin</span> of that <code>Document</code> must be copied
+ into the new browsing context when it is created. From that point on, however, the two session
+ storage areas must be considered separate, not affecting each other in any way.</p>
<p id="sessionStorageEvent">When the <code title="dom-Storage-setItem">setItem()</code>, <code
title="dom-Storage-removeItem">removeItem()</code>, and <code
@@ -93872,47 +93800,38 @@
};
<span>Window</span> implements <span>WindowLocalStorage</span>;</pre>
-<!--CLEANUP-->
- <p>The <dfn title="dom-localStorage"><code>localStorage</code></dfn>
- object provides a <code>Storage</code> object for an
- <span>origin</span>.
+ <p>The <dfn title="dom-localStorage"><code>localStorage</code></dfn> object provides a
+ <code>Storage</code> object for an <span>origin</span>.
<!--INSERT FINGERPRINT-->
</p>
- <p>User agents must have a set of local storage areas, one for each
- <span>origin</span>.</p>
+ <p>User agents must have a set of local storage areas, one for each <span>origin</span>.</p>
- <p>User agents should expire data from the local storage areas only
- for security reasons or when requested to do so by the user. User
- agents should always avoid deleting data while a script that could
- access that data is running.</p>
+ <p>User agents should expire data from the local storage areas only for security reasons or when
+ requested to do so by the user. User agents should always avoid deleting data while a script that
+ could access that data is running.</p>
- <p>When the <code title="dom-localStorage">localStorage</code>
- attribute is accessed, the user agent must run the following steps,
- which are known as the <dfn><code>Storage</code> object
- initialization steps</dfn>:</p> <!-- these steps are named because
- marcos uses them from another spec -->
+ <p>When the <code title="dom-localStorage">localStorage</code> attribute is accessed, the user
+ agent must run the following steps, which are known as the <dfn><code>Storage</code> object
+ initialization steps</dfn>:</p> <!-- these steps are named because marcos uses them from another
+ spec -->
<ol>
- <li><p>The user agent may throw a <code>SecurityError</code>
- exception and abort these steps instead of returning a <code>Storage</code> object if the
- request violates a policy decision (e.g. if the user agent is
- configured to not allow the page to persist data).</p></li>
+ <li><p>The user agent may throw a <code>SecurityError</code> exception and abort these steps
+ instead of returning a <code>Storage</code> object if the request violates a policy decision
+ (e.g. if the user agent is configured to not allow the page to persist data).</p></li>
- <li><p>If the <code>Document</code>'s <span>origin</span> is not a
- scheme/host/port tuple, then throw a <code>SecurityError</code>
- exception and abort these steps.</p></li>
+ <li><p>If the <code>Document</code>'s <span>origin</span> is not a scheme/host/port tuple, then
+ throw a <code>SecurityError</code> exception and abort these steps.</p></li>
- <li><p>Check to see if the user agent has allocated a local storage
- area for the <span>origin</span> of the <code>Document</code> of
- the <code>Window</code> object on which the attribute was accessed.
- If it has not, create a new storage area for that
+ <li><p>Check to see if the user agent has allocated a local storage area for the
+ <span>origin</span> of the <code>Document</code> of the <code>Window</code> object on which the
+ attribute was accessed. If it has not, create a new storage area for that
<span>origin</span>.</p></li>
- <li><p>Return the <code>Storage</code> object associated with that
- origin's local storage area. Each <code>Document</code> object must
- have a separate object for its <code>Window</code>'s <code
+ <li><p>Return the <code>Storage</code> object associated with that origin's local storage area.
+ Each <code>Document</code> object must have a separate object for its <code>Window</code>'s <code
title="dom-localStorage">localStorage</code> attribute.</p>
</ol>
@@ -93927,14 +93846,12 @@
title="">x</var>, <span>send a storage notification</span>.
<p id="localStorageMutex">Whenever the properties of a <code
- title="dom-localStorage">localStorage</code> attribute's
- <code>Storage</code> object are to be examined, returned, set, or
- deleted, whether as part of a direct property access, when checking
- for the presence of a property, during property enumeration, when
- determining the number of properties present, or as part of the
- execution of any of the methods or attributes defined on the
- <code>Storage</code> interface, the user agent must first
- <span>obtain the storage mutex</span>.</p>
+ title="dom-localStorage">localStorage</code> attribute's <code>Storage</code> object are to be
+ examined, returned, set, or deleted, whether as part of a direct property access, when checking
+ for the presence of a property, during property enumeration, when determining the number of
+ properties present, or as part of the execution of any of the methods or attributes defined on the
+ <code>Storage</code> interface, the user agent must first <span>obtain the storage
+ mutex</span>.</p>
<h5>The <code title="event-storage">storage</code> event</h5>
@@ -94434,69 +94351,51 @@
</dl>
-<!--CLEANUP-->
- <p><dfn title="syntax-tags">Tags</dfn> are used to delimit the start
- and end of elements in the markup. <span title="raw text
- elements">Raw text</span>, <span title="escapable raw text
- elements">escapable raw text</span>, and <span title="normal
- elements">normal</span> elements have a <span
- title="syntax-start-tag">start tag</span> to indicate where they
- begin, and an <span title="syntax-end-tag">end tag</span> to
- indicate where they end. The start and end tags of certain
- <span>normal elements</span> can be <span
- title="syntax-tag-omission">omitted</span>, as described
- below in the section on <span title="syntax-tag-omission">optional tags</span>. Those that cannot be omitted must not be omitted. <span>Void
- elements</span> only have a start tag; end tags must not be
- specified for <span>void elements</span>. <span>Foreign
- elements</span> must either have a start tag and an end tag, or a
- start tag that is marked as self-closing, in which case they must
- not have an end tag.</p>
+ <p><dfn title="syntax-tags">Tags</dfn> are used to delimit the start and end of elements in the
+ markup. <span title="raw text elements">Raw text</span>, <span title="escapable raw text
+ elements">escapable raw text</span>, and <span title="normal elements">normal</span> elements have
+ a <span title="syntax-start-tag">start tag</span> to indicate where they begin, and an <span
+ title="syntax-end-tag">end tag</span> to indicate where they end. The start and end tags of
+ certain <span>normal elements</span> can be <span title="syntax-tag-omission">omitted</span>, as
+ described below in the section on <span title="syntax-tag-omission">optional tags</span>. Those
+ that cannot be omitted must not be omitted. <span>Void elements</span> only have a start tag; end
+ tags must not be specified for <span>void elements</span>. <span>Foreign elements</span> must
+ either have a start tag and an end tag, or a start tag that is marked as self-closing, in which
+ case they must not have an end tag.</p>
- <p>The <span title="concept-html-contents">contents</span> of the element must be placed between just after the
- start tag (which <span title="syntax-tag-omission">might be implied,
- in certain cases</span>) and just before the end tag (which again,
- <span title="syntax-tag-omission">might be implied in certain
- cases</span>). The exact allowed contents of each individual element
- depend on the <span title="content models">content model</span> of that element, as described earlier in
- this specification. Elements must not contain content that their
- content model disallows. In addition to the restrictions placed on
- the contents by those content models, however, the five types of
- elements have additional <em>syntactic</em> requirements.</p>
+ <p>The <span title="concept-html-contents">contents</span> of the element must be placed between
+ just after the start tag (which <span title="syntax-tag-omission">might be implied, in certain
+ cases</span>) and just before the end tag (which again, <span title="syntax-tag-omission">might be
+ implied in certain cases</span>). The exact allowed contents of each individual element depend on
+ the <span title="content models">content model</span> of that element, as described earlier in
+ this specification. Elements must not contain content that their content model disallows. In
+ addition to the restrictions placed on the contents by those content models, however, the five
+ types of elements have additional <em>syntactic</em> requirements.</p>
- <p><span>Void elements</span> can't have any contents (since there's
- no end tag, no content can be put between the start tag and the end
- tag).</p>
+ <p><span>Void elements</span> can't have any contents (since there's no end tag, no content can be
+ put between the start tag and the end tag).</p>
- <p><span>Raw text elements</span> can have <span
- title="syntax-text">text</span>, though it has <a
- href="#cdata-rcdata-restrictions">restrictions</a> described
- below.</p>
+ <p><span>Raw text elements</span> can have <span title="syntax-text">text</span>, though it has <a
+ href="#cdata-rcdata-restrictions">restrictions</a> described below.</p>
- <p><span>Escapable raw text elements</span> can have <span
- title="syntax-text">text</span> and <span
- title="syntax-charref">character references</span>, but the text
- must not contain an <span
- title="syntax-ambiguous-ampersand">ambiguous ampersand</span>.
- There are also <a href="#cdata-rcdata-restrictions">further
- restrictions</a> described below.</p>
+ <p><span>Escapable raw text elements</span> can have <span title="syntax-text">text</span> and
+ <span title="syntax-charref">character references</span>, but the text must not contain an <span
+ title="syntax-ambiguous-ampersand">ambiguous ampersand</span>. There are also <a
+ href="#cdata-rcdata-restrictions">further restrictions</a> described below.</p>
- <p><span>Foreign elements</span> whose start tag is marked as
- self-closing can't have any contents (since, again, as there's no
- end tag, no content can be put between the start tag and the end
- tag). <span>Foreign elements</span> whose start tag is <em>not</em>
- marked as self-closing can have <span
- title="syntax-text">text</span>, <span
- title="syntax-charref">character references</span>, <span
- title="syntax-cdata">CDATA sections</span>, other <span
- title="syntax-elements">elements</span>, and <span
- title="syntax-comments">comments</span>, but the text must not
- contain the character U+003C LESS-THAN SIGN (<) or an <span
+ <p><span>Foreign elements</span> whose start tag is marked as self-closing can't have any contents
+ (since, again, as there's no end tag, no content can be put between the start tag and the end
+ tag). <span>Foreign elements</span> whose start tag is <em>not</em> marked as self-closing can
+ have <span title="syntax-text">text</span>, <span title="syntax-charref">character
+ references</span>, <span title="syntax-cdata">CDATA sections</span>, other <span
+ title="syntax-elements">elements</span>, and <span title="syntax-comments">comments</span>, but
+ the text must not contain the character U+003C LESS-THAN SIGN (<) or an <span
title="syntax-ambiguous-ampersand">ambiguous ampersand</span>.</p>
<div class="note">
- <p>The HTML syntax does not support namespace
- declarations, even in <span>foreign elements</span>.</p>
+ <p>The HTML syntax does not support namespace declarations, even in <span>foreign
+ elements</span>.</p>
<p>For instance, consider the following HTML fragment:</p>
@@ -94509,28 +94408,22 @@
</svg>
</p></pre>
- <p>The innermost element, <code title="">cdr:license</code>, is
- actually in the SVG namespace, as the "<code
- title="">xmlns:cdr</code>" attribute has no effect (unlike in
- XML). In fact, as the comment in the fragment above says, the
- fragment is actually non-conforming. This is because the SVG
- specification does not define any elements called "<code
- title="">cdr:license</code>" in the SVG namespace.</p>
+ <p>The innermost element, <code title="">cdr:license</code>, is actually in the SVG namespace, as
+ the "<code title="">xmlns:cdr</code>" attribute has no effect (unlike in XML). In fact, as the
+ comment in the fragment above says, the fragment is actually non-conforming. This is because the
+ SVG specification does not define any elements called "<code title="">cdr:license</code>" in the
+ SVG namespace.</p>
</div>
- <p><span>Normal elements</span> can have <span
- title="syntax-text">text</span>, <span
+ <p><span>Normal elements</span> can have <span title="syntax-text">text</span>, <span
title="syntax-charref">character references</span>, other <span
- title="syntax-elements">elements</span>, and <span
- title="syntax-comments">comments</span>, but the text must not
- contain the character U+003C LESS-THAN SIGN (<) or an <span
- title="syntax-ambiguous-ampersand">ambiguous ampersand</span>. Some
- <span>normal elements</span> also have <a
- href="#element-restrictions">yet more restrictions</a> on what
- content they are allowed to hold, beyond the restrictions imposed by
- the content model and those described in this paragraph. Those
- restrictions are described below.</p>
+ title="syntax-elements">elements</span>, and <span title="syntax-comments">comments</span>, but
+ the text must not contain the character U+003C LESS-THAN SIGN (<) or an <span
+ title="syntax-ambiguous-ampersand">ambiguous ampersand</span>. Some <span>normal elements</span>
+ also have <a href="#element-restrictions">yet more restrictions</a> on what content they are
+ allowed to hold, beyond the restrictions imposed by the content model and those described in this
+ paragraph. Those restrictions are described below.</p>
<p>Tags contain a <dfn title="syntax-tag-name">tag name</dfn>, giving the element's name. HTML
elements all have names that only use <span>alphanumeric ASCII characters</span>. In the HTML
@@ -94541,92 +94434,76 @@
<h5>Start tags</h5>
- <p><dfn title="syntax-start-tag">Start tags</dfn> must have the
- following format:</p>
+ <p><dfn title="syntax-start-tag">Start tags</dfn> must have the following format:</p>
<ol>
- <li>The first character of a start tag must be a U+003C LESS-THAN
- SIGN character (<).</li>
+ <li>The first character of a start tag must be a U+003C LESS-THAN SIGN character (<).</li>
- <li>The next few characters of a start tag must be the element's
- <span title="syntax-tag-name">tag name</span>.</li>
+ <li>The next few characters of a start tag must be the element's <span
+ title="syntax-tag-name">tag name</span>.</li>
- <li>If there are to be any attributes in the next step, there must
- first be one or more <span title="space character">space
- characters</span>.</li>
+ <li>If there are to be any attributes in the next step, there must first be one or more <span
+ title="space character">space characters</span>.</li>
<li>Then, the start tag may have a number of attributes, the <span
- title="syntax-attributes">syntax for which</span> is described
- below. Attributes must be separated from each other by one or more
- <span title="space character">space characters</span>.</li>
+ title="syntax-attributes">syntax for which</span> is described below. Attributes must be
+ separated from each other by one or more <span title="space character">space
+ characters</span>.</li>
- <li>After the attributes, or after the <span
- title="syntax-tag-name">tag name</span> if there are no attributes,
- there may be one or more <span title="space character">space
- characters</span>. (Some attributes are required to be followed by
- a space. See the <span title="syntax-attributes">attributes
- section</span> below.)</li>
+ <li>After the attributes, or after the <span title="syntax-tag-name">tag name</span> if there are
+ no attributes, there may be one or more <span title="space character">space characters</span>.
+ (Some attributes are required to be followed by a space. See the <span
+ title="syntax-attributes">attributes section</span> below.)</li>
- <li>Then, if the element is one of the <span>void elements</span>,
- or if the element is a <span title="foreign elements">foreign
- element</span>, then there may be a single U+002F SOLIDUS character
- (/). This character has no effect on <span>void elements</span>,
- but on <span>foreign elements</span> it marks the start tag as
- self-closing.</li>
+ <li>Then, if the element is one of the <span>void elements</span>, or if the element is a <span
+ title="foreign elements">foreign element</span>, then there may be a single U+002F SOLIDUS
+ character (/). This character has no effect on <span>void elements</span>, but on <span>foreign
+ elements</span> it marks the start tag as self-closing.</li>
- <li>Finally, start tags must be closed by a U+003E GREATER-THAN
- SIGN character (>).</li>
+ <li>Finally, start tags must be closed by a U+003E GREATER-THAN SIGN character (>).</li>
</ol>
<h5>End tags</h5>
- <p><dfn title="syntax-end-tag">End tags</dfn> must have the
- following format:</p>
+ <p><dfn title="syntax-end-tag">End tags</dfn> must have the following format:</p>
<ol>
- <li>The first character of an end tag must be a U+003C LESS-THAN
- SIGN character (<).</li>
+ <li>The first character of an end tag must be a U+003C LESS-THAN SIGN character (<).</li>
- <li>The second character of an end tag must be a U+002F SOLIDUS
- character (/).</li>
+ <li>The second character of an end tag must be a U+002F SOLIDUS character (/).</li>
- <li>The next few characters of an end tag must be the element's
- <span title="syntax-tag-name">tag name</span>.</li>
+ <li>The next few characters of an end tag must be the element's <span title="syntax-tag-name">tag
+ name</span>.</li>
- <li>After the tag name, there may be one or more <span title="space
- character">space characters</span>.</li>
+ <li>After the tag name, there may be one or more <span title="space character">space
+ characters</span>.</li>
- <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN
- character (>).</li>
+ <li>Finally, end tags must be closed by a U+003E GREATER-THAN SIGN character (>).</li>
</ol>
<h5>Attributes</h5>
- <p><dfn title="syntax-attributes">Attributes</dfn> for an element
- are expressed inside the element's start tag.</p>
+ <p><dfn title="syntax-attributes">Attributes</dfn> for an element are expressed inside the
+ element's start tag.</p>
- <p>Attributes have a name and a value. <dfn
- title="syntax-attribute-name">Attribute names</dfn> must consist of
- one or more characters other than the <span title="space
- character">space characters</span>, U+0000 NULL, U+0022 QUOTATION
- MARK ("), U+0027 APOSTROPHE ('), U+003E GREATER-THAN SIGN
- (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters,
- the control characters, and any characters that are not defined by
- Unicode. In the HTML syntax, attribute names, even those for
- <span>foreign elements</span>, may be written with any mix of lower-
- and uppercase letters that are an <span>ASCII
- case-insensitive</span> match for the attribute's name.</p>
+ <p>Attributes have a name and a value. <dfn title="syntax-attribute-name">Attribute names</dfn>
+ must consist of one or more characters other than the <span title="space character">space
+ characters</span>, U+0000 NULL, U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), U+003E
+ GREATER-THAN SIGN (>), U+002F SOLIDUS (/), and U+003D EQUALS SIGN (=) characters, the control
+ characters, and any characters that are not defined by Unicode. In the HTML syntax, attribute
+ names, even those for <span>foreign elements</span>, may be written with any mix of lower- and
+ uppercase letters that are an <span>ASCII case-insensitive</span> match for the attribute's
+ name.</p>
- <p><dfn title="syntax-attribute-value">Attribute values</dfn> are a
- mixture of <span title="syntax-text">text</span> and <span
- title="syntax-charref">character references</span>, except with the
- additional restriction that the text cannot contain an <span
+ <p><dfn title="syntax-attribute-value">Attribute values</dfn> are a mixture of <span
+ title="syntax-text">text</span> and <span title="syntax-charref">character references</span>,
+ except with the additional restriction that the text cannot contain an <span
title="syntax-ambiguous-ampersand">ambiguous ampersand</span>.</p>
<p>Attributes can be specified in four different ways:</p>
@@ -94637,22 +94514,20 @@
<dd>
- <p>Just the <span title="syntax-attribute-name">attribute
- name</span>. The value is implicitly the empty string.</p>
+ <p>Just the <span title="syntax-attribute-name">attribute name</span>. The value is implicitly
+ the empty string.</p>
<div class="example">
- <p>In the following example, the <code
- title="attr-fe-disabled">disabled</code> attribute is given with
- the empty attribute syntax:</p>
+ <p>In the following example, the <code title="attr-fe-disabled">disabled</code> attribute is
+ given with the empty attribute syntax:</p>
<pre><input <em>disabled</em>></pre>
</div>
- <p>If an attribute using the empty attribute syntax is to be
- followed by another attribute, then there must be a <span>space
- character</span> separating the two.</p>
+ <p>If an attribute using the empty attribute syntax is to be followed by another attribute, then
+ there must be a <span>space character</span> separating the two.</p>
</dd>
@@ -94660,29 +94535,23 @@
<dd>
- <p>The <span title="syntax-attribute-name">attribute name</span>,
- followed by zero or more <span title="space character">space
- characters</span>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <span title="space
- character">space characters</span>, followed by the <span
- title="syntax-attribute-value">attribute value</span>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal <span title="space character">space
- characters</span>, any U+0022 QUOTATION MARK characters ("),
- U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN
- characters (=), U+003C LESS-THAN SIGN characters (<), U+003E
- GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT
- characters (`), and must not be the empty string.</p>
+ <p>The <span title="syntax-attribute-name">attribute name</span>, followed by zero or more <span
+ title="space character">space characters</span>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <span title="space character">space characters</span>,
+ followed by the <span title="syntax-attribute-value">attribute value</span>, which, in addition
+ to the requirements given above for attribute values, must not contain any literal <span
+ title="space character">space characters</span>, any U+0022 QUOTATION MARK characters ("),
+ U+0027 APOSTROPHE characters ('), U+003D EQUALS SIGN characters (=), U+003C LESS-THAN SIGN
+ characters (<), U+003E GREATER-THAN SIGN characters (>), or U+0060 GRAVE ACCENT characters
+ (`), and must not be the empty string.</p>
- <!-- The ` character is in this list on a temporary basis, waiting
- for IE to fix its parsing bug whereby it treats ` as an
- attribute value delimiter. Otherwise, escaping software that
- tries to be clever and not use quotes when it doesn't need to
- could be tricked by an attacker.
+ <!-- The ` character is in this list on a temporary basis, waiting for IE to fix its parsing bug
+ whereby it treats ` as an attribute value delimiter. Otherwise, escaping software that
+ tries to be clever and not use quotes when it doesn't need to could be tricked by an
+ attacker.
- Posit a site that allows the user to input text that is used
- verbatim in two attributes, such that the user can set the
- first attribute's value to:
+ Posit a site that allows the user to input text that is used verbatim in two attributes,
+ such that the user can set the first attribute's value to:
`
@@ -94690,8 +94559,8 @@
` onload='...payload...' end=x
- ...with the assumption that the site is going to not quote
- the first one, and quote the second one with double quotes:
+ ...with the assumption that the site is going to not quote the first one, and quote the
+ second one with double quotes:
<body title=` class="` onload='...payload...' end=x">
@@ -94706,19 +94575,17 @@
<div class="example">
- <p>In the following example, the <code
- title="attr-input-value">value</code> attribute is given
+ <p>In the following example, the <code title="attr-input-value">value</code> attribute is given
with the unquoted attribute value syntax:</p>
<pre><input <em>value=yes</em>></pre>
</div>
- <p>If an attribute using the unquoted attribute syntax is to be
- followed by another attribute or by the optional U+002F SOLIDUS
- character (/) allowed in step 6 of the <span
- title="syntax-start-tag">start tag</span> syntax above, then there
- must be a <span>space character</span> separating the two.</p>
+ <p>If an attribute using the unquoted attribute syntax is to be followed by another attribute or
+ by the optional U+002F SOLIDUS character (/) allowed in step 6 of the <span
+ title="syntax-start-tag">start tag</span> syntax above, then there must be a <span>space
+ character</span> separating the two.</p>
</dd>
@@ -94726,31 +94593,25 @@
<dd>
- <p>The <span title="syntax-attribute-name">attribute name</span>,
- followed by zero or more <span title="space character">space
- characters</span>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <span title="space
- character">space characters</span>, followed by a single U+0027
- APOSTROPHE character ('), followed by the <span
- title="syntax-attribute-value">attribute value</span>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal U+0027 APOSTROPHE characters ('), and
- finally followed by a second single U+0027 APOSTROPHE character
- (').</p>
+ <p>The <span title="syntax-attribute-name">attribute name</span>, followed by zero or more <span
+ title="space character">space characters</span>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <span title="space character">space characters</span>,
+ followed by a single U+0027 APOSTROPHE character ('), followed by the <span
+ title="syntax-attribute-value">attribute value</span>, which, in addition to the requirements
+ given above for attribute values, must not contain any literal U+0027 APOSTROPHE characters ('),
+ and finally followed by a second single U+0027 APOSTROPHE character (').</p>
<div class="example">
- <p>In the following example, the <code
- title="attr-input-type">type</code> attribute is given with the
- single-quoted attribute value syntax:</p>
+ <p>In the following example, the <code title="attr-input-type">type</code> attribute is given
+ with the single-quoted attribute value syntax:</p>
<pre><input <em>type='checkbox'</em>></pre>
</div>
- <p>If an attribute using the single-quoted attribute syntax is to
- be followed by another attribute, then there must be a <span>space
- character</span> separating the two.</p>
+ <p>If an attribute using the single-quoted attribute syntax is to be followed by another
+ attribute, then there must be a <span>space character</span> separating the two.</p>
</dd>
@@ -94758,47 +94619,38 @@
<dd>
- <p>The <span title="syntax-attribute-name">attribute name</span>,
- followed by zero or more <span title="space character">space
- characters</span>, followed by a single U+003D EQUALS SIGN
- character, followed by zero or more <span title="space
- character">space characters</span>, followed by a single U+0022
- QUOTATION MARK character ("), followed by the <span
- title="syntax-attribute-value">attribute value</span>, which, in
- addition to the requirements given above for attribute values,
- must not contain any literal U+0022 QUOTATION MARK characters ("),
- and finally followed by a second single U+0022 QUOTATION MARK
- character (").</p>
+ <p>The <span title="syntax-attribute-name">attribute name</span>, followed by zero or more <span
+ title="space character">space characters</span>, followed by a single U+003D EQUALS SIGN
+ character, followed by zero or more <span title="space character">space characters</span>,
+ followed by a single U+0022 QUOTATION MARK character ("), followed by the <span
+ title="syntax-attribute-value">attribute value</span>, which, in addition to the requirements
+ given above for attribute values, must not contain any literal U+0022 QUOTATION MARK characters
+ ("), and finally followed by a second single U+0022 QUOTATION MARK character (").</p>
<div class="example">
- <p>In the following example, the <code
- title="attr-fe-name">name</code> attribute is given with the
- double-quoted attribute value syntax:</p>
+ <p>In the following example, the <code title="attr-fe-name">name</code> attribute is given with
+ the double-quoted attribute value syntax:</p>
<pre><input <em>name="be evil"</em>></pre>
</div>
- <p>If an attribute using the double-quoted attribute syntax is to
- be followed by another attribute, then there must be a <span>space
- character</span> separating the two.</p>
+ <p>If an attribute using the double-quoted attribute syntax is to be followed by another
+ attribute, then there must be a <span>space character</span> separating the two.</p>
</dd>
</dl>
- <p>There must never be two or more attributes on the same start tag
- whose names are an <span>ASCII case-insensitive</span> match for
- each other.</p>
+ <p>There must never be two or more attributes on the same start tag whose names are an <span>ASCII
+ case-insensitive</span> match for each other.</p>
<hr>
- <p>When a <span title="foreign elements">foreign element</span> has
- one of the namespaced attributes given by the local name and
- namespace of the first and second cells of a row from the following
- table, it must be written using the name given by the third cell
- from the same row.</p>
+ <p>When a <span title="foreign elements">foreign element</span> has one of the namespaced
+ attributes given by the local name and namespace of the first and second cells of a row from the
+ following table, it must be written using the name given by the third cell from the same row.</p>
<table>
<thead>
@@ -94818,127 +94670,100 @@
<tr> <td> <code title="">xlink</code> <td> <span>XMLNS namespace</span> <td> <code title="">xmlns:xlink</code>
</table>
- <p>No other namespaced attribute can be expressed in <span>the
- HTML syntax</span>.</p>
+ <p>No other namespaced attribute can be expressed in <span>the HTML syntax</span>.</p>
- <p class="note">Whether the attributes in the table above are
- conforming or not is defined by other specifications (e.g. the SVG
- and MathML specifications); this section only describes the syntax
- rules if the attributes are serialized using the HTML syntax.</p>
+ <p class="note">Whether the attributes in the table above are conforming or not is defined by
+ other specifications (e.g. the SVG and MathML specifications); this section only describes the
+ syntax rules if the attributes are serialized using the HTML syntax.</p>
<h5>Optional tags</h5>
- <p>Certain tags can be <dfn
- title="syntax-tag-omission">omitted</dfn>.</p>
+ <p>Certain tags can be <dfn title="syntax-tag-omission">omitted</dfn>.</p>
- <p class="note">Omitting an element's <span
- title="syntax-start-tag">start tag</span> in the situations
- described below does not mean the element is not present; it is
- implied, but it is still there. For example, an HTML document always
- has a root <code>html</code> element, even if the string <code
- title=""><html></code> doesn't appear anywhere in the markup.</p>
+ <p class="note">Omitting an element's <span title="syntax-start-tag">start tag</span> in the
+ situations described below does not mean the element is not present; it is implied, but it is
+ still there. For example, an HTML document always has a root <code>html</code> element, even if
+ the string <code title=""><html></code> doesn't appear anywhere in the markup.</p>
<!-- <html> -->
- <p>An <code>html</code> element's <span
- title="syntax-start-tag">start tag</span> may be omitted if the
- first thing inside the <code>html</code> element is not a <span
+ <p>An <code>html</code> element's <span title="syntax-start-tag">start tag</span> may be omitted
+ if the first thing inside the <code>html</code> element is not a <span
title="syntax-comments">comment</span>.</p>
<!-- </html> -->
- <p>An <code>html</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>html</code> element is not
- immediately followed by a <span
+ <p>An <code>html</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if
+ the <code>html</code> element is not immediately followed by a <span
title="syntax-comments">comment</span>.</p>
<!-- <head> -->
- <p>A <code>head</code> element's <span
- title="syntax-start-tag">start tag</span> may be omitted if the
- element is empty, or if the first thing inside the
- <code>head</code> element is an element.</p>
+ <p>A <code>head</code> element's <span title="syntax-start-tag">start tag</span> may be omitted if
+ the element is empty, or if the first thing inside the <code>head</code> element is an
+ element.</p>
<!-- </head> -->
- <p>A <code>head</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>head</code> element is not
- immediately followed by a <span>space character</span> or a <span
+ <p>A <code>head</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>head</code> element is not immediately followed by a <span>space character</span> or a <span
title="syntax-comments">comment</span>.</p>
<!-- <body> -->
- <p>A <code>body</code> element's <span
- title="syntax-start-tag">start tag</span> may be omitted if the
- element is empty, or if the first thing inside the <code>body</code>
- element is not a <span>space character</span> or a <span
- title="syntax-comments">comment</span>, except if the first thing
- inside the <code>body</code> element is a <code>script</code> or
- <code>style</code> element. <!-- Note that even if the </head> end
- tag is present, the parser makes <style> and <script> elements
- between </head> and <body> end up in the <head> instead of implying
- the <body> --></p>
+ <p>A <code>body</code> element's <span title="syntax-start-tag">start tag</span> may be omitted if
+ the element is empty, or if the first thing inside the <code>body</code> element is not a
+ <span>space character</span> or a <span title="syntax-comments">comment</span>, except if the
+ first thing inside the <code>body</code> element is a <code>script</code> or <code>style</code>
+ element. <!-- Note that even if the </head> end tag is present, the parser makes <style> and
+ <script> elements between </head> and <body> end up in the <head> instead of implying the <body>
+ --></p>
<!-- </body> -->
- <p>A <code>body</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>body</code> element is not
- immediately followed by a <span
+ <p>A <code>body</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>body</code> element is not immediately followed by a <span
title="syntax-comments">comment</span>.</p>
<!-- </li> -->
- <p>An <code>li</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>li</code> element is
- immediately followed by another <code>li</code> element or if there
- is no more content in the parent element.</p>
+ <p>An <code>li</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>li</code> element is immediately followed by another <code>li</code> element or if there is
+ no more content in the parent element.</p>
<!-- </dt> -->
- <p>A <code>dt</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>dt</code> element is
- immediately followed by another <code>dt</code> element or a
+ <p>A <code>dt</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>dt</code> element is immediately followed by another <code>dt</code> element or a
<code>dd</code> element.</p>
<!-- </dd> -->
- <p>A <code>dd</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>dd</code> element is
- immediately followed by another <code>dd</code> element or a
- <code>dt</code> element, or if there is no more content in the
- parent element.</p>
+ <p>A <code>dd</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>dd</code> element is immediately followed by another <code>dd</code> element or a
+ <code>dt</code> element, or if there is no more content in the parent element.</p>
<!-- </p> -->
- <p>A <code>p</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>p</code> element is
- immediately followed by an <code>address</code>,
- <code>article</code>, <code>aside</code>, <code>blockquote</code>,
- <code>dir</code>, <code>div</code>, <code>dl</code>,
- <code>fieldset</code>, <code>footer</code>, <code>form</code>,
- <code>h1</code>, <code>h2</code>, <code>h3</code>, <code>h4</code>,
- <code>h5</code>, <code>h6</code>, <code>header</code>,
- <code>hgroup</code>, <code>hr</code>, <code>main</code>, <code>menu</code>,
- <code>nav</code>, <code>ol</code>, <code>p</code>, <code>pre</code>,
- <code>section</code>, <code>table</code>, or <code>ul</code>,
- element, or if there is no more content in the parent element and
- the parent element is not an <code>a</code> element.</p>
+ <p>A <code>p</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>p</code> element is immediately followed by an <code>address</code>, <code>article</code>,
+ <code>aside</code>, <code>blockquote</code>, <code>dir</code>, <code>div</code>, <code>dl</code>,
+ <code>fieldset</code>, <code>footer</code>, <code>form</code>, <code>h1</code>, <code>h2</code>,
+ <code>h3</code>, <code>h4</code>, <code>h5</code>, <code>h6</code>, <code>header</code>,
+ <code>hgroup</code>, <code>hr</code>, <code>main</code>, <code>menu</code>, <code>nav</code>,
+ <code>ol</code>, <code>p</code>, <code>pre</code>, <code>section</code>, <code>table</code>, or
+ <code>ul</code>, element, or if there is no more content in the parent element and the parent
+ element is not an <code>a</code> element.</p>
<!-- </rt> -->
- <p>An <code>rt</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>rt</code> element is
- immediately followed by an <code>rt</code> or <code>rp</code>
- element, or if there is no more content in the parent element.</p>
+ <p>An <code>rt</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>rt</code> element is immediately followed by an <code>rt</code> or <code>rp</code> element,
+ or if there is no more content in the parent element.</p>
<!-- </rp> -->
- <p>An <code>rp</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>rp</code> element is
- immediately followed by an <code>rt</code> or <code>rp</code>
- element, or if there is no more content in the parent element.</p>
+ <p>An <code>rp</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>rp</code> element is immediately followed by an <code>rt</code> or <code>rp</code> element,
+ or if there is no more content in the parent element.</p>
- <!-- </optgroup> (the text assumes <optgroup> can only be inside a
- <select>; commented out text below can handle the non-<select> case
- if we ever allow it) -->
- <p>An <code>optgroup</code> element's <span
- title="syntax-end-tag">end tag</span> may be omitted if the
- <code>optgroup</code> element <!--has an ancestor
- <code>select</code> element and--> is immediately followed by
- another <code>optgroup</code> element, or if <!--all of the elements
- that are ancestors of the <code>optgroup</code> element, up to and
- including the first ancestor element that is not an
- <code>optgroup</code> element, have no more content--> there is no
- more content in the parent element.</p>
+ <!-- </optgroup> (the text assumes <optgroup> can only be inside a <select>; commented out text
+ below can handle the non-<select> case if we ever allow it) -->
+ <p>An <code>optgroup</code> element's <span title="syntax-end-tag">end tag</span> may be omitted
+ if the <code>optgroup</code> element <!--has an ancestor <code>select</code> element and--> is
+ immediately followed by another <code>optgroup</code> element, or if <!--all of the elements that
+ are ancestors of the <code>optgroup</code> element, up to and including the first ancestor element
+ that is not an <code>optgroup</code> element, have no more content--> there is no more content in
+ the parent element.</p>
<!-- so e.g. the max number of </optgroup>s are omitted here:
<select><optgroup></select>
<p id=x><optgroup></optgroup>x</p>
@@ -94948,99 +94773,81 @@
-->
<!-- </option> -->
- <p>An <code>option</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>option</code> element is
- immediately followed by another <code>option</code> element, or if
- it is immediately followed by an <code>optgroup</code> element, or
- if there is no more content in the parent element.</p>
+ <p>An <code>option</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if
+ the <code>option</code> element is immediately followed by another <code>option</code> element, or
+ if it is immediately followed by an <code>optgroup</code> element, or if there is no more content
+ in the parent element.</p>
<!-- <colgroup> -->
- <p>A <code>colgroup</code> element's <span
- title="syntax-start-tag">start tag</span> may be omitted if the
- first thing inside the <code>colgroup</code> element is a
- <code>col</code> element, and if the element is not immediately
- preceded by another <code>colgroup</code> element whose <span
- title="syntax-end-tag">end tag</span> has been omitted. (It can't be
- omitted if the element is empty.)</p>
+ <p>A <code>colgroup</code> element's <span title="syntax-start-tag">start tag</span> may be
+ omitted if the first thing inside the <code>colgroup</code> element is a <code>col</code> element,
+ and if the element is not immediately preceded by another <code>colgroup</code> element whose
+ <span title="syntax-end-tag">end tag</span> has been omitted. (It can't be omitted if the element
+ is empty.)</p>
<!-- </colgroup> -->
- <p>A <code>colgroup</code> element's <span
- title="syntax-end-tag">end tag</span> may be omitted if the
- <code>colgroup</code> element is not immediately followed by a
- <span>space character</span> or a <span
- title="syntax-comments">comment</span>.</p>
+ <p>A <code>colgroup</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if
+ the <code>colgroup</code> element is not immediately followed by a <span>space character</span> or
+ a <span title="syntax-comments">comment</span>.</p>
<!-- </thead> -->
- <p>A <code>thead</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>thead</code> element is
- immediately followed by a <code>tbody</code> or <code>tfoot</code>
- element.</p>
+ <p>A <code>thead</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if
+ the <code>thead</code> element is immediately followed by a <code>tbody</code> or
+ <code>tfoot</code> element.</p>
<!-- <tbody> -->
- <p>A <code>tbody</code> element's <span
- title="syntax-start-tag">start tag</span> may be omitted if the
- first thing inside the <code>tbody</code> element is a
- <code>tr</code> element, and if the element is not immediately
- preceded by a <code>tbody</code>, <code>thead</code>, or
- <code>tfoot</code> element whose <span title="syntax-end-tag">end
- tag</span> has been omitted. (It can't be omitted if the element is
- empty.)</p>
+ <p>A <code>tbody</code> element's <span title="syntax-start-tag">start tag</span> may be omitted
+ if the first thing inside the <code>tbody</code> element is a <code>tr</code> element, and if the
+ element is not immediately preceded by a <code>tbody</code>, <code>thead</code>, or
+ <code>tfoot</code> element whose <span title="syntax-end-tag">end tag</span> has been omitted. (It
+ can't be omitted if the element is empty.)</p>
<!-- </tbody> -->
- <p>A <code>tbody</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>tbody</code> element is
- immediately followed by a <code>tbody</code> or <code>tfoot</code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code>tbody</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if
+ the <code>tbody</code> element is immediately followed by a <code>tbody</code> or
+ <code>tfoot</code> element, or if there is no more content in the parent element.</p>
<!-- </tfoot> -->
- <p>A <code>tfoot</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>tfoot</code> element is
- immediately followed by a <code>tbody</code> element, or if there is
- no more content in the parent element.</p>
+ <p>A <code>tfoot</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if
+ the <code>tfoot</code> element is immediately followed by a <code>tbody</code> element, or if
+ there is no more content in the parent element.</p>
<!-- </tr> -->
- <p>A <code>tr</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>tr</code> element is
- immediately followed by another <code>tr</code> element, or if there
- is no more content in the parent element.</p>
+ <p>A <code>tr</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>tr</code> element is immediately followed by another <code>tr</code> element, or if there is
+ no more content in the parent element.</p>
<!-- </td> -->
- <p>A <code>td</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>td</code> element is
- immediately followed by a <code>td</code> or <code>th</code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code>td</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>td</code> element is immediately followed by a <code>td</code> or <code>th</code> element,
+ or if there is no more content in the parent element.</p>
<!-- </th> -->
- <p>A <code>th</code> element's <span title="syntax-end-tag">end
- tag</span> may be omitted if the <code>th</code> element is
- immediately followed by a <code>td</code> or <code>th</code>
- element, or if there is no more content in the parent element.</p>
+ <p>A <code>th</code> element's <span title="syntax-end-tag">end tag</span> may be omitted if the
+ <code>th</code> element is immediately followed by a <code>td</code> or <code>th</code> element,
+ or if there is no more content in the parent element.</p>
- <p><strong>However</strong>, a <span title="syntax-start-tag">start
- tag</span> must never be omitted if it has any attributes.</p>
+ <p><strong>However</strong>, a <span title="syntax-start-tag">start tag</span> must never be
+ omitted if it has any attributes.</p>
<h5 id="element-restrictions">Restrictions on content models</h5>
- <p>For historical reasons, certain elements have extra restrictions
- beyond even the restrictions given by their content model.</p>
+ <p>For historical reasons, certain elements have extra restrictions beyond even the restrictions
+ given by their content model.</p>
- <p>A <code>table</code> element must not contain <code>tr</code>
- elements, even though these elements are technically allowed inside
- <code>table</code> elements according to the content models
- described in this specification. (If a <code>tr</code> element is
- put inside a <code>table</code> in the markup, it will in fact imply
- a <code>tbody</code> start tag before it.)</p>
+ <p>A <code>table</code> element must not contain <code>tr</code> elements, even though these
+ elements are technically allowed inside <code>table</code> elements according to the content
+ models described in this specification. (If a <code>tr</code> element is put inside a
+ <code>table</code> in the markup, it will in fact imply a <code>tbody</code> start tag before
+ it.)</p>
- <p>A single <span title="syntax-newlines">newline</span> may be
- placed immediately after the <span title="syntax-start-tag">start
- tag</span> of <code>pre</code> and <code>textarea</code>
- elements. This does not affect the processing of the element. The
- otherwise optional <span title="syntax-newlines">newline</span>
- <em>must</em> be included if the element's contents themselves start
- with a <span title="syntax-newlines">newline</span> (because
- otherwise the leading newline in the contents would be treated like
- the optional newline, and ignored).</p>
+ <p>A single <span title="syntax-newlines">newline</span> may be placed immediately after the <span
+ title="syntax-start-tag">start tag</span> of <code>pre</code> and <code>textarea</code> elements.
+ This does not affect the processing of the element. The otherwise optional <span
+ title="syntax-newlines">newline</span> <em>must</em> be included if the element's contents
+ themselves start with a <span title="syntax-newlines">newline</span> (because otherwise the
+ leading newline in the contents would be treated like the optional newline, and ignored).</p>
<div class="example">
<p>The following two <code>pre</code> blocks are equivalent:</p>
@@ -95051,57 +94858,49 @@
<h5 id="cdata-rcdata-restrictions">Restrictions on the contents of raw text and escapable raw text elements</h5>
- <p>The text in <span title="raw text elements">raw text</span> and
- <span>escapable raw text elements</span> must not contain any occurrences of the
- string "<code title=""></</code>" (U+003C LESS-THAN SIGN, U+002F
- SOLIDUS) followed by characters that case-insensitively match the
- tag name of the element followed by one of U+0009 CHARACTER
- TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D
- CARRIAGE RETURN (CR), U+0020 SPACE, U+003E GREATER-THAN SIGN (>), or
- U+002F SOLIDUS (/).</p>
+ <p>The text in <span title="raw text elements">raw text</span> and <span>escapable raw text
+ elements</span> must not contain any occurrences of the string "<code title=""></</code>"
+ (U+003C LESS-THAN SIGN, U+002F SOLIDUS) followed by characters that case-insensitively match the
+ tag name of the element followed by one of U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED
+ (LF), U+000C FORM FEED (FF), U+000D CARRIAGE RETURN (CR), U+0020 SPACE, U+003E GREATER-THAN SIGN
+ (>), or U+002F SOLIDUS (/).</p>
<h4>Text</h4>
- <p><dfn title="syntax-text">Text</dfn> is allowed inside elements,
- attribute values, and comments. Extra constraints are placed on what
- is and what is not allowed in text based on where the text is to be
- put, as described in the other sections.</p>
+ <p><dfn title="syntax-text">Text</dfn> is allowed inside elements, attribute values, and comments.
+ Extra constraints are placed on what is and what is not allowed in text based on where the text is
+ to be put, as described in the other sections.</p>
<h5>Newlines</h5>
- <p><dfn title="syntax-newlines">Newlines</dfn> in HTML may be
- represented either as U+000D CARRIAGE RETURN (CR) characters, U+000A
- LINE FEED (LF) characters, or pairs of U+000D CARRIAGE RETURN (CR),
- U+000A LINE FEED (LF) characters in that order.</p>
+ <p><dfn title="syntax-newlines">Newlines</dfn> in HTML may be represented either as U+000D
+ CARRIAGE RETURN (CR) characters, U+000A LINE FEED (LF) characters, or pairs of U+000D CARRIAGE
+ RETURN (CR), U+000A LINE FEED (LF) characters in that order.</p>
- <p>Where <span title="syntax-charref">character references</span>
- are allowed, a character reference of a U+000A LINE FEED (LF)
- character (but not a U+000D CARRIAGE RETURN (CR) character) also
- represents a <span title="syntax-newlines">newline</span>.</p>
+ <p>Where <span title="syntax-charref">character references</span> are allowed, a character
+ reference of a U+000A LINE FEED (LF) character (but not a U+000D CARRIAGE RETURN (CR) character)
+ also represents a <span title="syntax-newlines">newline</span>.</p>
<h4>Character references</h4>
- <p>In certain cases described in other sections, <span
- title="syntax-text">text</span> may be mixed with <dfn
- title="syntax-charref">character references</dfn>. These can be used
- to escape characters that couldn't otherwise legally be included in
- <span title="syntax-text">text</span>.</p>
+ <p>In certain cases described in other sections, <span title="syntax-text">text</span> may be
+ mixed with <dfn title="syntax-charref">character references</dfn>. These can be used to escape
+ characters that couldn't otherwise legally be included in <span
+ title="syntax-text">text</span>.</p>
- <p>Character references must start with a U+0026 AMPERSAND character
- (&). Following this, there are three possible kinds of character
- references:</p>
+ <p>Character references must start with a U+0026 AMPERSAND character (&). Following this,
+ there are three possible kinds of character references:</p>
<dl>
<dt>Named character references</dt>
- <dd>The ampersand must be followed by one of the names given in the
- <span>named character references</span> section, using the same
- case. <span class="impl">The name must be one that is terminated by
- a U+003B SEMICOLON character (;).</span></dd>
+ <dd>The ampersand must be followed by one of the names given in the <span>named character
+ references</span> section, using the same case. <span class="impl">The name must be one that is
+ terminated by a U+003B SEMICOLON character (;).</span></dd>
<dt>Decimal numeric character reference</dt>
@@ -95123,11 +94922,9 @@
</dl>
- <p>The numeric character reference forms described above are allowed
- to reference any Unicode code point other than U+0000, U+000D,
- permanently undefined Unicode characters (noncharacters), and
- control characters other than <span title="space character">space
- characters</span>.</p>
+ <p>The numeric character reference forms described above are allowed to reference any Unicode code
+ point other than U+0000, U+000D, permanently undefined Unicode characters (noncharacters), and
+ control characters other than <span title="space character">space characters</span>.</p>
<p>An <dfn title="syntax-ambiguous-ampersand">ambiguous ampersand</dfn> is a U+0026 AMPERSAND
character (&) that is followed by one or more <span>alphanumeric ASCII characters</span>,
@@ -95137,16 +94934,15 @@
<h4>CDATA sections</h4>
- <p><dfn title="syntax-cdata">CDATA sections</dfn> must consist of
- the following components, in this order:</p>
+ <p><dfn title="syntax-cdata">CDATA sections</dfn> must consist of the following components, in
+ this order:</p>
<ol>
<li>The string "<code title=""><![CDATA[</code>".</li>
- <li>Optionally, <span title="syntax-text">text</span>, with the
- additional restriction that the text must not contain the string
- "<code title="">]]></code>".</li>
+ <li>Optionally, <span title="syntax-text">text</span>, with the additional restriction that the
+ text must not contain the string "<code title="">]]></code>".</li>
<li>The string "<code title="">]]></code>".</li>
@@ -95154,9 +94950,8 @@
<div class="example">
- <p>CDATA sections can only be used in foreign content (MathML or
- SVG). In this example, a CDATA section is used to escape the
- contents of an <code>ms</code> element:</p>
+ <p>CDATA sections can only be used in foreign content (MathML or SVG). In this example, a CDATA
+ section is used to escape the contents of an <code>ms</code> element:</p>
<pre><p>You can add a string to a number, but this stringifies the number:</p>
<math>
@@ -95172,20 +94967,15 @@
<h4>Comments</h4>
- <p><dfn title="syntax-comments">Comments</dfn> must start with the
- four character sequence U+003C LESS-THAN SIGN, U+0021 EXCLAMATION
- MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code
- title=""><!--</code>). Following this sequence, the comment may
- have <span title="syntax-text">text</span>, with the additional
- restriction that the text must not start with a single U+003E
- GREATER-THAN SIGN character (>), nor start with a U+002D
- HYPHEN-MINUS character (-) followed by a U+003E GREATER-THAN SIGN
- (>) character, nor contain two consecutive U+002D HYPHEN-MINUS
- characters (<code title="">--</code>), nor end with a U+002D
- HYPHEN-MINUS character (-). Finally, the comment must be ended by
- the three character sequence U+002D HYPHEN-MINUS, U+002D
- HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code
- title="">--></code>).</p>
+ <p><dfn title="syntax-comments">Comments</dfn> must start with the four character sequence U+003C
+ LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS (<code
+ title=""><!--</code>). Following this sequence, the comment may have <span
+ title="syntax-text">text</span>, with the additional restriction that the text must not start with
+ a single U+003E GREATER-THAN SIGN character (>), nor start with a U+002D HYPHEN-MINUS character
+ (-) followed by a U+003E GREATER-THAN SIGN (>) character, nor contain two consecutive U+002D
+ HYPHEN-MINUS characters (<code title="">--</code>), nor end with a U+002D HYPHEN-MINUS character
+ (-). Finally, the comment must be ended by the three character sequence U+002D HYPHEN-MINUS,
+ U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN (<code title="">--></code>).</p>
<!--HTMLPARSER-->
@@ -95193,69 +94983,54 @@
<div class="impl">
<h3 id="parsing">Parsing HTML documents</h3>
-<!--CLEANUP-->
- <p><i>This section only applies to user agents, data mining tools,
- and conformance checkers.</i></p>
+ <p><i>This section only applies to user agents, data mining tools, and conformance
+ checkers.</i></p>
- <p class="note">The rules for parsing XML documents into DOM trees
- are covered by the next section, entitled "<span>The XHTML
- syntax</span>".</p>
+ <p class="note">The rules for parsing XML documents into DOM trees are covered by the next
+ section, entitled "<span>The XHTML syntax</span>".</p>
- <p>User agents must use the parsing rules described in this section
- to generate the DOM trees from <code>text/html</code> resources.
- Together, these rules define what is referred to as the <dfn>HTML
- parser</dfn>.</p>
+ <p>User agents must use the parsing rules described in this section to generate the DOM trees from
+ <code>text/html</code> resources. Together, these rules define what is referred to as the
+ <dfn>HTML parser</dfn>.</p>
<div class="note">
- <p>While the HTML syntax described in this specification bears a
- close resemblance to SGML and XML, it is a separate language with
- its own parsing rules.</p>
+ <p>While the HTML syntax described in this specification bears a close resemblance to SGML and
+ XML, it is a separate language with its own parsing rules.</p>
- <p>Some earlier versions of HTML (in particular from HTML2 to
- HTML4) were based on SGML and used SGML parsing rules. However, few
- (if any) web browsers ever implemented true SGML parsing for HTML
- documents; the only user agents to strictly handle HTML as an SGML
- application have historically been validators. The resulting
- confusion — with validators claiming documents to have one
- representation while widely deployed Web browsers interoperably
- implemented a different representation — has wasted decades
- of productivity. This version of HTML thus returns to a non-SGML
- basis.</p>
+ <p>Some earlier versions of HTML (in particular from HTML2 to HTML4) were based on SGML and used
+ SGML parsing rules. However, few (if any) web browsers ever implemented true SGML parsing for
+ HTML documents; the only user agents to strictly handle HTML as an SGML application have
+ historically been validators. The resulting confusion — with validators claiming documents
+ to have one representation while widely deployed Web browsers interoperably implemented a
+ different representation — has wasted decades of productivity. This version of HTML thus
+ returns to a non-SGML basis.</p>
- <p>Authors interested in using SGML tools in their authoring
- pipeline are encouraged to use XML tools and the XML serialization
- of HTML.</p>
+ <p>Authors interested in using SGML tools in their authoring pipeline are encouraged to use XML
+ tools and the XML serialization of HTML.</p>
</div>
- <p>This specification defines the parsing rules for HTML documents,
- whether they are syntactically correct or not. Certain points in the
- parsing algorithm are said to be <dfn title="parse error">parse
- errors</dfn>. The error handling for parse errors is well-defined
- (that's the processing rules described throughout this specification), but
- user agents, while parsing an HTML document, may <span title="abort a
- parser">abort the parser</span> at the first <span>parse error</span> that they
- encounter for which they do not wish to apply the rules described
- in this specification.</p>
+ <p>This specification defines the parsing rules for HTML documents, whether they are syntactically
+ correct or not. Certain points in the parsing algorithm are said to be <dfn title="parse
+ error">parse errors</dfn>. The error handling for parse errors is well-defined (that's the
+ processing rules described throughout this specification), but user agents, while parsing an HTML
+ document, may <span title="abort a parser">abort the parser</span> at the first <span>parse
+ error</span> that they encounter for which they do not wish to apply the rules described in this
+ specification.</p>
- <p>Conformance checkers must report at least one parse error
- condition to the user if one or more parse error conditions exist in
- the document and must not report parse error conditions if none
- exist in the document. Conformance checkers may report more than one
- parse error condition if more than one parse error condition exists
- in the document.</p>
+ <p>Conformance checkers must report at least one parse error condition to the user if one or more
+ parse error conditions exist in the document and must not report parse error conditions if none
+ exist in the document. Conformance checkers may report more than one parse error condition if more
+ than one parse error condition exists in the document.</p>
- <p class="note">Parse errors are only errors with the
- <em>syntax</em> of HTML. In addition to checking for parse errors,
- conformance checkers will also verify that the document obeys all
- the other conformance requirements described in this
- specification.</p>
+ <p class="note">Parse errors are only errors with the <em>syntax</em> of HTML. In addition to
+ checking for parse errors, conformance checkers will also verify that the document obeys all the
+ other conformance requirements described in this specification.</p>
- <p>For the purposes of conformance checkers, if a resource is
- determined to be in <span>the HTML syntax</span>, then it is an
- <span title="HTML documents">HTML document</span>.</p>
+ <p>For the purposes of conformance checkers, if a resource is determined to be in <span>the HTML
+ syntax</span>, then it is an <span title="HTML documents">HTML document</span>.</p>
</div>
@@ -95266,35 +95041,28 @@
<p class="overview"><object data="images/parsing-model-overview.svg" width="345" height="535"><img src="images/parsing-model-overview.png" width="345" height="450" alt=""></object></p>
- <p>The input to the HTML parsing process consists of a stream of
- <span title="Unicode code point">Unicode code points</span>, which
- is passed through a <span>tokenization</span> stage followed by a
- <span>tree construction</span> stage. The output is a
- <code>Document</code> object.</p>
+ <p>The input to the HTML parsing process consists of a stream of <span title="Unicode code
+ point">Unicode code points</span>, which is passed through a <span>tokenization</span> stage
+ followed by a <span>tree construction</span> stage. The output is a <code>Document</code>
+ object.</p>
- <p class="note">Implementations that <a href="#non-scripted">do not
- support scripting</a> do not have to actually create a DOM
- <code>Document</code> object, but the DOM tree in such cases is
+ <p class="note">Implementations that <a href="#non-scripted">do not support scripting</a> do not
+ have to actually create a DOM <code>Document</code> object, but the DOM tree in such cases is
still used as the model for the rest of the specification.</p>
- <p>In the common case, the data handled by the tokenization stage
- comes from the network, but <span title="dynamic markup
- insertion">it can also come from script</span> running in the user
- agent, e.g. using the <code
- title="dom-document-write">document.write()</code> API.</p>
+ <p>In the common case, the data handled by the tokenization stage comes from the network, but
+ <span title="dynamic markup insertion">it can also come from script</span> running in the user
+ agent, e.g. using the <code title="dom-document-write">document.write()</code> API.</p>
- <p id="nestedParsing">There is only one set of states for the
- tokenizer stage and the tree construction stage, but the tree
- construction stage is reentrant, meaning that while the tree
- construction stage is handling one token, the tokenizer might be
- resumed, causing further tokens to be emitted and processed before
- the first token's processing is complete.</p>
+ <p id="nestedParsing">There is only one set of states for the tokenizer stage and the tree
+ construction stage, but the tree construction stage is reentrant, meaning that while the tree
+ construction stage is handling one token, the tokenizer might be resumed, causing further tokens
+ to be emitted and processed before the first token's processing is complete.</p>
<div class="example">
- <p>In the following example, the tree construction stage will be
- called upon to handle a "p" start tag token while handling the
- "script" end tag token:</p>
+ <p>In the following example, the tree construction stage will be called upon to handle a "p"
+ start tag token while handling the "script" end tag token:</p>
<pre>...
<script>
@@ -95304,9 +95072,8 @@
</div>
- <p>To handle these cases, parsers have a <dfn>script nesting
- level</dfn>, which must be initially set to zero, and a <dfn>parser
- pause flag</dfn>, which must be initially set to false.</p>
+ <p>To handle these cases, parsers have a <dfn>script nesting level</dfn>, which must be initially
+ set to zero, and a <dfn>parser pause flag</dfn>, which must be initially set to false.</p>
</div>
@@ -95316,30 +95083,24 @@
<h4>The <dfn>input byte stream</dfn></h4>
-<!--CLEANUP-->
- <p>The stream of Unicode code points that comprises the input to the
- tokenization stage will be initially seen by the user agent as a
- stream of bytes (typically coming over the network or from the local
- file system). The bytes encode the actual characters according to a
- particular <i>character encoding</i>, which the user agent uses
- to decode the bytes into characters.</p>
+ <p>The stream of Unicode code points that comprises the input to the tokenization stage will be
+ initially seen by the user agent as a stream of bytes (typically coming over the network or from
+ the local file system). The bytes encode the actual characters according to a particular
+ <i>character encoding</i>, which the user agent uses to decode the bytes into characters.</p>
- <p class="note">For XML documents, the algorithm user agents must
- use to determine the character encoding is given by the XML
- specification. This section does not apply to XML documents. <a
+ <p class="note">For XML documents, the algorithm user agents must use to determine the character
+ encoding is given by the XML specification. This section does not apply to XML documents. <a
href="#refsXML">[XML]</a></p>
- <p>Usually, the <span>encoding sniffing algorithm</span> defined below is
- used to determine the character encoding.</p>
+ <p>Usually, the <span>encoding sniffing algorithm</span> defined below is used to determine the
+ character encoding.</p>
- <p>Given a character encoding, the bytes in the <span>input byte
- stream</span> must be converted to Unicode code points for the
- tokenizer's <span>input stream</span>, as described by the rules for
- that encoding's <span>decoder</span>.</p>
+ <p>Given a character encoding, the bytes in the <span>input byte stream</span> must be converted
+ to Unicode code points for the tokenizer's <span>input stream</span>, as described by the rules
+ for that encoding's <span>decoder</span>.</p>
- <p class="note">Bytes or sequences of bytes in the original byte
- stream that did not conform to the encoding specification (e.g.
- invalid UTF-8 byte sequences in a UTF-8 input byte stream) are
+ <p class="note">Bytes or sequences of bytes in the original byte stream that did not conform to
+ the encoding specification (e.g. invalid UTF-8 byte sequences in a UTF-8 input byte stream) are
errors that conformance checkers are expected to report.</p>
<p class="note">Leading Byte Order Marks (BOMs) are not stripped by the decoder algorithms, they
More information about the Commit-Watchers
mailing list