[html5] r2390 - [] (0) WF2: forminput/formchange, rework how <option> defines a command, and edi [...]

whatwg at whatwg.org whatwg at whatwg.org
Thu Nov 6 13:49:37 PST 2008


Author: ianh
Date: 2008-11-06 13:49:36 -0800 (Thu, 06 Nov 2008)
New Revision: 2390

Modified:
   index
   source
Log:
[] (0) WF2: forminput/formchange, rework how <option> defines a command, and editorial fixes.

Modified: index
===================================================================
--- index	2008-11-05 16:34:55 UTC (rev 2389)
+++ index	2008-11-06 21:49:36 UTC (rev 2390)
@@ -16,7 +16,7 @@
   <div class=head>
    <p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG src=/images/logo></a></p>
    <h1>HTML 5</h1>
-   <h2 class="no-num no-toc" id=draft-recommendation-—-date:-01-jan-1901>Draft Recommendation — 5 November 2008</h2>
+   <h2 class="no-num no-toc" id=draft-recommendation-—-date:-01-jan-1901>Draft Recommendation — 6 November 2008</h2>
    <p>You can take part in this work. <a href=http://www.whatwg.org/mailing-list>Join the working group's discussion list.</a></p>
    <p><strong>Web designers!</strong> We have a <a href=http://blog.whatwg.org/faq/>FAQ</a>, a <a href=http://forums.whatwg.org/>forum</a>, and a <a href=http://www.whatwg.org/mailing-list#help>help mailing list</a> for you!</p>
    <dl><dt>Multiple-page version:</dt>
@@ -24249,7 +24249,7 @@
    <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code>, and
    <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> methods.</p>
 
-   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not fire.</p>
+   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
 
   </div>
 
@@ -25508,7 +25508,8 @@
   value it had before the <a href=#pre-click-activation-steps>pre-click activation steps</a> were
   run. The <a href=#activation-behavior>activation behavior</a> is to <a href=#fire-a-simple-event>fire a simple
   event</a> called <code title=event-change>change</code> at the
-  element.</p>
+  element, then <a href=#broadcast-formchange-events>broadcast <code title=event-formchange>formchange</code> events</a> at the
+  element's <a href=#form-owner>form owner</a>.</p>
 
   <p><strong>Constraint validation:</strong> If the element is <i title=concept-input-required><a href=#concept-input-required>required</a></i> and its <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> is false, then the
   element is <a href=#suffering-from-being-missing>suffering from being missing</a>.</p>
@@ -25613,7 +25614,8 @@
   the element's <a href=#concept-fe-checked title=concept-fe-checked>checkedness</a> to
   false. The <a href=#activation-behavior>activation behavior</a> is to <a href=#fire-a-simple-event>fire a
   simple event</a> called <code title=event-change>change</code>
-  at the element.</p>
+  at the element, then <a href=#broadcast-formchange-events>broadcast <code title=event-formchange>formchange</code> events</a> at the
+  element's <a href=#form-owner>form owner</a>.</p>
 
   <p><strong>Constraint validation:</strong> If the element is <i title=concept-input-required><a href=#concept-input-required>required</a></i> and all of the
   <code><a href=#the-input-element>input</a></code> elements in the <i><a href=#radio-button-group>radio button group</a></i> have a
@@ -25838,7 +25840,7 @@
    <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
    <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
 
-   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not fire.</p>
+   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
 
   </div>
 
@@ -25997,7 +25999,7 @@
    <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
    <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
 
-   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not fire.</p>
+   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
 
   </div>
 
@@ -26064,7 +26066,7 @@
    <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
    <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
 
-   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not fire.</p>
+   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
 
   </div>
 
@@ -26121,7 +26123,7 @@
    <code class=no-backref title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> and
    <code class=no-backref title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code> methods.</p>
 
-   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not fire.</p>
+   <p>The <code class=no-backref title=event-input-input><a href=#event-input-input>input</a></code> and <code class=no-backref title=event-input-change><a href=#event-input-change>change</a></code> events do not apply.</p>
 
   </div>
 
