spec/Overview.html 1.1612 2440 WF2: <input type=email multiple>, <input

WF2: <input type=email multiple>, <input type=file multiple> (whatwg
r2440)

4.10.4.1.3 E-mail state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#e-mail-state
4.10.4.1.19 Reset Button state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#reset-button-state
4.10.4.1.14 Checkbox state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#checkbox-state
radio button group
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#radio-button-group
4.10.4.1.12 Number state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#number-state
4.10.4 The input element
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#the-input-element
4.10.4.1.10 Time state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#time-state
4.10.4.2.7 The maxlength attribute
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#the-maxlength-attribute
required
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#concept-input-required
selected coordinate
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#concept-input-type-image-coordinate
HTMLInputElement
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#htmlinputelement
4.10.4.1.1 Hidden state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#hidden-state
valid e-mail address
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#valid-e-mail-address
4.10.4.2.10 The step attribute
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#the-step-attribute
button
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#attr-input-type-button-keyword
4.10.4.1.6 Date and Time state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#date-and-time-state
selected files
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#concept-input-type-file-selected
4.10.4.2.9 The min and max attributes
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#the-min-and-max-attributes
default value
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#concept-input-value-default-range
4.10.4.1.20 Button state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#button-state
accept
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#attr-input-accept
4.10.4.1.5 Password state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#password-state
maxLength
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#dom-input-maxlength
accept
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#dom-input-accept
4.10.4.1.9 Week state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#week-state
4.10.4.2.11 The placeholder attribute
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#the-placeholder-attribute
4.10.4.1.11 Local Date and Time state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#local-date-and-time-state
4.10.4.1.7 Date state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#date-state
4.10.4.2.8 The pattern attribute
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#the-pattern-attribute
4.10.4.1.2 Text state and Search state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#text-state-and-search-state
immutable
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#concept-input-immutable
valid e-mail address list
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#valid-e-mail-address-list
4.10.4.1.4 URL state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#url-state
step base
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#concept-input-min-zero
4.10.4.1.8 Month state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#month-state
4.10.4.2.6 The multiple attribute
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#the-multiple-attribute
4.10.4.1.17 Submit Button state
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#submit-button-state
default maximum
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1612.html#concept-input-max-default

http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html
http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.1611&r2=1.1612&f=h
http://html5.org/tools/web-apps-tracker?from=2439&to=2440

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1611
retrieving revision 1.1612
diff -u -d -r1.1611 -r1.1612
--- Overview.html 25 Nov 2008 11:56:14 -0000 1.1611
+++ Overview.html 25 Nov 2008 12:19:44 -0000 1.1612
@@ -468,11 +468,12 @@
          <li><a href=#the-readonly-attribute><span class=secno>4.10.4.2.3 </span>The <code title=attr-input-readonly>readonly</code> attribute</a></li>
          <li><a href=#the-size-attribute><span class=secno>4.10.4.2.4 </span>The <code title=attr-input-size>size</code> attribute</a></li>
          <li><a href=#the-required-attribute><span class=secno>4.10.4.2.5 </span>The <code title=attr-input-required>required</code> attribute</a></li>
