diff --git a/source b/source index 7bcff3dbead..1a1a45f4535 100644 --- a/source +++ b/source @@ -41750,8 +41750,6 @@ interface HTMLInputElement : HTMLElement { [CEReactions, TreatNullAs=EmptyString] attribute DOMString value; attribute object? valueAsDate; attribute unrestricted double valueAsNumber; - attribute double valueLow; - attribute double valueHigh; [CEReactions] attribute unsigned long width; void stepUp(optional long n = 1); @@ -41939,9 +41937,7 @@ interface HTMLInputElement : HTMLElement { checked, files, valueAsDate, - valueAsNumber, - valueLow, - valueHigh, and + valueAsNumber, and list IDL attributes, the select() method, the selectionStart, @@ -42419,7 +42415,7 @@ interface HTMLInputElement : HTMLElement { · · - Yes + · · · @@ -42735,55 +42731,7 @@ interface HTMLInputElement : HTMLElement { Yes Yes - Yes* - · - · - - · - · - · - · - - - - valueLow - · - · - - · - · - · - · - - - - · - · - Yes** - · - · - - · - · - · - · - - - - valueHigh - · - · - - · - · - · - · - - - - · - · - Yes** + Yes · · @@ -43063,12 +43011,6 @@ interface HTMLInputElement : HTMLElement { -

* If the multiple attribute - is not specified.

- -

** If the multiple attribute - is specified.

-

† If the control has no selectable text, the select() method results in a no-op, with no "InvalidStateError" DOMException.

@@ -43087,9 +43029,7 @@ interface HTMLInputElement : HTMLElement { convert a Date object to a string, which are used by max, min, step, valueAsDate, - valueAsNumber, valueLow, valueHigh, - stepDown(), and valueAsNumber, and stepUp().

Each input element has a boolean dirty @@ -43386,10 +43326,8 @@ interface HTMLInputElement : HTMLElement { selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), @@ -43516,10 +43454,8 @@ interface HTMLInputElement : HTMLElement { element: checked, files, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; stepDown() and stepUp() methods.

@@ -43620,10 +43556,8 @@ interface HTMLInputElement : HTMLElement { element: checked, files, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; stepDown() and stepUp() methods.

@@ -43726,10 +43660,8 @@ interface HTMLInputElement : HTMLElement { element: checked, files, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; stepDown() and stepUp() methods.

@@ -44006,10 +43938,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; setRangeText(), setSelectionRange(), stepDown() and @@ -44103,10 +44033,8 @@ ldh-str = < as defined in checked, files, list, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; stepDown() and stepUp() methods.

@@ -44278,10 +44206,8 @@ ldh-str = < as defined in
checked, selectionStart, - selectionEnd, - selectionDirection, - valueLow, and - valueHigh IDL attributes; + selectionEnd, and + selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.

@@ -44433,10 +44359,8 @@ ldh-str = < as defined in
checked, files, selectionStart, - selectionEnd, - selectionDirection, - valueLow, and - valueHigh IDL attributes; + selectionEnd, and + selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.

@@ -44590,10 +44514,8 @@ ldh-str = < as defined in
checked, files, selectionStart, - selectionEnd, - selectionDirection, - valueLow, and - valueHigh IDL attributes; + selectionEnd, and + selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.

@@ -44744,10 +44666,8 @@ ldh-str = < as defined in
checked, files, selectionStart, - selectionEnd, - selectionDirection, - valueLow, and - valueHigh IDL attributes; + selectionEnd, and + selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.

@@ -44893,10 +44813,8 @@ ldh-str = < as defined in
files, selectionStart, selectionEnd, - selectionDirection, - valueAsDate, - valueLow, and - valueHigh IDL attributes; + selectionDirection, and + valueAsDate IDL attributes; setRangeText(), and setSelectionRange() methods.

@@ -45057,10 +44975,8 @@ ldh-str = < as defined in
files, selectionStart, selectionEnd, - selectionDirection, - valueAsDate, - valueLow, and - valueHigh IDL attributes; + selectionDirection, and + valueAsDate IDL attributes; setRangeText(), and setSelectionRange() methods.

@@ -45102,305 +45018,157 @@ ldh-str = < as defined in
Range state operates depends on whether the - multiple attribute is specified or not.

+

The input element represents a control for setting the element's + value to a string representing a number, but with the + caveat that the exact value is not important, letting UAs provide a simpler interface than they + do for the Number state.

-
+
-
When the multiple attribute is not specified on the - element
+

If the element is mutable, the user agent should allow the + user to change the number represented by its value, as + obtained from applying the rules for parsing floating-point number values to it. + User agents must not allow the user to set the value to a + string that is not a valid floating-point number. If the user agent provides a user + interface for selecting a number, then the value must be + set to a best + representation of the number representing the user's selection as a floating-point + number. User agents must not allow the user to set the value to the empty string.

-
+

Constraint validation: While the user interface describes input that the + user agent cannot convert to a valid floating-point number, the control is + suffering from bad input.

-

The input element represents a control for setting the element's - value to a string representing a number, but with the - caveat that the exact value is not important, letting UAs provide a simpler interface than they - do for the Number state.

+
-
+

The value attribute, if specified, must have a value + that is a valid floating-point number.

-

If the element is mutable, the user agent should allow the - user to change the number represented by its value, as - obtained from applying the rules for parsing floating-point number values to it. - User agents must not allow the user to set the value to a - string that is not a valid floating-point number. If the user agent provides a user - interface for selecting a number, then the value must be - set to a best - representation of the number representing the user's selection as a floating-point - number. User agents must not allow the user to set the value to the empty string.

- -

Constraint validation: While the user interface describes input that the - user agent cannot convert to a valid floating-point number, the control is - suffering from bad input.

+
-
+

The value sanitization algorithm is as follows: If the value of the element is not a valid floating-point + number, then set it to the best representation, as a floating-point number, of the default value.

-

The value attribute, if specified, must have a value - that is a valid floating-point number.

+
-
+

The default value is the minimum plus half the difference between the minimum and the maximum, unless the maximum is less than the minimum, in which case the default value is the minimum.

-

The value sanitization algorithm is as follows: If the value of the element is not a valid floating-point - number, then set it to the best representation, as a floating-point number, of the default value.

+
-
+

When the element is suffering from an underflow, the user agent must set the + element's value to the best representation, as a floating-point + number, of the minimum.

-

The default value is the minimum plus half the difference between the minimum and the maximum, unless the maximum is less than the minimum, in which case the default value is the minimum.

+

When the element is suffering from an overflow, if the maximum is not less than the minimum, the user agent must set the element's value to a valid floating-point number that + represents the maximum.

-
+

When the element is suffering from a step mismatch, the user agent must round + the element's value to the nearest number for which the + element would not suffer from a step + mismatch, and which is greater than or equal to the minimum, and, if the maximum is not less than the minimum, which is less than or equal to the maximum, if there is a number that matches these constraints. + If two numbers match these constraints, then user agents must use the one nearest to positive + infinity.

-

When the element is suffering from an underflow, the user agent must set the - element's value to the best representation, as a floating-point - number, of the minimum.

- -

When the element is suffering from an overflow, if the maximum is not less than the minimum, the user agent must set the element's value to a valid floating-point number that - represents the maximum.

- -

When the element is suffering from a step mismatch, the user agent must round - the element's value to the nearest number for which the - element would not suffer from a step - mismatch, and which is greater than or equal to the minimum, and, if the maximum is not less than the minimum, which is less than or equal to the maximum, if there is a number that matches these constraints. - If two numbers match these constraints, then user agents must use the one nearest to positive - infinity.

- -

For example, the markup - <input type="range" min=0 max=100 step=20 value=50> - results in a range control whose initial value is 60.

+

For example, the markup + <input type="range" min=0 max=100 step=20 value=50> + results in a range control whose initial value is 60.

-
+
-
+
-

Here is an example of a range control using an autocomplete list with the list attribute. This could be useful if there are values along - the full range of the control that are especially important, such as preconfigured light levels - or typical speed limits in a range control used as a speed control. The following markup - fragment:

+

Here is an example of a range control using an autocomplete list with the list attribute. This could be useful if there are values along + the full range of the control that are especially important, such as preconfigured light levels + or typical speed limits in a range control used as a speed control. The following markup + fragment:

-
<input type="range" min="-100" max="100" value="0" step="10" name="power" list="powers">
+   
<input type="range" min="-100" max="100" value="0" step="10" name="power" list="powers">
 <datalist id="powers">
- <option value="0">
- <option value="-30">
- <option value="30">
+<option value="0">
+<option value="-30">
+<option value="30">
  <option value="++50">
 </datalist>
 
-

...with the following style sheet applied:

+

...with the following style sheet applied:

-
input { height: 75px; width: 49px; background: #D5CCBB; color: black; }
+
input { height: 75px; width: 49px; background: #D5CCBB; color: black; }
-

...might render as:

+

...might render as:

-

A vertical slider control whose primary colour is black and whose background colour is beige, with the slider having five tick marks, one long one at each extremity, and three short ones clustered around the midpoint. +

A vertical slider control whose primary colour is black and whose background colour is beige, with the slider having five tick marks, one long one at each extremity, and three short ones clustered around the midpoint. -

Note how the UA determined the orientation of the control from the ratio of the - style-sheet-specified height and width properties. The colours were similarly derived from the - style sheet. The tick marks, however, were derived from the markup. In particular, the step attribute has not affected the placement of tick marks, - the UA deciding to only use the author-specified completion values and then adding longer tick - marks at the extremes.

+

Note how the UA determined the orientation of the control from the ratio of the + style-sheet-specified height and width properties. The colours were similarly derived from the + style sheet. The tick marks, however, were derived from the markup. In particular, the step attribute has not affected the placement of tick marks, + the UA deciding to only use the author-specified completion values and then adding longer tick + marks at the extremes.

-

Note also how the invalid value ++50 was completely ignored.

+

Note also how the invalid value ++50 was completely ignored.

-
+
-
+
-

For another example, consider the following markup fragment:

+

For another example, consider the following markup fragment:

-
<input name=x type=range min=100 max=700 step=9.09090909 value=509.090909>
+
<input name=x type=range min=100 max=700 step=9.09090909 value=509.090909>
-

A user agent could display in a variety of ways, for instance:

+

A user agent could display in a variety of ways, for instance:

-

As a dial.

+

As a dial.

-

Or, alternatively, for instance:

+

Or, alternatively, for instance:

-

As a long horizontal slider with tick marks.

+

As a long horizontal slider with tick marks.

-

The user agent could pick which one to display based on the dimensions given in the style - sheet. This would allow it to maintain the same resolution for the tick marks, despite the - differences in width.

+

The user agent could pick which one to display based on the dimensions given in the style + sheet. This would allow it to maintain the same resolution for the tick marks, despite the + differences in width.

-
+
-
+
-

Finally, here is an example of a range control with two labeled values:

+

Finally, here is an example of a range control with two labeled values:

-
<input type="range" name="a" list="a-values">
+   
<input type="range" name="a" list="a-values">
 <datalist id="a-values">
- <option value="10" label="Low">
- <option value="90" label="High">
+<option value="10" label="Low">
+<option value="90" label="High">
 </datalist>
 
-

With styles that make the control draw vertically, it might look as follows:

- -

A vertical slider control with two tick marks, one near the top labeled 'High', and one near the bottom labeled 'Low'. - -

- - - -
When the multiple attribute is specified on - the element
- -
- -

The input element represents a control for setting the element's - values to two strings representing numbers, but - with the caveat that the exact values are not important, enabling UAs provide a graphical - interface rather than requiring the user to type the numbers directly.

- -
- -

If the element is mutable, the user agent should allow the - user to change either the first or second number represented by its values, as obtained from applying the rules for parsing - floating-point number values to them, and ensuring that the first value is never larger - than the second value. User agents must not allow the user to set either the first or second of - the values to a string that is not a valid - floating-point number. If the user agent provides a user interface for selecting a - number, then these values must be set to the best representations of - the numbers representing the user's selections as floating-point numbers. User agents - must not allow the user to set the values to the empty - string.

- -

Constraint validation: While the user interface describes input that the - user agent cannot convert to a pair of valid - floating-point numbers, the control is suffering from bad input.

- -
- -

The value attribute, if specified, must have a value - that is a pair of valid floating-point numbers - separated by a single U+002C COMMA character (,).

- -
- -

The value sanitization algorithm is as follows:

- -
    - -
  1. Split on commas the element's value.

  2. - -
  3. If there are not exactly two values, or if either value is not a valid - floating-point number, then let the element's values be a pair of values consisting of a best representation, as a - floating-point number, of the element's minimum - and the element's maximum, with the smaller value - first.

  4. - -
  5. Otherwise, let the element's values be the two - values, with the smaller value first.

  6. - -
  7. Let the element's value be the result of - concatenating the element's values, separating them by - a single U+002C COMMA character (,), with the lower value coming first.

  8. - -
- -

Whenever the user changes the element's values, the - user agent must set the element's value to the result of - concatenating the element's values, separating them by a - single U+002C COMMA character (,), with the lower value coming first.

- -
- -
+

With styles that make the control draw vertically, it might look as follows:

-

When the element is suffering from an underflow, the user agent must set either - of the element's values that represent values less than - the minimum to the best representation, as a floating-point number, - of the minimum.

- -

When the element is suffering from an overflow, if the maximum is not less than the minimum, the user agent must set either of the element's values that represent values greater than the maximum to a valid floating-point number that - represents the maximum.

- -

When the element is suffering from a step mismatch, the user agent must round - the values represented by the element's values to, in - each case, the nearest number for which the element would not suffer from a step mismatch, and which is greater than or equal to the - minimum, and, if the maximum is not less than the minimum, which is less than or equal to the maximum, if there is a number that matches these constraints. - If two numbers match these constraints, then user agents must use the one nearest to positive - infinity.

- -

Whenever the user agent changes the element's values - according to the three previous paragraphs, the user agent must set the element's value to the result of concatenating the element's values, separating them by a single U+002C COMMA character - (,), with the lower value coming first.

- -
+

A vertical slider control with two tick marks, one near the top labeled 'High', and one near the bottom labeled 'Low'. -

- -

Consider a user interface that filters possible flights by departure and arrival time:

- -
<form ...>
- <fieldset>
-  <legend>Outbound flight time</legend>
-  <select ...>
-   <option>Departure
-   <option>Arrival
-  </select>
-  <p><output name=o1>00:00</output> – <output name=o2>24:00</output></p>
-  <input type=range multiple min=0 max=24 value=0,24 step=1.0 ...
-         oninput="o1.value = valueLow + ':00'; o2.value = valueHigh + ':00'">
- </fieldset>
- ...
-</form>
- -

With appropriate styling, this might look like:

- - A control group with the label 'Outbound flight time', showing a drop-down that lets you select Departure vs Arrival, a two-handled range control that lets you set the start and end time of the range, and a label showing the currently selected times. - -
- -
- -
- -

When the multiple attribute is set or removed, the - user agent must run the value sanitization algorithm.

+

In this state, the range and step constraints are enforced even during user input, and there is no way to set the value to the empty string.

@@ -45437,8 +45205,7 @@ ldh-str = < as defined in
autocomplete, list, max, - min, - multiple, and + min, and step content attributes; list, value, and @@ -45446,17 +45213,6 @@ ldh-str = < as defined in stepDown() and stepUp() methods.

-

The following common input IDL attribute applies to the element if the multiple content attribute is not specified: - valueAsNumber.

- -

The following common input IDL attributes apply to the element if the multiple content attribute is specified: - valueLow and - valueHigh.

-

The value IDL attribute is in mode value.

@@ -45479,6 +45235,7 @@ ldh-str = < as defined in
inputmode, maxlength, minlength, + multiple, pattern, placeholder, readonly, @@ -45492,25 +45249,12 @@ ldh-str = < as defined in files, selectionStart, selectionEnd, - selectionDirection, - valueAsDate, - valueLow, and - valueHigh IDL attributes; + selectionDirection, and + valueAsDate IDL attributes; select(), setRangeText(), and setSelectionRange() methods.

-

The following common input IDL attributes do not apply to the - element if the multiple content - attribute is not specified: - valueLow and - valueHigh.

- -

The following common input IDL attribute does not - apply to the element if the multiple content attribute is specified: - valueAsNumber.

- @@ -45611,10 +45355,8 @@ ldh-str = < as defined in
selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate and, + valueAsNumber IDL attributes; setRangeText(), setSelectionRange(), stepDown(), and @@ -45735,10 +45477,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), @@ -45898,10 +45638,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), @@ -46161,10 +45899,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; setRangeText(), setSelectionRange(), stepDown(), and @@ -46266,10 +46002,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), @@ -46525,10 +46259,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), @@ -46644,10 +46376,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), @@ -46731,10 +46461,8 @@ ldh-str = < as defined in selectionStart, selectionEnd, selectionDirection, - valueAsDate, - valueAsNumber, - valueLow, and - valueHigh IDL attributes; + valueAsDate, and + valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), @@ -47187,71 +46915,31 @@ You cannot submit this form when the field is incorrect.
-

How these range limitations apply depends on whether the element has a multiple attribute.

+

Constraint validation: When the element has a minimum and does not have a + reversed range, and the result of applying the algorithm to convert a string to a number to + the string given by the element's value is a number, and + the number obtained from that algorithm is less than the minimum, the element is suffering from an + underflow.

-
- -
If the element does not have a multiple attribute - specified or if the multiple attribute does not apply
- -
- -

Constraint validation: When the element has a minimum and does not have a - reversed range, and the result of applying the algorithm to convert a string to a number to - the string given by the element's value is a number, and - the number obtained from that algorithm is less than the minimum, the element is suffering from an - underflow.

- -

Constraint validation: When the element has a maximum and does not have a - reversed range, and the result of applying the algorithm to convert a string to a number to - the string given by the element's value is a number, and - the number obtained from that algorithm is more than the maximum, the element is suffering from an - overflow.

- -

Constraint validation: When an element has a reversed range, - and the result of applying the algorithm to - convert a string to a number to the string given by the element's value is a number, and the number obtained from that algorithm - is more than the maximum and less than the minimum, the element is simultaneously suffering from an - underflow and suffering from an overflow.

- -
- -
If the element does have a multiple attribute - specified and the multiple attribute does apply
- -
- -

Constraint validation: When the element has a minimum, and the result of applying the algorithm to convert a string to a number to - any of the strings in the element's values is a number - that is less than the minimum, the element is - suffering from an underflow.

- -

Constraint validation: When the element has a maximum, and the result of applying the algorithm to convert a string to a number to - any of the strings in the element's values is a number - that is more than the maximum, the element is - suffering from an overflow.

+

Constraint validation: When the element has a maximum and does not have a + reversed range, and the result of applying the algorithm to convert a string to a number to + the string given by the element's value is a number, and + the number obtained from that algorithm is more than the maximum, the element is suffering from an + overflow.

- - -
- -
+

Constraint validation: When an element has a reversed range, + and the result of applying the algorithm to + convert a string to a number to the string given by the element's value is a number, and the number obtained from that algorithm + is more than the maximum and less than the minimum, the element is simultaneously suffering from an + underflow and suffering from an overflow.

@@ -47339,40 +47027,10 @@ You cannot submit this form when the field is incorrect. string to a number to the value of the min content attribute is not an error, then return that result and abort these steps.

-
  • - -

    If the element does not have a multiple attribute - specified or if the multiple attribute does not apply, then: if the element has a value content attribute, and the result of applying the algorithm to convert a string to a number to - the value of the value content attribute is not an error, - then return that result and abort these steps.

    - -

    Otherwise, the element's type attribute is in the Range state and the element has a multiple attribute specified: run these substeps:

    - -
      - -
    1. If the element does not have a value content - attribute, skip these substeps.

    2. - -
    3. Split on commas the value of the value content attribute.

    4. - -
    5. If the result of the previous step was not exactly two values, or if either gets an - error when you apply the algorithm to convert - a string to a number, then skip these substeps.

    6. - -
    7. Return the lower of the two numbers obtained in the previous step, and abort these - steps.

    8. - -
    - -
  • +
  • If the element has a value content attribute, and + the result of applying the algorithm to convert + a string to a number to the value of the value + content attribute is not an error, then return that result and abort these steps.

  • If a default step base is defined for this element given its type attribute's state, then return @@ -47382,44 +47040,13 @@ You cannot submit this form when the field is incorrect. -

    How these range limitations apply depends on whether the element has a multiple attribute.

    - -
    - -
    If the element does not have a multiple attribute - specified or if the multiple attribute does not apply
    - -
    - -

    Constraint validation: When the element has an allowed value step, and the result of applying the algorithm to convert a string to a number to - the string given by the element's value is a number, and - that number subtracted from the step base is not an - integral multiple of the allowed value step, the - element is suffering from a step mismatch.

    - -
    - -
    If the element does have a multiple attribute - specified and the multiple attribute does apply
    - -
    - -

    Constraint validation: When the element has an allowed value step, and the result of applying the algorithm to convert a string to a number to - any of the strings in the element's values is a number - that, when subtracted from the step base, is not an - integral multiple of the allowed value step, the - element is suffering from a step mismatch.

    - -
    - -
    +

    Constraint validation: When the element has an allowed value step, and the result of applying the algorithm to convert a string to a number to + the string given by the element's value is a number, and + that number subtracted from the step base is not an + integral multiple of the allowed value step, the + element is suffering from a step mismatch.

    @@ -47494,24 +47121,6 @@ You cannot submit this form when the field is incorrect. - -
    If the element's type attribute is in the Range state and the element has a multiple attribute specified
    - -
    - -

    When the user selects a suggestion, the user agent must identify which value in the element's - values the user intended to update, and must then update - the element's values so that the relevant value is - changed to the value given by the selected suggestion's value, as if the user had themself set it to that - value.

    - -
    -
    If the element's type attribute is in the Email state and the element has a -
    input . valueLow [ = value ]
    -
    input . valueHigh [ = value ]
    - -
    - -

    Returns a number representing the low and high components of form control's value respectively, if applicable; otherwise, returns NaN.

    - -

    Can be set, to change the value.

    - -

    Throws an "InvalidStateError" DOMException if the - control is not a two-handle range control.

    - -
    -
    input . stepUp( [ n ] )
    input . stepDown( [ n ] )
    @@ -47934,65 +47528,6 @@ You cannot submit this form when the field is incorrect.
    -

    The valueLow and valueHigh IDL attributes represent the value of the element, interpreted as a comma-separated pair of - numbers.

    - -

    On getting, if the attributes do not apply, as defined for the input - element's type attribute's current state, then return zero; - otherwise, run the following steps:

    - -
      - -
    1. Let values be the values of - the element, interpreted according to the algorithm to convert a string to a number, as - defined by the input element's type - attribute's current state.

    2. - -
    3. If the attribute in question is valueLow, return - the lowest of the values in values; otherwise, return the highest of the - values in values.

    4. - -
    - -

    On setting, if the attributes do not apply, as defined for the input - element's type attribute's current state, then throw an - "InvalidStateError" DOMException. Otherwise, run the - following steps:

    - -
      - -
    1. Let values be the values of - the element, interpreted according to the algorithm to convert a string to a number, as - defined by the input element's type - attribute's current state.

    2. - -
    3. Let new value be the result of running the algorithm to convert a number to a string, as - defined for that state, on the new value.

    4. - -
    5. If the attribute in question is valueLow, replace - the lower value in values with new value; otherwise, - replace the higher value in values with new - value.

    6. - -
    7. Sort values in increasing numeric order.

    8. - -
    9. Let values be the result of running the algorithm to convert a number to a string, as - defined by the input element's type - attribute's current state, to the values in values.

    10. - -
    11. Set the element's value to the concatenation of the - strings in values, separating each value from the next - by a U+002C COMMA character (,).

    12. - -
    - -
    -

    The stepDown(n) and stepUp(n) methods, when invoked, must run the following algorithm: