[html5] r7819 - [e] (0) Cleanup Affected topics: DOM APIs, HTML, HTML Syntax and Parsing, Security
whatwg at whatwg.org
whatwg at whatwg.org
Fri Apr 12 14:29:08 PDT 2013
Author: ianh
Date: 2013-04-12 14:29:07 -0700 (Fri, 12 Apr 2013)
New Revision: 7819
Modified:
complete.html
index
source
Log:
[e] (0) Cleanup
Affected topics: DOM APIs, HTML, HTML Syntax and Parsing, Security
Modified: complete.html
===================================================================
--- complete.html 2013-04-12 19:38:21 UTC (rev 7818)
+++ complete.html 2013-04-12 21:29:07 UTC (rev 7819)
@@ -783,12 +783,16 @@
<li><a href=#using-the-button-element-to-define-a-command><span class=secno>4.11.6.3 </span>Using the <code>button</code> element to define a command</a></li>
<li><a href=#using-the-input-element-to-define-a-command><span class=secno>4.11.6.4 </span>Using the <code>input</code> element to define a command</a></li>
<li><a href=#using-the-option-element-to-define-a-command><span class=secno>4.11.6.5 </span>Using the <code>option</code> element to define a command</a></li>
- <li><a href=#using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <code>menuitem</code> element to define
- a command</a></li>
- <li><a href=#using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define a command indirectly</a></li>
- <li><a href=#using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>label</code> element to define a command</a></li>
- <li><a href=#using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>legend</code> element to define a command</a></li>
- <li><a href=#using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span>Using the <code title=attr-accesskey>accesskey</code> attribute to define a command on other elements</a></ol></li>
+ <li><a href=#using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <code>menuitem</code> element to define a
+ command</a></li>
+ <li><a href=#using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define
+ a command indirectly</a></li>
+ <li><a href=#using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>label</code> element to define a command</a></li>
+ <li><a href=#using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>legend</code> element to define a command</a></li>
+ <li><a href=#using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span>Using the <code title=attr-accesskey>accesskey</code>
+ attribute to define a command on other elements</a></ol></li>
<li><a href=#the-dialog-element><span class=secno>4.11.7 </span>The <code>dialog</code> element</a>
<ol>
<li><a href=#anchor-points><span class=secno>4.11.7.1 </span>Anchor points</a></ol></ol></li>
@@ -43673,16 +43677,14 @@
<p><i>This section is non-normative.</i></p>
- <p>Some devices, in particular those with on-screen keyboards and
- those in locales with languages with many characters (e.g.
- Japanese), can provide the user with multiple input modalities. For
- example, when typing in a credit card number the user may wish to
- only see keys for digits 0-9, while when typing in their name they
- may wish to see a form field that by default capitalises each
+ <p>Some devices, in particular those with on-screen keyboards and those in locales with languages
+ with many characters (e.g. Japanese), can provide the user with multiple input modalities. For
+ example, when typing in a credit card number the user may wish to only see keys for digits 0-9,
+ while when typing in their name they may wish to see a form field that by default capitalises each
word.</p>
- <p>Using the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code>
- attribute we can select appropriate input modalities:</p>
+ <p>Using the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attribute we can select appropriate
+ input modalities:</p>
<pre><form method="post"
enctype="application/x-www-form-urlencoded"
@@ -43714,86 +43716,69 @@
<p><i>This section is non-normative.</i></p>
- <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code>, <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>, and <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attributes can seem
- confusingly similar. For instance, in all three cases, the string
- "<code title="">email</code>" is a valid value. This section
- attempts to illustrate the difference between the three attributes
- and provides advice suggesting how to use them.</p>
+ <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code>, <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>, and <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attributes can seem confusingly similar. For instance,
+ in all three cases, the string "<code title="">email</code>" is a valid value. This section
+ attempts to illustrate the difference between the three attributes and provides advice suggesting
+ how to use them.</p>
- <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute on
- <code><a href=#the-input-element>input</a></code> elements decides what kind of control the user
- agent will use to expose the field. Chosing between different values
- of this attribute is the same choice as chosing whether to use an
- <code><a href=#the-input-element>input</a></code> element, a <code><a href=#the-textarea-element>textarea</a></code> element, a
- <code><a href=#the-select-element>select</a></code> element, a <code><a href=#the-keygen-element>keygen</a></code> element, etc.</p>
+ <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute on <code><a href=#the-input-element>input</a></code> elements decides
+ what kind of control the user agent will use to expose the field. Choosing between different
+ values of this attribute is the same choice as choosing whether to use an <code><a href=#the-input-element>input</a></code>
+ element, a <code><a href=#the-textarea-element>textarea</a></code> element, a <code><a href=#the-select-element>select</a></code> element, a <code><a href=#the-keygen-element>keygen</a></code>
+ element, etc.</p>
- <p>The <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>
- attribute, in contrast, describes what the value that the user will
- enter actually represents. Chosing between different values of this
- attribute is the same choice as chosing what the label for the
- element will be.</p>
+ <p>The <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> attribute, in contrast, describes
+ what the value that the user will enter actually represents. Choosing between different values of
+ this attribute is the same choice as choosing what the label for the element will be.</p>
- <p>First, consider telephone numbers. If a page is asking for a
- telephone number from the user, the right form control to use is
- <code title=attr-input-type-tel><a href="#telephone-state-(type=tel)"><input type=tel></a></code>.
- However, which <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value to use
- depends on which phone number the page is asking for, whether they
- expect a telephone number in the international format or just the
- local format, and so forth.</p>
+ <p>First, consider telephone numbers. If a page is asking for a telephone number from the user,
+ the right form control to use is <code title=attr-input-type-tel><a href="#telephone-state-(type=tel)"><input type=tel></a></code>.
+ However, which <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value to use depends on
+ which phone number the page is asking for, whether they expect a telephone number in the
+ international format or just the local format, and so forth.</p>
- <p>For example, a page that forms part of a checkout process on an
- e-commerce site for a customer buying a gift to be shipped to a
- friend might need both the buyer's telephone number (in case of
- payment issues) and the friend's telephone number (in case of
- delivery issues). If the site expects international phone numbers
- (with the country code prefix), this could thus look like this:</p>
+ <p>For example, a page that forms part of a checkout process on an e-commerce site for a customer
+ buying a gift to be shipped to a friend might need both the buyer's telephone number (in case of
+ payment issues) and the friend's telephone number (in case of delivery issues). If the site
+ expects international phone numbers (with the country code prefix), this could thus look like
+ this:</p>
<pre><p><label>Your phone number: <input type=tel name=custtel autocomplete="billing tel"></label>
<p><label>Recipient's phone number: <input type=tel name=shiptel autocomplete="shipping tel"></label>
<p>Please enter complete phone numbers including the country code prefix, as in "+1 555 123 4567".</pre>
- <p>But if the site only supports British customers and recipients,
- it might instead look like this (notice the use of <code title=attr-fe-autocomplete-tel-national><a href=#attr-fe-autocomplete-tel-national>tel-national</a></code> rather
- than <code title=attr-fe-autocomplete-tel><a href=#attr-fe-autocomplete-tel>tel</a></code>):</p>
+ <p>But if the site only supports British customers and recipients, it might instead look like this
+ (notice the use of <code title=attr-fe-autocomplete-tel-national><a href=#attr-fe-autocomplete-tel-national>tel-national</a></code> rather than
+ <code title=attr-fe-autocomplete-tel><a href=#attr-fe-autocomplete-tel>tel</a></code>):</p>
<pre><p><label>Your phone number: <input type=tel name=custtel autocomplete="billing tel-national"></label>
<p><label>Recipient's phone number: <input type=tel name=shiptel autocomplete="shipping tel-national"></label>
<p>Please enter complete UK phone numbers, as in "(01632) 960 123".</pre>
- <p>Now, consider a person's preferred languages. The right <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-language><a href=#attr-fe-autocomplete-language>language</a></code>. However,
- there could be a number of different form controls used for the
- purpose: a free text field (<code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input type=text></a></code>), a
- drop-down list (<code title=select><a href=#the-select-element><select></a></code>), radio
- buttons (<code title=attr-input-type-radio><a href="#radio-button-state-(type=radio)"><input
- type=radio></a></code>), etc. It only depends on what kind of interface
- is desired.</p>
+ <p>Now, consider a person's preferred languages. The right <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-language><a href=#attr-fe-autocomplete-language>language</a></code>. However, there could be a number of
+ different form controls used for the purpose: a free text field (<code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input type=text></a></code>), a drop-down list (<code title=select><a href=#the-select-element><select></a></code>), radio buttons (<code title=attr-input-type-radio><a href="#radio-button-state-(type=radio)"><input
+ type=radio></a></code>), etc. It only depends on what kind of interface is desired.</p>
- <p>The <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> decides what
- kind of input modality (e.g. keyboard) to use, when the control is a
- free-form text field.</p>
+ <p>The <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> decides what kind of input modality (e.g.
+ keyboard) to use, when the control is a free-form text field.</p>
- <p>Consider names. If a page just wants one name from the user, then
- the relevant control is <code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input
- type=text></a></code>. If the page is asking for the user's full name,
- then the relevant <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-name><a href=#attr-fe-autocomplete-name>name</a></code>. But if the user is
- Japanese, and the page is asking for the user's Japanese name and
- the user's romanized name, then it would be helpful to the user if
- the first field defaulted to a Japanese input modality, while the
- second defaulted to a Latin input modality (ideally with automatic
- capitalization of each word). This is where the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attribute can help:</p>
+ <p>Consider names. If a page just wants one name from the user, then the relevant control is <code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input type=text></a></code>. If the page is asking for the user's
+ full name, then the relevant <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-name><a href=#attr-fe-autocomplete-name>name</a></code>. But if the user is Japanese, and the page is asking
+ for the user's Japanese name and the user's romanized name, then it would be helpful to the user
+ if the first field defaulted to a Japanese input modality, while the second defaulted to a Latin
+ input modality (ideally with automatic capitalization of each word). This is where the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attribute can help:</p>
<pre><p><label>Japanese name: <input name="j" type="text" autocomplete="section-jp name" inputmode="kana"></label>
<label>Romanized name: <input name="e" type="text" autocomplete="section-en name" inputmode="latin-name"></label></pre>
<p>In this example, the "<code title=attr-fe-autocomplete-section>section-*</code>" keywords in
- the <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>
- attributes' values tell the user agent that the two fields expect
- <em>different</em> names. Without them, the user agent could
- automatically fill the second field with the value given in the
- first field when the user gave a value to the first field.</p>
+ the <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> attributes' values tell the user agent
+ that the two fields expect <em>different</em> names. Without them, the user agent could
+ automatically fill the second field with the value given in the first field when the user gave a
+ value to the first field.</p>
- <p class=note>The "<code title="">-jp</code>" and "<code title="">-en</code>" parts of the keywords are opaque to the user
- agent; the user agent cannot guess, from those, that the two names
+ <p class=note>The "<code title="">-jp</code>" and "<code title="">-en</code>" parts of the
+ keywords are opaque to the user agent; the user agent cannot guess, from those, that the two names
are expected to be in Japanese and English respectively.</p>
@@ -43802,51 +43787,41 @@
<p><i>This section is non-normative.</i></p>
- <p>In this pizza delivery example, the times are specified in the
- format "HH:MM": two digits for the hour, in 24-hour format, and two
- digits for the time. (Seconds could also be specified, though they
- are not necessary in this example.)</p>
+ <p>In this pizza delivery example, the times are specified in the format "HH:MM": two digits for
+ the hour, in 24-hour format, and two digits for the time. (Seconds could also be specified, though
+ they are not necessary in this example.)</p>
- <p>In some locales, however, times are often expressed differently
- when presented to users. For example, in the United States, it is
- still common to use the 12-hour clock with an am/pm indicator, as in
- "2pm". In France, it is common to separate the hours from the
- minutes using an "h" character, as in "14h00".</p>
+ <p>In some locales, however, times are often expressed differently when presented to users. For
+ example, in the United States, it is still common to use the 12-hour clock with an am/pm
+ indicator, as in "2pm". In France, it is common to separate the hours from the minutes using an
+ "h" character, as in "14h00".</p>
- <p>Similar issues exist with dates, with the added complication that
- even the order of the components is not always consistent —
- for example, in Cyprus the first of February 2003 would typically be
- written "1/2/03", while that same date in Japan would typically be
- written as "2003年02月01日" — and even with
- numbers, where locales differ, for example, in what punctuation is
- used as the decimal separator and the thousands separator.</p>
+ <p>Similar issues exist with dates, with the added complication that even the order of the
+ components is not always consistent — for example, in Cyprus the first of February 2003
+ would typically be written "1/2/03", while that same date in Japan would typically be written as
+ "2003年02月01日" — and even with numbers, where locales differ, for
+ example, in what punctuation is used as the decimal separator and the thousands separator.</p>
- <p>It is therefore important to distinguish the time, date, and
- number formats used in HTML and in form submissions, which are
- always the formats defined in this specification (and based on the
- well-established ISO 8601 standard for computer-readable date and
- time formats), from the time, date, and number formats presented to
- the user by the browser and accepted as input from the user by the
- browser.</p>
+ <p>It is therefore important to distinguish the time, date, and number formats used in HTML and in
+ form submissions, which are always the formats defined in this specification (and based on the
+ well-established ISO 8601 standard for computer-readable date and time formats), from the time,
+ date, and number formats presented to the user by the browser and accepted as input from the user
+ by the browser.</p>
- <p>The format used "on the wire", i.e. in HTML markup and in form
- submissions, is intended to be computer-readable and consistent
- irrespective of the user's locale. Dates, for instance, are always
- written in the format "YYYY-MM-DD", as in "2003-02-01". Users are
- not expected to ever see this format.</p>
+ <p>The format used "on the wire", i.e. in HTML markup and in form submissions, is intended to be
+ computer-readable and consistent irrespective of the user's locale. Dates, for instance, are
+ always written in the format "YYYY-MM-DD", as in "2003-02-01". Users are not expected to ever see
+ this format.</p>
- <p>The time, date, or number given by the page in the wire format is
- then translated to the user's preferred presentation (based on user
- preferences or on the locale of the page itself), before being
- displayed to the user. Similarly, after the user inputs a time,
- date, or number using their preferred format, the user agent
- converts it back to the wire format before putting it in the DOM or
- submitting it.</p>
+ <p>The time, date, or number given by the page in the wire format is then translated to the user's
+ preferred presentation (based on user preferences or on the locale of the page itself), before
+ being displayed to the user. Similarly, after the user inputs a time, date, or number using their
+ preferred format, the user agent converts it back to the wire format before putting it in the DOM
+ or submitting it.</p>
- <p>This allows scripts in pages and on servers to process times,
- dates, and numbers in a consistent manner without needing to support
- dozens of different formats, while still supporting the users'
- needs.</p>
+ <p>This allows scripts in pages and on servers to process times, dates, and numbers in a
+ consistent manner without needing to support dozens of different formats, while still supporting
+ the users' needs.</p>
<div class=impl>
<p class=note>See also the <a href=#input-impl-notes>implementation notes</a> regarding
@@ -43856,15 +43831,13 @@
<h4 id=categories><span class=secno>4.10.2 </span>Categories</h4>
- <p>Mostly for historical reasons, elements in this section fall into
- several overlapping (but subtly different) categories in addition to
- the usual ones like <a href=#flow-content>flow content</a>, <a href=#phrasing-content>phrasing
- content</a>, and <a href=#interactive-content>interactive content</a>.</p>
+ <p>Mostly for historical reasons, elements in this section fall into several overlapping (but
+ subtly different) categories in addition to the usual ones like <a href=#flow-content>flow content</a>,
+ <a href=#phrasing-content>phrasing content</a>, and <a href=#interactive-content>interactive content</a>.</p>
- <p>A number of the elements are <dfn id=form-associated-element title="form-associated
- element">form-associated elements</dfn>, which means they can have a
- <a href=#form-owner>form owner</a> and, to expose this, have a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content attribute with a matching
- <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute.</p>
+ <p>A number of the elements are <dfn id=form-associated-element title="form-associated element">form-associated
+ elements</dfn>, which means they can have a <a href=#form-owner>form owner</a> and, to expose this, have a
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content attribute with a matching <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute.</p>
<!-- when updating this also update the category index -->
<ul class="brief category-list"><li><code><a href=#the-button-element>button</a></code></li>
@@ -55978,8 +55951,8 @@
<ul class=brief><li><a href=#concept-command title=concept-command>Commands</a>, which can be marked as default commands (<code><a href=#the-menuitem-element>menuitem</a></code>)</li>
<li>Separators (<code><a href=#the-hr-element>hr</a></code>)</li>
<li>Other menus, which allows the list to be nested (<code><a href=#the-menu-element>menu</a></code>)</li>
- </ul><!--CLEANUP--><p>To <dfn id=construct-and-show-a-menu>construct and show a menu</dfn> for a particular <code><a href=#the-menu-element>menu</a></code> element and with a particular element as a subject, the user
- agent must run the following steps:</p>
+ </ul><p>To <dfn id=construct-and-show-a-menu>construct and show a menu</dfn> for a particular <code><a href=#the-menu-element>menu</a></code> element and with a
+ particular element as a subject, the user agent must run the following steps:</p>
<ol><li><p>Let the menu be an empty list of the type described above.</li>
@@ -55992,17 +55965,17 @@
output are as follows: For each child node of the <code><a href=#the-menu-element>menu</a></code> in <a href=#tree-order>tree order</a>,
run the appropriate steps from the following list:</p>
- <dl class=switch><dt>If the child is a <code><a href=#the-menuitem-element>menuitem</a></code> element that <a href=#concept-command title=concept-command>defines a command</a></dt>
+ <dl class=switch><dt>If the child is a <code><a href=#the-menuitem-element>menuitem</a></code> element that <a href=#concept-command title=concept-command>defines
+ a command</a></dt>
- <dd>Append the command to the menu, respecting its <a href=#concept-facet title=concept-facet>facets</a><!--
- we might need to be explicit about what this means for each facet, if testing shows this isn't
- well-implemented. e.g.: If there's an Icon facet for the command, it should be <span
- title="fetch">fetched</span><!- -FETCH- -> (this would be http-origin privacy-sensitive), and
- then that image should be associated with the command, such that each command only has its image
- fetched once, to prevent changes to the base URL from having effects after the image has been
- fetched once. (no need to resolve the Icon facet, it's an absolute URL) -->. If the
- <code><a href=#the-menuitem-element>menuitem</a></code> element has a <code title=attr-menuitem-default><a href=#attr-menuitem-default>default</a></code> attribute,
- mark the command as being a default command.</dd>
+ <dd>Append the command to the menu, respecting its <a href=#concept-facet title=concept-facet>facets</a><!-- we might need to be explicit about what this means for
+ each facet, if testing shows this isn't well-implemented. e.g.: If there's an Icon facet for
+ the command, it should be <span title="fetch">fetched</span><!- -FETCH- -> (this would be
+ http-origin privacy-sensitive), and then that image should be associated with the command, such
+ that each command only has its image fetched once, to prevent changes to the base URL from
+ having effects after the image has been fetched once. (no need to resolve the Icon facet, it's
+ an absolute URL) -->. If the <code><a href=#the-menuitem-element>menuitem</a></code> element has a <code title=attr-menuitem-default><a href=#attr-menuitem-default>default</a></code> attribute, mark the command as being a default
+ command.</dd>
<dt>If the child is an <code><a href=#the-hr-element>hr</a></code> element</dt>
@@ -56032,11 +56005,14 @@
</dl></li>
- <li><p>Remove any submenu with no label, or whose label is the empty string, in the menu or any submenus.</li>
+ <li><p>Remove any submenu with no label, or whose label is the empty string, in the menu or any
+ submenus.</li>
- <li><p>Remove any menu item with no label, or whose label is the empty string, in the menu or any submenus.</li>
+ <li><p>Remove any menu item with no label, or whose label is the empty string, in the menu or any
+ submenus.</li>
- <li><p>Collapse all sequences of two or more adjacent separators in the menu or any submenus to a single separator.</li>
+ <li><p>Collapse all sequences of two or more adjacent separators in the menu or any submenus to a
+ single separator.</li>
<li><p>Remove all separators at the start or end of the menu and any submenus.</li>
@@ -56256,69 +56232,55 @@
<div class=impl>
- <hr><!--CLEANUP--><p>The <dfn id=dom-menuitem-type title=dom-menuitem-type><code>type</code></dfn> IDL
- attribute must <a href=#reflect>reflect</a> the content attribute of the
- same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+ <hr><p>The <dfn id=dom-menuitem-type title=dom-menuitem-type><code>type</code></dfn> IDL attribute must
+ <a href=#reflect>reflect</a> the content attribute of the same name, <a href=#limited-to-only-known-values>limited to only known
+ values</a>.</p>
- <p>The <dfn id=dom-menuitem-label title=dom-menuitem-label><code>label</code></dfn>, <dfn id=dom-menuitem-icon title=dom-menuitem-icon><code>icon</code></dfn>, <dfn id=dom-menuitem-disabled title=dom-menuitem-disabled><code>disabled</code></dfn>, <dfn id=dom-menuitem-checked title=dom-menuitem-checked><code>checked</code></dfn>, and <dfn id=dom-menuitem-radiogroup title=dom-menuitem-radiogroup><code>radiogroup</code></dfn>,
- and <dfn id=dom-menuitem-default title=dom-menuitem-default><code>default</code></dfn>
- IDL attributes must <a href=#reflect>reflect</a> the respective content
- attributes of the same name.</p>
+ <p>The <dfn id=dom-menuitem-label title=dom-menuitem-label><code>label</code></dfn>, <dfn id=dom-menuitem-icon title=dom-menuitem-icon><code>icon</code></dfn>, <dfn id=dom-menuitem-disabled title=dom-menuitem-disabled><code>disabled</code></dfn>, <dfn id=dom-menuitem-checked title=dom-menuitem-checked><code>checked</code></dfn>, and <dfn id=dom-menuitem-radiogroup title=dom-menuitem-radiogroup><code>radiogroup</code></dfn>, and <dfn id=dom-menuitem-default title=dom-menuitem-default><code>default</code></dfn> IDL attributes must <a href=#reflect>reflect</a>
+ the respective content attributes of the same name.</p>
- <p>The <dfn id=dom-menuitem-command title=dom-menuitem-command><code>command</code></dfn>
- IDL attribute must return the <a href=#master-command>master command</a>, if any,
- or null otherwise.</p>
+ <p>The <dfn id=dom-menuitem-command title=dom-menuitem-command><code>command</code></dfn> IDL attribute must return the
+ <a href=#master-command>master command</a>, if any, or null otherwise.</p>
<hr><p>If the element's <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> is false
- (enabled) then the element's <a href=#activation-behavior>activation behavior</a>
- depends on the element's <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code>
- and <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attributes, as
- follows:</p>
+ (enabled) then the element's <a href=#activation-behavior>activation behavior</a> depends on the element's <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> and <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code>
+ attributes, as follows:</p>
- <dl class=switch><dt>If the element has a <a href=#master-command>master command</a> set by its
- <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute</dt>
+ <dl class=switch><dt>If the element has a <a href=#master-command>master command</a> set by its <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute</dt>
- <dd><p>The user agent must <a href=#run-synthetic-click-activation-steps>run synthetic click activation
- steps</a> on the element's <a href=#master-command>master command</a>.</dd>
- <!-- we know it has a defined <span>activation behavior</span> if
- we get here -->
+ <dd><p>The user agent must <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the element's
+ <a href=#master-command>master command</a>.</dd>
+ <!-- we know it has a defined <span>activation behavior</span> if we get here -->
- <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
- in the <a href=#attr-menuitem-type-state-checkbox title=attr-menuitem-type-state-checkbox>Checkbox</a> state</dt>
+ <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is in the <a href=#attr-menuitem-type-state-checkbox title=attr-menuitem-type-state-checkbox>Checkbox</a> state</dt>
- <dd><p>If the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, the UA must
- remove that attribute. Otherwise, the UA must add a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, with the
- literal value <code title="">checked</code>.</dd>
+ <dd><p>If the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, the UA
+ must remove that attribute. Otherwise, the UA must add a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, with the literal value <code title="">checked</code>.</dd>
- <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
- in the <a href=#attr-menuitem-type-state-radio title=attr-menuitem-type-state-radio>Radio</a> state</dt>
+ <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is in the <a href=#attr-menuitem-type-state-radio title=attr-menuitem-type-state-radio>Radio</a> state</dt>
- <dd><p>If the element has a parent, then the UA must walk the list
- of child nodes of that parent element, and for each node that is a
- <code><a href=#the-menuitem-element>menuitem</a></code> element, if that element has a <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code> attribute whose
- value exactly matches the current element's (treating missing <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code> attributes as if
- they were the empty string), and has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, must remove
- that attribute.</p>
+ <dd><p>If the element has a parent, then the UA must walk the list of child nodes of that parent
+ element, and for each node that is a <code><a href=#the-menuitem-element>menuitem</a></code> element, if that element has a <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code> attribute whose value exactly matches the
+ current element's (treating missing <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code>
+ attributes as if they were the empty string), and has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, must remove that attribute.</p>
- <p>Then, the element's <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute
- must be set to the literal value <code title="">checked</code>.</dd>
+ <p>Then, the element's <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute must be set
+ to the literal value <code title="">checked</code>.</dd>
<dt>Otherwise</dt>
- <dd><p>The element's <a href=#activation-behavior>activation behavior</a> is to do
- nothing.</dd>
+ <dd><p>The element's <a href=#activation-behavior>activation behavior</a> is to do nothing.</dd>
- </dl><p class=note>Firing a synthetic <code title=event-click><a href=#event-click>click</a></code> event at the element does not cause
- any of the actions described above to happen.</p>
+ </dl><p class=note>Firing a synthetic <code title=event-click><a href=#event-click>click</a></code> event at the element
+ does not cause any of the actions described above to happen.</p>
<!-- v2COMMAND: Expose the Triggers facet again. -->
<p>If the element's <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> is true
- (disabled) then the element has no <a href=#activation-behavior>activation
- behavior</a>.</p>
+ (disabled) then the element has no <a href=#activation-behavior>activation behavior</a>.</p>
</div>
@@ -56881,310 +56843,240 @@
<h5 id=using-the-option-element-to-define-a-command><span class=secno>4.11.6.5 </span><dfn title=option-command>Using the <code>option</code> element to define a command</dfn></h5>
- <p>An <code><a href=#the-option-element>option</a></code> element with an ancestor
- <code><a href=#the-select-element>select</a></code> element and either no <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute or a <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute that is not the
- empty string <a href=#concept-command title=concept-command>defines a
- command</a>.</p>
+ <p>An <code><a href=#the-option-element>option</a></code> element with an ancestor <code><a href=#the-select-element>select</a></code> element and either no <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute or a <code title=attr-option-value><a href=#attr-option-value>value</a></code>
+ attribute that is not the empty string <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "radio" if the <code><a href=#the-option-element>option</a></code>'s nearest ancestor
- <code><a href=#the-select-element>select</a></code> element has no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute, and
- "checkbox" if it does.</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "radio" if the
+ <code><a href=#the-option-element>option</a></code>'s nearest ancestor <code><a href=#the-select-element>select</a></code> element has no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute, and "checkbox" if it does.</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the value of the <code><a href=#the-option-element>option</a></code> element's <code title=attr-option-label><a href=#attr-option-label>label</a></code> attribute, if there is one,
- or else the value of <code><a href=#the-option-element>option</a></code> element's
- <code><a href=#textcontent>textContent</a></code> IDL attribute, with <a href=#strip-leading-and-trailing-whitespace title="strip
- leading and trailing whitespace">leading and trailing whitespace
- stripped</a>, and with any sequences of two or more <a href=#space-character title="space character">space characters</a> replaced by a single
- U+0020 SPACE character.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the value of the
+ <code><a href=#the-option-element>option</a></code> element's <code title=attr-option-label><a href=#attr-option-label>label</a></code> attribute, if there is
+ one, or else the value of <code><a href=#the-option-element>option</a></code> element's <code><a href=#textcontent>textContent</a></code> IDL attribute,
+ with <a href=#strip-leading-and-trailing-whitespace title="strip leading and trailing whitespace">leading and trailing whitespace
+ stripped</a>, and with any sequences of two or more <a href=#space-character title="space character">space
+ characters</a> replaced by a single U+0020 SPACE character.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the string given by the element's <code title=attr-title><a href=#attr-title>title</a></code> attribute, if any, and the empty
- string if the attribute is absent.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the string given by the
+ element's <code title=attr-title><a href=#attr-title>title</a></code> attribute, if any, and the empty string if the
+ attribute is absent.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>, if
- any.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>, if any.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is true (hidden)
+ if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is true if the element is <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, or if its nearest
- ancestor <code><a href=#the-select-element>select</a></code> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, or if it or one of its
- ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is true if
+ the element is <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, or if its nearest ancestor
+ <code><a href=#the-select-element>select</a></code> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, or if it or one
+ of its ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is true (checked) if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, and
- false otherwise.</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is true
+ (checked) if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true,
+ and false otherwise.</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command depends on its <a href=#command-facet-type title=command-facet-Type>Type</a>. If the command is of <a href=#command-facet-type title=command-facet-Type>Type</a> "radio" then it must <a href=#concept-select-pick title=concept-select-pick>pick</a> the <code><a href=#the-option-element>option</a></code>
- element. Otherwise, it must <a href=#concept-select-toggle title=concept-select-toggle>toggle</a> the <code><a href=#the-option-element>option</a></code>
- element.</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command depends on its <a href=#command-facet-type title=command-facet-Type>Type</a>. If the command is of <a href=#command-facet-type title=command-facet-Type>Type</a> "radio" then it must <a href=#concept-select-pick title=concept-select-pick>pick</a> the <code><a href=#the-option-element>option</a></code> element. Otherwise, it must <a href=#concept-select-toggle title=concept-select-toggle>toggle</a> the <code><a href=#the-option-element>option</a></code> element.</p>
- <h5 id=using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <dfn title=command-element><code>menuitem</code></dfn> element to define
- a command</h5>
+ <h5 id=using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <dfn title=command-element><code>menuitem</code></dfn> element to define a
+ command</h5>
-<!--CLEANUP-->
- <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element that does not have a <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element that does not have a <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute <a href=#concept-command title=concept-command>defines a
+ command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "radio" if the <code><a href=#the-menuitem-element>menuitem</a></code>'s <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
- "<code>radio</code>", "checkbox" if the attribute's value is
- "<code>checkbox</code>", and "command" otherwise.</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "radio" if the
+ <code><a href=#the-menuitem-element>menuitem</a></code>'s <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
+ "<code>radio</code>", "checkbox" if the attribute's value is "<code>checkbox</code>", and
+ "command" otherwise.</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the value of the element's <code title=attr-menuitem-label><a href=#attr-menuitem-label>label</a></code> attribute, if there is one,
- or the empty string if it doesn't.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the value of the element's
+ <code title=attr-menuitem-label><a href=#attr-menuitem-label>label</a></code> attribute, if there is one, or the empty string if
+ it doesn't.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the string given by the element's <code title=attr-menuitem-title><a href=#attr-menuitem-title>title</a></code> attribute, if any, and the
- empty string if the attribute is absent.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the string given by the
+ element's <code title=attr-menuitem-title><a href=#attr-menuitem-title>title</a></code> attribute, if any, and the empty string
+ if the attribute is absent.</p>
- <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command
- is the <a href=#absolute-url>absolute URL</a> obtained from <a href=#resolve-a-url title="resolve
- a url">resolving</a> the value of the element's <code title=attr-menuitem-icon><a href=#attr-menuitem-icon>icon</a></code> attribute, relative to the
- element, if it has such an attribute and resolving it is
- successful. Otherwise, there is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
+ <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command is the <a href=#absolute-url>absolute
+ URL</a> obtained from <a href=#resolve-a-url title="resolve a url">resolving</a> the value of the element's
+ <code title=attr-menuitem-icon><a href=#attr-menuitem-icon>icon</a></code> attribute, relative to the element, if it has such an
+ attribute and resolving it is successful. Otherwise, there is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>, if
- any.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>, if any.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is true (hidden)
+ if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is true if the element or one of its
- ancestors is <a href=#inert>inert</a>, or if the element has a <code title=attr-menuitem-disabled><a href=#attr-menuitem-disabled>disabled</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is true if
+ the element or one of its ancestors is <a href=#inert>inert</a>, or if the element has a <code title=attr-menuitem-disabled><a href=#attr-menuitem-disabled>disabled</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is true (checked) if the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is true
+ (checked) if the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, and
+ false otherwise.</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command, if the element has a defined <a href=#activation-behavior>activation
- behavior</a><!-- it doesn't if the element is disabled -->, is to <a href=#run-synthetic-click-activation-steps>run synthetic click activation
- steps</a> on the element. Otherwise, it is just to <a href=#fire-a-click-event>fire a
- <code title=event-click>click</code> event</a> at the
- element.</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command, if the element has a
+ defined <a href=#activation-behavior>activation behavior</a><!-- it doesn't if the element is disabled -->, is to
+ <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the element. Otherwise, it is just to
+ <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element.</p>
- <h5 id=using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span><dfn title=command-menuitem-command>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define a command indirectly</dfn></h5>
+ <h5 id=using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span><dfn title=command-menuitem-command>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define
+ a command indirectly</dfn></h5>
- <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element with a <a href=#master-command>master command</a>
- <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element with a <a href=#master-command>master command</a> <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is the <a href=#command-facet-type title=command-facet-Type>Type</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is the <a href=#command-facet-type title=command-facet-Type>Type</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the <a href=#command-facet-label title=command-facet-Label>Label</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the <a href=#command-facet-label title=command-facet-Label>Label</a> of the <a href=#master-command>master command</a>.</p>
- <p>If the element has a <code title=attr-title><a href=#attr-title>title</a></code>
- attribute, then the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of
- the command is the value of that <code title=attr-title><a href=#attr-title>title</a></code> attribute. Otherwise, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the <a href=#master-command>master
- command</a>.</p>
+ <p>If the element has a <code title=attr-title><a href=#attr-title>title</a></code> attribute, then the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of that <code title=attr-title><a href=#attr-title>title</a></code> attribute. Otherwise, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the command
- is the <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the command is the <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>, if
- any.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>, if any.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is the <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden
- State</a> of the <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is the <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is the <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is the <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked
- State</a> of the command is the <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is the <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command is to invoke the <a href=#command-facet-action title=command-facet-Action>Action</a> of the <a href=#master-command>master
- command</a>.</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command is to invoke the <a href=#command-facet-action title=command-facet-Action>Action</a> of the <a href=#master-command>master command</a>.</p>
- <h5 id=using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span><dfn title=label-command>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>label</code> element to define a command</dfn></h5>
+ <h5 id=using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span><dfn title=label-command>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>label</code> element to define a command</dfn></h5>
- <p>A <code><a href=#the-label-element>label</a></code> element that has an <a href=#assigned-access-key>assigned access
- key</a> and a <a href=#labeled-control>labeled control</a> and whose
- <a href=#labeled-control>labeled control</a> <a href=#concept-command title=concept-command>defines a
- command</a>, itself <a href=#concept-command title=concept-command>defines a
- command</a>.</p>
+ <p>A <code><a href=#the-label-element>label</a></code> element that has an <a href=#assigned-access-key>assigned access key</a> and a <a href=#labeled-control>labeled
+ control</a> and whose <a href=#labeled-control>labeled control</a> <a href=#concept-command title=concept-command>defines a
+ command</a>, itself <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "command".</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "command".</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the string given by the element's <code><a href=#textcontent>textContent</a></code> IDL
- attribute.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the string given by the
+ element's <code><a href=#textcontent>textContent</a></code> IDL attribute.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute
- of the element.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute of the element.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>,
- <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and
- <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the
- command are the same as the respective facets of the element's
- <a href=#labeled-control>labeled control</a>.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>, <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the command are the same as the respective
+ facets of the element's <a href=#labeled-control>labeled control</a>.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is always
+ false. (The command is never checked.)</p>
- <h5 id=using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span><dfn title=legend-command>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>legend</code> element to define a command</dfn></h5>
+ <h5 id=using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span><dfn title=legend-command>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>legend</code> element to define a command</dfn></h5>
- <p>A <code><a href=#the-legend-element>legend</a></code> element that has an <a href=#assigned-access-key>assigned access
- key</a> and is a child of a <code><a href=#the-fieldset-element>fieldset</a></code> element that
- has a descendant that is not a descendant of the <code><a href=#the-legend-element>legend</a></code>
- element and is neither a <code><a href=#the-label-element>label</a></code> element nor a
- <code><a href=#the-legend-element>legend</a></code> element but that <a href=#concept-command title=concept-command>defines a command</a>, itself <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>A <code><a href=#the-legend-element>legend</a></code> element that has an <a href=#assigned-access-key>assigned access key</a> and is a child of a
+ <code><a href=#the-fieldset-element>fieldset</a></code> element that has a descendant that is not a descendant of the
+ <code><a href=#the-legend-element>legend</a></code> element and is neither a <code><a href=#the-label-element>label</a></code> element nor a <code><a href=#the-legend-element>legend</a></code>
+ element but that <a href=#concept-command title=concept-command>defines a command</a>, itself <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "command".</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "command".</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the string given by the element's <code><a href=#textcontent>textContent</a></code> IDL
- attribute.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the string given by the
+ element's <code><a href=#textcontent>textContent</a></code> IDL attribute.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute
- of the element.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute of the element.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>,
- <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and
- <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the
- command are the same as the respective facets of the first element
- in <a href=#tree-order>tree order</a> that is a descendant of the parent of the
- <code><a href=#the-legend-element>legend</a></code> element that <a href=#concept-command title=concept-command>defines a command</a> but is not a
- descendant of the <code><a href=#the-legend-element>legend</a></code> element and is neither a
- <code><a href=#the-label-element>label</a></code> nor a <code><a href=#the-legend-element>legend</a></code> element.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>, <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the command are the same as the respective
+ facets of the first element in <a href=#tree-order>tree order</a> that is a descendant of the parent of the
+ <code><a href=#the-legend-element>legend</a></code> element that <a href=#concept-command title=concept-command>defines a command</a> but is not
+ a descendant of the <code><a href=#the-legend-element>legend</a></code> element and is neither a <code><a href=#the-label-element>label</a></code> nor a
+ <code><a href=#the-legend-element>legend</a></code> element.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is always
+ false. (The command is never checked.)</p>
- <h5 id=using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span><dfn title=accesskey-command>Using the <code title=attr-accesskey>accesskey</code> attribute to define a command on other elements</dfn></h5>
+ <h5 id=using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span><dfn title=accesskey-command>Using the <code title=attr-accesskey>accesskey</code>
+ attribute to define a command on other elements</dfn></h5>
- <p>An element that has an <a href=#assigned-access-key>assigned access key</a> <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>An element that has an <a href=#assigned-access-key>assigned access key</a> <a href=#concept-command title=concept-command>defines a
+ command</a>.</p>
- <p>If one of the earlier sections that define elements that <a href=#concept-command title=concept-command>define commands</a> define that this
- element <a href=#concept-command title=concept-command>defines a command</a>, then
- that section applies to this element, and this section does not.
- Otherwise, this section applies to that element.</p>
+ <p>If one of the earlier sections that define elements that <a href=#concept-command title=concept-command>define
+ commands</a> define that this element <a href=#concept-command title=concept-command>defines a command</a>,
+ then that section applies to this element, and this section does not. Otherwise, this section
+ applies to that element.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "command".</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "command".</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- depends on the element. If the element is a <a href=#labeled-control>labeled
- control</a>, the <code><a href=#textcontent>textContent</a></code> of the first
- <code><a href=#the-label-element>label</a></code> element in <a href=#tree-order>tree order</a> whose
- <a href=#labeled-control>labeled control</a> is the element in question is the <a href=#command-facet-label title=command-facet-Label>Label</a> (in DOM terms, this is the
- string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise, the
- <a href=#command-facet-label title=command-facet-Label>Label</a> is the
- <code><a href=#textcontent>textContent</a></code> of the element itself.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command depends on the element. If
+ the element is a <a href=#labeled-control>labeled control</a>, the <code><a href=#textcontent>textContent</a></code> of the first
+ <code><a href=#the-label-element>label</a></code> element in <a href=#tree-order>tree order</a> whose <a href=#labeled-control>labeled control</a> is the
+ element in question is the <a href=#command-facet-label title=command-facet-Label>Label</a> (in DOM terms, this is
+ the string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise,
+ the <a href=#command-facet-label title=command-facet-Label>Label</a> is the <code><a href=#textcontent>textContent</a></code> of the element
+ itself.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute
- of the element. If the attribute is not present, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> is the empty string.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute of the element. If the attribute is not present, the
+ <a href=#command-facet-hint title=command-facet-Hint>Hint</a> is the empty string.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is true (hidden)
+ if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is true if the element or one of its
- ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is true if
+ the element or one of its ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is always
+ false. (The command is never checked.)</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command is to run the following steps:</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command is to run the following
+ steps:</p>
- <ol><li>If the element is <a href=#focusable>focusable</a>, run the
- <a href=#focusing-steps>focusing steps</a> for the element.</li>
-
- <li>If the element has a defined <a href=#activation-behavior>activation behavior</a>,
- <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the
+ <ol><li>If the element is <a href=#focusable>focusable</a>, run the <a href=#focusing-steps>focusing steps</a> for the
element.</li>
- <li>Otherwise, if the element does not have a defined
- <a href=#activation-behavior>activation behavior</a>, <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element.</li>
+ <li>If the element has a defined <a href=#activation-behavior>activation behavior</a>, <a href=#run-synthetic-click-activation-steps>run synthetic click
+ activation steps</a> on the element.</li>
+ <li>Otherwise, if the element does not have a defined <a href=#activation-behavior>activation behavior</a>,
+ <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element.</li>
+
</ol></div>
@@ -83051,70 +82943,56 @@
<a href=#storage-0>Storage</a>? storageArea;
};</pre>
- <p>The <dfn id=dom-storageevent-key title=dom-StorageEvent-key><code>key</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
+ <p>The <dfn id=dom-storageevent-key title=dom-StorageEvent-key><code>key</code></dfn> attribute must return the value it
+ was initialized to. When the object is created, this attribute must be initialized to null. It
represents the key being changed.</p>
- <p>The <dfn id=dom-storageevent-oldvalue title=dom-StorageEvent-oldValue><code>oldValue</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the old value of the key being changed.</p>
+ <p>The <dfn id=dom-storageevent-oldvalue title=dom-StorageEvent-oldValue><code>oldValue</code></dfn> attribute must return
+ the value it was initialized to. When the object is created, this attribute must be initialized to
+ null. It represents the old value of the key being changed.</p>
- <p>The <dfn id=dom-storageevent-newvalue title=dom-StorageEvent-newValue><code>newValue</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the new value of the key being changed.</p>
+ <p>The <dfn id=dom-storageevent-newvalue title=dom-StorageEvent-newValue><code>newValue</code></dfn> attribute must return
+ the value it was initialized to. When the object is created, this attribute must be initialized to
+ null. It represents the new value of the key being changed.</p>
- <p>The <dfn id=dom-storageevent-url title=dom-StorageEvent-url><code>url</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to the empty
- string. It represents the address of the document whose key
- changed.</p>
+ <p>The <dfn id=dom-storageevent-url title=dom-StorageEvent-url><code>url</code></dfn> attribute must return the value it
+ was initialized to. When the object is created, this attribute must be initialized to the empty
+ string. It represents the address of the document whose key changed.</p>
- <p>The <dfn id=dom-storageevent-storagearea title=dom-StorageEvent-storageArea><code>storageArea</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the <code><a href=#storage-0>Storage</a></code> object that was affected.</p>
+ <p>The <dfn id=dom-storageevent-storagearea title=dom-StorageEvent-storageArea><code>storageArea</code></dfn> attribute must
+ return the value it was initialized to. When the object is created, this attribute must be
+ initialized to null. It represents the <code><a href=#storage-0>Storage</a></code> object that was affected.</p>
<h4 id=threads><span class=secno>11.2.5 </span>Threads</h4>
- <p>Because of <a href=#localStorageMutex>the use</a> of the
- <a href=#storage-mutex>storage mutex</a>, multiple browsing contexts will be able
- to access the local storage areas simultaneously in such a manner
+ <p>Because of <a href=#localStorageMutex>the use</a> of the <a href=#storage-mutex>storage mutex</a>, multiple
+ browsing contexts will be able to access the local storage areas simultaneously in such a manner
that scripts cannot detect any concurrent script execution.</p>
- <p>Thus, the <code title=dom-Storage-length><a href=#dom-storage-length>length</a></code>
- attribute of a <code><a href=#storage-0>Storage</a></code> object, and the value of the
- various properties of that object, cannot change while a script is
- executing, other than in a way that is predictable by the script
- itself.</p>
+ <p>Thus, the <code title=dom-Storage-length><a href=#dom-storage-length>length</a></code> attribute of a <code><a href=#storage-0>Storage</a></code>
+ object, and the value of the various properties of that object, cannot change while a script is
+ executing, other than in a way that is predictable by the script itself.</p>
<h3 id=disk-space-0><span class=secno>11.3 </span>Disk space</h3>
-<!--CLEANUP-->
- <p>User agents should limit the total amount of space allowed for
- storage areas, because hostile authors could otherwise use this feature to exhaust the user's available disk space.</p>
+ <p>User agents should limit the total amount of space allowed for storage areas, because hostile
+ authors could otherwise use this feature to exhaust the user's available disk space.</p>
- <p>User agents should guard against sites storing data under their
- origin's other affiliated sites, e.g. storing up to the limit in
- a1.example.com, a2.example.com, a3.example.com, etc, circumventing
- the main example.com storage limit.</p>
+ <p>User agents should guard against sites storing data under their origin's other affiliated
+ sites, e.g. storing up to the limit in a1.example.com, a2.example.com, a3.example.com, etc,
+ circumventing the main example.com storage limit.</p>
- <p>User agents may prompt the user when quotas are reached, allowing
- the user to grant a site more space. This enables sites to store
- many user-created documents on the user's computer, for
+ <p>User agents may prompt the user when quotas are reached, allowing the user to grant a site more
+ space. This enables sites to store many user-created documents on the user's computer, for
instance.</p>
- <p>User agents should allow users to see how much space each domain
- is using.</p>
+ <p>User agents should allow users to see how much space each domain is using.</p>
<!--<p>If the storage area space limit is reached during a <code
- title="dom-Storage-setItem">setItem()</code> call, the method will
- throw an exception.</p>-->
+ title="dom-Storage-setItem">setItem()</code> call, the method will throw an exception.</p>-->
<p>A mostly arbitrary limit of five megabytes per <a href=#origin>origin</a> is suggested. Implementation
feedback is welcome and will be used to update this suggestion in the future.</p>
@@ -83124,26 +83002,21 @@
<h4 id=user-tracking><span class=secno>11.4.1 </span>User tracking</h4>
- <p>A third-party advertiser (or any entity capable of getting
- content distributed to multiple sites) could use a unique identifier
- stored in its local storage area to track a user across multiple
- sessions, building a profile of the user's interests to allow for
- highly targeted advertising. In conjunction with a site that is
- aware of the user's real identity (for example an e-commerce site
- that requires authenticated credentials), this could allow
- oppressive groups to target individuals with greater accuracy than
- in a world with purely anonymous Web usage.</p>
+ <p>A third-party advertiser (or any entity capable of getting content distributed to multiple
+ sites) could use a unique identifier stored in its local storage area to track a user across
+ multiple sessions, building a profile of the user's interests to allow for highly targeted
+ advertising. In conjunction with a site that is aware of the user's real identity (for example an
+ e-commerce site that requires authenticated credentials), this could allow oppressive groups to
+ target individuals with greater accuracy than in a world with purely anonymous Web usage.</p>
- <p>There are a number of techniques that can be used to mitigate the
- risk of user tracking:</p>
+ <p>There are a number of techniques that can be used to mitigate the risk of user tracking:</p>
<dl><dt>Blocking third-party storage</dt>
<dd>
- <p>User agents may restrict access to the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> objects to scripts
- originating at the domain of the top-level document of the
- <a href=#browsing-context>browsing context</a>, for instance denying access to the
- API for pages from other domains running in
+ <p>User agents may restrict access to the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>
+ objects to scripts originating at the domain of the top-level document of the <a href=#browsing-context>browsing
+ context</a>, for instance denying access to the API for pages from other domains running in
<code><a href=#the-iframe-element>iframe</a></code>s.</p>
</dd>
@@ -83154,42 +83027,35 @@
<p>User agents may, possibly in a manner configured by the user, automatically delete stored
data after a period of time.</p>
- <p>For example, a user agent could be configured to treat
- third-party local storage areas as session-only storage, deleting
- the data once the user had closed all the <a href=#browsing-context title="browsing
+ <p>For example, a user agent could be configured to treat third-party local storage areas as
+ session-only storage, deleting the data once the user had closed all the <a href=#browsing-context title="browsing
context">browsing contexts</a> that could access it.</p>
- <p>This can restrict the ability of a site to track a user, as the
- site would then only be able to track the user across multiple
- sessions when he authenticates with the site itself (e.g. by
+ <p>This can restrict the ability of a site to track a user, as the site would then only be able
+ to track the user across multiple sessions when he authenticates with the site itself (e.g. by
making a purchase or logging in to a service).</p>
- <p>However, this also reduces the usefulness of the API as a
- long-term storage mechanism. It can also put the user's data at
- risk, if the user does not fully understand the implications of
- data expiration.</p>
+ <p>However, this also reduces the usefulness of the API as a long-term storage mechanism. It can
+ also put the user's data at risk, if the user does not fully understand the implications of data
+ expiration.</p>
- <!--v2 consider adding an explicit way for sites to state when
- data should expire, as in localStorage.expireData(365); -->
+ <!--v2 consider adding an explicit way for sites to state when data should expire, as in
+ localStorage.expireData(365); -->
</dd>
<dt>Treating persistent storage as cookies</dt>
<dd>
- <p>If users attempt to protect their privacy by clearing cookies
- without also clearing data stored in the local storage area, sites
- can defeat those attempts by using the two features as redundant
- backup for each other. User agents should present the interfaces
- for clearing these in a way that helps users to understand this
- possibility and enables them to delete data in all persistent
- storage features simultaneously. <a href=#refsCOOKIES>[COOKIES]</a></p>
+ <p>If users attempt to protect their privacy by clearing cookies without also clearing data
+ stored in the local storage area, sites can defeat those attempts by using the two features as
+ redundant backup for each other. User agents should present the interfaces for clearing these in
+ a way that helps users to understand this possibility and enables them to delete data in all
+ persistent storage features simultaneously. <a href=#refsCOOKIES>[COOKIES]</a></p>
</dd>
- <dt>Site-specific white-listing of access to local storage
- areas</dt>
- <dd>
+ <dt>Site-specific white-listing of access to local storage areas</dt> <dd>
<p>User agents may allow sites to access session storage areas in
an unrestricted manner, but require the user to authorize access
@@ -83200,58 +83066,47 @@
<dt>Origin-tracking of stored data</dt>
<dd>
- <p>User agents may record the <a href=#origin title=origin>origins</a>
- of sites that contained content from third-party origins that
- caused data to be stored.</p>
+ <p>User agents may record the <a href=#origin title=origin>origins</a> of sites that contained
+ content from third-party origins that caused data to be stored.</p>
- <p>If this information is then used to present the view of data
- currently in persistent storage, it would allow the user to make
- informed decisions about which parts of the persistent storage to
- prune. Combined with a blacklist ("delete this data and prevent
- this domain from ever storing data again"), the user can restrict
- the use of persistent storage to sites that he trusts.</p>
+ <p>If this information is then used to present the view of data currently in persistent storage,
+ it would allow the user to make informed decisions about which parts of the persistent storage
+ to prune. Combined with a blacklist ("delete this data and prevent this domain from ever storing
+ data again"), the user can restrict the use of persistent storage to sites that he trusts.</p>
</dd>
<dt>Shared blacklists</dt>
<dd>
- <p>User agents may allow users to share their persistent storage
- domain blacklists.</p>
+ <p>User agents may allow users to share their persistent storage domain blacklists.</p>
- <p>This would allow communities to act together to protect their
- privacy.</p>
+ <p>This would allow communities to act together to protect their privacy.</p>
</dd>
- </dl><p>While these suggestions prevent trivial use of this API for user
- tracking, they do not block it altogether. Within a single domain, a
- site can continue to track the user during a session, and can then
- pass all this information to the third party along with any
- identifying information (names, credit card numbers, addresses)
- obtained by the site. If a third party cooperates with multiple
- sites to obtain such information, a profile can still be
- created.</p>
+ </dl><p>While these suggestions prevent trivial use of this API for user tracking, they do not block it
+ altogether. Within a single domain, a site can continue to track the user during a session, and
+ can then pass all this information to the third party along with any identifying information
+ (names, credit card numbers, addresses) obtained by the site. If a third party cooperates with
+ multiple sites to obtain such information, a profile can still be created.</p>
- <p>However, user tracking is to some extent possible even with no
- cooperation from the user agent whatsoever, for instance by using
- session identifiers in URLs, a technique already commonly used for
- innocuous purposes but easily repurposed for user tracking (even
- retroactively). This information can then be shared with other
- sites, using visitors' IP addresses and other user-specific data
- (e.g. user-agent headers and configuration settings) to combine
- separate sessions into coherent user profiles.</p>
+ <p>However, user tracking is to some extent possible even with no cooperation from the user agent
+ whatsoever, for instance by using session identifiers in URLs, a technique already commonly used
+ for innocuous purposes but easily repurposed for user tracking (even retroactively). This
+ information can then be shared with other sites, using visitors' IP addresses and other
+ user-specific data (e.g. user-agent headers and configuration settings) to combine separate
+ sessions into coherent user profiles.</p>
<h4 id=sensitivity-of-data><span class=secno>11.4.2 </span>Sensitivity of data</h4>
- <p>User agents should treat persistently stored data as potentially
- sensitive; it's quite possible for e-mails, calendar appointments,
- health records, or other confidential documents to be stored in this
- mechanism.</p>
+ <p>User agents should treat persistently stored data as potentially sensitive; it's quite possible
+ for e-mails, calendar appointments, health records, or other confidential documents to be stored
+ in this mechanism.</p>
- <p>To this end, user agents should ensure that when deleting data,
- it is promptly deleted from the underlying storage.</p>
+ <p>To this end, user agents should ensure that when deleting data, it is promptly deleted from the
+ underlying storage.</p>
<!--ADD-TOPIC:Security-->
@@ -83259,12 +83114,10 @@
<h4 id=dns-spoofing-attacks><span class=secno>11.5.1 </span>DNS spoofing attacks</h4>
- <p>Because of the potential for DNS spoofing attacks, one cannot
- guarantee that a host claiming to be in a certain domain really is
- from that domain. To mitigate this, pages can use TLS. Pages using
- TLS can be sure that only the user, software working on behalf of
- the user, and other pages using TLS that have certificates
- identifying them as being from the same domain, can access their
+ <p>Because of the potential for DNS spoofing attacks, one cannot guarantee that a host claiming to
+ be in a certain domain really is from that domain. To mitigate this, pages can use TLS. Pages
+ using TLS can be sure that only the user, software working on behalf of the user, and other pages
+ using TLS that have certificates identifying them as being from the same domain, can access their
storage areas.</p>
@@ -83275,35 +83128,29 @@
the access by pathname. Authors on shared hosts are therefore urged to avoid using these features,
as it would be trivial for other authors to read the data and overwrite it.</p>
- <p class=note>Even if a path-restriction feature was made
- available, the usual DOM scripting security model would make it
- trivial to bypass this protection and access the data from any
+ <p class=note>Even if a path-restriction feature was made available, the usual DOM scripting
+ security model would make it trivial to bypass this protection and access the data from any
path.</p>
<h4 id=implementation-risks><span class=secno>11.5.3 </span>Implementation risks</h4>
- <p>The two primary risks when implementing these persistent storage
- features are letting hostile sites read information from other
- domains, and letting hostile sites write information that is then
- read from other domains.</p>
+ <p>The two primary risks when implementing these persistent storage features are letting hostile
+ sites read information from other domains, and letting hostile sites write information that is
+ then read from other domains.</p>
- <p>Letting third-party sites read data that is not supposed to be
- read from their domain causes <em>information leakage</em>, For
- example, a user's shopping wishlist on one domain could be used by
- another domain for targeted advertising; or a user's
- work-in-progress confidential documents stored by a word-processing
- site could be examined by the site of a competing company.</p>
+ <p>Letting third-party sites read data that is not supposed to be read from their domain causes
+ <em>information leakage</em>, For example, a user's shopping wishlist on one domain could be used
+ by another domain for targeted advertising; or a user's work-in-progress confidential documents
+ stored by a word-processing site could be examined by the site of a competing company.</p>
- <p>Letting third-party sites write data to the persistent storage of
- other domains can result in <em>information spoofing</em>, which is
- equally dangerous. For example, a hostile site could add items to a
- user's wishlist; or a hostile site could set a user's session
- identifier to a known ID that the hostile site can then use to track
- the user's actions on the victim site.</p>
+ <p>Letting third-party sites write data to the persistent storage of other domains can result in
+ <em>information spoofing</em>, which is equally dangerous. For example, a hostile site could add
+ items to a user's wishlist; or a hostile site could set a user's session identifier to a known ID
+ that the hostile site can then use to track the user's actions on the victim site.</p>
- <p>Thus, strictly following the <a href=#origin>origin</a> model described
- in this specification is important for user security.</p>
+ <p>Thus, strictly following the <a href=#origin>origin</a> model described in this specification is
+ important for user security.</p>
<!--REMOVE-TOPIC:Security-->
@@ -83314,20 +83161,18 @@
<h2 id=syntax><span class=secno>12 </span><dfn>The HTML syntax</dfn></h2>
- <p class=note>This section only describes the rules for resources
- labeled with an <a href=#html-mime-type>HTML MIME type</a>. Rules for XML resources
- are discussed in the section below entitled "<a href=#the-xhtml-syntax>The XHTML
- syntax</a>".</p>
+ <p class=note>This section only describes the rules for resources labeled with an <a href=#html-mime-type>HTML
+ MIME type</a>. Rules for XML resources are discussed in the section below entitled "<a href=#the-xhtml-syntax>The
+ XHTML syntax</a>".</p>
<h3 id=writing><span class=secno>12.1 </span>Writing HTML documents</h3>
<div class=impl>
- <p><i>This section only applies to documents, authoring tools, and
- markup generators. In particular, it does not apply to conformance
- checkers; conformance checkers must use the requirements given in
- the next section ("parsing HTML documents").</i></p>
+ <p><i>This section only applies to documents, authoring tools, and markup generators. In
+ particular, it does not apply to conformance checkers; conformance checkers must use the
+ requirements given in the next section ("parsing HTML documents").</i></p>
</div>
@@ -83336,41 +83181,36 @@
<ol><li>Optionally, a single U+FEFF BYTE ORDER MARK (BOM) character.</li>
- <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and <a href=#space-character title="space
+ character">space characters</a>.</li>
<li>A <a href=#syntax-doctype title=syntax-doctype>DOCTYPE</a>.
- <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and <a href=#space-character title="space
+ character">space characters</a>.</li>
<li>The root element, in the form of an <code><a href=#the-html-element>html</a></code> <a href=#syntax-elements title=syntax-elements>element</a>.</li>
- <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and <a href=#space-character title="space
+ character">space characters</a>.</li>
- </ol><p>The various types of content mentioned above are described in the
- next few sections.</p>
+ </ol><p>The various types of content mentioned above are described in the next few sections.</p>
- <p>In addition, there are some restrictions on how <a href=#character-encoding-declaration title="character encoding declaration">character encoding
- declarations</a> are to be serialized, as discussed in the
+ <p>In addition, there are some restrictions on how <a href=#character-encoding-declaration title="character encoding
+ declaration">character encoding declarations</a> are to be serialized, as discussed in the
section on that topic.</p>
<div class=note>
- <p>Space characters before the root <code><a href=#the-html-element>html</a></code> element, and
- space characters at the start of the <code><a href=#the-html-element>html</a></code> element and
- before the <code><a href=#the-head-element>head</a></code> element, will be dropped when the
- document is parsed; space characters <em>after</em> the root
- <code><a href=#the-html-element>html</a></code> element will be parsed as if they were at the end
- of the <code><a href=#the-body-element>body</a></code> element. Thus, space characters around the
- root element do not round-trip.</p>
+ <p>Space characters before the root <code><a href=#the-html-element>html</a></code> element, and space characters at the start
+ of the <code><a href=#the-html-element>html</a></code> element and before the <code><a href=#the-head-element>head</a></code> element, will be dropped when
+ the document is parsed; space characters <em>after</em> the root <code><a href=#the-html-element>html</a></code> element will
+ be parsed as if they were at the end of the <code><a href=#the-body-element>body</a></code> element. Thus, space characters
+ around the root element do not round-trip.</p>
- <p>It is suggested that newlines be inserted after the DOCTYPE,
- after any comments that are before the root element, after the
- <code><a href=#the-html-element>html</a></code> element's start tag (if it is not <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>), and after any comments
- that are inside the <code><a href=#the-html-element>html</a></code> element but before the
- <code><a href=#the-head-element>head</a></code> element.</p>
+ <p>It is suggested that newlines be inserted after the DOCTYPE, after any comments that are
+ before the root element, after the <code><a href=#the-html-element>html</a></code> element's start tag (if it is not <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>), and after any comments that are inside the
+ <code><a href=#the-html-element>html</a></code> element but before the <code><a href=#the-head-element>head</a></code> element.</p>
</div>
@@ -83382,17 +83222,15 @@
<h4 id=the-doctype><span class=secno>12.1.1 </span>The DOCTYPE</h4>
- <p>A <dfn id=syntax-doctype title=syntax-doctype>DOCTYPE</dfn> is a <!-- mostly
- useless but nonetheless --> required preamble.</p>
+ <p>A <dfn id=syntax-doctype title=syntax-doctype>DOCTYPE</dfn> is a <!-- mostly useless but nonetheless -->
+ required preamble.</p>
- <p class=note>DOCTYPEs are required for legacy reasons. When
- omitted, browsers tend to use a different rendering mode that is
- incompatible with some specifications. Including the DOCTYPE in a
- document ensures that the browser makes a best-effort attempt at
- following the relevant specifications.</p>
+ <p class=note>DOCTYPEs are required for legacy reasons. When omitted, browsers tend to use a
+ different rendering mode that is incompatible with some specifications. Including the DOCTYPE in a
+ document ensures that the browser makes a best-effort attempt at following the relevant
+ specifications.</p>
- <p>A DOCTYPE must consist of the following components, in this
- order:</p>
+ <p>A DOCTYPE must consist of the following components, in this order:</p>
<ol class=brief><li>A string that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title=""><!DOCTYPE</code>".</li>
<li>One or more <a href=#space-character title="space character">space characters</a>.</li>
@@ -83400,8 +83238,7 @@
<li>Optionally, a <a href=#doctype-legacy-string>DOCTYPE legacy string</a> or an <a href=#obsolete-permitted-doctype-string>obsolete permitted DOCTYPE string</a> (defined below).</li>
<li>Zero or more <a href=#space-character title="space character">space characters</a>.</li>
<li>A U+003E GREATER-THAN SIGN character (>).</li>
- </ol><p class=note>In other words, <code><!DOCTYPE html></code>,
- case-insensitively.</p>
+ </ol><p class=note>In other words, <code><!DOCTYPE html></code>, case-insensitively.</p>
<hr><p>For the purposes of HTML generators that cannot output HTML
markup with the short DOCTYPE "<code title=""><!DOCTYPE
Modified: index
===================================================================
--- index 2013-04-12 19:38:21 UTC (rev 7818)
+++ index 2013-04-12 21:29:07 UTC (rev 7819)
@@ -783,12 +783,16 @@
<li><a href=#using-the-button-element-to-define-a-command><span class=secno>4.11.6.3 </span>Using the <code>button</code> element to define a command</a></li>
<li><a href=#using-the-input-element-to-define-a-command><span class=secno>4.11.6.4 </span>Using the <code>input</code> element to define a command</a></li>
<li><a href=#using-the-option-element-to-define-a-command><span class=secno>4.11.6.5 </span>Using the <code>option</code> element to define a command</a></li>
- <li><a href=#using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <code>menuitem</code> element to define
- a command</a></li>
- <li><a href=#using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define a command indirectly</a></li>
- <li><a href=#using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>label</code> element to define a command</a></li>
- <li><a href=#using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>legend</code> element to define a command</a></li>
- <li><a href=#using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span>Using the <code title=attr-accesskey>accesskey</code> attribute to define a command on other elements</a></ol></li>
+ <li><a href=#using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <code>menuitem</code> element to define a
+ command</a></li>
+ <li><a href=#using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define
+ a command indirectly</a></li>
+ <li><a href=#using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>label</code> element to define a command</a></li>
+ <li><a href=#using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>legend</code> element to define a command</a></li>
+ <li><a href=#using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span>Using the <code title=attr-accesskey>accesskey</code>
+ attribute to define a command on other elements</a></ol></li>
<li><a href=#the-dialog-element><span class=secno>4.11.7 </span>The <code>dialog</code> element</a>
<ol>
<li><a href=#anchor-points><span class=secno>4.11.7.1 </span>Anchor points</a></ol></ol></li>
@@ -43673,16 +43677,14 @@
<p><i>This section is non-normative.</i></p>
- <p>Some devices, in particular those with on-screen keyboards and
- those in locales with languages with many characters (e.g.
- Japanese), can provide the user with multiple input modalities. For
- example, when typing in a credit card number the user may wish to
- only see keys for digits 0-9, while when typing in their name they
- may wish to see a form field that by default capitalises each
+ <p>Some devices, in particular those with on-screen keyboards and those in locales with languages
+ with many characters (e.g. Japanese), can provide the user with multiple input modalities. For
+ example, when typing in a credit card number the user may wish to only see keys for digits 0-9,
+ while when typing in their name they may wish to see a form field that by default capitalises each
word.</p>
- <p>Using the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code>
- attribute we can select appropriate input modalities:</p>
+ <p>Using the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attribute we can select appropriate
+ input modalities:</p>
<pre><form method="post"
enctype="application/x-www-form-urlencoded"
@@ -43714,86 +43716,69 @@
<p><i>This section is non-normative.</i></p>
- <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code>, <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>, and <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attributes can seem
- confusingly similar. For instance, in all three cases, the string
- "<code title="">email</code>" is a valid value. This section
- attempts to illustrate the difference between the three attributes
- and provides advice suggesting how to use them.</p>
+ <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code>, <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>, and <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attributes can seem confusingly similar. For instance,
+ in all three cases, the string "<code title="">email</code>" is a valid value. This section
+ attempts to illustrate the difference between the three attributes and provides advice suggesting
+ how to use them.</p>
- <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute on
- <code><a href=#the-input-element>input</a></code> elements decides what kind of control the user
- agent will use to expose the field. Chosing between different values
- of this attribute is the same choice as chosing whether to use an
- <code><a href=#the-input-element>input</a></code> element, a <code><a href=#the-textarea-element>textarea</a></code> element, a
- <code><a href=#the-select-element>select</a></code> element, a <code><a href=#the-keygen-element>keygen</a></code> element, etc.</p>
+ <p>The <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute on <code><a href=#the-input-element>input</a></code> elements decides
+ what kind of control the user agent will use to expose the field. Choosing between different
+ values of this attribute is the same choice as choosing whether to use an <code><a href=#the-input-element>input</a></code>
+ element, a <code><a href=#the-textarea-element>textarea</a></code> element, a <code><a href=#the-select-element>select</a></code> element, a <code><a href=#the-keygen-element>keygen</a></code>
+ element, etc.</p>
- <p>The <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>
- attribute, in contrast, describes what the value that the user will
- enter actually represents. Chosing between different values of this
- attribute is the same choice as chosing what the label for the
- element will be.</p>
+ <p>The <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> attribute, in contrast, describes
+ what the value that the user will enter actually represents. Choosing between different values of
+ this attribute is the same choice as choosing what the label for the element will be.</p>
- <p>First, consider telephone numbers. If a page is asking for a
- telephone number from the user, the right form control to use is
- <code title=attr-input-type-tel><a href="#telephone-state-(type=tel)"><input type=tel></a></code>.
- However, which <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value to use
- depends on which phone number the page is asking for, whether they
- expect a telephone number in the international format or just the
- local format, and so forth.</p>
+ <p>First, consider telephone numbers. If a page is asking for a telephone number from the user,
+ the right form control to use is <code title=attr-input-type-tel><a href="#telephone-state-(type=tel)"><input type=tel></a></code>.
+ However, which <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value to use depends on
+ which phone number the page is asking for, whether they expect a telephone number in the
+ international format or just the local format, and so forth.</p>
- <p>For example, a page that forms part of a checkout process on an
- e-commerce site for a customer buying a gift to be shipped to a
- friend might need both the buyer's telephone number (in case of
- payment issues) and the friend's telephone number (in case of
- delivery issues). If the site expects international phone numbers
- (with the country code prefix), this could thus look like this:</p>
+ <p>For example, a page that forms part of a checkout process on an e-commerce site for a customer
+ buying a gift to be shipped to a friend might need both the buyer's telephone number (in case of
+ payment issues) and the friend's telephone number (in case of delivery issues). If the site
+ expects international phone numbers (with the country code prefix), this could thus look like
+ this:</p>
<pre><p><label>Your phone number: <input type=tel name=custtel autocomplete="billing tel"></label>
<p><label>Recipient's phone number: <input type=tel name=shiptel autocomplete="shipping tel"></label>
<p>Please enter complete phone numbers including the country code prefix, as in "+1 555 123 4567".</pre>
- <p>But if the site only supports British customers and recipients,
- it might instead look like this (notice the use of <code title=attr-fe-autocomplete-tel-national><a href=#attr-fe-autocomplete-tel-national>tel-national</a></code> rather
- than <code title=attr-fe-autocomplete-tel><a href=#attr-fe-autocomplete-tel>tel</a></code>):</p>
+ <p>But if the site only supports British customers and recipients, it might instead look like this
+ (notice the use of <code title=attr-fe-autocomplete-tel-national><a href=#attr-fe-autocomplete-tel-national>tel-national</a></code> rather than
+ <code title=attr-fe-autocomplete-tel><a href=#attr-fe-autocomplete-tel>tel</a></code>):</p>
<pre><p><label>Your phone number: <input type=tel name=custtel autocomplete="billing tel-national"></label>
<p><label>Recipient's phone number: <input type=tel name=shiptel autocomplete="shipping tel-national"></label>
<p>Please enter complete UK phone numbers, as in "(01632) 960 123".</pre>
- <p>Now, consider a person's preferred languages. The right <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-language><a href=#attr-fe-autocomplete-language>language</a></code>. However,
- there could be a number of different form controls used for the
- purpose: a free text field (<code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input type=text></a></code>), a
- drop-down list (<code title=select><a href=#the-select-element><select></a></code>), radio
- buttons (<code title=attr-input-type-radio><a href="#radio-button-state-(type=radio)"><input
- type=radio></a></code>), etc. It only depends on what kind of interface
- is desired.</p>
+ <p>Now, consider a person's preferred languages. The right <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-language><a href=#attr-fe-autocomplete-language>language</a></code>. However, there could be a number of
+ different form controls used for the purpose: a free text field (<code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input type=text></a></code>), a drop-down list (<code title=select><a href=#the-select-element><select></a></code>), radio buttons (<code title=attr-input-type-radio><a href="#radio-button-state-(type=radio)"><input
+ type=radio></a></code>), etc. It only depends on what kind of interface is desired.</p>
- <p>The <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> decides what
- kind of input modality (e.g. keyboard) to use, when the control is a
- free-form text field.</p>
+ <p>The <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> decides what kind of input modality (e.g.
+ keyboard) to use, when the control is a free-form text field.</p>
- <p>Consider names. If a page just wants one name from the user, then
- the relevant control is <code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input
- type=text></a></code>. If the page is asking for the user's full name,
- then the relevant <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-name><a href=#attr-fe-autocomplete-name>name</a></code>. But if the user is
- Japanese, and the page is asking for the user's Japanese name and
- the user's romanized name, then it would be helpful to the user if
- the first field defaulted to a Japanese input modality, while the
- second defaulted to a Latin input modality (ideally with automatic
- capitalization of each word). This is where the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attribute can help:</p>
+ <p>Consider names. If a page just wants one name from the user, then the relevant control is <code title=attr-input-type-text><a href="#text-(type=text)-state-and-search-state-(type=search)"><input type=text></a></code>. If the page is asking for the user's
+ full name, then the relevant <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> value is <code title=attr-fe-autocomplete-name><a href=#attr-fe-autocomplete-name>name</a></code>. But if the user is Japanese, and the page is asking
+ for the user's Japanese name and the user's romanized name, then it would be helpful to the user
+ if the first field defaulted to a Japanese input modality, while the second defaulted to a Latin
+ input modality (ideally with automatic capitalization of each word). This is where the <code title=attr-fe-inputmode><a href=#attr-fe-inputmode>inputmode</a></code> attribute can help:</p>
<pre><p><label>Japanese name: <input name="j" type="text" autocomplete="section-jp name" inputmode="kana"></label>
<label>Romanized name: <input name="e" type="text" autocomplete="section-en name" inputmode="latin-name"></label></pre>
<p>In this example, the "<code title=attr-fe-autocomplete-section>section-*</code>" keywords in
- the <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code>
- attributes' values tell the user agent that the two fields expect
- <em>different</em> names. Without them, the user agent could
- automatically fill the second field with the value given in the
- first field when the user gave a value to the first field.</p>
+ the <code title=attr-fe-autocomplete><a href=#attr-fe-autocomplete>autocomplete</a></code> attributes' values tell the user agent
+ that the two fields expect <em>different</em> names. Without them, the user agent could
+ automatically fill the second field with the value given in the first field when the user gave a
+ value to the first field.</p>
- <p class=note>The "<code title="">-jp</code>" and "<code title="">-en</code>" parts of the keywords are opaque to the user
- agent; the user agent cannot guess, from those, that the two names
+ <p class=note>The "<code title="">-jp</code>" and "<code title="">-en</code>" parts of the
+ keywords are opaque to the user agent; the user agent cannot guess, from those, that the two names
are expected to be in Japanese and English respectively.</p>
@@ -43802,51 +43787,41 @@
<p><i>This section is non-normative.</i></p>
- <p>In this pizza delivery example, the times are specified in the
- format "HH:MM": two digits for the hour, in 24-hour format, and two
- digits for the time. (Seconds could also be specified, though they
- are not necessary in this example.)</p>
+ <p>In this pizza delivery example, the times are specified in the format "HH:MM": two digits for
+ the hour, in 24-hour format, and two digits for the time. (Seconds could also be specified, though
+ they are not necessary in this example.)</p>
- <p>In some locales, however, times are often expressed differently
- when presented to users. For example, in the United States, it is
- still common to use the 12-hour clock with an am/pm indicator, as in
- "2pm". In France, it is common to separate the hours from the
- minutes using an "h" character, as in "14h00".</p>
+ <p>In some locales, however, times are often expressed differently when presented to users. For
+ example, in the United States, it is still common to use the 12-hour clock with an am/pm
+ indicator, as in "2pm". In France, it is common to separate the hours from the minutes using an
+ "h" character, as in "14h00".</p>
- <p>Similar issues exist with dates, with the added complication that
- even the order of the components is not always consistent —
- for example, in Cyprus the first of February 2003 would typically be
- written "1/2/03", while that same date in Japan would typically be
- written as "2003年02月01日" — and even with
- numbers, where locales differ, for example, in what punctuation is
- used as the decimal separator and the thousands separator.</p>
+ <p>Similar issues exist with dates, with the added complication that even the order of the
+ components is not always consistent — for example, in Cyprus the first of February 2003
+ would typically be written "1/2/03", while that same date in Japan would typically be written as
+ "2003年02月01日" — and even with numbers, where locales differ, for
+ example, in what punctuation is used as the decimal separator and the thousands separator.</p>
- <p>It is therefore important to distinguish the time, date, and
- number formats used in HTML and in form submissions, which are
- always the formats defined in this specification (and based on the
- well-established ISO 8601 standard for computer-readable date and
- time formats), from the time, date, and number formats presented to
- the user by the browser and accepted as input from the user by the
- browser.</p>
+ <p>It is therefore important to distinguish the time, date, and number formats used in HTML and in
+ form submissions, which are always the formats defined in this specification (and based on the
+ well-established ISO 8601 standard for computer-readable date and time formats), from the time,
+ date, and number formats presented to the user by the browser and accepted as input from the user
+ by the browser.</p>
- <p>The format used "on the wire", i.e. in HTML markup and in form
- submissions, is intended to be computer-readable and consistent
- irrespective of the user's locale. Dates, for instance, are always
- written in the format "YYYY-MM-DD", as in "2003-02-01". Users are
- not expected to ever see this format.</p>
+ <p>The format used "on the wire", i.e. in HTML markup and in form submissions, is intended to be
+ computer-readable and consistent irrespective of the user's locale. Dates, for instance, are
+ always written in the format "YYYY-MM-DD", as in "2003-02-01". Users are not expected to ever see
+ this format.</p>
- <p>The time, date, or number given by the page in the wire format is
- then translated to the user's preferred presentation (based on user
- preferences or on the locale of the page itself), before being
- displayed to the user. Similarly, after the user inputs a time,
- date, or number using their preferred format, the user agent
- converts it back to the wire format before putting it in the DOM or
- submitting it.</p>
+ <p>The time, date, or number given by the page in the wire format is then translated to the user's
+ preferred presentation (based on user preferences or on the locale of the page itself), before
+ being displayed to the user. Similarly, after the user inputs a time, date, or number using their
+ preferred format, the user agent converts it back to the wire format before putting it in the DOM
+ or submitting it.</p>
- <p>This allows scripts in pages and on servers to process times,
- dates, and numbers in a consistent manner without needing to support
- dozens of different formats, while still supporting the users'
- needs.</p>
+ <p>This allows scripts in pages and on servers to process times, dates, and numbers in a
+ consistent manner without needing to support dozens of different formats, while still supporting
+ the users' needs.</p>
<div class=impl>
<p class=note>See also the <a href=#input-impl-notes>implementation notes</a> regarding
@@ -43856,15 +43831,13 @@
<h4 id=categories><span class=secno>4.10.2 </span>Categories</h4>
- <p>Mostly for historical reasons, elements in this section fall into
- several overlapping (but subtly different) categories in addition to
- the usual ones like <a href=#flow-content>flow content</a>, <a href=#phrasing-content>phrasing
- content</a>, and <a href=#interactive-content>interactive content</a>.</p>
+ <p>Mostly for historical reasons, elements in this section fall into several overlapping (but
+ subtly different) categories in addition to the usual ones like <a href=#flow-content>flow content</a>,
+ <a href=#phrasing-content>phrasing content</a>, and <a href=#interactive-content>interactive content</a>.</p>
- <p>A number of the elements are <dfn id=form-associated-element title="form-associated
- element">form-associated elements</dfn>, which means they can have a
- <a href=#form-owner>form owner</a> and, to expose this, have a <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content attribute with a matching
- <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute.</p>
+ <p>A number of the elements are <dfn id=form-associated-element title="form-associated element">form-associated
+ elements</dfn>, which means they can have a <a href=#form-owner>form owner</a> and, to expose this, have a
+ <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> content attribute with a matching <code title=dom-fae-form><a href=#dom-fae-form>form</a></code> IDL attribute.</p>
<!-- when updating this also update the category index -->
<ul class="brief category-list"><li><code><a href=#the-button-element>button</a></code></li>
@@ -55978,8 +55951,8 @@
<ul class=brief><li><a href=#concept-command title=concept-command>Commands</a>, which can be marked as default commands (<code><a href=#the-menuitem-element>menuitem</a></code>)</li>
<li>Separators (<code><a href=#the-hr-element>hr</a></code>)</li>
<li>Other menus, which allows the list to be nested (<code><a href=#the-menu-element>menu</a></code>)</li>
- </ul><!--CLEANUP--><p>To <dfn id=construct-and-show-a-menu>construct and show a menu</dfn> for a particular <code><a href=#the-menu-element>menu</a></code> element and with a particular element as a subject, the user
- agent must run the following steps:</p>
+ </ul><p>To <dfn id=construct-and-show-a-menu>construct and show a menu</dfn> for a particular <code><a href=#the-menu-element>menu</a></code> element and with a
+ particular element as a subject, the user agent must run the following steps:</p>
<ol><li><p>Let the menu be an empty list of the type described above.</li>
@@ -55992,17 +55965,17 @@
output are as follows: For each child node of the <code><a href=#the-menu-element>menu</a></code> in <a href=#tree-order>tree order</a>,
run the appropriate steps from the following list:</p>
- <dl class=switch><dt>If the child is a <code><a href=#the-menuitem-element>menuitem</a></code> element that <a href=#concept-command title=concept-command>defines a command</a></dt>
+ <dl class=switch><dt>If the child is a <code><a href=#the-menuitem-element>menuitem</a></code> element that <a href=#concept-command title=concept-command>defines
+ a command</a></dt>
- <dd>Append the command to the menu, respecting its <a href=#concept-facet title=concept-facet>facets</a><!--
- we might need to be explicit about what this means for each facet, if testing shows this isn't
- well-implemented. e.g.: If there's an Icon facet for the command, it should be <span
- title="fetch">fetched</span><!- -FETCH- -> (this would be http-origin privacy-sensitive), and
- then that image should be associated with the command, such that each command only has its image
- fetched once, to prevent changes to the base URL from having effects after the image has been
- fetched once. (no need to resolve the Icon facet, it's an absolute URL) -->. If the
- <code><a href=#the-menuitem-element>menuitem</a></code> element has a <code title=attr-menuitem-default><a href=#attr-menuitem-default>default</a></code> attribute,
- mark the command as being a default command.</dd>
+ <dd>Append the command to the menu, respecting its <a href=#concept-facet title=concept-facet>facets</a><!-- we might need to be explicit about what this means for
+ each facet, if testing shows this isn't well-implemented. e.g.: If there's an Icon facet for
+ the command, it should be <span title="fetch">fetched</span><!- -FETCH- -> (this would be
+ http-origin privacy-sensitive), and then that image should be associated with the command, such
+ that each command only has its image fetched once, to prevent changes to the base URL from
+ having effects after the image has been fetched once. (no need to resolve the Icon facet, it's
+ an absolute URL) -->. If the <code><a href=#the-menuitem-element>menuitem</a></code> element has a <code title=attr-menuitem-default><a href=#attr-menuitem-default>default</a></code> attribute, mark the command as being a default
+ command.</dd>
<dt>If the child is an <code><a href=#the-hr-element>hr</a></code> element</dt>
@@ -56032,11 +56005,14 @@
</dl></li>
- <li><p>Remove any submenu with no label, or whose label is the empty string, in the menu or any submenus.</li>
+ <li><p>Remove any submenu with no label, or whose label is the empty string, in the menu or any
+ submenus.</li>
- <li><p>Remove any menu item with no label, or whose label is the empty string, in the menu or any submenus.</li>
+ <li><p>Remove any menu item with no label, or whose label is the empty string, in the menu or any
+ submenus.</li>
- <li><p>Collapse all sequences of two or more adjacent separators in the menu or any submenus to a single separator.</li>
+ <li><p>Collapse all sequences of two or more adjacent separators in the menu or any submenus to a
+ single separator.</li>
<li><p>Remove all separators at the start or end of the menu and any submenus.</li>
@@ -56256,69 +56232,55 @@
<div class=impl>
- <hr><!--CLEANUP--><p>The <dfn id=dom-menuitem-type title=dom-menuitem-type><code>type</code></dfn> IDL
- attribute must <a href=#reflect>reflect</a> the content attribute of the
- same name, <a href=#limited-to-only-known-values>limited to only known values</a>.</p>
+ <hr><p>The <dfn id=dom-menuitem-type title=dom-menuitem-type><code>type</code></dfn> IDL attribute must
+ <a href=#reflect>reflect</a> the content attribute of the same name, <a href=#limited-to-only-known-values>limited to only known
+ values</a>.</p>
- <p>The <dfn id=dom-menuitem-label title=dom-menuitem-label><code>label</code></dfn>, <dfn id=dom-menuitem-icon title=dom-menuitem-icon><code>icon</code></dfn>, <dfn id=dom-menuitem-disabled title=dom-menuitem-disabled><code>disabled</code></dfn>, <dfn id=dom-menuitem-checked title=dom-menuitem-checked><code>checked</code></dfn>, and <dfn id=dom-menuitem-radiogroup title=dom-menuitem-radiogroup><code>radiogroup</code></dfn>,
- and <dfn id=dom-menuitem-default title=dom-menuitem-default><code>default</code></dfn>
- IDL attributes must <a href=#reflect>reflect</a> the respective content
- attributes of the same name.</p>
+ <p>The <dfn id=dom-menuitem-label title=dom-menuitem-label><code>label</code></dfn>, <dfn id=dom-menuitem-icon title=dom-menuitem-icon><code>icon</code></dfn>, <dfn id=dom-menuitem-disabled title=dom-menuitem-disabled><code>disabled</code></dfn>, <dfn id=dom-menuitem-checked title=dom-menuitem-checked><code>checked</code></dfn>, and <dfn id=dom-menuitem-radiogroup title=dom-menuitem-radiogroup><code>radiogroup</code></dfn>, and <dfn id=dom-menuitem-default title=dom-menuitem-default><code>default</code></dfn> IDL attributes must <a href=#reflect>reflect</a>
+ the respective content attributes of the same name.</p>
- <p>The <dfn id=dom-menuitem-command title=dom-menuitem-command><code>command</code></dfn>
- IDL attribute must return the <a href=#master-command>master command</a>, if any,
- or null otherwise.</p>
+ <p>The <dfn id=dom-menuitem-command title=dom-menuitem-command><code>command</code></dfn> IDL attribute must return the
+ <a href=#master-command>master command</a>, if any, or null otherwise.</p>
<hr><p>If the element's <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> is false
- (enabled) then the element's <a href=#activation-behavior>activation behavior</a>
- depends on the element's <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code>
- and <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attributes, as
- follows:</p>
+ (enabled) then the element's <a href=#activation-behavior>activation behavior</a> depends on the element's <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> and <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code>
+ attributes, as follows:</p>
- <dl class=switch><dt>If the element has a <a href=#master-command>master command</a> set by its
- <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute</dt>
+ <dl class=switch><dt>If the element has a <a href=#master-command>master command</a> set by its <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute</dt>
- <dd><p>The user agent must <a href=#run-synthetic-click-activation-steps>run synthetic click activation
- steps</a> on the element's <a href=#master-command>master command</a>.</dd>
- <!-- we know it has a defined <span>activation behavior</span> if
- we get here -->
+ <dd><p>The user agent must <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the element's
+ <a href=#master-command>master command</a>.</dd>
+ <!-- we know it has a defined <span>activation behavior</span> if we get here -->
- <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
- in the <a href=#attr-menuitem-type-state-checkbox title=attr-menuitem-type-state-checkbox>Checkbox</a> state</dt>
+ <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is in the <a href=#attr-menuitem-type-state-checkbox title=attr-menuitem-type-state-checkbox>Checkbox</a> state</dt>
- <dd><p>If the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, the UA must
- remove that attribute. Otherwise, the UA must add a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, with the
- literal value <code title="">checked</code>.</dd>
+ <dd><p>If the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, the UA
+ must remove that attribute. Otherwise, the UA must add a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, with the literal value <code title="">checked</code>.</dd>
- <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
- in the <a href=#attr-menuitem-type-state-radio title=attr-menuitem-type-state-radio>Radio</a> state</dt>
+ <dt>If the <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is in the <a href=#attr-menuitem-type-state-radio title=attr-menuitem-type-state-radio>Radio</a> state</dt>
- <dd><p>If the element has a parent, then the UA must walk the list
- of child nodes of that parent element, and for each node that is a
- <code><a href=#the-menuitem-element>menuitem</a></code> element, if that element has a <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code> attribute whose
- value exactly matches the current element's (treating missing <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code> attributes as if
- they were the empty string), and has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, must remove
- that attribute.</p>
+ <dd><p>If the element has a parent, then the UA must walk the list of child nodes of that parent
+ element, and for each node that is a <code><a href=#the-menuitem-element>menuitem</a></code> element, if that element has a <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code> attribute whose value exactly matches the
+ current element's (treating missing <code title=attr-menuitem-radiogroup><a href=#attr-menuitem-radiogroup>radiogroup</a></code>
+ attributes as if they were the empty string), and has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, must remove that attribute.</p>
- <p>Then, the element's <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute
- must be set to the literal value <code title="">checked</code>.</dd>
+ <p>Then, the element's <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute must be set
+ to the literal value <code title="">checked</code>.</dd>
<dt>Otherwise</dt>
- <dd><p>The element's <a href=#activation-behavior>activation behavior</a> is to do
- nothing.</dd>
+ <dd><p>The element's <a href=#activation-behavior>activation behavior</a> is to do nothing.</dd>
- </dl><p class=note>Firing a synthetic <code title=event-click><a href=#event-click>click</a></code> event at the element does not cause
- any of the actions described above to happen.</p>
+ </dl><p class=note>Firing a synthetic <code title=event-click><a href=#event-click>click</a></code> event at the element
+ does not cause any of the actions described above to happen.</p>
<!-- v2COMMAND: Expose the Triggers facet again. -->
<p>If the element's <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> is true
- (disabled) then the element has no <a href=#activation-behavior>activation
- behavior</a>.</p>
+ (disabled) then the element has no <a href=#activation-behavior>activation behavior</a>.</p>
</div>
@@ -56881,310 +56843,240 @@
<h5 id=using-the-option-element-to-define-a-command><span class=secno>4.11.6.5 </span><dfn title=option-command>Using the <code>option</code> element to define a command</dfn></h5>
- <p>An <code><a href=#the-option-element>option</a></code> element with an ancestor
- <code><a href=#the-select-element>select</a></code> element and either no <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute or a <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute that is not the
- empty string <a href=#concept-command title=concept-command>defines a
- command</a>.</p>
+ <p>An <code><a href=#the-option-element>option</a></code> element with an ancestor <code><a href=#the-select-element>select</a></code> element and either no <code title=attr-option-value><a href=#attr-option-value>value</a></code> attribute or a <code title=attr-option-value><a href=#attr-option-value>value</a></code>
+ attribute that is not the empty string <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "radio" if the <code><a href=#the-option-element>option</a></code>'s nearest ancestor
- <code><a href=#the-select-element>select</a></code> element has no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute, and
- "checkbox" if it does.</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "radio" if the
+ <code><a href=#the-option-element>option</a></code>'s nearest ancestor <code><a href=#the-select-element>select</a></code> element has no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute, and "checkbox" if it does.</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the value of the <code><a href=#the-option-element>option</a></code> element's <code title=attr-option-label><a href=#attr-option-label>label</a></code> attribute, if there is one,
- or else the value of <code><a href=#the-option-element>option</a></code> element's
- <code><a href=#textcontent>textContent</a></code> IDL attribute, with <a href=#strip-leading-and-trailing-whitespace title="strip
- leading and trailing whitespace">leading and trailing whitespace
- stripped</a>, and with any sequences of two or more <a href=#space-character title="space character">space characters</a> replaced by a single
- U+0020 SPACE character.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the value of the
+ <code><a href=#the-option-element>option</a></code> element's <code title=attr-option-label><a href=#attr-option-label>label</a></code> attribute, if there is
+ one, or else the value of <code><a href=#the-option-element>option</a></code> element's <code><a href=#textcontent>textContent</a></code> IDL attribute,
+ with <a href=#strip-leading-and-trailing-whitespace title="strip leading and trailing whitespace">leading and trailing whitespace
+ stripped</a>, and with any sequences of two or more <a href=#space-character title="space character">space
+ characters</a> replaced by a single U+0020 SPACE character.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the string given by the element's <code title=attr-title><a href=#attr-title>title</a></code> attribute, if any, and the empty
- string if the attribute is absent.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the string given by the
+ element's <code title=attr-title><a href=#attr-title>title</a></code> attribute, if any, and the empty string if the
+ attribute is absent.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>, if
- any.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>, if any.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is true (hidden)
+ if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is true if the element is <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, or if its nearest
- ancestor <code><a href=#the-select-element>select</a></code> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, or if it or one of its
- ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is true if
+ the element is <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>, or if its nearest ancestor
+ <code><a href=#the-select-element>select</a></code> element is <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, or if it or one
+ of its ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is true (checked) if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true, and
- false otherwise.</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is true
+ (checked) if the element's <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> is true,
+ and false otherwise.</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command depends on its <a href=#command-facet-type title=command-facet-Type>Type</a>. If the command is of <a href=#command-facet-type title=command-facet-Type>Type</a> "radio" then it must <a href=#concept-select-pick title=concept-select-pick>pick</a> the <code><a href=#the-option-element>option</a></code>
- element. Otherwise, it must <a href=#concept-select-toggle title=concept-select-toggle>toggle</a> the <code><a href=#the-option-element>option</a></code>
- element.</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command depends on its <a href=#command-facet-type title=command-facet-Type>Type</a>. If the command is of <a href=#command-facet-type title=command-facet-Type>Type</a> "radio" then it must <a href=#concept-select-pick title=concept-select-pick>pick</a> the <code><a href=#the-option-element>option</a></code> element. Otherwise, it must <a href=#concept-select-toggle title=concept-select-toggle>toggle</a> the <code><a href=#the-option-element>option</a></code> element.</p>
- <h5 id=using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <dfn title=command-element><code>menuitem</code></dfn> element to define
- a command</h5>
+ <h5 id=using-the-menuitem-element-to-define-a-command><span class=secno>4.11.6.6 </span>Using the <dfn title=command-element><code>menuitem</code></dfn> element to define a
+ command</h5>
-<!--CLEANUP-->
- <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element that does not have a <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element that does not have a <code title=attr-menuitem-command><a href=#attr-menuitem-command>command</a></code> attribute <a href=#concept-command title=concept-command>defines a
+ command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "radio" if the <code><a href=#the-menuitem-element>menuitem</a></code>'s <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
- "<code>radio</code>", "checkbox" if the attribute's value is
- "<code>checkbox</code>", and "command" otherwise.</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "radio" if the
+ <code><a href=#the-menuitem-element>menuitem</a></code>'s <code title=attr-menuitem-type><a href=#attr-menuitem-type>type</a></code> attribute is
+ "<code>radio</code>", "checkbox" if the attribute's value is "<code>checkbox</code>", and
+ "command" otherwise.</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the value of the element's <code title=attr-menuitem-label><a href=#attr-menuitem-label>label</a></code> attribute, if there is one,
- or the empty string if it doesn't.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the value of the element's
+ <code title=attr-menuitem-label><a href=#attr-menuitem-label>label</a></code> attribute, if there is one, or the empty string if
+ it doesn't.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the string given by the element's <code title=attr-menuitem-title><a href=#attr-menuitem-title>title</a></code> attribute, if any, and the
- empty string if the attribute is absent.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the string given by the
+ element's <code title=attr-menuitem-title><a href=#attr-menuitem-title>title</a></code> attribute, if any, and the empty string
+ if the attribute is absent.</p>
- <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command
- is the <a href=#absolute-url>absolute URL</a> obtained from <a href=#resolve-a-url title="resolve
- a url">resolving</a> the value of the element's <code title=attr-menuitem-icon><a href=#attr-menuitem-icon>icon</a></code> attribute, relative to the
- element, if it has such an attribute and resolving it is
- successful. Otherwise, there is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
+ <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command is the <a href=#absolute-url>absolute
+ URL</a> obtained from <a href=#resolve-a-url title="resolve a url">resolving</a> the value of the element's
+ <code title=attr-menuitem-icon><a href=#attr-menuitem-icon>icon</a></code> attribute, relative to the element, if it has such an
+ attribute and resolving it is successful. Otherwise, there is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>, if
- any.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>, if any.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is true (hidden)
+ if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is true if the element or one of its
- ancestors is <a href=#inert>inert</a>, or if the element has a <code title=attr-menuitem-disabled><a href=#attr-menuitem-disabled>disabled</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is true if
+ the element or one of its ancestors is <a href=#inert>inert</a>, or if the element has a <code title=attr-menuitem-disabled><a href=#attr-menuitem-disabled>disabled</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is true (checked) if the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is true
+ (checked) if the element has a <code title=attr-menuitem-checked><a href=#attr-menuitem-checked>checked</a></code> attribute, and
+ false otherwise.</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command, if the element has a defined <a href=#activation-behavior>activation
- behavior</a><!-- it doesn't if the element is disabled -->, is to <a href=#run-synthetic-click-activation-steps>run synthetic click activation
- steps</a> on the element. Otherwise, it is just to <a href=#fire-a-click-event>fire a
- <code title=event-click>click</code> event</a> at the
- element.</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command, if the element has a
+ defined <a href=#activation-behavior>activation behavior</a><!-- it doesn't if the element is disabled -->, is to
+ <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the element. Otherwise, it is just to
+ <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element.</p>
- <h5 id=using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span><dfn title=command-menuitem-command>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define a command indirectly</dfn></h5>
+ <h5 id=using-the-command-attribute-on-menuitem-elements-to-define-a-command-indirectly><span class=secno>4.11.6.7 </span><dfn title=command-menuitem-command>Using the <code title=attr-menuitem-command>command</code> attribute on <code>menuitem</code> elements to define
+ a command indirectly</dfn></h5>
- <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element with a <a href=#master-command>master command</a>
- <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>A <code><a href=#the-menuitem-element>menuitem</a></code> element with a <a href=#master-command>master command</a> <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is the <a href=#command-facet-type title=command-facet-Type>Type</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is the <a href=#command-facet-type title=command-facet-Type>Type</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the <a href=#command-facet-label title=command-facet-Label>Label</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the <a href=#command-facet-label title=command-facet-Label>Label</a> of the <a href=#master-command>master command</a>.</p>
- <p>If the element has a <code title=attr-title><a href=#attr-title>title</a></code>
- attribute, then the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of
- the command is the value of that <code title=attr-title><a href=#attr-title>title</a></code> attribute. Otherwise, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the <a href=#master-command>master
- command</a>.</p>
+ <p>If the element has a <code title=attr-title><a href=#attr-title>title</a></code> attribute, then the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of that <code title=attr-title><a href=#attr-title>title</a></code> attribute. Otherwise, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the command
- is the <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the command is the <a href=#command-facet-icon title=command-facet-Icon>Icon</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>, if
- any.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>, if any.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is the <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden
- State</a> of the <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is the <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is the <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is the <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked
- State</a> of the command is the <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the
- <a href=#master-command>master command</a>.</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is the <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the <a href=#master-command>master command</a>.</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command is to invoke the <a href=#command-facet-action title=command-facet-Action>Action</a> of the <a href=#master-command>master
- command</a>.</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command is to invoke the <a href=#command-facet-action title=command-facet-Action>Action</a> of the <a href=#master-command>master command</a>.</p>
- <h5 id=using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span><dfn title=label-command>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>label</code> element to define a command</dfn></h5>
+ <h5 id=using-the-accesskey-attribute-on-a-label-element-to-define-a-command><span class=secno>4.11.6.8 </span><dfn title=label-command>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>label</code> element to define a command</dfn></h5>
- <p>A <code><a href=#the-label-element>label</a></code> element that has an <a href=#assigned-access-key>assigned access
- key</a> and a <a href=#labeled-control>labeled control</a> and whose
- <a href=#labeled-control>labeled control</a> <a href=#concept-command title=concept-command>defines a
- command</a>, itself <a href=#concept-command title=concept-command>defines a
- command</a>.</p>
+ <p>A <code><a href=#the-label-element>label</a></code> element that has an <a href=#assigned-access-key>assigned access key</a> and a <a href=#labeled-control>labeled
+ control</a> and whose <a href=#labeled-control>labeled control</a> <a href=#concept-command title=concept-command>defines a
+ command</a>, itself <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "command".</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "command".</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the string given by the element's <code><a href=#textcontent>textContent</a></code> IDL
- attribute.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the string given by the
+ element's <code><a href=#textcontent>textContent</a></code> IDL attribute.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute
- of the element.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute of the element.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>,
- <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and
- <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the
- command are the same as the respective facets of the element's
- <a href=#labeled-control>labeled control</a>.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>, <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the command are the same as the respective
+ facets of the element's <a href=#labeled-control>labeled control</a>.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is always
+ false. (The command is never checked.)</p>
- <h5 id=using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span><dfn title=legend-command>Using the <code title=attr-accesskey>accesskey</code> attribute on a <code>legend</code> element to define a command</dfn></h5>
+ <h5 id=using-the-accesskey-attribute-on-a-legend-element-to-define-a-command><span class=secno>4.11.6.9 </span><dfn title=legend-command>Using the <code title=attr-accesskey>accesskey</code> attribute
+ on a <code>legend</code> element to define a command</dfn></h5>
- <p>A <code><a href=#the-legend-element>legend</a></code> element that has an <a href=#assigned-access-key>assigned access
- key</a> and is a child of a <code><a href=#the-fieldset-element>fieldset</a></code> element that
- has a descendant that is not a descendant of the <code><a href=#the-legend-element>legend</a></code>
- element and is neither a <code><a href=#the-label-element>label</a></code> element nor a
- <code><a href=#the-legend-element>legend</a></code> element but that <a href=#concept-command title=concept-command>defines a command</a>, itself <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>A <code><a href=#the-legend-element>legend</a></code> element that has an <a href=#assigned-access-key>assigned access key</a> and is a child of a
+ <code><a href=#the-fieldset-element>fieldset</a></code> element that has a descendant that is not a descendant of the
+ <code><a href=#the-legend-element>legend</a></code> element and is neither a <code><a href=#the-label-element>label</a></code> element nor a <code><a href=#the-legend-element>legend</a></code>
+ element but that <a href=#concept-command title=concept-command>defines a command</a>, itself <a href=#concept-command title=concept-command>defines a command</a>.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "command".</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "command".</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- is the string given by the element's <code><a href=#textcontent>textContent</a></code> IDL
- attribute.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command is the string given by the
+ element's <code><a href=#textcontent>textContent</a></code> IDL attribute.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute
- of the element.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute of the element.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>,
- <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and
- <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the
- command are the same as the respective facets of the first element
- in <a href=#tree-order>tree order</a> that is a descendant of the parent of the
- <code><a href=#the-legend-element>legend</a></code> element that <a href=#concept-command title=concept-command>defines a command</a> but is not a
- descendant of the <code><a href=#the-legend-element>legend</a></code> element and is neither a
- <code><a href=#the-label-element>label</a></code> nor a <code><a href=#the-legend-element>legend</a></code> element.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>, <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a>, and <a href=#command-facet-action title=command-facet-Action>Action</a> facets of the command are the same as the respective
+ facets of the first element in <a href=#tree-order>tree order</a> that is a descendant of the parent of the
+ <code><a href=#the-legend-element>legend</a></code> element that <a href=#concept-command title=concept-command>defines a command</a> but is not
+ a descendant of the <code><a href=#the-legend-element>legend</a></code> element and is neither a <code><a href=#the-label-element>label</a></code> nor a
+ <code><a href=#the-legend-element>legend</a></code> element.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is always
+ false. (The command is never checked.)</p>
- <h5 id=using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span><dfn title=accesskey-command>Using the <code title=attr-accesskey>accesskey</code> attribute to define a command on other elements</dfn></h5>
+ <h5 id=using-the-accesskey-attribute-to-define-a-command-on-other-elements><span class=secno>4.11.6.10 </span><dfn title=accesskey-command>Using the <code title=attr-accesskey>accesskey</code>
+ attribute to define a command on other elements</dfn></h5>
- <p>An element that has an <a href=#assigned-access-key>assigned access key</a> <a href=#concept-command title=concept-command>defines a command</a>.</p>
+ <p>An element that has an <a href=#assigned-access-key>assigned access key</a> <a href=#concept-command title=concept-command>defines a
+ command</a>.</p>
- <p>If one of the earlier sections that define elements that <a href=#concept-command title=concept-command>define commands</a> define that this
- element <a href=#concept-command title=concept-command>defines a command</a>, then
- that section applies to this element, and this section does not.
- Otherwise, this section applies to that element.</p>
+ <p>If one of the earlier sections that define elements that <a href=#concept-command title=concept-command>define
+ commands</a> define that this element <a href=#concept-command title=concept-command>defines a command</a>,
+ then that section applies to this element, and this section does not. Otherwise, this section
+ applies to that element.</p>
- <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command
- is "command".</p>
+ <p>The <a href=#command-facet-type title=command-facet-Type>Type</a> of the command is "command".</p>
- <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is
- the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <a href=#anonymous-command>anonymous command</a>.</p>
+ <p>The <a href=#command-facet-id title=command-facet-ID>ID</a> of the command is the value of the <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <a href=#anonymous-command>anonymous command</a>.</p>
- <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command
- depends on the element. If the element is a <a href=#labeled-control>labeled
- control</a>, the <code><a href=#textcontent>textContent</a></code> of the first
- <code><a href=#the-label-element>label</a></code> element in <a href=#tree-order>tree order</a> whose
- <a href=#labeled-control>labeled control</a> is the element in question is the <a href=#command-facet-label title=command-facet-Label>Label</a> (in DOM terms, this is the
- string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise, the
- <a href=#command-facet-label title=command-facet-Label>Label</a> is the
- <code><a href=#textcontent>textContent</a></code> of the element itself.</p>
+ <p>The <a href=#command-facet-label title=command-facet-Label>Label</a> of the command depends on the element. If
+ the element is a <a href=#labeled-control>labeled control</a>, the <code><a href=#textcontent>textContent</a></code> of the first
+ <code><a href=#the-label-element>label</a></code> element in <a href=#tree-order>tree order</a> whose <a href=#labeled-control>labeled control</a> is the
+ element in question is the <a href=#command-facet-label title=command-facet-Label>Label</a> (in DOM terms, this is
+ the string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise,
+ the <a href=#command-facet-label title=command-facet-Label>Label</a> is the <code><a href=#textcontent>textContent</a></code> of the element
+ itself.</p>
- <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command
- is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute
- of the element. If the attribute is not present, the <a href=#command-facet-hint title=command-facet-Hint>Hint</a> is the empty string.</p>
+ <p>The <a href=#command-facet-hint title=command-facet-Hint>Hint</a> of the command is the value of the <code title=attr-title><a href=#attr-title>title</a></code> attribute of the element. If the attribute is not present, the
+ <a href=#command-facet-hint title=command-facet-Hint>Hint</a> is the empty string.</p>
- <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the
- command.</p>
+ <p>There is no <a href=#command-facet-icon title=command-facet-Icon>Icon</a> for the command.</p>
- <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the
- command is the element's <a href=#assigned-access-key>assigned access key</a>.</p>
+ <p>The <a href=#command-facet-accesskey title=command-facet-AccessKey>AccessKey</a> of the command is the element's
+ <a href=#assigned-access-key>assigned access key</a>.</p>
- <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a>
- of the command is true (hidden) if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false
- otherwise.</p>
+ <p>The <a href=#command-facet-hiddenstate title=command-facet-HiddenState>Hidden State</a> of the command is true (hidden)
+ if the element has a <code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code> attribute, and false otherwise.</p>
- <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
- State</a> of the command is true if the element or one of its
- ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
+ <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled State</a> of the command is true if
+ the element or one of its ancestors is <a href=#inert>inert</a>, and false otherwise.</p>
- <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <a href=#command-facet-checkedstate title=command-facet-CheckedState>Checked State</a> of the command is always
+ false. (The command is never checked.)</p>
- <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the
- command is to run the following steps:</p>
+ <p>The <a href=#command-facet-action title=command-facet-Action>Action</a> of the command is to run the following
+ steps:</p>
- <ol><li>If the element is <a href=#focusable>focusable</a>, run the
- <a href=#focusing-steps>focusing steps</a> for the element.</li>
-
- <li>If the element has a defined <a href=#activation-behavior>activation behavior</a>,
- <a href=#run-synthetic-click-activation-steps>run synthetic click activation steps</a> on the
+ <ol><li>If the element is <a href=#focusable>focusable</a>, run the <a href=#focusing-steps>focusing steps</a> for the
element.</li>
- <li>Otherwise, if the element does not have a defined
- <a href=#activation-behavior>activation behavior</a>, <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element.</li>
+ <li>If the element has a defined <a href=#activation-behavior>activation behavior</a>, <a href=#run-synthetic-click-activation-steps>run synthetic click
+ activation steps</a> on the element.</li>
+ <li>Otherwise, if the element does not have a defined <a href=#activation-behavior>activation behavior</a>,
+ <a href=#fire-a-click-event>fire a <code title=event-click>click</code> event</a> at the element.</li>
+
</ol></div>
@@ -83051,70 +82943,56 @@
<a href=#storage-0>Storage</a>? storageArea;
};</pre>
- <p>The <dfn id=dom-storageevent-key title=dom-StorageEvent-key><code>key</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
+ <p>The <dfn id=dom-storageevent-key title=dom-StorageEvent-key><code>key</code></dfn> attribute must return the value it
+ was initialized to. When the object is created, this attribute must be initialized to null. It
represents the key being changed.</p>
- <p>The <dfn id=dom-storageevent-oldvalue title=dom-StorageEvent-oldValue><code>oldValue</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the old value of the key being changed.</p>
+ <p>The <dfn id=dom-storageevent-oldvalue title=dom-StorageEvent-oldValue><code>oldValue</code></dfn> attribute must return
+ the value it was initialized to. When the object is created, this attribute must be initialized to
+ null. It represents the old value of the key being changed.</p>
- <p>The <dfn id=dom-storageevent-newvalue title=dom-StorageEvent-newValue><code>newValue</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the new value of the key being changed.</p>
+ <p>The <dfn id=dom-storageevent-newvalue title=dom-StorageEvent-newValue><code>newValue</code></dfn> attribute must return
+ the value it was initialized to. When the object is created, this attribute must be initialized to
+ null. It represents the new value of the key being changed.</p>
- <p>The <dfn id=dom-storageevent-url title=dom-StorageEvent-url><code>url</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to the empty
- string. It represents the address of the document whose key
- changed.</p>
+ <p>The <dfn id=dom-storageevent-url title=dom-StorageEvent-url><code>url</code></dfn> attribute must return the value it
+ was initialized to. When the object is created, this attribute must be initialized to the empty
+ string. It represents the address of the document whose key changed.</p>
- <p>The <dfn id=dom-storageevent-storagearea title=dom-StorageEvent-storageArea><code>storageArea</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the <code><a href=#storage-0>Storage</a></code> object that was affected.</p>
+ <p>The <dfn id=dom-storageevent-storagearea title=dom-StorageEvent-storageArea><code>storageArea</code></dfn> attribute must
+ return the value it was initialized to. When the object is created, this attribute must be
+ initialized to null. It represents the <code><a href=#storage-0>Storage</a></code> object that was affected.</p>
<h4 id=threads><span class=secno>11.2.5 </span>Threads</h4>
- <p>Because of <a href=#localStorageMutex>the use</a> of the
- <a href=#storage-mutex>storage mutex</a>, multiple browsing contexts will be able
- to access the local storage areas simultaneously in such a manner
+ <p>Because of <a href=#localStorageMutex>the use</a> of the <a href=#storage-mutex>storage mutex</a>, multiple
+ browsing contexts will be able to access the local storage areas simultaneously in such a manner
that scripts cannot detect any concurrent script execution.</p>
- <p>Thus, the <code title=dom-Storage-length><a href=#dom-storage-length>length</a></code>
- attribute of a <code><a href=#storage-0>Storage</a></code> object, and the value of the
- various properties of that object, cannot change while a script is
- executing, other than in a way that is predictable by the script
- itself.</p>
+ <p>Thus, the <code title=dom-Storage-length><a href=#dom-storage-length>length</a></code> attribute of a <code><a href=#storage-0>Storage</a></code>
+ object, and the value of the various properties of that object, cannot change while a script is
+ executing, other than in a way that is predictable by the script itself.</p>
<h3 id=disk-space-0><span class=secno>11.3 </span>Disk space</h3>
-<!--CLEANUP-->
- <p>User agents should limit the total amount of space allowed for
- storage areas, because hostile authors could otherwise use this feature to exhaust the user's available disk space.</p>
+ <p>User agents should limit the total amount of space allowed for storage areas, because hostile
+ authors could otherwise use this feature to exhaust the user's available disk space.</p>
- <p>User agents should guard against sites storing data under their
- origin's other affiliated sites, e.g. storing up to the limit in
- a1.example.com, a2.example.com, a3.example.com, etc, circumventing
- the main example.com storage limit.</p>
+ <p>User agents should guard against sites storing data under their origin's other affiliated
+ sites, e.g. storing up to the limit in a1.example.com, a2.example.com, a3.example.com, etc,
+ circumventing the main example.com storage limit.</p>
- <p>User agents may prompt the user when quotas are reached, allowing
- the user to grant a site more space. This enables sites to store
- many user-created documents on the user's computer, for
+ <p>User agents may prompt the user when quotas are reached, allowing the user to grant a site more
+ space. This enables sites to store many user-created documents on the user's computer, for
instance.</p>
- <p>User agents should allow users to see how much space each domain
- is using.</p>
+ <p>User agents should allow users to see how much space each domain is using.</p>
<!--<p>If the storage area space limit is reached during a <code
- title="dom-Storage-setItem">setItem()</code> call, the method will
- throw an exception.</p>-->
+ title="dom-Storage-setItem">setItem()</code> call, the method will throw an exception.</p>-->
<p>A mostly arbitrary limit of five megabytes per <a href=#origin>origin</a> is suggested. Implementation
feedback is welcome and will be used to update this suggestion in the future.</p>
@@ -83124,26 +83002,21 @@
<h4 id=user-tracking><span class=secno>11.4.1 </span>User tracking</h4>
- <p>A third-party advertiser (or any entity capable of getting
- content distributed to multiple sites) could use a unique identifier
- stored in its local storage area to track a user across multiple
- sessions, building a profile of the user's interests to allow for
- highly targeted advertising. In conjunction with a site that is
- aware of the user's real identity (for example an e-commerce site
- that requires authenticated credentials), this could allow
- oppressive groups to target individuals with greater accuracy than
- in a world with purely anonymous Web usage.</p>
+ <p>A third-party advertiser (or any entity capable of getting content distributed to multiple
+ sites) could use a unique identifier stored in its local storage area to track a user across
+ multiple sessions, building a profile of the user's interests to allow for highly targeted
+ advertising. In conjunction with a site that is aware of the user's real identity (for example an
+ e-commerce site that requires authenticated credentials), this could allow oppressive groups to
+ target individuals with greater accuracy than in a world with purely anonymous Web usage.</p>
- <p>There are a number of techniques that can be used to mitigate the
- risk of user tracking:</p>
+ <p>There are a number of techniques that can be used to mitigate the risk of user tracking:</p>
<dl><dt>Blocking third-party storage</dt>
<dd>
- <p>User agents may restrict access to the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code> objects to scripts
- originating at the domain of the top-level document of the
- <a href=#browsing-context>browsing context</a>, for instance denying access to the
- API for pages from other domains running in
+ <p>User agents may restrict access to the <code title=dom-localStorage><a href=#dom-localstorage>localStorage</a></code>
+ objects to scripts originating at the domain of the top-level document of the <a href=#browsing-context>browsing
+ context</a>, for instance denying access to the API for pages from other domains running in
<code><a href=#the-iframe-element>iframe</a></code>s.</p>
</dd>
@@ -83154,42 +83027,35 @@
<p>User agents may, possibly in a manner configured by the user, automatically delete stored
data after a period of time.</p>
- <p>For example, a user agent could be configured to treat
- third-party local storage areas as session-only storage, deleting
- the data once the user had closed all the <a href=#browsing-context title="browsing
+ <p>For example, a user agent could be configured to treat third-party local storage areas as
+ session-only storage, deleting the data once the user had closed all the <a href=#browsing-context title="browsing
context">browsing contexts</a> that could access it.</p>
- <p>This can restrict the ability of a site to track a user, as the
- site would then only be able to track the user across multiple
- sessions when he authenticates with the site itself (e.g. by
+ <p>This can restrict the ability of a site to track a user, as the site would then only be able
+ to track the user across multiple sessions when he authenticates with the site itself (e.g. by
making a purchase or logging in to a service).</p>
- <p>However, this also reduces the usefulness of the API as a
- long-term storage mechanism. It can also put the user's data at
- risk, if the user does not fully understand the implications of
- data expiration.</p>
+ <p>However, this also reduces the usefulness of the API as a long-term storage mechanism. It can
+ also put the user's data at risk, if the user does not fully understand the implications of data
+ expiration.</p>
- <!--v2 consider adding an explicit way for sites to state when
- data should expire, as in localStorage.expireData(365); -->
+ <!--v2 consider adding an explicit way for sites to state when data should expire, as in
+ localStorage.expireData(365); -->
</dd>
<dt>Treating persistent storage as cookies</dt>
<dd>
- <p>If users attempt to protect their privacy by clearing cookies
- without also clearing data stored in the local storage area, sites
- can defeat those attempts by using the two features as redundant
- backup for each other. User agents should present the interfaces
- for clearing these in a way that helps users to understand this
- possibility and enables them to delete data in all persistent
- storage features simultaneously. <a href=#refsCOOKIES>[COOKIES]</a></p>
+ <p>If users attempt to protect their privacy by clearing cookies without also clearing data
+ stored in the local storage area, sites can defeat those attempts by using the two features as
+ redundant backup for each other. User agents should present the interfaces for clearing these in
+ a way that helps users to understand this possibility and enables them to delete data in all
+ persistent storage features simultaneously. <a href=#refsCOOKIES>[COOKIES]</a></p>
</dd>
- <dt>Site-specific white-listing of access to local storage
- areas</dt>
- <dd>
+ <dt>Site-specific white-listing of access to local storage areas</dt> <dd>
<p>User agents may allow sites to access session storage areas in
an unrestricted manner, but require the user to authorize access
@@ -83200,58 +83066,47 @@
<dt>Origin-tracking of stored data</dt>
<dd>
- <p>User agents may record the <a href=#origin title=origin>origins</a>
- of sites that contained content from third-party origins that
- caused data to be stored.</p>
+ <p>User agents may record the <a href=#origin title=origin>origins</a> of sites that contained
+ content from third-party origins that caused data to be stored.</p>
- <p>If this information is then used to present the view of data
- currently in persistent storage, it would allow the user to make
- informed decisions about which parts of the persistent storage to
- prune. Combined with a blacklist ("delete this data and prevent
- this domain from ever storing data again"), the user can restrict
- the use of persistent storage to sites that he trusts.</p>
+ <p>If this information is then used to present the view of data currently in persistent storage,
+ it would allow the user to make informed decisions about which parts of the persistent storage
+ to prune. Combined with a blacklist ("delete this data and prevent this domain from ever storing
+ data again"), the user can restrict the use of persistent storage to sites that he trusts.</p>
</dd>
<dt>Shared blacklists</dt>
<dd>
- <p>User agents may allow users to share their persistent storage
- domain blacklists.</p>
+ <p>User agents may allow users to share their persistent storage domain blacklists.</p>
- <p>This would allow communities to act together to protect their
- privacy.</p>
+ <p>This would allow communities to act together to protect their privacy.</p>
</dd>
- </dl><p>While these suggestions prevent trivial use of this API for user
- tracking, they do not block it altogether. Within a single domain, a
- site can continue to track the user during a session, and can then
- pass all this information to the third party along with any
- identifying information (names, credit card numbers, addresses)
- obtained by the site. If a third party cooperates with multiple
- sites to obtain such information, a profile can still be
- created.</p>
+ </dl><p>While these suggestions prevent trivial use of this API for user tracking, they do not block it
+ altogether. Within a single domain, a site can continue to track the user during a session, and
+ can then pass all this information to the third party along with any identifying information
+ (names, credit card numbers, addresses) obtained by the site. If a third party cooperates with
+ multiple sites to obtain such information, a profile can still be created.</p>
- <p>However, user tracking is to some extent possible even with no
- cooperation from the user agent whatsoever, for instance by using
- session identifiers in URLs, a technique already commonly used for
- innocuous purposes but easily repurposed for user tracking (even
- retroactively). This information can then be shared with other
- sites, using visitors' IP addresses and other user-specific data
- (e.g. user-agent headers and configuration settings) to combine
- separate sessions into coherent user profiles.</p>
+ <p>However, user tracking is to some extent possible even with no cooperation from the user agent
+ whatsoever, for instance by using session identifiers in URLs, a technique already commonly used
+ for innocuous purposes but easily repurposed for user tracking (even retroactively). This
+ information can then be shared with other sites, using visitors' IP addresses and other
+ user-specific data (e.g. user-agent headers and configuration settings) to combine separate
+ sessions into coherent user profiles.</p>
<h4 id=sensitivity-of-data><span class=secno>11.4.2 </span>Sensitivity of data</h4>
- <p>User agents should treat persistently stored data as potentially
- sensitive; it's quite possible for e-mails, calendar appointments,
- health records, or other confidential documents to be stored in this
- mechanism.</p>
+ <p>User agents should treat persistently stored data as potentially sensitive; it's quite possible
+ for e-mails, calendar appointments, health records, or other confidential documents to be stored
+ in this mechanism.</p>
- <p>To this end, user agents should ensure that when deleting data,
- it is promptly deleted from the underlying storage.</p>
+ <p>To this end, user agents should ensure that when deleting data, it is promptly deleted from the
+ underlying storage.</p>
<!--ADD-TOPIC:Security-->
@@ -83259,12 +83114,10 @@
<h4 id=dns-spoofing-attacks><span class=secno>11.5.1 </span>DNS spoofing attacks</h4>
- <p>Because of the potential for DNS spoofing attacks, one cannot
- guarantee that a host claiming to be in a certain domain really is
- from that domain. To mitigate this, pages can use TLS. Pages using
- TLS can be sure that only the user, software working on behalf of
- the user, and other pages using TLS that have certificates
- identifying them as being from the same domain, can access their
+ <p>Because of the potential for DNS spoofing attacks, one cannot guarantee that a host claiming to
+ be in a certain domain really is from that domain. To mitigate this, pages can use TLS. Pages
+ using TLS can be sure that only the user, software working on behalf of the user, and other pages
+ using TLS that have certificates identifying them as being from the same domain, can access their
storage areas.</p>
@@ -83275,35 +83128,29 @@
the access by pathname. Authors on shared hosts are therefore urged to avoid using these features,
as it would be trivial for other authors to read the data and overwrite it.</p>
- <p class=note>Even if a path-restriction feature was made
- available, the usual DOM scripting security model would make it
- trivial to bypass this protection and access the data from any
+ <p class=note>Even if a path-restriction feature was made available, the usual DOM scripting
+ security model would make it trivial to bypass this protection and access the data from any
path.</p>
<h4 id=implementation-risks><span class=secno>11.5.3 </span>Implementation risks</h4>
- <p>The two primary risks when implementing these persistent storage
- features are letting hostile sites read information from other
- domains, and letting hostile sites write information that is then
- read from other domains.</p>
+ <p>The two primary risks when implementing these persistent storage features are letting hostile
+ sites read information from other domains, and letting hostile sites write information that is
+ then read from other domains.</p>
- <p>Letting third-party sites read data that is not supposed to be
- read from their domain causes <em>information leakage</em>, For
- example, a user's shopping wishlist on one domain could be used by
- another domain for targeted advertising; or a user's
- work-in-progress confidential documents stored by a word-processing
- site could be examined by the site of a competing company.</p>
+ <p>Letting third-party sites read data that is not supposed to be read from their domain causes
+ <em>information leakage</em>, For example, a user's shopping wishlist on one domain could be used
+ by another domain for targeted advertising; or a user's work-in-progress confidential documents
+ stored by a word-processing site could be examined by the site of a competing company.</p>
- <p>Letting third-party sites write data to the persistent storage of
- other domains can result in <em>information spoofing</em>, which is
- equally dangerous. For example, a hostile site could add items to a
- user's wishlist; or a hostile site could set a user's session
- identifier to a known ID that the hostile site can then use to track
- the user's actions on the victim site.</p>
+ <p>Letting third-party sites write data to the persistent storage of other domains can result in
+ <em>information spoofing</em>, which is equally dangerous. For example, a hostile site could add
+ items to a user's wishlist; or a hostile site could set a user's session identifier to a known ID
+ that the hostile site can then use to track the user's actions on the victim site.</p>
- <p>Thus, strictly following the <a href=#origin>origin</a> model described
- in this specification is important for user security.</p>
+ <p>Thus, strictly following the <a href=#origin>origin</a> model described in this specification is
+ important for user security.</p>
<!--REMOVE-TOPIC:Security-->
@@ -83314,20 +83161,18 @@
<h2 id=syntax><span class=secno>12 </span><dfn>The HTML syntax</dfn></h2>
- <p class=note>This section only describes the rules for resources
- labeled with an <a href=#html-mime-type>HTML MIME type</a>. Rules for XML resources
- are discussed in the section below entitled "<a href=#the-xhtml-syntax>The XHTML
- syntax</a>".</p>
+ <p class=note>This section only describes the rules for resources labeled with an <a href=#html-mime-type>HTML
+ MIME type</a>. Rules for XML resources are discussed in the section below entitled "<a href=#the-xhtml-syntax>The
+ XHTML syntax</a>".</p>
<h3 id=writing><span class=secno>12.1 </span>Writing HTML documents</h3>
<div class=impl>
- <p><i>This section only applies to documents, authoring tools, and
- markup generators. In particular, it does not apply to conformance
- checkers; conformance checkers must use the requirements given in
- the next section ("parsing HTML documents").</i></p>
+ <p><i>This section only applies to documents, authoring tools, and markup generators. In
+ particular, it does not apply to conformance checkers; conformance checkers must use the
+ requirements given in the next section ("parsing HTML documents").</i></p>
</div>
@@ -83336,41 +83181,36 @@
<ol><li>Optionally, a single U+FEFF BYTE ORDER MARK (BOM) character.</li>
- <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and <a href=#space-character title="space
+ character">space characters</a>.</li>
<li>A <a href=#syntax-doctype title=syntax-doctype>DOCTYPE</a>.
- <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and <a href=#space-character title="space
+ character">space characters</a>.</li>
<li>The root element, in the form of an <code><a href=#the-html-element>html</a></code> <a href=#syntax-elements title=syntax-elements>element</a>.</li>
- <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and
- <a href=#space-character title="space character">space characters</a>.</li>
+ <li>Any number of <a href=#syntax-comments title=syntax-comments>comments</a> and <a href=#space-character title="space
+ character">space characters</a>.</li>
- </ol><p>The various types of content mentioned above are described in the
- next few sections.</p>
+ </ol><p>The various types of content mentioned above are described in the next few sections.</p>
- <p>In addition, there are some restrictions on how <a href=#character-encoding-declaration title="character encoding declaration">character encoding
- declarations</a> are to be serialized, as discussed in the
+ <p>In addition, there are some restrictions on how <a href=#character-encoding-declaration title="character encoding
+ declaration">character encoding declarations</a> are to be serialized, as discussed in the
section on that topic.</p>
<div class=note>
- <p>Space characters before the root <code><a href=#the-html-element>html</a></code> element, and
- space characters at the start of the <code><a href=#the-html-element>html</a></code> element and
- before the <code><a href=#the-head-element>head</a></code> element, will be dropped when the
- document is parsed; space characters <em>after</em> the root
- <code><a href=#the-html-element>html</a></code> element will be parsed as if they were at the end
- of the <code><a href=#the-body-element>body</a></code> element. Thus, space characters around the
- root element do not round-trip.</p>
+ <p>Space characters before the root <code><a href=#the-html-element>html</a></code> element, and space characters at the start
+ of the <code><a href=#the-html-element>html</a></code> element and before the <code><a href=#the-head-element>head</a></code> element, will be dropped when
+ the document is parsed; space characters <em>after</em> the root <code><a href=#the-html-element>html</a></code> element will
+ be parsed as if they were at the end of the <code><a href=#the-body-element>body</a></code> element. Thus, space characters
+ around the root element do not round-trip.</p>
- <p>It is suggested that newlines be inserted after the DOCTYPE,
- after any comments that are before the root element, after the
- <code><a href=#the-html-element>html</a></code> element's start tag (if it is not <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>), and after any comments
- that are inside the <code><a href=#the-html-element>html</a></code> element but before the
- <code><a href=#the-head-element>head</a></code> element.</p>
+ <p>It is suggested that newlines be inserted after the DOCTYPE, after any comments that are
+ before the root element, after the <code><a href=#the-html-element>html</a></code> element's start tag (if it is not <a href=#syntax-tag-omission title=syntax-tag-omission>omitted</a>), and after any comments that are inside the
+ <code><a href=#the-html-element>html</a></code> element but before the <code><a href=#the-head-element>head</a></code> element.</p>
</div>
@@ -83382,17 +83222,15 @@
<h4 id=the-doctype><span class=secno>12.1.1 </span>The DOCTYPE</h4>
- <p>A <dfn id=syntax-doctype title=syntax-doctype>DOCTYPE</dfn> is a <!-- mostly
- useless but nonetheless --> required preamble.</p>
+ <p>A <dfn id=syntax-doctype title=syntax-doctype>DOCTYPE</dfn> is a <!-- mostly useless but nonetheless -->
+ required preamble.</p>
- <p class=note>DOCTYPEs are required for legacy reasons. When
- omitted, browsers tend to use a different rendering mode that is
- incompatible with some specifications. Including the DOCTYPE in a
- document ensures that the browser makes a best-effort attempt at
- following the relevant specifications.</p>
+ <p class=note>DOCTYPEs are required for legacy reasons. When omitted, browsers tend to use a
+ different rendering mode that is incompatible with some specifications. Including the DOCTYPE in a
+ document ensures that the browser makes a best-effort attempt at following the relevant
+ specifications.</p>
- <p>A DOCTYPE must consist of the following components, in this
- order:</p>
+ <p>A DOCTYPE must consist of the following components, in this order:</p>
<ol class=brief><li>A string that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title=""><!DOCTYPE</code>".</li>
<li>One or more <a href=#space-character title="space character">space characters</a>.</li>
@@ -83400,8 +83238,7 @@
<li>Optionally, a <a href=#doctype-legacy-string>DOCTYPE legacy string</a> or an <a href=#obsolete-permitted-doctype-string>obsolete permitted DOCTYPE string</a> (defined below).</li>
<li>Zero or more <a href=#space-character title="space character">space characters</a>.</li>
<li>A U+003E GREATER-THAN SIGN character (>).</li>
- </ol><p class=note>In other words, <code><!DOCTYPE html></code>,
- case-insensitively.</p>
+ </ol><p class=note>In other words, <code><!DOCTYPE html></code>, case-insensitively.</p>
<hr><p>For the purposes of HTML generators that cannot output HTML
markup with the short DOCTYPE "<code title=""><!DOCTYPE
Modified: source
===================================================================
--- source 2013-04-12 19:38:21 UTC (rev 7818)
+++ source 2013-04-12 21:29:07 UTC (rev 7819)
@@ -52313,16 +52313,14 @@
<!--END dev-html--><p><i>This section is non-normative.</i></p><!--START dev-html-->
- <p>Some devices, in particular those with on-screen keyboards and
- those in locales with languages with many characters (e.g.
- Japanese), can provide the user with multiple input modalities. For
- example, when typing in a credit card number the user may wish to
- only see keys for digits 0-9, while when typing in their name they
- may wish to see a form field that by default capitalises each
+ <p>Some devices, in particular those with on-screen keyboards and those in locales with languages
+ with many characters (e.g. Japanese), can provide the user with multiple input modalities. For
+ example, when typing in a credit card number the user may wish to only see keys for digits 0-9,
+ while when typing in their name they may wish to see a form field that by default capitalises each
word.</p>
- <p>Using the <code title="attr-fe-inputmode">inputmode</code>
- attribute we can select appropriate input modalities:</p>
+ <p>Using the <code title="attr-fe-inputmode">inputmode</code> attribute we can select appropriate
+ input modalities:</p>
<pre><form method="post"
enctype="application/x-www-form-urlencoded"
@@ -52356,49 +52354,40 @@
<p>The <code title="attr-input-type">type</code>, <code
title="attr-fe-autocomplete">autocomplete</code>, and <code
- title="attr-fe-inputmode">inputmode</code> attributes can seem
- confusingly similar. For instance, in all three cases, the string
- "<code title="">email</code>" is a valid value. This section
- attempts to illustrate the difference between the three attributes
- and provides advice suggesting how to use them.</p>
+ title="attr-fe-inputmode">inputmode</code> attributes can seem confusingly similar. For instance,
+ in all three cases, the string "<code title="">email</code>" is a valid value. This section
+ attempts to illustrate the difference between the three attributes and provides advice suggesting
+ how to use them.</p>
- <p>The <code title="attr-input-type">type</code> attribute on
- <code>input</code> elements decides what kind of control the user
- agent will use to expose the field. Chosing between different values
- of this attribute is the same choice as chosing whether to use an
- <code>input</code> element, a <code>textarea</code> element, a
- <code>select</code> element, a <code>keygen</code> element, etc.</p>
+ <p>The <code title="attr-input-type">type</code> attribute on <code>input</code> elements decides
+ what kind of control the user agent will use to expose the field. Choosing between different
+ values of this attribute is the same choice as choosing whether to use an <code>input</code>
+ element, a <code>textarea</code> element, a <code>select</code> element, a <code>keygen</code>
+ element, etc.</p>
- <p>The <code title="attr-fe-autocomplete">autocomplete</code>
- attribute, in contrast, describes what the value that the user will
- enter actually represents. Chosing between different values of this
- attribute is the same choice as chosing what the label for the
- element will be.</p>
+ <p>The <code title="attr-fe-autocomplete">autocomplete</code> attribute, in contrast, describes
+ what the value that the user will enter actually represents. Choosing between different values of
+ this attribute is the same choice as choosing what the label for the element will be.</p>
- <p>First, consider telephone numbers. If a page is asking for a
- telephone number from the user, the right form control to use is
- <code title="attr-input-type-tel"><input type=tel></code>.
- However, which <code
- title="attr-fe-autocomplete">autocomplete</code> value to use
- depends on which phone number the page is asking for, whether they
- expect a telephone number in the international format or just the
- local format, and so forth.</p>
+ <p>First, consider telephone numbers. If a page is asking for a telephone number from the user,
+ the right form control to use is <code title="attr-input-type-tel"><input type=tel></code>.
+ However, which <code title="attr-fe-autocomplete">autocomplete</code> value to use depends on
+ which phone number the page is asking for, whether they expect a telephone number in the
+ international format or just the local format, and so forth.</p>
- <p>For example, a page that forms part of a checkout process on an
- e-commerce site for a customer buying a gift to be shipped to a
- friend might need both the buyer's telephone number (in case of
- payment issues) and the friend's telephone number (in case of
- delivery issues). If the site expects international phone numbers
- (with the country code prefix), this could thus look like this:</p>
+ <p>For example, a page that forms part of a checkout process on an e-commerce site for a customer
+ buying a gift to be shipped to a friend might need both the buyer's telephone number (in case of
+ payment issues) and the friend's telephone number (in case of delivery issues). If the site
+ expects international phone numbers (with the country code prefix), this could thus look like
+ this:</p>
<pre><p><label>Your phone number: <input type=tel name=custtel autocomplete="billing tel"></label>
<p><label>Recipient's phone number: <input type=tel name=shiptel autocomplete="shipping tel"></label>
<p>Please enter complete phone numbers including the country code prefix, as in "+1 555 123 4567".</pre>
- <p>But if the site only supports British customers and recipients,
- it might instead look like this (notice the use of <code
- title="attr-fe-autocomplete-tel-national">tel-national</code> rather
- than <code title="attr-fe-autocomplete-tel">tel</code>):</p>
+ <p>But if the site only supports British customers and recipients, it might instead look like this
+ (notice the use of <code title="attr-fe-autocomplete-tel-national">tel-national</code> rather than
+ <code title="attr-fe-autocomplete-tel">tel</code>):</p>
<pre><p><label>Your phone number: <input type=tel name=custtel autocomplete="billing tel-national"></label>
<p><label>Recipient's phone number: <input type=tel name=shiptel autocomplete="shipping tel-national"></label>
@@ -52406,46 +52395,35 @@
<p>Now, consider a person's preferred languages. The right <code
title="attr-fe-autocomplete">autocomplete</code> value is <code
- title="attr-fe-autocomplete-language">language</code>. However,
- there could be a number of different form controls used for the
- purpose: a free text field (<code
- title="attr-input-type-text"><input type=text></code>), a
- drop-down list (<code title="select"><select></code>), radio
- buttons (<code title="attr-input-type-radio"><input
- type=radio></code>), etc. It only depends on what kind of interface
- is desired.</p>
+ title="attr-fe-autocomplete-language">language</code>. However, there could be a number of
+ different form controls used for the purpose: a free text field (<code
+ title="attr-input-type-text"><input type=text></code>), a drop-down list (<code
+ title="select"><select></code>), radio buttons (<code title="attr-input-type-radio"><input
+ type=radio></code>), etc. It only depends on what kind of interface is desired.</p>
- <p>The <code title="attr-fe-inputmode">inputmode</code> decides what
- kind of input modality (e.g. keyboard) to use, when the control is a
- free-form text field.</p>
+ <p>The <code title="attr-fe-inputmode">inputmode</code> decides what kind of input modality (e.g.
+ keyboard) to use, when the control is a free-form text field.</p>
- <p>Consider names. If a page just wants one name from the user, then
- the relevant control is <code title="attr-input-type-text"><input
- type=text></code>. If the page is asking for the user's full name,
- then the relevant <code
- title="attr-fe-autocomplete">autocomplete</code> value is <code
- title="attr-fe-autocomplete-name">name</code>. But if the user is
- Japanese, and the page is asking for the user's Japanese name and
- the user's romanized name, then it would be helpful to the user if
- the first field defaulted to a Japanese input modality, while the
- second defaulted to a Latin input modality (ideally with automatic
- capitalization of each word). This is where the <code
+ <p>Consider names. If a page just wants one name from the user, then the relevant control is <code
+ title="attr-input-type-text"><input type=text></code>. If the page is asking for the user's
+ full name, then the relevant <code title="attr-fe-autocomplete">autocomplete</code> value is <code
+ title="attr-fe-autocomplete-name">name</code>. But if the user is Japanese, and the page is asking
+ for the user's Japanese name and the user's romanized name, then it would be helpful to the user
+ if the first field defaulted to a Japanese input modality, while the second defaulted to a Latin
+ input modality (ideally with automatic capitalization of each word). This is where the <code
title="attr-fe-inputmode">inputmode</code> attribute can help:</p>
<pre><p><label>Japanese name: <input name="j" type="text" autocomplete="section-jp name" inputmode="kana"></label>
<label>Romanized name: <input name="e" type="text" autocomplete="section-en name" inputmode="latin-name"></label></pre>
- <p>In this example, the "<code
- title="attr-fe-autocomplete-section">section-*</code>" keywords in
- the <code title="attr-fe-autocomplete">autocomplete</code>
- attributes' values tell the user agent that the two fields expect
- <em>different</em> names. Without them, the user agent could
- automatically fill the second field with the value given in the
- first field when the user gave a value to the first field.</p>
+ <p>In this example, the "<code title="attr-fe-autocomplete-section">section-*</code>" keywords in
+ the <code title="attr-fe-autocomplete">autocomplete</code> attributes' values tell the user agent
+ that the two fields expect <em>different</em> names. Without them, the user agent could
+ automatically fill the second field with the value given in the first field when the user gave a
+ value to the first field.</p>
- <p class="note">The "<code title="">-jp</code>" and "<code
- title="">-en</code>" parts of the keywords are opaque to the user
- agent; the user agent cannot guess, from those, that the two names
+ <p class="note">The "<code title="">-jp</code>" and "<code title="">-en</code>" parts of the
+ keywords are opaque to the user agent; the user agent cannot guess, from those, that the two names
are expected to be in Japanese and English respectively.</p>
@@ -52454,51 +52432,41 @@
<!--END dev-html--><p><i>This section is non-normative.</i></p><!--START dev-html-->
- <p>In this pizza delivery example, the times are specified in the
- format "HH:MM": two digits for the hour, in 24-hour format, and two
- digits for the time. (Seconds could also be specified, though they
- are not necessary in this example.)</p>
+ <p>In this pizza delivery example, the times are specified in the format "HH:MM": two digits for
+ the hour, in 24-hour format, and two digits for the time. (Seconds could also be specified, though
+ they are not necessary in this example.)</p>
- <p>In some locales, however, times are often expressed differently
- when presented to users. For example, in the United States, it is
- still common to use the 12-hour clock with an am/pm indicator, as in
- "2pm". In France, it is common to separate the hours from the
- minutes using an "h" character, as in "14h00".</p>
+ <p>In some locales, however, times are often expressed differently when presented to users. For
+ example, in the United States, it is still common to use the 12-hour clock with an am/pm
+ indicator, as in "2pm". In France, it is common to separate the hours from the minutes using an
+ "h" character, as in "14h00".</p>
- <p>Similar issues exist with dates, with the added complication that
- even the order of the components is not always consistent —
- for example, in Cyprus the first of February 2003 would typically be
- written "1/2/03", while that same date in Japan would typically be
- written as "2003年02月01日" — and even with
- numbers, where locales differ, for example, in what punctuation is
- used as the decimal separator and the thousands separator.</p>
+ <p>Similar issues exist with dates, with the added complication that even the order of the
+ components is not always consistent — for example, in Cyprus the first of February 2003
+ would typically be written "1/2/03", while that same date in Japan would typically be written as
+ "2003年02月01日" — and even with numbers, where locales differ, for
+ example, in what punctuation is used as the decimal separator and the thousands separator.</p>
- <p>It is therefore important to distinguish the time, date, and
- number formats used in HTML and in form submissions, which are
- always the formats defined in this specification (and based on the
- well-established ISO 8601 standard for computer-readable date and
- time formats), from the time, date, and number formats presented to
- the user by the browser and accepted as input from the user by the
- browser.</p>
+ <p>It is therefore important to distinguish the time, date, and number formats used in HTML and in
+ form submissions, which are always the formats defined in this specification (and based on the
+ well-established ISO 8601 standard for computer-readable date and time formats), from the time,
+ date, and number formats presented to the user by the browser and accepted as input from the user
+ by the browser.</p>
- <p>The format used "on the wire", i.e. in HTML markup and in form
- submissions, is intended to be computer-readable and consistent
- irrespective of the user's locale. Dates, for instance, are always
- written in the format "YYYY-MM-DD", as in "2003-02-01". Users are
- not expected to ever see this format.</p>
+ <p>The format used "on the wire", i.e. in HTML markup and in form submissions, is intended to be
+ computer-readable and consistent irrespective of the user's locale. Dates, for instance, are
+ always written in the format "YYYY-MM-DD", as in "2003-02-01". Users are not expected to ever see
+ this format.</p>
- <p>The time, date, or number given by the page in the wire format is
- then translated to the user's preferred presentation (based on user
- preferences or on the locale of the page itself), before being
- displayed to the user. Similarly, after the user inputs a time,
- date, or number using their preferred format, the user agent
- converts it back to the wire format before putting it in the DOM or
- submitting it.</p>
+ <p>The time, date, or number given by the page in the wire format is then translated to the user's
+ preferred presentation (based on user preferences or on the locale of the page itself), before
+ being displayed to the user. Similarly, after the user inputs a time, date, or number using their
+ preferred format, the user agent converts it back to the wire format before putting it in the DOM
+ or submitting it.</p>
- <p>This allows scripts in pages and on servers to process times,
- dates, and numbers in a consistent manner without needing to support
- dozens of different formats, while still supporting the users'
- needs.</p>
+ <p>This allows scripts in pages and on servers to process times, dates, and numbers in a
+ consistent manner without needing to support dozens of different formats, while still supporting
+ the users' needs.</p>
<div class="impl">
<p class="note">See also the <a
@@ -52509,16 +52477,14 @@
<h4>Categories</h4>
- <p>Mostly for historical reasons, elements in this section fall into
- several overlapping (but subtly different) categories in addition to
- the usual ones like <span>flow content</span>, <span>phrasing
- content</span>, and <span>interactive content</span>.</p>
+ <p>Mostly for historical reasons, elements in this section fall into several overlapping (but
+ subtly different) categories in addition to the usual ones like <span>flow content</span>,
+ <span>phrasing content</span>, and <span>interactive content</span>.</p>
- <p>A number of the elements are <dfn title="form-associated
- element">form-associated elements</dfn>, which means they can have a
- <span>form owner</span> and, to expose this, have a <code
- title="attr-fae-form">form</code> content attribute with a matching
- <code title="dom-fae-form">form</code> IDL attribute.</p>
+ <p>A number of the elements are <dfn title="form-associated element">form-associated
+ elements</dfn>, which means they can have a <span>form owner</span> and, to expose this, have a
+ <code title="attr-fae-form">form</code> content attribute with a matching <code
+ title="dom-fae-form">form</code> IDL attribute.</p>
<!-- when updating this also update the category index -->
<ul class="brief category-list">
@@ -66404,10 +66370,9 @@
<li>Separators (<code>hr</code>)</li>
<li>Other menus, which allows the list to be nested (<code>menu</code>)</li>
</ul>
-<!--CLEANUP-->
- <p>To <dfn>construct and show a menu</dfn> for a particular <code>menu</code> element and with a particular element as a subject, the user
- agent must run the following steps:</p>
+ <p>To <dfn>construct and show a menu</dfn> for a particular <code>menu</code> element and with a
+ particular element as a subject, the user agent must run the following steps:</p>
<ol>
@@ -66424,17 +66389,19 @@
<dl class="switch">
- <dt>If the child is a <code>menuitem</code> element that <span title="concept-command">defines a command</span></dt>
+ <dt>If the child is a <code>menuitem</code> element that <span title="concept-command">defines
+ a command</span></dt>
- <dd>Append the command to the menu, respecting its <span title="concept-facet">facets</span><!--
- we might need to be explicit about what this means for each facet, if testing shows this isn't
- well-implemented. e.g.: If there's an Icon facet for the command, it should be <span
- title="fetch">fetched</span><!- -FETCH- -> (this would be http-origin privacy-sensitive), and
- then that image should be associated with the command, such that each command only has its image
- fetched once, to prevent changes to the base URL from having effects after the image has been
- fetched once. (no need to resolve the Icon facet, it's an absolute URL) -->. If the
- <code>menuitem</code> element has a <code title="attr-menuitem-default">default</code> attribute,
- mark the command as being a default command.</dd>
+ <dd>Append the command to the menu, respecting its <span
+ title="concept-facet">facets</span><!-- we might need to be explicit about what this means for
+ each facet, if testing shows this isn't well-implemented. e.g.: If there's an Icon facet for
+ the command, it should be <span title="fetch">fetched</span><!- -FETCH- -> (this would be
+ http-origin privacy-sensitive), and then that image should be associated with the command, such
+ that each command only has its image fetched once, to prevent changes to the base URL from
+ having effects after the image has been fetched once. (no need to resolve the Icon facet, it's
+ an absolute URL) -->. If the <code>menuitem</code> element has a <code
+ title="attr-menuitem-default">default</code> attribute, mark the command as being a default
+ command.</dd>
<dt>If the child is an <code>hr</code> element</dt>
@@ -66466,11 +66433,14 @@
</li>
- <li><p>Remove any submenu with no label, or whose label is the empty string, in the menu or any submenus.</p></li>
+ <li><p>Remove any submenu with no label, or whose label is the empty string, in the menu or any
+ submenus.</p></li>
- <li><p>Remove any menu item with no label, or whose label is the empty string, in the menu or any submenus.</p></li>
+ <li><p>Remove any menu item with no label, or whose label is the empty string, in the menu or any
+ submenus.</p></li>
- <li><p>Collapse all sequences of two or more adjacent separators in the menu or any submenus to a single separator.</p></li>
+ <li><p>Collapse all sequences of two or more adjacent separators in the menu or any submenus to a
+ single separator.</p></li>
<li><p>Remove all separators at the start or end of the menu and any submenus.</p></li>
@@ -66726,93 +66696,75 @@
<div class="impl">
<hr>
-<!--CLEANUP-->
- <p>The <dfn title="dom-menuitem-type"><code>type</code></dfn> IDL
- attribute must <span>reflect</span> the content attribute of the
- same name, <span>limited to only known values</span>.</p>
+ <p>The <dfn title="dom-menuitem-type"><code>type</code></dfn> IDL attribute must
+ <span>reflect</span> the content attribute of the same name, <span>limited to only known
+ values</span>.</p>
<p>The <dfn title="dom-menuitem-label"><code>label</code></dfn>, <dfn
title="dom-menuitem-icon"><code>icon</code></dfn>, <dfn
title="dom-menuitem-disabled"><code>disabled</code></dfn>, <dfn
title="dom-menuitem-checked"><code>checked</code></dfn>, and <dfn
- title="dom-menuitem-radiogroup"><code>radiogroup</code></dfn>,
- and <dfn title="dom-menuitem-default"><code>default</code></dfn>
- IDL attributes must <span>reflect</span> the respective content
- attributes of the same name.</p>
+ title="dom-menuitem-radiogroup"><code>radiogroup</code></dfn>, and <dfn
+ title="dom-menuitem-default"><code>default</code></dfn> IDL attributes must <span>reflect</span>
+ the respective content attributes of the same name.</p>
- <p>The <dfn title="dom-menuitem-command"><code>command</code></dfn>
- IDL attribute must return the <span>master command</span>, if any,
- or null otherwise.</p>
+ <p>The <dfn title="dom-menuitem-command"><code>command</code></dfn> IDL attribute must return the
+ <span>master command</span>, if any, or null otherwise.</p>
<hr>
- <p>If the element's <span
- title="command-facet-DisabledState">Disabled State</span> is false
- (enabled) then the element's <span>activation behavior</span>
- depends on the element's <code title="attr-menuitem-type">type</code>
- and <code title="attr-menuitem-command">command</code> attributes, as
- follows:</p>
+ <p>If the element's <span title="command-facet-DisabledState">Disabled State</span> is false
+ (enabled) then the element's <span>activation behavior</span> depends on the element's <code
+ title="attr-menuitem-type">type</code> and <code title="attr-menuitem-command">command</code>
+ attributes, as follows:</p>
<dl class="switch">
- <dt>If the element has a <span>master command</span> set by its
- <code title="attr-menuitem-command">command</code> attribute</dt>
+ <dt>If the element has a <span>master command</span> set by its <code
+ title="attr-menuitem-command">command</code> attribute</dt>
- <dd><p>The user agent must <span>run synthetic click activation
- steps</span> on the element's <span>master command</span>.</p></dd>
- <!-- we know it has a defined <span>activation behavior</span> if
- we get here -->
+ <dd><p>The user agent must <span>run synthetic click activation steps</span> on the element's
+ <span>master command</span>.</p></dd>
+ <!-- we know it has a defined <span>activation behavior</span> if we get here -->
- <dt>If the <code title="attr-menuitem-type">type</code> attribute is
- in the <span
+ <dt>If the <code title="attr-menuitem-type">type</code> attribute is in the <span
title="attr-menuitem-type-state-checkbox">Checkbox</span> state</dt>
- <dd><p>If the element has a <code
- title="attr-menuitem-checked">checked</code> attribute, the UA must
- remove that attribute. Otherwise, the UA must add a <code
- title="attr-menuitem-checked">checked</code> attribute, with the
- literal value <code title="">checked</code>.</p></dd>
+ <dd><p>If the element has a <code title="attr-menuitem-checked">checked</code> attribute, the UA
+ must remove that attribute. Otherwise, the UA must add a <code
+ title="attr-menuitem-checked">checked</code> attribute, with the literal value <code
+ title="">checked</code>.</p></dd>
- <dt>If the <code title="attr-menuitem-type">type</code> attribute is
- in the <span
+ <dt>If the <code title="attr-menuitem-type">type</code> attribute is in the <span
title="attr-menuitem-type-state-radio">Radio</span> state</dt>
- <dd><p>If the element has a parent, then the UA must walk the list
- of child nodes of that parent element, and for each node that is a
- <code>menuitem</code> element, if that element has a <code
- title="attr-menuitem-radiogroup">radiogroup</code> attribute whose
- value exactly matches the current element's (treating missing <code
- title="attr-menuitem-radiogroup">radiogroup</code> attributes as if
- they were the empty string), and has a <code
- title="attr-menuitem-checked">checked</code> attribute, must remove
- that attribute.</p>
+ <dd><p>If the element has a parent, then the UA must walk the list of child nodes of that parent
+ element, and for each node that is a <code>menuitem</code> element, if that element has a <code
+ title="attr-menuitem-radiogroup">radiogroup</code> attribute whose value exactly matches the
+ current element's (treating missing <code title="attr-menuitem-radiogroup">radiogroup</code>
+ attributes as if they were the empty string), and has a <code
+ title="attr-menuitem-checked">checked</code> attribute, must remove that attribute.</p>
- <p>Then, the element's <code
- title="attr-menuitem-checked">checked</code> attribute
- must be set to the literal value <code
- title="">checked</code>.</p></dd>
+ <p>Then, the element's <code title="attr-menuitem-checked">checked</code> attribute must be set
+ to the literal value <code title="">checked</code>.</p></dd>
<dt>Otherwise</dt>
- <dd><p>The element's <span>activation behavior</span> is to do
- nothing.</p></dd>
+ <dd><p>The element's <span>activation behavior</span> is to do nothing.</p></dd>
</dl>
- <p class="note">Firing a synthetic <code
- title="event-click">click</code> event at the element does not cause
- any of the actions described above to happen.</p>
+ <p class="note">Firing a synthetic <code title="event-click">click</code> event at the element
+ does not cause any of the actions described above to happen.</p>
<!-- v2COMMAND: Expose the Triggers facet again. -->
- <p>If the element's <span
- title="command-facet-DisabledState">Disabled State</span> is true
- (disabled) then the element has no <span>activation
- behavior</span>.</p>
+ <p>If the element's <span title="command-facet-DisabledState">Disabled State</span> is true
+ (disabled) then the element has no <span>activation behavior</span>.</p>
</div>
@@ -67476,353 +67428,278 @@
<h5><dfn title="option-command">Using the <code>option</code> element to define a command</dfn></h5>
- <p>An <code>option</code> element with an ancestor
- <code>select</code> element and either no <code
- title="attr-option-value">value</code> attribute or a <code
- title="attr-option-value">value</code> attribute that is not the
- empty string <span title="concept-command">defines a
- command</span>.</p>
+ <p>An <code>option</code> element with an ancestor <code>select</code> element and either no <code
+ title="attr-option-value">value</code> attribute or a <code title="attr-option-value">value</code>
+ attribute that is not the empty string <span title="concept-command">defines a command</span>.</p>
- <p>The <span title="command-facet-Type">Type</span> of the command
- is "radio" if the <code>option</code>'s nearest ancestor
- <code>select</code> element has no <code
- title="attr-select-multiple">multiple</code> attribute, and
- "checkbox" if it does.</p>
+ <p>The <span title="command-facet-Type">Type</span> of the command is "radio" if the
+ <code>option</code>'s nearest ancestor <code>select</code> element has no <code
+ title="attr-select-multiple">multiple</code> attribute, and "checkbox" if it does.</p>
- <p>The <span title="command-facet-ID">ID</span> of the command is
- the value of the <code title="attr-id">id</code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <span>anonymous command</span>.</p>
+ <p>The <span title="command-facet-ID">ID</span> of the command is the value of the <code
+ title="attr-id">id</code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <span>anonymous command</span>.</p>
- <p>The <span title="command-facet-Label">Label</span> of the command
- is the value of the <code>option</code> element's <code
- title="attr-option-label">label</code> attribute, if there is one,
- or else the value of <code>option</code> element's
- <code>textContent</code> IDL attribute, with <span title="strip
- leading and trailing whitespace">leading and trailing whitespace
- stripped</span>, and with any sequences of two or more <span
- title="space character">space characters</span> replaced by a single
- U+0020 SPACE character.</p>
+ <p>The <span title="command-facet-Label">Label</span> of the command is the value of the
+ <code>option</code> element's <code title="attr-option-label">label</code> attribute, if there is
+ one, or else the value of <code>option</code> element's <code>textContent</code> IDL attribute,
+ with <span title="strip leading and trailing whitespace">leading and trailing whitespace
+ stripped</span>, and with any sequences of two or more <span title="space character">space
+ characters</span> replaced by a single U+0020 SPACE character.</p>
- <p>The <span title="command-facet-Hint">Hint</span> of the command
- is the string given by the element's <code
- title="attr-title">title</code> attribute, if any, and the empty
- string if the attribute is absent.</p>
+ <p>The <span title="command-facet-Hint">Hint</span> of the command is the string given by the
+ element's <code title="attr-title">title</code> attribute, if any, and the empty string if the
+ attribute is absent.</p>
- <p>There is no <span title="command-facet-Icon">Icon</span> for the
- command.</p>
+ <p>There is no <span title="command-facet-Icon">Icon</span> for the command.</p>
- <p>The <span title="command-facet-AccessKey">AccessKey</span> of the
- command is the element's <span>assigned access key</span>, if
- any.</p>
+ <p>The <span title="command-facet-AccessKey">AccessKey</span> of the command is the element's
+ <span>assigned access key</span>, if any.</p>
- <p>The <span title="command-facet-HiddenState">Hidden State</span>
- of the command is true (hidden) if the element has a <code
- title="attr-hidden">hidden</code> attribute, and false
- otherwise.</p>
+ <p>The <span title="command-facet-HiddenState">Hidden State</span> of the command is true (hidden)
+ if the element has a <code title="attr-hidden">hidden</code> attribute, and false otherwise.</p>
- <p>The <span title="command-facet-DisabledState">Disabled
- State</span> of the command is true if the element is <span
- title="concept-option-disabled">disabled</span>, or if its nearest
- ancestor <code>select</code> element is <span
- title="concept-fe-disabled">disabled</span>, or if it or one of its
- ancestors is <span>inert</span>, and false otherwise.</p>
+ <p>The <span title="command-facet-DisabledState">Disabled State</span> of the command is true if
+ the element is <span title="concept-option-disabled">disabled</span>, or if its nearest ancestor
+ <code>select</code> element is <span title="concept-fe-disabled">disabled</span>, or if it or one
+ of its ancestors is <span>inert</span>, and false otherwise.</p>
- <p>The <span title="command-facet-CheckedState">Checked State</span>
- of the command is true (checked) if the element's <span
- title="concept-option-selectedness">selectedness</span> is true, and
- false otherwise.</p>
+ <p>The <span title="command-facet-CheckedState">Checked State</span> of the command is true
+ (checked) if the element's <span title="concept-option-selectedness">selectedness</span> is true,
+ and false otherwise.</p>
- <p>The <span title="command-facet-Action">Action</span> of the
- command depends on its <span
+ <p>The <span title="command-facet-Action">Action</span> of the command depends on its <span
title="command-facet-Type">Type</span>. If the command is of <span
title="command-facet-Type">Type</span> "radio" then it must <span
- title="concept-select-pick">pick</span> the <code>option</code>
- element. Otherwise, it must <span
- title="concept-select-toggle">toggle</span> the <code>option</code>
- element.</p>
+ title="concept-select-pick">pick</span> the <code>option</code> element. Otherwise, it must <span
+ title="concept-select-toggle">toggle</span> the <code>option</code> element.</p>
- <h5>Using the <dfn
- title="command-element"><code>menuitem</code></dfn> element to define
- a command</h5>
+ <h5>Using the <dfn title="command-element"><code>menuitem</code></dfn> element to define a
+ command</h5>
-<!--CLEANUP-->
<p>A <code>menuitem</code> element that does not have a <code
- title="attr-menuitem-command">command</code> attribute <span
- title="concept-command">defines a command</span>.</p>
+ title="attr-menuitem-command">command</code> attribute <span title="concept-command">defines a
+ command</span>.</p>
- <p>The <span title="command-facet-Type">Type</span> of the command
- is "radio" if the <code>menuitem</code>'s <code
- title="attr-menuitem-type">type</code> attribute is
- "<code>radio</code>", "checkbox" if the attribute's value is
- "<code>checkbox</code>", and "command" otherwise.</p>
+ <p>The <span title="command-facet-Type">Type</span> of the command is "radio" if the
+ <code>menuitem</code>'s <code title="attr-menuitem-type">type</code> attribute is
+ "<code>radio</code>", "checkbox" if the attribute's value is "<code>checkbox</code>", and
+ "command" otherwise.</p>
- <p>The <span title="command-facet-ID">ID</span> of the command is
- the value of the <code title="attr-id">id</code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <span>anonymous command</span>.</p>
+ <p>The <span title="command-facet-ID">ID</span> of the command is the value of the <code
+ title="attr-id">id</code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <span>anonymous command</span>.</p>
- <p>The <span title="command-facet-Label">Label</span> of the command
- is the value of the element's <code
- title="attr-menuitem-label">label</code> attribute, if there is one,
- or the empty string if it doesn't.</p>
+ <p>The <span title="command-facet-Label">Label</span> of the command is the value of the element's
+ <code title="attr-menuitem-label">label</code> attribute, if there is one, or the empty string if
+ it doesn't.</p>
- <p>The <span title="command-facet-Hint">Hint</span> of the command
- is the string given by the element's <code
- title="attr-menuitem-title">title</code> attribute, if any, and the
- empty string if the attribute is absent.</p>
+ <p>The <span title="command-facet-Hint">Hint</span> of the command is the string given by the
+ element's <code title="attr-menuitem-title">title</code> attribute, if any, and the empty string
+ if the attribute is absent.</p>
- <p>The <span title="command-facet-Icon">Icon</span> for the command
- is the <span>absolute URL</span> obtained from <span title="resolve
- a url">resolving</span> the value of the element's <code
- title="attr-menuitem-icon">icon</code> attribute, relative to the
- element, if it has such an attribute and resolving it is
- successful. Otherwise, there is no <span
+ <p>The <span title="command-facet-Icon">Icon</span> for the command is the <span>absolute
+ URL</span> obtained from <span title="resolve a url">resolving</span> the value of the element's
+ <code title="attr-menuitem-icon">icon</code> attribute, relative to the element, if it has such an
+ attribute and resolving it is successful. Otherwise, there is no <span
title="command-facet-Icon">Icon</span> for the command.</p>
- <p>The <span title="command-facet-AccessKey">AccessKey</span> of the
- command is the element's <span>assigned access key</span>, if
- any.</p>
+ <p>The <span title="command-facet-AccessKey">AccessKey</span> of the command is the element's
+ <span>assigned access key</span>, if any.</p>
- <p>The <span title="command-facet-HiddenState">Hidden State</span>
- of the command is true (hidden) if the element has a <code
- title="attr-hidden">hidden</code> attribute, and false
- otherwise.</p>
+ <p>The <span title="command-facet-HiddenState">Hidden State</span> of the command is true (hidden)
+ if the element has a <code title="attr-hidden">hidden</code> attribute, and false otherwise.</p>
- <p>The <span title="command-facet-DisabledState">Disabled
- State</span> of the command is true if the element or one of its
- ancestors is <span>inert</span>, or if the element has a <code
- title="attr-menuitem-disabled">disabled</code> attribute, and false
- otherwise.</p>
+ <p>The <span title="command-facet-DisabledState">Disabled State</span> of the command is true if
+ the element or one of its ancestors is <span>inert</span>, or if the element has a <code
+ title="attr-menuitem-disabled">disabled</code> attribute, and false otherwise.</p>
- <p>The <span title="command-facet-CheckedState">Checked State</span>
- of the command is true (checked) if the element has a <code
- title="attr-menuitem-checked">checked</code> attribute, and false
- otherwise.</p>
+ <p>The <span title="command-facet-CheckedState">Checked State</span> of the command is true
+ (checked) if the element has a <code title="attr-menuitem-checked">checked</code> attribute, and
+ false otherwise.</p>
- <p>The <span title="command-facet-Action">Action</span> of the
- command, if the element has a defined <span>activation
- behavior</span><!-- it doesn't if the element is disabled -->, is to <span>run synthetic click activation
- steps</span> on the element. Otherwise, it is just to <span>fire a
- <code title="event-click">click</code> event</span> at the
- element.</p>
+ <p>The <span title="command-facet-Action">Action</span> of the command, if the element has a
+ defined <span>activation behavior</span><!-- it doesn't if the element is disabled -->, is to
+ <span>run synthetic click activation steps</span> on the element. Otherwise, it is just to
+ <span>fire a <code title="event-click">click</code> event</span> at the element.</p>
- <h5><dfn title="command-menuitem-command">Using the <code title="attr-menuitem-command">command</code> attribute on <code>menuitem</code> elements to define a command indirectly</dfn></h5>
+ <h5><dfn title="command-menuitem-command">Using the <code
+ title="attr-menuitem-command">command</code> attribute on <code>menuitem</code> elements to define
+ a command indirectly</dfn></h5>
- <p>A <code>menuitem</code> element with a <span>master command</span>
- <span title="concept-command">defines a command</span>.</p>
+ <p>A <code>menuitem</code> element with a <span>master command</span> <span
+ title="concept-command">defines a command</span>.</p>
- <p>The <span title="command-facet-Type">Type</span> of the command
- is the <span title="command-facet-Type">Type</span> of the
- <span>master command</span>.</p>
+ <p>The <span title="command-facet-Type">Type</span> of the command is the <span
+ title="command-facet-Type">Type</span> of the <span>master command</span>.</p>
- <p>The <span title="command-facet-ID">ID</span> of the command is
- the value of the <code title="attr-id">id</code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <span>anonymous command</span>.</p>
+ <p>The <span title="command-facet-ID">ID</span> of the command is the value of the <code
+ title="attr-id">id</code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <span>anonymous command</span>.</p>
- <p>The <span title="command-facet-Label">Label</span> of the command
- is the <span title="command-facet-Label">Label</span> of the
- <span>master command</span>.</p>
+ <p>The <span title="command-facet-Label">Label</span> of the command is the <span
+ title="command-facet-Label">Label</span> of the <span>master command</span>.</p>
- <p>If the element has a <code title="attr-title">title</code>
- attribute, then the <span title="command-facet-Hint">Hint</span> of
- the command is the value of that <code
+ <p>If the element has a <code title="attr-title">title</code> attribute, then the <span
+ title="command-facet-Hint">Hint</span> of the command is the value of that <code
title="attr-title">title</code> attribute. Otherwise, the <span
title="command-facet-Hint">Hint</span> of the command is the <span
- title="command-facet-Hint">Hint</span> of the <span>master
- command</span>.</p>
+ title="command-facet-Hint">Hint</span> of the <span>master command</span>.</p>
- <p>The <span title="command-facet-Icon">Icon</span> of the command
- is the <span title="command-facet-Icon">Icon</span> of the
- <span>master command</span>.</p>
+ <p>The <span title="command-facet-Icon">Icon</span> of the command is the <span
+ title="command-facet-Icon">Icon</span> of the <span>master command</span>.</p>
- <p>The <span title="command-facet-AccessKey">AccessKey</span> of the
- command is the element's <span>assigned access key</span>, if
- any.</p>
+ <p>The <span title="command-facet-AccessKey">AccessKey</span> of the command is the element's
+ <span>assigned access key</span>, if any.</p>
- <p>The <span title="command-facet-HiddenState">Hidden State</span>
- of the command is the <span title="command-facet-HiddenState">Hidden
- State</span> of the <span>master command</span>.</p>
+ <p>The <span title="command-facet-HiddenState">Hidden State</span> of the command is the <span
+ title="command-facet-HiddenState">Hidden State</span> of the <span>master command</span>.</p>
- <p>The <span title="command-facet-DisabledState">Disabled
- State</span> of the command is the <span
- title="command-facet-DisabledState">Disabled State</span> of the
- <span>master command</span>.</p>
+ <p>The <span title="command-facet-DisabledState">Disabled State</span> of the command is the <span
+ title="command-facet-DisabledState">Disabled State</span> of the <span>master command</span>.</p>
- <p>The <span title="command-facet-CheckedState">Checked
- State</span> of the command is the <span
- title="command-facet-CheckedState">Checked State</span> of the
- <span>master command</span>.</p>
+ <p>The <span title="command-facet-CheckedState">Checked State</span> of the command is the <span
+ title="command-facet-CheckedState">Checked State</span> of the <span>master command</span>.</p>
- <p>The <span title="command-facet-Action">Action</span> of the
- command is to invoke the <span
- title="command-facet-Action">Action</span> of the <span>master
- command</span>.</p>
+ <p>The <span title="command-facet-Action">Action</span> of the command is to invoke the <span
+ title="command-facet-Action">Action</span> of the <span>master command</span>.</p>
- <h5><dfn title="label-command">Using the <code title="attr-accesskey">accesskey</code> attribute on a <code>label</code> element to define a command</dfn></h5>
+ <h5><dfn title="label-command">Using the <code title="attr-accesskey">accesskey</code> attribute
+ on a <code>label</code> element to define a command</dfn></h5>
- <p>A <code>label</code> element that has an <span>assigned access
- key</span> and a <span>labeled control</span> and whose
- <span>labeled control</span> <span title="concept-command">defines a
- command</span>, itself <span title="concept-command">defines a
- command</span>.</p>
+ <p>A <code>label</code> element that has an <span>assigned access key</span> and a <span>labeled
+ control</span> and whose <span>labeled control</span> <span title="concept-command">defines a
+ command</span>, itself <span title="concept-command">defines a command</span>.</p>
- <p>The <span title="command-facet-Type">Type</span> of the command
- is "command".</p>
+ <p>The <span title="command-facet-Type">Type</span> of the command is "command".</p>
- <p>The <span title="command-facet-ID">ID</span> of the command is
- the value of the <code title="attr-id">id</code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <span>anonymous command</span>.</p>
+ <p>The <span title="command-facet-ID">ID</span> of the command is the value of the <code
+ title="attr-id">id</code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <span>anonymous command</span>.</p>
- <p>The <span title="command-facet-Label">Label</span> of the command
- is the string given by the element's <code>textContent</code> IDL
- attribute.</p>
+ <p>The <span title="command-facet-Label">Label</span> of the command is the string given by the
+ element's <code>textContent</code> IDL attribute.</p>
- <p>The <span title="command-facet-Hint">Hint</span> of the command
- is the value of the <code title="attr-title">title</code> attribute
- of the element.</p>
+ <p>The <span title="command-facet-Hint">Hint</span> of the command is the value of the <code
+ title="attr-title">title</code> attribute of the element.</p>
- <p>There is no <span title="command-facet-Icon">Icon</span> for the
- command.</p>
+ <p>There is no <span title="command-facet-Icon">Icon</span> for the command.</p>
- <p>The <span title="command-facet-AccessKey">AccessKey</span> of the
- command is the element's <span>assigned access key</span>.</p>
+ <p>The <span title="command-facet-AccessKey">AccessKey</span> of the command is the element's
+ <span>assigned access key</span>.</p>
- <p>The <span title="command-facet-HiddenState">Hidden State</span>,
- <span title="command-facet-DisabledState">Disabled State</span>, and
- <span title="command-facet-Action">Action</span> facets of the
- command are the same as the respective facets of the element's
- <span>labeled control</span>.</p>
+ <p>The <span title="command-facet-HiddenState">Hidden State</span>, <span
+ title="command-facet-DisabledState">Disabled State</span>, and <span
+ title="command-facet-Action">Action</span> facets of the command are the same as the respective
+ facets of the element's <span>labeled control</span>.</p>
- <p>The <span title="command-facet-CheckedState">Checked State</span>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <span title="command-facet-CheckedState">Checked State</span> of the command is always
+ false. (The command is never checked.)</p>
- <h5><dfn title="legend-command">Using the <code title="attr-accesskey">accesskey</code> attribute on a <code>legend</code> element to define a command</dfn></h5>
+ <h5><dfn title="legend-command">Using the <code title="attr-accesskey">accesskey</code> attribute
+ on a <code>legend</code> element to define a command</dfn></h5>
- <p>A <code>legend</code> element that has an <span>assigned access
- key</span> and is a child of a <code>fieldset</code> element that
- has a descendant that is not a descendant of the <code>legend</code>
- element and is neither a <code>label</code> element nor a
- <code>legend</code> element but that <span
- title="concept-command">defines a command</span>, itself <span
+ <p>A <code>legend</code> element that has an <span>assigned access key</span> and is a child of a
+ <code>fieldset</code> element that has a descendant that is not a descendant of the
+ <code>legend</code> element and is neither a <code>label</code> element nor a <code>legend</code>
+ element but that <span title="concept-command">defines a command</span>, itself <span
title="concept-command">defines a command</span>.</p>
- <p>The <span title="command-facet-Type">Type</span> of the command
- is "command".</p>
+ <p>The <span title="command-facet-Type">Type</span> of the command is "command".</p>
- <p>The <span title="command-facet-ID">ID</span> of the command is
- the value of the <code title="attr-id">id</code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <span>anonymous command</span>.</p>
+ <p>The <span title="command-facet-ID">ID</span> of the command is the value of the <code
+ title="attr-id">id</code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <span>anonymous command</span>.</p>
- <p>The <span title="command-facet-Label">Label</span> of the command
- is the string given by the element's <code>textContent</code> IDL
- attribute.</p>
+ <p>The <span title="command-facet-Label">Label</span> of the command is the string given by the
+ element's <code>textContent</code> IDL attribute.</p>
- <p>The <span title="command-facet-Hint">Hint</span> of the command
- is the value of the <code title="attr-title">title</code> attribute
- of the element.</p>
+ <p>The <span title="command-facet-Hint">Hint</span> of the command is the value of the <code
+ title="attr-title">title</code> attribute of the element.</p>
- <p>There is no <span title="command-facet-Icon">Icon</span> for the
- command.</p>
+ <p>There is no <span title="command-facet-Icon">Icon</span> for the command.</p>
- <p>The <span title="command-facet-AccessKey">AccessKey</span> of the
- command is the element's <span>assigned access key</span>.</p>
+ <p>The <span title="command-facet-AccessKey">AccessKey</span> of the command is the element's
+ <span>assigned access key</span>.</p>
- <p>The <span title="command-facet-HiddenState">Hidden State</span>,
- <span title="command-facet-DisabledState">Disabled State</span>, and
- <span title="command-facet-Action">Action</span> facets of the
- command are the same as the respective facets of the first element
- in <span>tree order</span> that is a descendant of the parent of the
- <code>legend</code> element that <span
- title="concept-command">defines a command</span> but is not a
- descendant of the <code>legend</code> element and is neither a
- <code>label</code> nor a <code>legend</code> element.</p>
+ <p>The <span title="command-facet-HiddenState">Hidden State</span>, <span
+ title="command-facet-DisabledState">Disabled State</span>, and <span
+ title="command-facet-Action">Action</span> facets of the command are the same as the respective
+ facets of the first element in <span>tree order</span> that is a descendant of the parent of the
+ <code>legend</code> element that <span title="concept-command">defines a command</span> but is not
+ a descendant of the <code>legend</code> element and is neither a <code>label</code> nor a
+ <code>legend</code> element.</p>
- <p>The <span title="command-facet-CheckedState">Checked State</span>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <span title="command-facet-CheckedState">Checked State</span> of the command is always
+ false. (The command is never checked.)</p>
- <h5><dfn title="accesskey-command">Using the <code title="attr-accesskey">accesskey</code> attribute to define a command on other elements</dfn></h5>
+ <h5><dfn title="accesskey-command">Using the <code title="attr-accesskey">accesskey</code>
+ attribute to define a command on other elements</dfn></h5>
- <p>An element that has an <span>assigned access key</span> <span
- title="concept-command">defines a command</span>.</p>
+ <p>An element that has an <span>assigned access key</span> <span title="concept-command">defines a
+ command</span>.</p>
- <p>If one of the earlier sections that define elements that <span
- title="concept-command">define commands</span> define that this
- element <span title="concept-command">defines a command</span>, then
- that section applies to this element, and this section does not.
- Otherwise, this section applies to that element.</p>
+ <p>If one of the earlier sections that define elements that <span title="concept-command">define
+ commands</span> define that this element <span title="concept-command">defines a command</span>,
+ then that section applies to this element, and this section does not. Otherwise, this section
+ applies to that element.</p>
- <p>The <span title="command-facet-Type">Type</span> of the command
- is "command".</p>
+ <p>The <span title="command-facet-Type">Type</span> of the command is "command".</p>
- <p>The <span title="command-facet-ID">ID</span> of the command is
- the value of the <code title="attr-id">id</code> attribute of the
- element, if the attribute is present and not empty. Otherwise the
- command is an <span>anonymous command</span>.</p>
+ <p>The <span title="command-facet-ID">ID</span> of the command is the value of the <code
+ title="attr-id">id</code> attribute of the element, if the attribute is present and not empty.
+ Otherwise the command is an <span>anonymous command</span>.</p>
- <p>The <span title="command-facet-Label">Label</span> of the command
- depends on the element. If the element is a <span>labeled
- control</span>, the <code>textContent</code> of the first
- <code>label</code> element in <span>tree order</span> whose
- <span>labeled control</span> is the element in question is the <span
- title="command-facet-Label">Label</span> (in DOM terms, this is the
- string given by <code><var
- title="">element</var>.labels[0].textContent</code>). Otherwise, the
- <span title="command-facet-Label">Label</span> is the
- <code>textContent</code> of the element itself.</p>
+ <p>The <span title="command-facet-Label">Label</span> of the command depends on the element. If
+ the element is a <span>labeled control</span>, the <code>textContent</code> of the first
+ <code>label</code> element in <span>tree order</span> whose <span>labeled control</span> is the
+ element in question is the <span title="command-facet-Label">Label</span> (in DOM terms, this is
+ the string given by <code><var title="">element</var>.labels[0].textContent</code>). Otherwise,
+ the <span title="command-facet-Label">Label</span> is the <code>textContent</code> of the element
+ itself.</p>
- <p>The <span title="command-facet-Hint">Hint</span> of the command
- is the value of the <code title="attr-title">title</code> attribute
- of the element. If the attribute is not present, the <span
- title="command-facet-Hint">Hint</span> is the empty string.</p>
+ <p>The <span title="command-facet-Hint">Hint</span> of the command is the value of the <code
+ title="attr-title">title</code> attribute of the element. If the attribute is not present, the
+ <span title="command-facet-Hint">Hint</span> is the empty string.</p>
- <p>There is no <span title="command-facet-Icon">Icon</span> for the
- command.</p>
+ <p>There is no <span title="command-facet-Icon">Icon</span> for the command.</p>
- <p>The <span title="command-facet-AccessKey">AccessKey</span> of the
- command is the element's <span>assigned access key</span>.</p>
+ <p>The <span title="command-facet-AccessKey">AccessKey</span> of the command is the element's
+ <span>assigned access key</span>.</p>
- <p>The <span title="command-facet-HiddenState">Hidden State</span>
- of the command is true (hidden) if the element has a <code
- title="attr-hidden">hidden</code> attribute, and false
- otherwise.</p>
+ <p>The <span title="command-facet-HiddenState">Hidden State</span> of the command is true (hidden)
+ if the element has a <code title="attr-hidden">hidden</code> attribute, and false otherwise.</p>
- <p>The <span title="command-facet-DisabledState">Disabled
- State</span> of the command is true if the element or one of its
- ancestors is <span>inert</span>, and false otherwise.</p>
+ <p>The <span title="command-facet-DisabledState">Disabled State</span> of the command is true if
+ the element or one of its ancestors is <span>inert</span>, and false otherwise.</p>
- <p>The <span title="command-facet-CheckedState">Checked State</span>
- of the command is always false. (The command is never checked.)</p>
+ <p>The <span title="command-facet-CheckedState">Checked State</span> of the command is always
+ false. (The command is never checked.)</p>
- <p>The <span title="command-facet-Action">Action</span> of the
- command is to run the following steps:</p>
+ <p>The <span title="command-facet-Action">Action</span> of the command is to run the following
+ steps:</p>
<ol>
- <li>If the element is <span>focusable</span>, run the
- <span>focusing steps</span> for the element.</li>
-
- <li>If the element has a defined <span>activation behavior</span>,
- <span>run synthetic click activation steps</span> on the
+ <li>If the element is <span>focusable</span>, run the <span>focusing steps</span> for the
element.</li>
- <li>Otherwise, if the element does not have a defined
- <span>activation behavior</span>, <span>fire a <code
- title="event-click">click</code> event</span> at the element.</li>
+ <li>If the element has a defined <span>activation behavior</span>, <span>run synthetic click
+ activation steps</span> on the element.</li>
+ <li>Otherwise, if the element does not have a defined <span>activation behavior</span>,
+ <span>fire a <code title="event-click">click</code> event</span> at the element.</li>
+
</ol>
</div>
@@ -97218,73 +97095,56 @@
<span>Storage</span>? storageArea;
};</pre>
- <p>The <dfn title="dom-StorageEvent-key"><code>key</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
+ <p>The <dfn title="dom-StorageEvent-key"><code>key</code></dfn> attribute must return the value it
+ was initialized to. When the object is created, this attribute must be initialized to null. It
represents the key being changed.</p>
- <p>The <dfn
- title="dom-StorageEvent-oldValue"><code>oldValue</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the old value of the key being changed.</p>
+ <p>The <dfn title="dom-StorageEvent-oldValue"><code>oldValue</code></dfn> attribute must return
+ the value it was initialized to. When the object is created, this attribute must be initialized to
+ null. It represents the old value of the key being changed.</p>
- <p>The <dfn
- title="dom-StorageEvent-newValue"><code>newValue</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the new value of the key being changed.</p>
+ <p>The <dfn title="dom-StorageEvent-newValue"><code>newValue</code></dfn> attribute must return
+ the value it was initialized to. When the object is created, this attribute must be initialized to
+ null. It represents the new value of the key being changed.</p>
- <p>The <dfn title="dom-StorageEvent-url"><code>url</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to the empty
- string. It represents the address of the document whose key
- changed.</p>
+ <p>The <dfn title="dom-StorageEvent-url"><code>url</code></dfn> attribute must return the value it
+ was initialized to. When the object is created, this attribute must be initialized to the empty
+ string. It represents the address of the document whose key changed.</p>
- <p>The <dfn
- title="dom-StorageEvent-storageArea"><code>storageArea</code></dfn>
- attribute must return the value it was initialized to. When the
- object is created, this attribute must be initialized to null. It
- represents the <code>Storage</code> object that was affected.</p>
+ <p>The <dfn title="dom-StorageEvent-storageArea"><code>storageArea</code></dfn> attribute must
+ return the value it was initialized to. When the object is created, this attribute must be
+ initialized to null. It represents the <code>Storage</code> object that was affected.</p>
<h5>Threads</h5>
- <p>Because of <a href="#localStorageMutex">the use</a> of the
- <span>storage mutex</span>, multiple browsing contexts will be able
- to access the local storage areas simultaneously in such a manner
+ <p>Because of <a href="#localStorageMutex">the use</a> of the <span>storage mutex</span>, multiple
+ browsing contexts will be able to access the local storage areas simultaneously in such a manner
that scripts cannot detect any concurrent script execution.</p>
- <p>Thus, the <code title="dom-Storage-length">length</code>
- attribute of a <code>Storage</code> object, and the value of the
- various properties of that object, cannot change while a script is
- executing, other than in a way that is predictable by the script
- itself.</p>
+ <p>Thus, the <code title="dom-Storage-length">length</code> attribute of a <code>Storage</code>
+ object, and the value of the various properties of that object, cannot change while a script is
+ executing, other than in a way that is predictable by the script itself.</p>
<h4>Disk space</h4>
-<!--CLEANUP-->
- <p>User agents should limit the total amount of space allowed for
- storage areas, because hostile authors could otherwise use this feature to exhaust the user's available disk space.</p>
+ <p>User agents should limit the total amount of space allowed for storage areas, because hostile
+ authors could otherwise use this feature to exhaust the user's available disk space.</p>
- <p>User agents should guard against sites storing data under their
- origin's other affiliated sites, e.g. storing up to the limit in
- a1.example.com, a2.example.com, a3.example.com, etc, circumventing
- the main example.com storage limit.</p>
+ <p>User agents should guard against sites storing data under their origin's other affiliated
+ sites, e.g. storing up to the limit in a1.example.com, a2.example.com, a3.example.com, etc,
+ circumventing the main example.com storage limit.</p>
- <p>User agents may prompt the user when quotas are reached, allowing
- the user to grant a site more space. This enables sites to store
- many user-created documents on the user's computer, for
+ <p>User agents may prompt the user when quotas are reached, allowing the user to grant a site more
+ space. This enables sites to store many user-created documents on the user's computer, for
instance.</p>
- <p>User agents should allow users to see how much space each domain
- is using.</p>
+ <p>User agents should allow users to see how much space each domain is using.</p>
<!--<p>If the storage area space limit is reached during a <code
- title="dom-Storage-setItem">setItem()</code> call, the method will
- throw an exception.</p>-->
+ title="dom-Storage-setItem">setItem()</code> call, the method will throw an exception.</p>-->
<p>A mostly arbitrary limit of five megabytes per <span>origin</span> is suggested. Implementation
feedback is welcome and will be used to update this suggestion in the future.</p>
@@ -97294,29 +97154,23 @@
<h5>User tracking</h5>
- <p>A third-party advertiser (or any entity capable of getting
- content distributed to multiple sites) could use a unique identifier
- stored in its local storage area to track a user across multiple
- sessions, building a profile of the user's interests to allow for
- highly targeted advertising. In conjunction with a site that is
- aware of the user's real identity (for example an e-commerce site
- that requires authenticated credentials), this could allow
- oppressive groups to target individuals with greater accuracy than
- in a world with purely anonymous Web usage.</p>
+ <p>A third-party advertiser (or any entity capable of getting content distributed to multiple
+ sites) could use a unique identifier stored in its local storage area to track a user across
+ multiple sessions, building a profile of the user's interests to allow for highly targeted
+ advertising. In conjunction with a site that is aware of the user's real identity (for example an
+ e-commerce site that requires authenticated credentials), this could allow oppressive groups to
+ target individuals with greater accuracy than in a world with purely anonymous Web usage.</p>
- <p>There are a number of techniques that can be used to mitigate the
- risk of user tracking:</p>
+ <p>There are a number of techniques that can be used to mitigate the risk of user tracking:</p>
<dl>
<dt>Blocking third-party storage</dt>
<dd>
- <p>User agents may restrict access to the <code
- title="dom-localStorage">localStorage</code> objects to scripts
- originating at the domain of the top-level document of the
- <span>browsing context</span>, for instance denying access to the
- API for pages from other domains running in
+ <p>User agents may restrict access to the <code title="dom-localStorage">localStorage</code>
+ objects to scripts originating at the domain of the top-level document of the <span>browsing
+ context</span>, for instance denying access to the API for pages from other domains running in
<code>iframe</code>s.</p>
</dd>
@@ -97327,43 +97181,35 @@
<p>User agents may, possibly in a manner configured by the user, automatically delete stored
data after a period of time.</p>
- <p>For example, a user agent could be configured to treat
- third-party local storage areas as session-only storage, deleting
- the data once the user had closed all the <span title="browsing
+ <p>For example, a user agent could be configured to treat third-party local storage areas as
+ session-only storage, deleting the data once the user had closed all the <span title="browsing
context">browsing contexts</span> that could access it.</p>
- <p>This can restrict the ability of a site to track a user, as the
- site would then only be able to track the user across multiple
- sessions when he authenticates with the site itself (e.g. by
+ <p>This can restrict the ability of a site to track a user, as the site would then only be able
+ to track the user across multiple sessions when he authenticates with the site itself (e.g. by
making a purchase or logging in to a service).</p>
- <p>However, this also reduces the usefulness of the API as a
- long-term storage mechanism. It can also put the user's data at
- risk, if the user does not fully understand the implications of
- data expiration.</p>
+ <p>However, this also reduces the usefulness of the API as a long-term storage mechanism. It can
+ also put the user's data at risk, if the user does not fully understand the implications of data
+ expiration.</p>
- <!--v2 consider adding an explicit way for sites to state when
- data should expire, as in localStorage.expireData(365); -->
+ <!--v2 consider adding an explicit way for sites to state when data should expire, as in
+ localStorage.expireData(365); -->
</dd>
<dt>Treating persistent storage as cookies</dt>
<dd>
- <p>If users attempt to protect their privacy by clearing cookies
- without also clearing data stored in the local storage area, sites
- can defeat those attempts by using the two features as redundant
- backup for each other. User agents should present the interfaces
- for clearing these in a way that helps users to understand this
- possibility and enables them to delete data in all persistent
- storage features simultaneously. <a
- href="#refsCOOKIES">[COOKIES]</a></p>
+ <p>If users attempt to protect their privacy by clearing cookies without also clearing data
+ stored in the local storage area, sites can defeat those attempts by using the two features as
+ redundant backup for each other. User agents should present the interfaces for clearing these in
+ a way that helps users to understand this possibility and enables them to delete data in all
+ persistent storage features simultaneously. <a href="#refsCOOKIES">[COOKIES]</a></p>
</dd>
- <dt>Site-specific white-listing of access to local storage
- areas</dt>
- <dd>
+ <dt>Site-specific white-listing of access to local storage areas</dt> <dd>
<p>User agents may allow sites to access session storage areas in
an unrestricted manner, but require the user to authorize access
@@ -97374,60 +97220,49 @@
<dt>Origin-tracking of stored data</dt>
<dd>
- <p>User agents may record the <span title="origin">origins</span>
- of sites that contained content from third-party origins that
- caused data to be stored.</p>
+ <p>User agents may record the <span title="origin">origins</span> of sites that contained
+ content from third-party origins that caused data to be stored.</p>
- <p>If this information is then used to present the view of data
- currently in persistent storage, it would allow the user to make
- informed decisions about which parts of the persistent storage to
- prune. Combined with a blacklist ("delete this data and prevent
- this domain from ever storing data again"), the user can restrict
- the use of persistent storage to sites that he trusts.</p>
+ <p>If this information is then used to present the view of data currently in persistent storage,
+ it would allow the user to make informed decisions about which parts of the persistent storage
+ to prune. Combined with a blacklist ("delete this data and prevent this domain from ever storing
+ data again"), the user can restrict the use of persistent storage to sites that he trusts.</p>
</dd>
<dt>Shared blacklists</dt>
<dd>
- <p>User agents may allow users to share their persistent storage
- domain blacklists.</p>
+ <p>User agents may allow users to share their persistent storage domain blacklists.</p>
- <p>This would allow communities to act together to protect their
- privacy.</p>
+ <p>This would allow communities to act together to protect their privacy.</p>
</dd>
</dl>
- <p>While these suggestions prevent trivial use of this API for user
- tracking, they do not block it altogether. Within a single domain, a
- site can continue to track the user during a session, and can then
- pass all this information to the third party along with any
- identifying information (names, credit card numbers, addresses)
- obtained by the site. If a third party cooperates with multiple
- sites to obtain such information, a profile can still be
- created.</p>
+ <p>While these suggestions prevent trivial use of this API for user tracking, they do not block it
+ altogether. Within a single domain, a site can continue to track the user during a session, and
+ can then pass all this information to the third party along with any identifying information
+ (names, credit card numbers, addresses) obtained by the site. If a third party cooperates with
+ multiple sites to obtain such information, a profile can still be created.</p>
- <p>However, user tracking is to some extent possible even with no
- cooperation from the user agent whatsoever, for instance by using
- session identifiers in URLs, a technique already commonly used for
- innocuous purposes but easily repurposed for user tracking (even
- retroactively). This information can then be shared with other
- sites, using visitors' IP addresses and other user-specific data
- (e.g. user-agent headers and configuration settings) to combine
- separate sessions into coherent user profiles.</p>
+ <p>However, user tracking is to some extent possible even with no cooperation from the user agent
+ whatsoever, for instance by using session identifiers in URLs, a technique already commonly used
+ for innocuous purposes but easily repurposed for user tracking (even retroactively). This
+ information can then be shared with other sites, using visitors' IP addresses and other
+ user-specific data (e.g. user-agent headers and configuration settings) to combine separate
+ sessions into coherent user profiles.</p>
<h5>Sensitivity of data</h5>
- <p>User agents should treat persistently stored data as potentially
- sensitive; it's quite possible for e-mails, calendar appointments,
- health records, or other confidential documents to be stored in this
- mechanism.</p>
+ <p>User agents should treat persistently stored data as potentially sensitive; it's quite possible
+ for e-mails, calendar appointments, health records, or other confidential documents to be stored
+ in this mechanism.</p>
- <p>To this end, user agents should ensure that when deleting data,
- it is promptly deleted from the underlying storage.</p>
+ <p>To this end, user agents should ensure that when deleting data, it is promptly deleted from the
+ underlying storage.</p>
<!--ADD-TOPIC:Security-->
@@ -97435,12 +97270,10 @@
<h5>DNS spoofing attacks</h5>
- <p>Because of the potential for DNS spoofing attacks, one cannot
- guarantee that a host claiming to be in a certain domain really is
- from that domain. To mitigate this, pages can use TLS. Pages using
- TLS can be sure that only the user, software working on behalf of
- the user, and other pages using TLS that have certificates
- identifying them as being from the same domain, can access their
+ <p>Because of the potential for DNS spoofing attacks, one cannot guarantee that a host claiming to
+ be in a certain domain really is from that domain. To mitigate this, pages can use TLS. Pages
+ using TLS can be sure that only the user, software working on behalf of the user, and other pages
+ using TLS that have certificates identifying them as being from the same domain, can access their
storage areas.</p>
@@ -97451,35 +97284,29 @@
the access by pathname. Authors on shared hosts are therefore urged to avoid using these features,
as it would be trivial for other authors to read the data and overwrite it.</p>
- <p class="note">Even if a path-restriction feature was made
- available, the usual DOM scripting security model would make it
- trivial to bypass this protection and access the data from any
+ <p class="note">Even if a path-restriction feature was made available, the usual DOM scripting
+ security model would make it trivial to bypass this protection and access the data from any
path.</p>
<h5>Implementation risks</h5>
- <p>The two primary risks when implementing these persistent storage
- features are letting hostile sites read information from other
- domains, and letting hostile sites write information that is then
- read from other domains.</p>
+ <p>The two primary risks when implementing these persistent storage features are letting hostile
+ sites read information from other domains, and letting hostile sites write information that is
+ then read from other domains.</p>
- <p>Letting third-party sites read data that is not supposed to be
- read from their domain causes <em>information leakage</em>, For
- example, a user's shopping wishlist on one domain could be used by
- another domain for targeted advertising; or a user's
- work-in-progress confidential documents stored by a word-processing
- site could be examined by the site of a competing company.</p>
+ <p>Letting third-party sites read data that is not supposed to be read from their domain causes
+ <em>information leakage</em>, For example, a user's shopping wishlist on one domain could be used
+ by another domain for targeted advertising; or a user's work-in-progress confidential documents
+ stored by a word-processing site could be examined by the site of a competing company.</p>
- <p>Letting third-party sites write data to the persistent storage of
- other domains can result in <em>information spoofing</em>, which is
- equally dangerous. For example, a hostile site could add items to a
- user's wishlist; or a hostile site could set a user's session
- identifier to a known ID that the hostile site can then use to track
- the user's actions on the victim site.</p>
+ <p>Letting third-party sites write data to the persistent storage of other domains can result in
+ <em>information spoofing</em>, which is equally dangerous. For example, a hostile site could add
+ items to a user's wishlist; or a hostile site could set a user's session identifier to a known ID
+ that the hostile site can then use to track the user's actions on the victim site.</p>
- <p>Thus, strictly following the <span>origin</span> model described
- in this specification is important for user security.</p>
+ <p>Thus, strictly following the <span>origin</span> model described in this specification is
+ important for user security.</p>
<!--REMOVE-TOPIC:Security-->
<!--END storage-->
@@ -97491,20 +97318,18 @@
<h2 id="syntax"><dfn>The HTML syntax</dfn></h2>
- <p class="note">This section only describes the rules for resources
- labeled with an <span>HTML MIME type</span>. Rules for XML resources
- are discussed in the section below entitled "<span>The XHTML
- syntax</span>".</p>
+ <p class="note">This section only describes the rules for resources labeled with an <span>HTML
+ MIME type</span>. Rules for XML resources are discussed in the section below entitled "<span>The
+ XHTML syntax</span>".</p>
<h3 id="writing">Writing HTML documents</h3>
<div class="impl">
- <p><i>This section only applies to documents, authoring tools, and
- markup generators. In particular, it does not apply to conformance
- checkers; conformance checkers must use the requirements given in
- the next section ("parsing HTML documents").</i></p>
+ <p><i>This section only applies to documents, authoring tools, and markup generators. In
+ particular, it does not apply to conformance checkers; conformance checkers must use the
+ requirements given in the next section ("parsing HTML documents").</i></p>
</div>
@@ -97515,46 +97340,40 @@
<li>Optionally, a single U+FEFF BYTE ORDER MARK (BOM) character.</li>
- <li>Any number of <span title="syntax-comments">comments</span> and
- <span title="space character">space characters</span>.</li>
+ <li>Any number of <span title="syntax-comments">comments</span> and <span title="space
+ character">space characters</span>.</li>
<li>A <span title="syntax-doctype">DOCTYPE</span>.
- <li>Any number of <span title="syntax-comments">comments</span> and
- <span title="space character">space characters</span>.</li>
+ <li>Any number of <span title="syntax-comments">comments</span> and <span title="space
+ character">space characters</span>.</li>
<li>The root element, in the form of an <code>html</code> <span
title="syntax-elements">element</span>.</li>
- <li>Any number of <span title="syntax-comments">comments</span> and
- <span title="space character">space characters</span>.</li>
+ <li>Any number of <span title="syntax-comments">comments</span> and <span title="space
+ character">space characters</span>.</li>
</ol>
- <p>The various types of content mentioned above are described in the
- next few sections.</p>
+ <p>The various types of content mentioned above are described in the next few sections.</p>
- <p>In addition, there are some restrictions on how <span
- title="character encoding declaration">character encoding
- declarations</span> are to be serialized, as discussed in the
+ <p>In addition, there are some restrictions on how <span title="character encoding
+ declaration">character encoding declarations</span> are to be serialized, as discussed in the
section on that topic.</p>
<div class="note">
- <p>Space characters before the root <code>html</code> element, and
- space characters at the start of the <code>html</code> element and
- before the <code>head</code> element, will be dropped when the
- document is parsed; space characters <em>after</em> the root
- <code>html</code> element will be parsed as if they were at the end
- of the <code>body</code> element. Thus, space characters around the
- root element do not round-trip.</p>
+ <p>Space characters before the root <code>html</code> element, and space characters at the start
+ of the <code>html</code> element and before the <code>head</code> element, will be dropped when
+ the document is parsed; space characters <em>after</em> the root <code>html</code> element will
+ be parsed as if they were at the end of the <code>body</code> element. Thus, space characters
+ around the root element do not round-trip.</p>
- <p>It is suggested that newlines be inserted after the DOCTYPE,
- after any comments that are before the root element, after the
- <code>html</code> element's start tag (if it is not <span
- title="syntax-tag-omission">omitted</span>), and after any comments
- that are inside the <code>html</code> element but before the
- <code>head</code> element.</p>
+ <p>It is suggested that newlines be inserted after the DOCTYPE, after any comments that are
+ before the root element, after the <code>html</code> element's start tag (if it is not <span
+ title="syntax-tag-omission">omitted</span>), and after any comments that are inside the
+ <code>html</code> element but before the <code>head</code> element.</p>
</div>
@@ -97566,17 +97385,15 @@
<h4>The DOCTYPE</h4>
- <p>A <dfn title="syntax-doctype">DOCTYPE</dfn> is a <!-- mostly
- useless but nonetheless --> required preamble.</p>
+ <p>A <dfn title="syntax-doctype">DOCTYPE</dfn> is a <!-- mostly useless but nonetheless -->
+ required preamble.</p>
- <p class="note">DOCTYPEs are required for legacy reasons. When
- omitted, browsers tend to use a different rendering mode that is
- incompatible with some specifications. Including the DOCTYPE in a
- document ensures that the browser makes a best-effort attempt at
- following the relevant specifications.</p>
+ <p class="note">DOCTYPEs are required for legacy reasons. When omitted, browsers tend to use a
+ different rendering mode that is incompatible with some specifications. Including the DOCTYPE in a
+ document ensures that the browser makes a best-effort attempt at following the relevant
+ specifications.</p>
- <p>A DOCTYPE must consist of the following components, in this
- order:</p>
+ <p>A DOCTYPE must consist of the following components, in this order:</p>
<ol class="brief">
<li>A string that is an <span>ASCII case-insensitive</span> match for the string "<code title=""><!DOCTYPE</code>".</li>
@@ -97587,8 +97404,7 @@
<li>A U+003E GREATER-THAN SIGN character (>).</li>
</ol>
- <p class="note">In other words, <code><!DOCTYPE html></code>,
- case-insensitively.</p>
+ <p class="note">In other words, <code><!DOCTYPE html></code>, case-insensitively.</p>
<hr>
More information about the Commit-Watchers
mailing list