@@ -26631,8 +26633,10 @@
 
   <p>When the <dfn id=event-input-input title=event-input-input><code>input</code></dfn>
   event applies, the user agent must <a href=#queue-a-task>queue a task</a> to
-  <a href=#fire-a-simple-event>fire a simple event</a> called <code title=event-input>input</code> at the <code><a href=#the-input-element>input</a></code> element
-  any time the user causes the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to change. User agents may
+  <a href=#fire-a-simple-event>fire a simple event</a> called <code title=event-input>input</code> at the <code><a href=#the-input-element>input</a></code> element,
+  then <a href=#broadcast-forminput-events>broadcast <code title=event-forminput>forminput</code>
+  events</a> at the <code><a href=#the-input-element>input</a></code> element's <a href=#form-owner>form
+  owner</a>, any time the user causes the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to change. User agents may
   wait for a suitable break in the user's interaction before queuing
   the task; for example, a user agent could wait for the user to have
   not hit a key for 100ms, so as to only fire the event when the user
@@ -26642,8 +26646,10 @@
   if the element does not have an <a href=#activation-behavior>activation behavior</a>
   defined but uses a user interface that involves an explicit commit
   action, then the user agent must <a href=#queue-a-task>queue a task</a> to
-  <a href=#fire-a-simple-event>fire a simple event</a> called <code title=event-change>change</code> at the <code><a href=#the-input-element>input</a></code> element
-  any time the user commits a change to the element's <a href=#concept-fe-value title=concept-fe-value>value</a> or list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>.</p>
+  <a href=#fire-a-simple-event>fire a simple event</a> called <code title=event-change>change</code> at the <code><a href=#the-input-element>input</a></code>
+  element, then <a href=#broadcast-formchange-events>broadcast <code title=event-formchange>formchange</code> events</a> at the
+  <code><a href=#the-input-element>input</a></code> element's <a href=#form-owner>form owner</a>, any time the
+  user commits a change to the element's <a href=#concept-fe-value title=concept-fe-value>value</a> or list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>.</p>
 
   <p class=example>An example of a user interface with a commit
   action would be a <a href=#file-upload-state title=attr-input-type-file>File
@@ -26660,7 +26666,7 @@
   and then dismissing the drop down would be a commit action.</p>
 
   <p class=note>In addition, when the <code title=event-input-change><a href=#event-input-change>change</a></code> event applies, <code title=event-change>change</code> events can also be fired as part
-  of the element's <span>action behavior</span> and as part of the
+  of the element's <a href=#activation-behavior>activation behavior</a> and as part of the
   <a href=#unfocusing-steps>unfocusing steps</a>.</p>
 
   <p>The <a href=#task-source>task source</a> for these <span title=concept-tasks>task</span> is the <a href=#user-interaction-task-source>user interaction task
@@ -26886,15 +26892,17 @@
   should allow the user to pick an <code><a href=#the-option-element>option</a></code> element in its
   <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> that
   is itself not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>. Upon this
-  <code><a href=#the-option-element>option</a></code> element being picked (either through a click, or
+  <code><a href=#the-option-element>option</a></code> element being <dfn id=concept-select-pick title=concept-select-pick>picked</dfn> (either through a click, or
   through unfocusing the element after changing its value, or through
-  any other mechanism), and before the relevant user interaction event
-  is queued (e.g. before the <span title=event-click>click</span>
+  a <a href=#using-the-option-element-to-define-a-command title=option-command>menu command</a>, or through any
+  other mechanism), and before the relevant user interaction event is
+  queued (e.g. before the <span title=event-click>click</span>
   event), the user agent must set the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of the
   picked <code><a href=#the-option-element>option</a></code> element to true and then <a href=#queue-a-task>queue a
   task</a> to <a href=#fire-a-simple-event>fire a simple event</a> called <code title=event-change>change</code> at the <code><a href=#the-select-element>select</a></code>
   element, using the <a href=#user-interaction-task-source>user interaction task source</a> as the