-         <li><a href=#the-maxlength-attribute><span class=secno>4.10.4.2.6 </span>The <code title=attr-input-maxlength>maxlength</code> attribute</a></li>
-         <li><a href=#the-pattern-attribute><span class=secno>4.10.4.2.7 </span>The <code title=attr-input-pattern>pattern</code> attribute</a></li>
-         <li><a href=#the-min-and-max-attributes><span class=secno>4.10.4.2.8 </span>The <code title=attr-input-min>min</code> and <code title=attr-input-max>max</code> attributes</a></li>
-         <li><a href=#the-step-attribute><span class=secno>4.10.4.2.9 </span>The <code title=attr-input-step>step</code> attribute</a></li>
-         <li><a href=#the-placeholder-attribute><span class=secno>4.10.4.2.10 </span>The <code title=attr-input-placeholder>placeholder</code> attribute</a></ol></li>
+         <li><a href=#the-multiple-attribute><span class=secno>4.10.4.2.6 </span>The <code title=attr-input-multiple>multiple</code> attribute</a></li>
+         <li><a href=#the-maxlength-attribute><span class=secno>4.10.4.2.7 </span>The <code title=attr-input-maxlength>maxlength</code> attribute</a></li>
+         <li><a href=#the-pattern-attribute><span class=secno>4.10.4.2.8 </span>The <code title=attr-input-pattern>pattern</code> attribute</a></li>
+         <li><a href=#the-min-and-max-attributes><span class=secno>4.10.4.2.9 </span>The <code title=attr-input-min>min</code> and <code title=attr-input-max>max</code> attributes</a></li>
+         <li><a href=#the-step-attribute><span class=secno>4.10.4.2.10 </span>The <code title=attr-input-step>step</code> attribute</a></li>
+         <li><a href=#the-placeholder-attribute><span class=secno>4.10.4.2.11 </span>The <code title=attr-input-placeholder>placeholder</code> attribute</a></ol></li>
        <li><a href=#common-input-element-apis><span class=secno>4.10.4.3 </span>Common <code>input</code> element APIs</a></li>
        <li><a href=#common-event-behaviors><span class=secno>4.10.4.4 </span>Common event behaviors</a></ol></li>
      <li><a href=#the-button-element><span class=secno>4.10.5 </span>The <code>button</code> element</a></li>
@@ -18743,6 +18744,7 @@
    <dd><code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code></dd>
    <dd><code title=attr-fs-method><a href=#attr-fs-method>method</a></code></dd>
    <dd><code title=attr-input-min><a href=#attr-input-min>min</a></code></dd>
+   <dd><code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code></dd>
    <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
    <dd><code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code></dd>
    <dd><code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code></dd>
@@ -18772,6 +18774,7 @@
            attribute long <a href=#dom-input-maxlength title=dom-input-maxLength>maxLength</a>;
            attribute DOMString <a href=#dom-fs-method title=dom-fs-method>method</a>;
            attribute DOMString <a href=#dom-input-min title=dom-input-min>min</a>;
+           attribute boolean <a href=#dom-input-multiple title=dom-input-multiple>multiple</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
            attribute DOMString <a href=#dom-input-pattern title=dom-input-pattern>pattern</a>;
            attribute DOMString <a href=#dom-input-placeholder title=dom-input-placeholder>placeholder</a>;
@@ -18894,7 +18897,7 @@
      <td> <a href=#button-state title=attr-input-type-button>Button</a>
      <td> n/a
      <td> A button
-  </table><p>The <i>missing value default</i> is the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state.<p>Which of the <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>, <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>, <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>, <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, and <code title=attr-input-list><a href=#attr-input-list>list</a></code>, <code title=attr-input-max><a href=#attr-input-max>max</a></code>, <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-input-min><a href=#attr-input-min>min</a></code>, <code title=attr-input-pattern><a href=#attr-input-attern>pattern</a></code>, <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>, <code title=attr-input-required><a href=#attr-input-required>required</a></code>, <code title=attr-input-size><a href=#attr-input-size>size</a></code>, <code title=attr-input-src><a href=#attr-input-src>src</a></code>, <code title=attr-input-step><a href=#attr-input-step>step</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes apply to an
+  </table><p>The <i>missing value default</i> is the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state.<p>Which of the <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>, <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>, <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>, <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, and <code title=attr-input-list><a href=#attr-input-list>list</a></code>, <code title=attr-input-max><a href=#attr-input-max>max</a></code>, <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-input-min><a href=#attr-input-min>min</a></code>, <code title=attr-input-multiple><a href=#attr-inputmultiple>multiple</a></code>, <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>, <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>, <code title=attr-input-required><a href=#attr-input-required>required</a></code>, <code title=attr-input-size><a href=#attr-input-size>size</a></code>, <code title=attr-input-src><a href=#attr-input-src>src</a></code>, <code title=attr-input-step><a href=#attr-input-step>step</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes apply to an
   <code><a href=#the-input-element>input</a></code> element depends on the state of its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute. Similarly, the <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code>, <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, <code title=dom-input-list><a href=#dom-input-list>list</a></code>, and <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> DOM
   attributes, and the <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code>
   and <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> methods, are
@@ -19176,6 +19179,29 @@
      <td class=no> &middot; <!-- Reset Button -->
 <!-- <td class="no"> &middot;      Button -->
 
