- From: poot <cvsmail@w3.org>
- Date: Thu, 15 Jan 2009 10:01:19 +0900 (JST)
- To: public-html-diffs@w3.org
Redefine how the enumeration works on <form> to be more compatible with content. (whatwg r2670) item(index) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-htmlformcontrolscollection-item submit() http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-form-submit item(index) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-form-item Status of this document http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#status-of-this-document length http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-form-length namedItem(name) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-select-nameditem namedItem(name) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-htmloptionscollection-nameditem A vocabulary and associated APIs for HTML and XHTML http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#a-vocabulary-and-associated-apis-for-html-and-xhtml elements http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-form-elements reset() http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-form-reset past names map http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#past-names-map item(index) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-htmloptionscollection-item add() http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-select-add selectedOptions http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-select-selectedoptions item(index) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-select-item Editor's Draft 15 January 2009 http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#editor-s-draft-date-zzz-9-june-2008 length http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-select-length namedItem(name) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-form-nameditem namedItem(name) http://people.w3.org/mike/diffs/html5/spec/Overview.1.1840.html#dom-htmlformcontrolscollection-nameditem http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.1839&r2=1.1840&f=h http://html5.org/tools/web-apps-tracker?from=2669&to=2670 =================================================================== RCS file: /sources/public/html5/spec/Overview.html,v retrieving revision 1.1839 retrieving revision 1.1840 diff -u -d -r1.1839 -r1.1840 --- Overview.html 14 Jan 2009 22:05:54 -0000 1.1839 +++ Overview.html 15 Jan 2009 00:58:19 -0000 1.1840 @@ -8,7 +8,7 @@ <p><a href=http://www.w3.org/><img alt=W3C height=48 src=http://www.w3.org/Icons/w3c_home width=72></a></p> <h1>HTML 5</h1> <h2 class="no-num no-toc" id=a-vocabulary-and-associated-apis-for-html-and-xhtml>A vocabulary and associated APIs for HTML and XHTML</h2> - <h2 class="no-num no-toc" id=editor-s-draft-date-zzz-9-june-2008><!-- "W3C Working Draft" --> Editor's Draft <!--ZZZ-->14 January 2009</h2> + <h2 class="no-num no-toc" id=editor-s-draft-date-zzz-9-june-2008><!-- "W3C Working Draft" --> Editor's Draft <!--ZZZ-->15 January 2009</h2> <dl><!-- ZZZ: update the month/day <dt>This Version:</dt> <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090610/">http://www.w3.org/TR/2009/WD-html5-20090610/</a></dd> @@ -97,7 +97,7 @@ specification's progress along the W3C Recommendation track. <!--ZZZ:--> - This specification is the 14 January 2009 <!--ZZZ "Working Draft"-->Editor's Draft. + This specification is the 15 January 2009 <!--ZZZ "Working Draft"-->Editor's Draft. <!--:ZZZ--> </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href=http://www.whatwg.org/>WHATWG</a>. The two specifications are identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of) @@ -4523,21 +4523,21 @@ collection</a>.<p>The <dfn id=dom-htmlformcontrolscollection-item title=dom-HTMLFormControlsCollection-item><code>item(<var title="">index</var>)</code></dfn> method must return the <var title="">index</var>th node in the collection. If there is no <var title="">index</var>th node in the collection, then the method must return null.<p>The <span>names of the supported named properties</span> consist of the values of all the <code title=attr-id><a href=#the-id-attribute>id</a></code> and <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attributes of all the elements - <a href=#represented-by-the-collection>represented by the collection</a>.<p>The <dfn id=dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem><code>namedItem(<var title="">key</var>)</code></dfn> - method must act according to the following algorithm: + <a href=#represented-by-the-collection>represented by the collection</a>.<p>The <dfn id=dom-htmlformcontrolscollection-nameditem title=dom-HTMLFormControlsCollection-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must act according to the + following algorithm: <ol><li>If, at the time the method is called, there is exactly one node - in the collection that has either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">key</var>, then return that node and stop the + in the collection that has either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">name</var>, then return that node and stop the algorithm.</li> <li>Otherwise, if there are no nodes in the collection that have - either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">key</var>, then return null and stop the algorithm.</li> + either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">name</var>, then return null and stop the algorithm.</li> <!-- XXX should we return an HTMLCollection instead, like IE? --> <li>Otherwise, create a <code>NodeList</code> object representing a live view of the <code><a href=#htmlformcontrolscollection-0>HTMLFormControlsCollection</a></code> object, further filtered so that the only nodes in the - <code>NodeList</code> object are those that have either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">key</var>. The nodes in the <code>NodeList</code> object + <code>NodeList</code> object are those that have either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> attribute equal to <var title="">name</var>. The nodes in the <code>NodeList</code> object must be sorted in <a href=#tree-order>tree order</a>.</li> <li>Return that <code>NodeList</code> object.</li> @@ -4578,15 +4578,15 @@ remove children from them).<p>The <dfn id=dom-htmloptionscollection-item title=dom-HTMLOptionsCollection-item><code>item(<var title="">index</var>)</code></dfn> method must return the <var title="">index</var>th node in the collection. If there is no <var title="">index</var>th node in the collection, then the method must return null.<p>The <span>names of the supported named properties</span> consist of the values of all the <code title=attr-id><a href=#the-id-attribute>id</a></code> and <code title=attr-option-name>name</code> attributes of all the elements - <a href=#represented-by-the-collection>represented by the collection</a>.<p>The <dfn id=dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem><code>namedItem(<var title="">key</var>)</code></dfn> - method must act according to the following algorithm: + <a href=#represented-by-the-collection>represented by the collection</a>.<p>The <dfn id=dom-htmloptionscollection-nameditem title=dom-HTMLOptionsCollection-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must act according to the + following algorithm: <ol><li>If, at the time the method is called, there is exactly one node - in the collection that has either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name>name</code> attribute equal to <var title="">key</var>, then return that node and stop the + in the collection that has either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name>name</code> attribute equal to <var title="">name</var>, then return that node and stop the algorithm.</li> <li>Otherwise, if there are no nodes in the collection that have - either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name>name</code> attribute equal to <var title="">key</var>, then return null and stop the algorithm.</li> + either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name>name</code> attribute equal to <var title="">name</var>, then return null and stop the algorithm.</li> <!-- XXX should we return an HTMLCollection instead, like IE? --> <li>Otherwise, create a <code>NodeList</code> object representing a @@ -4594,7 +4594,7 @@ filtered so that the only nodes in the <code>NodeList</code> object are those that have either an <code title=attr-id><a href=#the-id-attribute>id</a></code> attribute or a <code title=attr-option-name>name</code> attribute - equal to <var title="">key</var>. The nodes in the + equal to <var title="">name</var>. The nodes in the <code>NodeList</code> object must be sorted in <a href=#tree-order>tree order</a>.</li> @@ -19425,21 +19425,69 @@ owner</a> is the <code><a href=#the-form-element>form</a></code> element, with the exception of <code><a href=#the-input-element>input</a></code> elements whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#image-button-state title=attr-input-type-image>Image Button</a> state, which must, for historical reasons, be excluded from this particular - collection.<p>The <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> collection is - also mirrored on the <code><a href=#htmlformelement>HTMLFormElement</a></code> object. The <dfn id=dom-form-length title=dom-form-length><code>length</code></dfn> DOM attribute must - return the number of nodes <a href=#represented-by-the-collection title="represented by the - collection">represented</a> by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> collection. The + collection.</p><hr><p>The <dfn id=dom-form-length title=dom-form-length><code>length</code></dfn> DOM + attribute must return the number of nodes <a href=#represented-by-the-collection title="represented + by the collection">represented</a> by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> collection.<p>The <span>indices of the supported indexed properties</span> at any instant are the indicies supported by the object returned by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute at that - instant. The <span>names - of the supported named properties</span> at any instant are the - names supported by the object returned by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute at that instant.<p>The <dfn id=dom-form-item title=dom-form-item><code>item(<var title="">index</var>)</code></dfn> method must return the value returned by the method of the same name on the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> collection, when invoked - with the same argument.<p>The <dfn id=dom-form-nameditem title=dom-form-namedItem><code>namedItem(<var title="">index</var>)</code></dfn> method must return the value - returned by the method of the same name on the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> collection, when invoked - with the same argument.<p>The <dfn id=dom-form-submit title=dom-form-submit><code>submit()</code></dfn> + with the same argument.<p>Each <code><a href=#the-form-element>form</a></code> element has a mapping of names to elements + called the <dfn id=past-names-map>past names map</dfn>. It is used to persist names of + controls even when they change names.<p>The <span>names of the supported named properties</span> are the + union of the names currently supported by the object returned by the + <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute, and the + names currently in the <a href=#past-names-map>past names map</a>.<p>The <dfn id=dom-form-nameditem title=dom-form-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method, when called, must run the + following steps:<ol><li> + + <p>If <var title="">name</var> is one of the <span>names of the + supported named properties</span> of the object returned by the + <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute, then + run these substeps:</p> + + <ol><li><p>Let <var title="">candidate</var> be the object returned + by the <code title=dom-HTMLFormControlsCollection-namedItem><a href=#dom-htmlformcontrolscollection-nameditem>namedItem()</a></code> + method on the object returned by the <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> attribute when passed + the <var title="">name</var> argument.</li> + + <li><p>If <var title="">candidate</var> is an element, then add a + mapping from <var title="">name</var> to <var title="">candidate</var> in the <code><a href=#the-form-element>form</a></code> element's + <a href=#past-names-map>past names map</a>, replacing the previous entry with + the same name, if any.</li> + + <li><p>Return <var title="">candidate</var> and abort these + steps.</li> + + </ol></li> + + <li><p>Otherwise, <var title="">name</var> is the name of one of + the entries in the <code><a href=#the-form-element>form</a></code> element's <a href=#past-names-map>past names + map</a>: return the object associated with <var title="">name</var> in that map.</li> + + </ol><p>If an element listed in the <code><a href=#the-form-element>form</a></code> element's <a href=#past-names-map>past + names map</a> is removed from the <code>Document</code>, then its + entries must be removed from the map.</p><!-- + This ridiculous setup is intended to do as much of the right thing + while still supporting code written to work in IE7. IE versions + prior to IE8 do not update the names on the <form> element + collection to match new names when elements are renamed, and there + are enough pages that rename elements and then access them by + their old name that we have to support this. + + But we still want to expose them using the new names, so as far as + possible we pretend the legacy names aren't there except if + there's no other element actually named that way. + + Removing the element did remove the legacy name in IE7: + http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Cform%20action%3D%22%2F%22%3E%3Cinput%20name%3Dsubmit%3E%3C%2Fform%3E%0A%3Cscript%3E%0A%20w(document.forms%5B0%5D.submit)%3B%0A%20w(document.forms%5B0%5D.removeChild(document.getElementsByTagName('input')%5B0%5D))%3B%0A%20w(document.forms%5B0%5D.length)%3B%0A%20try%20%7B%20document.forms%5B0%5D.submit()%3B%20%7D%20catch%20(e)%20%20%7B%20w(e.message)%20%7D%0A%3C%2Fscript%3E + + There's no interop on what happens when the name was originally a + duplicate name, so we don't persist such accesses - at the time + of writing, Safari returned the first element, Firefox returned + null (as we do), and IE7 returned the original collection: + http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E...%3Cform%20action%3D%22%2F%22%3E%3Cinput%20name%3Da%20id%3Dfirst%3E%3Cinput%20name%3Da%20id%3Dsecond%3E%3C%2Fform%3E%0A%3Cscript%3E%0A%20w%28document.forms[0].a%29%3B%0A%20document.getElementsByTagName%28%27input%27%29[0].name%20%3D%20%27b%27%3B%0A%20document.getElementsByTagName%28%27input%27%29[1].name%20%3D%20%27b%27%3B%0A%20w%28document.forms[0].length%29%3B%0A%20w%28document.forms[0].a.id%29%3B%0A%3C%2Fscript%3E + --><hr><p>The <dfn id=dom-form-submit title=dom-form-submit><code>submit()</code></dfn> method, when invoked, must <a href=#concept-form-submit title=concept-form-submit>submit</a> the <code><a href=#the-form-element>form</a></code> element from the <code><a href=#the-form-element>form</a></code> element itself.<p>The <dfn id=dom-form-reset title=dom-form-reset><code>reset()</code></dfn> method, when invoked, must <a href=#concept-form-reset title=concept-form-reset>reset</a> the <code><a href=#the-form-element>form</a></code> @@ -23034,7 +23082,7 @@ <code title=dom-select-options><a href=#dom-select-options>options</a></code> attribute at that instant.<p>The <dfn id=dom-select-item title=dom-select-item><code>item(<var title="">index</var>)</code></dfn> method must return the value returned by the method of the same name on the <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection, when invoked - with the same argument.<p>The <dfn id=dom-select-nameditem title=dom-select-namedItem><code>namedItem(<var title="">index</var>)</code></dfn> method must return the value + with the same argument.<p>The <dfn id=dom-select-nameditem title=dom-select-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must return the value returned by the method of the same name on the <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection, when invoked with the same argument.<p>Similarly, the <dfn id=dom-select-add title=dom-select-add><code>add()</code></dfn> and <dfn id=dom-select-remove title=dom-select-remove><code>remove()</code></dfn> methods must act like their namesake methods on that same <code title=dom-select-options><a href=#dom-select-options>options</a></code> collection.<p>The <dfn id=dom-select-selectedoptions title=dom-select-selectedOptions><code>selectedOptions</code></dfn>
Received on Thursday, 15 January 2009 01:02:01 UTC