-  task source.</p>
+  task source, then <a href=#broadcast-formchange-events>broadcast <code title=event-formchange>formchange</code> events</a> at the
+  element's <a href=#form-owner>form owner</a>.</p>
 
   <p>If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
   attribute is absent, whenever an <code><a href=#the-option-element>option</a></code> element in the
@@ -26917,16 +26925,19 @@
 
   <p>If the <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code>
   attribute is present, and the element is not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>, then the user agent
-  should allow the user to toggle the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of the
+  should allow the user to <dfn id=concept-select-toggle title=concept-select-toggle>toggle</dfn> the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of the
   <code><a href=#the-option-element>option</a></code> elements in its <a href=#concept-select-option-list title=concept-select-option-list>list of options</a> that are
-  themselves not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>. Upon the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of one or
+  themselves not <a href=#concept-option-disabled title=concept-option-disabled>disabled</a>
+  (either through a click, or through a <a href=#using-the-option-element-to-define-a-command title=option-command>menu command</a>, or any other
+  mechanism). Upon the <a href=#concept-option-selectedness title=concept-option-selectedness>selectedness</a> of one or
   more <code><a href=#the-option-element>option</a></code> elements being changed by the user, and
   before the relevant user interaction event is queued (e.g. before a
   related <span title=event-click>click</span> event), the user
   agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
   event</a> called <code title=event-change>change</code> at the
   <code><a href=#the-select-element>select</a></code> element, using the <a href=#user-interaction-task-source>user interaction task
-  source</a> as the task source.</p>
+  source</a> as the task source, then <a href=#broadcast-formchange-events>broadcast <code title=event-formchange>formchange</code> events</a> at the
+  element's <a href=#form-owner>form owner</a>.</p>
 
   <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset
   algorithm</a> for <code><a href=#the-select-element>select</a></code> elements is to go through
@@ -28800,14 +28811,8 @@
    <a href=#tree-order>tree order</a>, <a href=#fire-a-simple-event>fire a simple event</a> named
    <var title="">event name</var> at the element.</li>
 
-  </ol><p class=XXX>Still need to define when formchange and forminput
-  fire naturally.</p>
+  </ol><h3 id=interactive-elements><span class=secno>4.11 </span>Interactive elements</h3>
 
-
-
-
-  <h3 id=interactive-elements><span class=secno>4.11 </span>Interactive elements</h3>
-
   <h4 id=the-details-element><span class=secno>4.11.1 </span>The <dfn><code>details</code></dfn> element</h4>
 
   <dl class=element><dt>Categories</dt>
@@ -31425,7 +31430,7 @@
   <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 the value of the <code><a href=#the-option-element>option</a></code> element's
-  <code><a href=#textcontent>textContent</a></code> DOM attribute if it doesn't.</p>
+  <code><a href=#textcontent>textContent</a></code> DOM attribute if there isn'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-title><a href=#the-title-attribute>title</a></code> attribute, if any, and the empty
@@ -31439,24 +31444,19 @@
   otherwise.</p>
 
   <p>The <a href=#command-facet-disabledstate title=command-facet-DisabledState>Disabled
-  State</a> of the command is true (disabled) if the element has a
-  <code title=attr-option-disabled><a href=#attr-option-disabled>disabled</a></code> attribute, and
-  false otherwise.</p>
+  State</a> of the command is true (disabled) 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-option-disabled title=concept-option-disabled>disabled</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 <code title=dom-option-selected><a href=#dom-option-selected>selected</a></code> DOM attribute is true,
-  and false otherwise.</p>
+  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 this must set
-  the <code title=dom-option-selected><a href=#dom-option-selected>selected</a></code> DOM attribute
-  of the <code><a href=#the-option-element>option</a></code> element to true, otherwise it must toggle
-  the state of the <code title=dom-option-selected><a href=#dom-option-selected>selected</a></code>
-  DOM attribute (set it to true if it is false and vice versa). Then
-  <a href=#fire-a-change-event title="fire a change event">a <code title="">change</code>
-  event must be fired</a> on the <code><a href=#the-option-element>option</a></code> element's
-  nearest ancestor <code><a href=#the-select-element>select</a></code> element (if there is one), as
-  if the selection had been changed directly.</p>
+  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-command-element-to-define-a-command><span class=secno>4.11.6.5 </span>Using the <dfn title=command-element><code>command</code></dfn> element to define
@@ -33314,11 +33314,6 @@
   values appropriately describing the state of the key input device at
   the time the event is created.</p>
 