+    <tr><th> <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+     <td class=no> &middot; <!-- Hidden -->
+     <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot;      Search -->
+<!-- <td class="yes"> Yes          E-mail -->
+<!-- <td class="no"> &middot;      URL -->
+     <td class=no> &middot; <!-- Password -->
+     <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot;      Date -->
+<!-- <td class="no"> &middot;      Month -->
+<!-- <td class="no"> &middot;      Week -->
+<!-- <td class="no"> &middot;      Time -->
+     <td class=no> &middot; <!-- Local Date and Time -->
+<!-- <td class="no"> &middot;      Number -->
+     <td class=no> &middot; <!-- Range -->
+     <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot;      Radio Button -->
+     <td class=yes> Yes     <!-- File Upload -->
+     <td class=no> &middot; <!-- Submit Button -->
+     <td class=no> &middot; <!-- Image Button -->
+     <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot;      Button -->
+
     <tr><th> <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>
      <td class=no> &middot; <!-- Hidden -->
      <td class=yes> Yes     <!-- Text -->
@@ -19659,7 +19685,7 @@
   attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
   the control non-interactive and to prevent its value from being
   submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>
-  attribute controls focus.<p>The <dfn id=dom-input-accept title=dom-input-accept><code>accept</code></dfn>, <dfn id=dom-input-alt title=dom-input-alt><code>alt</code></dfn>, <dfn id=dom-input-autocomplete title=dom-input-autocomplete><code>autocomplete</code></dfn>, <dfn id=dom-input-max title=dom-input-max><code>max</code></dfn>, <dfn id=dom-input-min title=dom-input-min><code>min</code></dfn>, <dfn id=dom-input-pattern title=dom-input-pattern><code>pattern</code></dfn>, <dfn id=dom-input-placeholder title=dom-input-placeholder><code>placeholder</code></dfn>, <dfn id=dom-input-required title=dom-input-required><code>required</code></dfn>, <dfn id=dom-input-size title=dom-input-size><code>size</code></dfn>, <dfn id=dom-input-src title=dom-input-src><code>src</code></dfn>, <dfn id=dom-input-step title=dom-input-step><code>step</code></dfn>, and <dfn id=dom-input-type title=dom-input-type><code>type</code></dfn> DOM attributes must
+  attribute controls focus.<p>The <dfn id=dom-input-accept title=dom-input-accept><code>accept</code></dfn>, <dfn id=dom-input-alt title=dom-input-alt><code>alt</code></dfn>, <dfn id=dom-input-autocomplete title=dom-input-autocomplete><code>autocomplete</code></dfn>, <dfn id=dom-input-max title=dom-input-max><code>max</code></dfn>, <dfn id=dom-input-min title=dom-input-min><code>min</code></dfn>, <dfn id=dom-input-multiple title=dom-input-multiple><code>multiple</code></dfn>, <dfn id=dom-input-pattern title=dom-input-pattern><code>pattern</code></dfn>, <dfn id=dom-input-placeholder title=dom-input-placeholder><code>placeholder</code></dfn>, <dfn id=dom-input-required title=dom-input-required><code>required</code></dfn>, <dfn id=dom-input-size title=dom-input-size><code>size</code></dfn>, <dfn id=dom-input-src title=dom-input-src><code>src</code></dfn>, <dfn id=dom-input-step title=dom-input-step><code>step</code></dfn>, and <dfn id=dom-input-type title=dom-input-type><code>type</code></dfn> DOM attributes ust
   <a href=#reflect>reflect</a> the respective content attributes of the same
   name.  The <dfn id=dom-input-maxlength title=dom-input-maxLength><code>maxLength</code></dfn> DOM
   attribute must <a href=#reflect>reflect</a> the <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> content attribute. The
@@ -19704,6 +19730,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -19765,6 +19792,7 @@
    <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
    <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
    <code class=no-backref title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
@@ -19779,22 +19807,37 @@
 
   </div><h6 id=e-mail-state><span class=secno>4.10.4.1.3 </span><dfn title=attr-input-type-email>E-mail</dfn> state</h6><p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#e-mail-state title=attr-input-type-email>E-mail</a> state, the rules in this
   section apply.<p>The <code><a href=#the-input-element>input</a></code> element represents a control for editing a