-  <p><dfn id=fire-a-change-event title="fire a change event">Firing a <code title=event-change>change</code> event</dfn> means that a <a href=http://www.w3.org/TR/DOM-Level-3-Events/events.html#event-change><code>change</code></a>
-  event with no namespace, which bubbles but is not cancelable, and
-  which uses the <code>Event</code> interface, must be dispatched at
-  the given element.</p>
-
   <p><dfn id=fire-a-contextmenu-event title="fire a contextmenu event">Firing a <code title=event-contextmenu>contextmenu</code> event</dfn> means that
   a <code title=event-contextmenu>contextmenu</code> event with no
   namespace, which bubbles and is cancelable, and which uses the
@@ -39487,7 +39482,9 @@
    element, and the element does not have a defined <a href=#activation-behavior>activation
    behavior</a>, and the user has changed the element's <a href=#concept-fe-value title=concept-fe-value>value</a> or its list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>
    while the control was focused without committing that change, then
-   <a href=#fire-a-simple-event>fire a simple event</a> called <code title=event-change>change</code> at the element.</p>
+   <a href=#fire-a-simple-event>fire a simple event</a> called <code title=event-change>change</code> at the element, then
+   <a href=#broadcast-formchange-events>broadcast <code title=event-formchange>formchange</code>
+   events</a> at the element's <a href=#form-owner>form owner</a>.</p>
 
    <li><p>Unfocus the element.</li>
 

Modified: source
===================================================================
--- source	2008-11-05 16:34:55 UTC (rev 2389)
+++ source	2008-11-06 21:49:36 UTC (rev 2390)
@@ -27084,7 +27084,7 @@
 
    <p>The <code class="no-backref"
    title="event-input-input">input</code> and <code class="no-backref"
-   title="event-input-change">change</code> events do not fire.</p>
+   title="event-input-change">change</code> events do not apply.</p>
 
   </div>
 
@@ -28520,7 +28520,9 @@
   value it had before the <span>pre-click activation steps</span> were
   run. The <span>activation behavior</span> is to <span>fire a simple
   event</span> called <code title="event-change">change</code> at the
-  element.</p>
+  element, then <span>broadcast <code
+  title="event-formchange">formchange</code> events</span> at the
+  element's <span>form owner</span>.</p>
 
   <p><strong>Constraint validation:</strong> If the element is <i
   title="concept-input-required">required</i> and its <span
@@ -28645,7 +28647,9 @@
   the element's <span title="concept-fe-checked">checkedness</span> to
   false. The <span>activation behavior</span> is to <span>fire a
   simple event</span> called <code title="event-change">change</code>
-  at the element.</p>
+  at the element, then <span>broadcast <code
+  title="event-formchange">formchange</code> events</span> at the
+  element's <span>form owner</span>.</p>
 
   <p><strong>Constraint validation:</strong> If the element is <i
   title="concept-input-required">required</i> and all of the
@@ -28896,7 +28900,7 @@
 
    <p>The <code class="no-backref"
    title="event-input-input">input</code> and <code class="no-backref"
-   title="event-input-change">change</code> events do not fire.</p>
+   title="event-input-change">change</code> events do not apply.</p>
 
   </div>
 
@@ -29101,7 +29105,7 @@
 
    <p>The <code class="no-backref"
    title="event-input-input">input</code> and <code class="no-backref"
-   title="event-input-change">change</code> events do not fire.</p>
+   title="event-input-change">change</code> events do not apply.</p>
 
   </div>
 
@@ -29175,7 +29179,7 @@
 
    <p>The <code class="no-backref"
    title="event-input-input">input</code> and <code class="no-backref"
-   title="event-input-change">change</code> events do not fire.</p>
+   title="event-input-change">change</code> events do not apply.</p>
 
   </div>
 
@@ -29239,7 +29243,7 @@
 
    <p>The <code class="no-backref"
    title="event-input-input">input</code> and <code class="no-backref"
-   title="event-input-change">change</code> events do not fire.</p>
+   title="event-input-change">change</code> events do not apply.</p>
 
   </div>
 
@@ -29895,8 +29899,10 @@
   <p>When the <dfn title="event-input-input"><code>input</code></dfn>
   event applies, the user agent must <span>queue a task</span> to
   <span>fire a simple event</span> called <code
-  title="event-input">input</code> at the <code>input</code> element
-  any time the user causes the element's <span
+  title="event-input">input</code> at the <code>input</code> element,
+  then <span>broadcast <code title="event-forminput">forminput</code>
+  events</span> at the <code>input</code> element's <span>form
+  owner</span>, any time the user causes the element's <span
   title="concept-fe-value">value</span> to change. User agents may
   wait for a suitable break in the user's interaction before queuing
   the task; for example, a user agent could wait for the user to have
@@ -29909,8 +29915,11 @@
   defined but uses a user interface that involves an explicit commit
   action, then the user agent must <span>queue a task</span> to
   <span>fire a simple event</span> called <code
-  title="event-change">change</code> at the <code>input</code> element
-  any time the user commits a change to the element's <span
+  title="event-change">change</code> at the <code>input</code>
+  element, then <span>broadcast <code
+  title="event-formchange">formchange</code> events</span> at the
+  <code>input</code> element's <span>form owner</span>, any time the
+  user commits a change to the element's <span
   title="concept-fe-value">value</span> or list of <span
   title="concept-input-type-file-selected">selected files</span>.</p>
 
@@ -29932,7 +29941,7 @@
   <p class="note">In addition, when the <code
   title="event-input-change">change</code> event applies, <code
   title="event-change">change</code> events can also be fired as part
-  of the element's <span>action behavior</span> and as part of the
+  of the element's <span>activation behavior</span> and as part of the
   <span>unfocusing steps</span>.</p>
 
   <p>The <span>task source</span> for these <span
@@ -30198,17 +30207,21 @@
   <span title="concept-select-option-list">list of options</span> that
   is itself not <span
   title="concept-option-disabled">disabled</span>. Upon this