-  single e-mail address given in the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.<p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
-  the user agent should allow the user to change the e-mail address
-  represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>. User
-  agents may allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that is not an
-  <a href=#valid-e-mail-address>valid e-mail address</a>. User agents should allow the user
-  to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty
-  string. User agents must not allow users to insert U+000A LINE FEED
-  (LF) or U+000D CARRIAGE RETURN (CR) characters into the <a href=#concept-fe-value title=concept-fe-value>value</a>. User agents may transform the
+  list of e-mail addresses given in the element's <a href=#concept-fe-value title=concept-fe-value>value</a>.<p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>,
+  the user agent should allow the user to change the e-mail addresses
+  represented by its <a href=#concept-fe-value title=concept-fe-value>value</a>. If
+  the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute is
+  specified, then the user agent should allow the user to select or
+  provide multiple addresses; otherwise, the user agent should act in
+  a manner consistent with expecting the user to provide a single
+  e-mail address. User agents may allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that is not an
+  <a href=#valid-e-mail-address-list>valid e-mail address list</a>. User agents should allow the
+  user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the
+  empty string. User agents must not allow users to insert U+000A LINE
+  FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the <a href=#concept-fe-value title=concept-fe-value>value</a>. User agents may transform the
   <a href=#concept-fe-value title=concept-fe-value>value</a> for display and editing
   (e.g. converting punycode in the <a href=#concept-fe-value title=concept-fe-value>value</a> to IDN in the display and vice
-  versa).<p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if
-  specified, must have a value that is a <a href=#valid-e-mail-address>valid e-mail
-  address</a>.<p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
-  follows:</strong> <a href=#strip-line-breaks>Strip line breaks</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>.<p><strong>Constraint validation:</strong> While the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element is not a
-  <a href=#valid-e-mail-address>valid e-mail address</a>, the element is <a href=#suffering-from-a-type-mismatch>suffering
-  from a type mismatch</a>.<p>A <dfn id=valid-e-mail-address>valid e-mail address</dfn> is a string that matches the
+  versa).<p>If the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+  attribute is specified on the element, then the <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if specified, must
+  have a value that is a <a href=#valid-e-mail-address-list>valid e-mail address list</a>;
+  otherwise, the <code title=attr-input-value><a href=#attr-input-value>value</a></code>
+  attribute, if specified, must have a value that is a single
+  <a href=#valid-e-mail-address>valid e-mail address</a>.<p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as
+  follows:</strong> <a href=#strip-line-breaks>Strip line breaks</a> from the <a href=#concept-fe-value title=concept-fe-value>value</a>.<p><strong>Constraint validation:</strong> If the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute is specified
+  on the element, then, while the <a href=#concept-fe-value title=concept-fe-value>value</a> of the element is not a
+  <a href=#valid-e-mail-address-list>valid e-mail address list</a>, the element is
+  <a href=#suffering-from-a-type-mismatch>suffering from a type mismatch</a>; otherwise, while the
+  <a href=#concept-fe-value title=concept-fe-value>value</a> of the element is not a
+  single <a href=#valid-e-mail-address>valid e-mail address</a>, the element is
+  <a href=#suffering-from-a-type-mismatch>suffering from a type mismatch</a>.<p>A <dfn id=valid-e-mail-address-list>valid e-mail address list</dfn> is a <a href=#set-of-comma-separated-tokens>set of
+  comma-separated tokens</a>, where each token is itself a
+  <a href=#valid-e-mail-address>valid e-mail address</a>, possibly with one or more leading
+  or trailing <a href=#space-character title="space character">space
+  characters</a>.<p>A <dfn id=valid-e-mail-address>valid e-mail address</dfn> is a string that matches the
   production <code title="">dot-atom&nbsp;"@"&nbsp;dot-atom</code>
   where <code title="">dot-atom</code> is defined in RFC 2822 section
   3.2.4, excluding the <code>CFWS</code> production everywhere. <a href=#references>[RFC2822]</a><div class=bookkeeping>
@@ -19804,6 +19847,7 @@
    <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>,
    <code title=attr-input-list><a href=#attr-input-list>list</a></code>,
    <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
+   <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -19888,6 +19932,7 @@
    <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
    <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
    <code class=no-backref title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
@@ -19935,6 +19980,7 @@
    <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
    <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
    <code class=no-backref title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