-  <code>option</code> element being picked (either through a click, or
+  <code>option</code> element being <dfn
+  title="concept-select-pick">picked</dfn> (either through a click, or
   through unfocusing the element after changing its value, or through
-  any other mechanism), and before the relevant user interaction event
-  is queued (e.g. before the <span title="event-click">click</span>
+  a <span title="option-command">menu command</span>, or through any
+  other mechanism), and before the relevant user interaction event is
+  queued (e.g. before the <span title="event-click">click</span>
   event), the user agent must set the <span
   title="concept-option-selectedness">selectedness</span> of the
   picked <code>option</code> element to true and then <span>queue a
   task</span> to <span>fire a simple event</span> called <code
   title="event-change">change</code> at the <code>select</code>
   element, using the <span>user interaction task source</span> as the
-  task source.</p>
+  task source, then <span>broadcast <code
+  title="event-formchange">formchange</code> events</span> at the
+  element's <span>form owner</span>.</p>
 
   <p>If the <code title="attr-select-multiple">multiple</code>
   attribute is absent, whenever an <code>option</code> element in the
@@ -30241,12 +30254,15 @@
   <p>If the <code title="attr-select-multiple">multiple</code>
   attribute is present, and the element is not <span
   title="concept-fe-disabled">disabled</span>, then the user agent
-  should allow the user to toggle the <span
+  should allow the user to <dfn
+  title="concept-select-toggle">toggle</dfn> the <span
   title="concept-option-selectedness">selectedness</span> of the
   <code>option</code> elements in its <span
   title="concept-select-option-list">list of options</span> that are
-  themselves not <span
-  title="concept-option-disabled">disabled</span>. Upon the <span
+  themselves not <span title="concept-option-disabled">disabled</span>
+  (either through a click, or through a <span
+  title="option-command">menu command</span>, or any other
+  mechanism). Upon the <span
   title="concept-option-selectedness">selectedness</span> of one or
   more <code>option</code> elements being changed by the user, and
   before the relevant user interaction event is queued (e.g. before a
@@ -30254,7 +30270,9 @@
   agent must <span>queue a task</span> to <span>fire a simple
   event</span> called <code title="event-change">change</code> at the
   <code>select</code> element, using the <span>user interaction task
-  source</span> as the task source.</p>
+  source</span> as the task source, then <span>broadcast <code
+  title="event-formchange">formchange</code> events</span> at the
+  element's <span>form owner</span>.</p>
 
   <p>The <span title="concept-form-reset-control">reset
   algorithm</span> for <code>select</code> elements is to go through
@@ -32601,12 +32619,9 @@
 
   </ol>
 
-  <p class="XXX">Still need to define when formchange and forminput
-  fire naturally.</p>
 
 
 
-
   <h3 id="interactive-elements">Interactive elements</h3>
 
   <h4>The <dfn><code>details</code></dfn> element</h4>
@@ -35759,7 +35774,7 @@
   is the value of the <code>option</code> element's <code
   title="attr-option-label">label</code> attribute, if there is one,
   or the value of the <code>option</code> element's
-  <code>textContent</code> DOM attribute if it doesn't.</p>
+  <code>textContent</code> DOM attribute if there isn't.</p>
 
   <p>The <span title="command-facet-Hint">Hint</span> of the command
   is the string given by the element's <code
@@ -35775,27 +35790,25 @@
   otherwise.</p>
 
   <p>The <span title="command-facet-DisabledState">Disabled
-  State</span> of the command is true (disabled) if the element has a
-  <code title="attr-option-disabled">disabled</code> attribute, and
-  false otherwise.</p>
+  State</span> of the command is true (disabled) if the element is
+  <span title="concept-option-disabled">disabled</span> or if its
+  nearest ancestor <code>select</code> element is <span
+  title="concept-option-disabled">disabled</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 <code
-  title="dom-option-selected">selected</code> DOM attribute is true,
-  and false otherwise.</p>
+  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
   title="command-facet-Type">Type</span>. If the command is of <span
-  title="command-facet-Type">Type</span> "radio" then this must set
-  the <code title="dom-option-selected">selected</code> DOM attribute
-  of the <code>option</code> element to true, otherwise it must toggle
-  the state of the <code title="dom-option-selected">selected</code>
-  DOM attribute (set it to true if it is false and vice versa). Then
-  <span title="fire a change event">a <code title="">change</code>
-  event must be fired</span> on the <code>option</code> element's
-  nearest ancestor <code>select</code> element (if there is one), as
-  if the selection had been changed directly.</p>
+  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>
 
 
   <h5>Using the <dfn
@@ -37917,13 +37930,6 @@
   values appropriately describing the state of the key input device at
   the time the event is created.</p>
 
-  <p><dfn title="fire a change event">Firing a <code
-  title="event-change">change</code> event</dfn> means that a <a
-  href="http://www.w3.org/TR/DOM-Level-3-Events/events.html#event-change"><code>change</code></a>
-  event with no namespace, which bubbles but is not cancelable, and
-  which uses the <code>Event</code> interface, must be dispatched at
-  the given element.</p>
-
   <p><dfn title="fire a contextmenu event">Firing a <code
   title="event-contextmenu">contextmenu</code> event</dfn> means that
   a <code title="event-contextmenu">contextmenu</code> event with no
@@ -44975,7 +44981,9 @@
    title="concept-input-type-file-selected">selected files</span>
    while the control was focused without committing that change, then
    <span>fire a simple event</span> called <code
-   title="event-change">change</code> at the element.</p>
+   title="event-change">change</code> at the element, then
+   <span>broadcast <code title="event-formchange">formchange</code>
+   events</span> at the element's <span>form owner</span>.</p>
 
    <li><p>Unfocus the element.</p></li>
 




More information about the Commit-Watchers mailing list