@@ -20040,6 +20086,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -20134,6 +20181,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -20226,6 +20274,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -20320,6 +20369,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -20408,6 +20458,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -20492,6 +20543,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -20570,6 +20622,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -20666,6 +20719,7 @@
    <code class=no-backref title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -20720,6 +20774,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -20815,6 +20870,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -20843,7 +20899,10 @@
   filesystem or created on the fly, e.g. a picture taken from a camera
   connected to the user's device.<p><strong>Constraint validation:</strong> If the element is <i title=concept-input-required><a href=#concept-input-required>required</a></i> and the list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a> is
   empty, then the element is <a href=#suffering-from-being-missing>suffering from being
-  missing</a>.<p>There must be no more than one file in the list of <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected files</a>.</p><hr><p>The <dfn id=attr-input-accept title=attr-input-accept><code>accept</code></dfn>
+  missing</a>.<p>Unless the <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>
+  attribute is set, there must be no more than one file in the list of
+  <a href=#concept-input-type-file-selected title=concept-input-type-file-selected>selected
+  files</a>.</p><hr><p>The <dfn id=attr-input-accept title=attr-input-accept><code>accept</code></dfn>
   attribute may be specified to provide user agents with a hint of
   what file types the server will be able to accept.<p>If specified, the attribute must consist of a <a href=#set-of-comma-separated-tokens>set of
   comma-separated tokens</a>, each of which must be an <a href=#ascii-case-insensitive>ASCII
@@ -20870,7 +20929,8 @@
 
    <p>The following common <code><a href=#the-input-element>input</a></code> element content
    attributes apply to the element:
-   <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code> and
+   <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>,
+   <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>, and
    <code title=attr-input-required><a href=#attr-input-required>required</a></code>.</p>
 
    <p>The <code title=event-input-change><a href=#event-input-change>change</a></code> event applies.</p>
@@ -20946,6 +21006,7 @@
    <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -21070,6 +21131,7 @@
    <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -21119,6 +21181,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -21162,6 +21225,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -21276,14 +21340,16 @@
   element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>, and the
   element's <a href=#concept-fe-value title=concept-fe-value>value</a> is the empty
   string, then the element is <a href=#suffering-from-being-missing>suffering from being
-  missing</a>.<h6 id=the-maxlength-attribute><span class=secno>4.10.4.2.6 </span>The <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> attribute</h6><p>The <dfn id=attr-input-maxlength title=attr-input-maxlength><code>maxlength</code></dfn> attribute,
+  missing</a>.<h6 id=the-multiple-attribute><span class=secno>4.10.4.2.6 </span>The <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code> attribute</h6><p>The <dfn id=attr-input-multiple title=attr-input-multiple><code>multiple</code></dfn>
+  attribute is a <a href=#boolean-attribute>boolean attribute</a> that indicates whether
+  the user is to be allowed to specify more than one value.<h6 id=the-maxlength-attribute><span class=secno>4.10.4.2.7 </span>The <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code> attribute</h6><p>The <dfn id=attr-input-maxlength title=attr-input-maxlength><code>maxlength</code></dfn> attribute,
   when it applies, is a <a href=#attr-fe-maxlength title=attr-fe-maxlength>form control
   <code title="">maxlength</code> attribute</a> controlled by the
   <code><a href=#the-input-element>input</a></code> element's <a href=#concept-input-value-dirty-flag title=concept-input-value-dirty-flag>dirty value flag</a>.<p>If the <code><a href=#the-input-element>input</a></code> element has a <a href=#maximum-allowed-value-length>maximum allowed
   value length</a>, then the <a href=#codepoint-length>codepoint length</a> of the
   value of the element's <code title=attr-input-value><a href=#attr-input-value>value</a></code>
   attribute must be equal to or less than the element's <a href=#maximum-allowed-value-length>maximum
-  allowed value length</a>.<h6 id=the-pattern-attribute><span class=secno>4.10.4.2.7 </span>The <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute</h6><p>The <dfn id=attr-input-pattern title=attr-input-pattern><code>pattern</code></dfn>
+  allowed value length</a>.<h6 id=the-pattern-attribute><span class=secno>4.10.4.2.8 </span>The <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> attribute</h6><p>The <dfn id=attr-input-pattern title=attr-input-pattern><code>pattern</code></dfn>
   attribute specifies a regular expression against which the control's
   <a href=#concept-fe-value title=concept-fe-value>value</a> is to be checked.<p>If specified, the attribute's value must match the <i title="">Pattern</i> production of ECMA 262's grammar. <a href=#references>[ECMA262]</a><p><strong>Constraint validation:</strong> If the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is not the empty string, and
   the element's <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>
@@ -21324,7 +21390,7 @@
   required pattern. Birthday</samp>, which is not useful.<p>UAs may still show the <code><a href=#the-title-element>title</a></code> in non-error situations
   (for example, as a tooltip when hovering over the control), so
   authors should be careful not to word <code><a href=#the-title-element>title</a></code>s as if an
-  error has necessarily occurred.<h6 id=the-min-and-max-attributes><span class=secno>4.10.4.2.8 </span>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> and <code title=attr-input-max><a href=#attr-input-max>max</a></code> attributes</h6><p>The <dfn id=attr-input-min title=attr-input-min><code>min</code></dfn> and <dfn id=attr-input-max title=attr-input-max><code>max</code></dfn> attributes indicate
+  error has necessarily occurred.<h6 id=the-min-and-max-attributes><span class=secno>4.10.4.2.9 </span>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> and <code title=attr-input-max><a href=#attr-input-max>max</a></code> attributes</h6><p>The <dfn id=attr-input-min title=attr-input-min><code>min</code></dfn> and <dfn id=attr-input-max title=attr-input-max><code>max</code></dfn> attributes indicate
   the allowed range of values for the element.<p>Their syntax is defined by the section that defines the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state.<p>If the element has a <code title=attr-input-min><a href=#attr-input-min>min</a></code>
   attribute, and the result of applying the <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a
   string to a number</a> to the value of the <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute is a a number, then that
@@ -21355,7 +21421,7 @@
   value (its <a href=#concept-input-min title=concept-input-min>minimum</a>).<p class=note>If an element has a <a href=#attr-input-max title=attr-input-max>maximum</a> that is less than its <a href=#attr-input-min title=attr-input-min>minimum</a>, then so long as the element
   has a <a href=#concept-fe-value title=concept-fe-value>value</a>, it will either be
   <a href=#suffering-from-an-underflow>suffering from an underflow</a> or <a href=#suffering-from-an-overflow>suffering from an
-  overflow</a>.<h6 id=the-step-attribute><span class=secno>4.10.4.2.9 </span>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute</h6><p>The <dfn id=attr-input-step title=attr-input-step><code>step</code></dfn>
+  overflow</a>.<h6 id=the-step-attribute><span class=secno>4.10.4.2.10 </span>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute</h6><p>The <dfn id=attr-input-step title=attr-input-step><code>step</code></dfn>
   attribute indicates the granularity that is expected (and required)
   of the <a href=#concept-fe-value title=concept-fe-value>value</a>, by limiting
   the allowed values. The section that defines the <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute's current state also
@@ -21398,7 +21464,7 @@
   string to a number</a> to the string given by the element's <a href=#concept-fe-value title=concept-fe-value>value</a> is a number, and that
   number subtracted from the <a href=#concept-input-min-zero title=concept-input-min-zero>step
   base</a> is not an integral multiple of the <a href=#concept-input-step title=concept-input-step>allowed value step</a>, the element is
-  <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>.<h6 id=the-placeholder-attribute><span class=secno>4.10.4.2.10 </span>The <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code> attribute</h6><p>The <dfn id=attr-input-placeholder title=attr-input-placeholder><code>placeholder</code></dfn>
+  <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>.<h6 id=the-placeholder-attribute><span class=secno>4.10.4.2.11 </span>The <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code> attribute</h6><p>The <dfn id=attr-input-placeholder title=attr-input-placeholder><code>placeholder</code></dfn>
   attribute represents a <em>short</em> hint (a word or short phrase)
   intended to aid the user with data entry. A hint could be a sample
   value or a brief description of the expected format.<p class=note>For a longer hint or other advisory text, the <code title=attr-title><a href=#the-title-attribute>title</a></code> attribute is more appropriate.<p>The <code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>

Received on Tuesday, 25 November 2008 12:23:15 UTC