The elements defined in this section can be rendered in a variety of manners, within the
+
The elements in this section can be rendered in a variety of manners, within the
guidelines provided below. User agents are encouraged to set the 'appearance' CSS
property appropriately to achieve platform-native appearances for widgets, and are expected to
implement any relevant animations, etc, that are appropriate for the platform.
-
+
+
+
The following elements can have a native appearance for the purpose
+ of the CSS 'appearance' property.
+
+
+
button
+
input
+
meter
+
progress
+
select
+
textarea
+
+
+
+
+
+
+
Which widget to use for an element
+
+
This section defines how to compute what kind of widget will be used for a given
+ element. The possible kinds of widgets are
+ none,
+ button,
+ textfield,
+ searchfield,
+ slider-horizontal,
+ checkbox,
+ radio,
+ listbox,
+ menulist,
+ menulist-button,
+ textarea,
+ progress-bar, and
+ meter.
+
+
To compute the kind of widget to use for an element element:
+
+
+
+
If computedAppearance is 'none' or one of the <compat-none>
+ values, then return none.
+
+
Let localName be element's local name.
+
+
Let namespace be element's namespace.
+
+
Let typeState be null.
+
+
Let computedAppearance be the computed value of
+ element's 'appearance' property.
+
+
Let authorProps be a map of all properties
+ that have a cascaded value for element, where all cascade origins except the Author Origin are ignored, where the key
+ is the property name and the value is that cascaded value.
+
+
+
If namespace is the HTML namespace:
+
+
+
If localName is "input", then set typeState
+ to element's type attribute's state.
+
+
If localName is "select", then set
+ typeState to list box if it is a list box, and
+ drop-down box otherwise.
+
+
+
To determine if an HTML element can be a button, given computedAppearance:
+ localName is "button", or localName is
+ "input" and typeState is one of Button, Submit, Reset, or Color.
+
+
+
+
If localName is "input" and either:
+
+
+
typeState is one of Text, Telephone, URL,
+ E-mail, Password, Date, Month,
+ Week, Time, Local Date and Time, or Number
+
+
typeState is Search and
+ computedAppearance is 'textfield'
+
+
+
...then return the appropriate widget with the include background
+ properties flag set to false, authorProps set to authorProps,
+ expected set to textfield, and
+ fallback set to none.
+
+
+
+
If localName is "input" and typeState is
+ Search, then return the appropriate
+ widget with the include background properties flag set to true,
+ authorProps set to authorProps, expected set to searchfield, and fallback set to none.
+
+
+
If localName is "input" and typeState is
+ Range, then return slider-horizontal.
+
+
+
+
If localName is "select":
+
+
+
If typeState is list box, then return none.
+
+
Assert: typeState is drop-down box.
+
+
If computedAppearance is 'button', then return the appropriate
+ widget with the include background properties flag set to true,
+ authorProps set to authorProps, expected set to button, and fallback set to none.
+
+
If computedAppearance is 'menulist-button', then return menulist-button.
+
+
Return the appropriate widget with the include background
+ properties flag set to true, authorProps set to authorProps,
+ expected set to menulist, and
+ fallback set to menulist-button.
+
+
+
+
+
If localName is "textarea", then return the
+ appropriate widget with the include background properties flag set to
+ false, authorProps set to authorProps, expected set to textarea, and fallback set to none.
+
+
+
If localName is "progress", then return progress-bar.
+
+
+
If localName is "meter", then return meter.
+
+
+
+
+
If computedAppearance is 'button', then return button. Otherwise, return none.
+
+
+
The appropriate widget, given a boolean include background properties
+ flag, a map of properties authorProps, and an
+ expected kind of widgetexpected, and a fallback kind of
+ widgetfallback, is as follows:
+
+
+
Let anyValueProps be the relevant any-value border
+ properties.
+
+
Let nonInitialValueProps be the relevant non-initial value border
+ properties.
+
+
If include background properties is true, then append all items of the
+ relevant any-value background properties to anyValueProps, and append all
+ items of the relevant non-initial value background properties to
+ nonInitialValueProps.
+
+
+
For each prop of anyValueProps:
+
+
+
If authorProps[prop] exists, then return
+ fallback.
+
+
+
+
+
+
For each prop of nonInitialValueProps:
+
+
+
If authorProps[prop] exists and has a value that is not the
+ initial value for that property, then return fallback.
+
+
+
+
Return expected.
+
+
+
+
The relevant any-value border properties are:
+
+
+
'border-top-color'
+
'border-top-style'
+
'border-top-width'
+
'border-right-color'
+
'border-right-style'
+
'border-right-width'
+
'border-bottom-color'
+
'border-bottom-style'
+
'border-bottom-width'
+
'border-left-color'
+
'border-left-style'
+
'border-left-width'
+
'border-block-start-color'
+
'border-block-end-color'
+
'border-inline-start-color'
+
'border-inline-end-color'
+
'border-block-start-style'
+
'border-block-end-style'
+
'border-inline-start-style'
+
'border-inline-end-style'
+
'border-block-start-width'
+
'border-block-end-width'
+
'border-inline-start-width'
+
'border-inline-end-width'
+
+
+
The relevant non-initial value border properties are:
+
+
+
'border-image-source'
+
'border-image-slice'
+
'border-image-width'
+
'border-image-outset'
+
'border-image-repeat'
+
'border-top-left-radius'
+
'border-top-right-radius'
+
'border-bottom-right-radius'
+
'border-bottom-left-radius'
+
'border-start-start-radius'
+
'border-start-end-radius'
+
'border-end-start-radius'
+
'border-end-end-radius'
+
+
+
The relevant any-value background properties are:
+
+
+
'background-color'
+
+
+
The relevant non-initial value background properties are:
+
+
+
'background-image'
+
'background-repeat'
+
'background-attachment'
+
'background-position'
+
'background-clip'
+
'background-origin'
+
'background-size'
+
@@ -118801,6 +119124,10 @@ input[type=image i][align=bottom i], object[align=bottom i] {
box's contents (if there is an anonymous button content box) are the child
boxes the element's box would otherwise have.
+
Need to define expected rendering when the kind of widget
+ is none and button.
+
@@ -118900,6 +119227,10 @@ details[open] > summary {
containers and support scrolling in the inline axis, but not the block
axis.
+
Need to define expected rendering when the kind of widget
+ is none and textfield.
These controls are all expected to be about one line high, and about as wide as necessary to
show the widest possible value.
+
Need to define expected rendering when the kind of widget
+ is none and textfield.
+
@@ -118959,6 +119294,9 @@ details[open] > summary {
left-to-right ('ltr') horizontal control would have the lowest value on the left and the highest
value on the right, and vice versa.
+
Need to define expected rendering when the kind of widget
+ is none and slider-horizontal.
@@ -118981,6 +119319,10 @@ details[open] > summary {
attribute) are expected to be shown in the color picker interface, not on the color well
itself.
+
Need to define expected rendering when the kind of widget
+ is none and button.
+
@@ -118996,6 +119338,11 @@ details[open] > summary {
the Radio Button state is expected to render as an
'inline-block' box containing a single radio button control, with no label.
+
Need to define expected rendering when the kind of widget
+ is none and checkbox or radio, respectively.
+
@@ -119031,6 +119378,10 @@ details[open] > summary {
data-x="attr-input-type">type attribute in an implementation-defined (and
probably locale-specific) fashion, if not.
+
Need to define expected rendering when the kind of widget
+ is none and button.
+
@@ -119194,8 +119545,13 @@ marquee {
The meter element
-
The meter element is expected to render as an 'inline-block' box with
- a 'height' of '1em' and a 'width' of '5em', a
+
The meter element whose kind is meter is expected to render as an 'inline-block'
+ box with a 'height' of '1em' and a 'width' of '5em', a
'vertical-align' of '-0.2em', and with its contents depicting a gauge.
When the element is wider than it is tall (or square), the depiction is expected to be of a
@@ -119210,6 +119566,10 @@ marquee {
Requirements for what must be depicted in the gauge are
included in the definition of the meter element.
+
A meter element whose kind is none has no special rendering; normal CSS requirements apply
+ to the element.
+
@@ -119217,9 +119577,14 @@ marquee {
The progress element
-
The progress element is expected to render as an 'inline-block' box
- with a 'height' of '1em' and a 'width' of '10em', and a
- 'vertical-align' of '-0.2em'.
The progress element whose kind is progress-bar is expected to render as an
+ 'inline-block' box with a 'height' of '1em' and a 'width'
+ of '10em', and a 'vertical-align' of '-0.2em'.
@@ -119245,6 +119610,10 @@ marquee {
indeterminate, and what progress a determinate progress bar is to show, are included in the
definition of the progress element.
+
A progress element whose kind is none has no special rendering; normal CSS requirements apply
+ to the element.
+
@@ -119302,6 +119671,12 @@ marquee {
any alignment remains consistent whether the label is being displayed as part of the page or in a
menu control.
+
Need to define expected rendering when the kind of widget
+ is none, button, menulist, and menulist-button.
+
@@ -119354,6 +119729,10 @@ marquee {
data-x="presentational hints">presentational hint setting the element's
'white-space' property to 'pre'.
+
Need to define expected rendering when the kind of widget
+ is none and textarea
The elements in this section can be rendered in a variety of manners, within the
- guidelines provided below. User agents are encouraged to set the 'appearance' CSS
- property appropriately to achieve platform-native appearances for widgets, and are expected to
- implement any relevant animations, etc, that are appropriate for the platform.
-
+
Native appearance
The following elements can have a native appearance for the purpose
of the CSS 'appearance' property.
From 139a2073d5726c310ba0d0493f75a0fbc07f70ab Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Thu, 22 Aug 2019 19:21:32 +0200
Subject: [PATCH 03/38] =?UTF-8?q?Markup=20fix=20(big-issue=20=20=E2=86=92?=
=?UTF-8?q?=20XXX)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
source | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/source b/source
index 420c345bce5..5dff39692fb 100644
--- a/source
+++ b/source
@@ -119118,7 +119118,7 @@ input[type=image i][align=bottom i], object[align=bottom i] {
box's contents (if there is an anonymous button content box) are the child
boxes the element's box would otherwise have.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and button.
@@ -119221,7 +119221,7 @@ details[open] > summary {
containers and support scrolling in the inline axis, but not the block
axis.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and textfield.
These controls are all expected to be about one line high, and about as wide as necessary to
show the widest possible value.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and textfield.
@@ -119288,7 +119288,7 @@ details[open] > summary {
left-to-right ('ltr') horizontal control would have the lowest value on the left and the highest
value on the right, and vice versa.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and slider-horizontal.
@@ -119313,7 +119313,7 @@ details[open] > summary {
attribute) are expected to be shown in the color picker interface, not on the color well
itself.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and button.
@@ -119332,7 +119332,7 @@ details[open] > summary {
the Radio Button state is expected to render as an
'inline-block' box containing a single radio button control, with no label.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and checkbox or radio, respectively.
@@ -119372,7 +119372,7 @@ details[open] > summary {
data-x="attr-input-type">type attribute in an implementation-defined (and
probably locale-specific) fashion, if not.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and button.
@@ -119665,7 +119665,7 @@ progress { appearance: auto; }
any alignment remains consistent whether the label is being displayed as part of the page or in a
menu control.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none, button, menulist, and
data-x="presentational hints">presentational hint setting the element's
'white-space' property to 'pre'.
-
Need to define expected rendering when the kind of widget
+
Need to define expected rendering when the kind of widget
is none and textarea
From 776aaa4ec40055a6c7803c61fc9ee5267a84b74f Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Tue, 27 Aug 2019 16:13:39 +0200
Subject: [PATCH 04/38] Fix unclear inline issue
---
source | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/source b/source
index 5dff39692fb..431c911225d 100644
--- a/source
+++ b/source
@@ -119328,14 +119328,17 @@ details[open] > summary {
the Checkbox state is expected to render as an
'inline-block' box containing a single checkbox control, with no label.
+
Need to define expected rendering when the kind of widget
+ is none and checkbox.
+
An input element whose type attribute is in
the Radio Button state is expected to render as an
'inline-block' box containing a single radio button control, with no label.
Need to define expected rendering when the kind of widget
is none and checkbox or radio, respectively.
+ data-x="concept-widget-radio">radio.
From b1758a04fb5ffdbb21c6b43e9d9145121020f3f4 Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Tue, 27 Aug 2019 16:16:51 +0200
Subject: [PATCH 05/38] Use inputState and selectState instead of typeState
---
source | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/source b/source
index 431c911225d..22ff8e6c34c 100644
--- a/source
+++ b/source
@@ -118825,7 +118825,9 @@ input[type=image i][align=bottom i], object[align=bottom i] {
Let namespace be element's namespace.
-
Let typeState be null.
+
Let inputState be null.
+
+
Let selectState be null.
Let computedAppearance be the computed value of
element's 'appearance' property.
If localName is "input", then set inputState
to element's type attribute's state.
If localName is "select", then set
- typeState to list box if it is a list box, and
+ selectState to list box if it is a list box, and
drop-down box otherwise.
To determine if an HTML element can be a button, given computedAppearance:
localName is "button", or localName is
- "input" and typeState is one of input" and inputState is one of Button, Submit, Reset, or If localName is "input" and either:
-
typeState is one of Text, inputState is one of Text, Telephone, URL,
E-mail, Password, Local Date and Time, or Number
-
typeState is Search and
+
inputState is Search and
computedAppearance is 'textfield'
If localName is "input" and inputState is
Search, then return the appropriate
widget with the include background properties flag set to true,
authorProps set to authorProps, expected set to none.
-
If localName is "input" and typeState is
+
If localName is "input" and inputState is
Range, then return slider-horizontal.
If computedAppearance is 'button', then return the appropriate
widget with the include background properties flag set to true,
From eb7966bbc0408851a67393bcd47ab3a0364d5d3d Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Tue, 2 Jun 2020 13:03:45 +0200
Subject: [PATCH 06/38] Make rendering undefined for appearance: none on
progress and meter
---
source | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/source b/source
index 22ff8e6c34c..afec1298c4f 100644
--- a/source
+++ b/source
@@ -119565,9 +119565,8 @@ meter { appearance: auto; }
Requirements for what must be depicted in the gauge are
included in the definition of the meter element.
-
A meter element whose kind is none has no special rendering; normal CSS requirements apply
- to the element.
+
Need to define expected rendering when the kind of widget
+ is none.
@@ -119609,9 +119608,8 @@ progress { appearance: auto; }
indeterminate, and what progress a determinate progress bar is to show, are included in the
definition of the progress element.
-
A progress element whose kind is none has no special rendering; normal CSS requirements apply
- to the element.
+
Need to define expected rendering when the kind of widget
+ is none.
From 53b67132bd31e1086568bca5924a1fb9d3202103 Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Tue, 2 Jun 2020 15:22:56 +0200
Subject: [PATCH 07/38] Remove include background properties flag
---
source | 89 ++++++++++++++++++++--------------------------------------
1 file changed, 31 insertions(+), 58 deletions(-)
diff --git a/source b/source
index afec1298c4f..d9bfa2e34bd 100644
--- a/source
+++ b/source
@@ -118877,19 +118877,18 @@ input[type=image i][align=bottom i], object[align=bottom i] {
computedAppearance is 'textfield'
-
...then return the appropriate widget with the include background
- properties flag set to false, authorProps set to authorProps,
- expected set to textfield, and
- fallback set to none.
+
...then return the appropriate widget with authorProps set to
+ authorProps, expected set to textfield, and fallback set to none.
If localName is "input" and inputState is
Search, then return the appropriate
- widget with the include background properties flag set to true,
- authorProps set to authorProps, expected set to searchfield, and fallback set to none.
+ widget with authorProps set to authorProps, expected
+ set to searchfield, and fallback
+ set to none.
If localName is "input" and inputState is
@@ -118907,28 +118906,25 @@ input[type=image i][align=bottom i], object[align=bottom i] {
Assert: selectState is drop-down box.
If computedAppearance is 'button', then return the appropriate
- widget with the include background properties flag set to true,
- authorProps set to authorProps, expected set to button, and fallback set to none.
+ widget with authorProps set to authorProps, expected
+ set to button, and fallback set to
+ none.
If computedAppearance is 'menulist-button', then return menulist-button.
-
Return the appropriate widget with the include background
- properties flag set to true, authorProps set to authorProps,
- expected set to menulist, and
- fallback set to
Return the appropriate widget with authorProps set to
+ authorProps, expected set to menulist, and fallback set to menulist-button.
If localName is "textarea", then return the
- appropriate widget with the include background properties flag set to
- false, authorProps set to authorProps, expected set to textarea, and fallback set to none.
+ appropriate widget with authorProps set to authorProps,
+ expected set to textarea, and
+ fallback set to none.
If localName is "progress", then return none.
-
The appropriate widget, given a boolean include background properties
- flag, a map of properties authorProps, and an
- expected kind of widgetexpected, and a fallback kind of
- widgetfallback, is as follows:
+
The appropriate widget, given a map of properties
+ authorProps, and an expected kind of widgetexpected, and a
+ fallback kind of widgetfallback, is as follows:
-
Let anyValueProps be the relevant any-value border
- properties.
-
-
Let nonInitialValueProps be the relevant non-initial value border
- properties.
-
-
If include background properties is true, then append all items of the
- relevant any-value background properties to anyValueProps, and append all
- items of the relevant non-initial value background properties to
- nonInitialValueProps.
-
-
For each prop of anyValueProps:
+
For each prop of the relevant any-value properties:
If authorProps[prop] exists, then return
fallback.
-
-
For each prop of nonInitialValueProps:
+
For each prop of the relevant non-initial value properties:
If authorProps[prop] exists and has a value that is not the
@@ -118986,9 +118969,10 @@ input[type=image i][align=bottom i], object[align=bottom i] {
Let authorProps be a map of all properties
- that have a cascaded value for element, where all cascade origins except the Author Origin are ignored, where the key
- is the property name and the value is that cascaded value.
+ that have a cascaded value for element, where the Author
+ Origin, Animation Origin and Transition Origincascade origins are included and the User Origin and
+ User Agent Origincascade origins are ignored,
+ where the key is the property name and the value is that cascaded value.
If namespace is the HTML namespace:
From f7d04bea5060d2352d575db81e452069c7e0194c Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Thu, 4 Jun 2020 13:47:33 +0200
Subject: [PATCH 12/38] Remove reference to
---
source | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/source b/source
index 61b0b4b6f30..a5aa3230c14 100644
--- a/source
+++ b/source
@@ -3743,9 +3743,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
The 'outline' property
The 'cursor' property
The 'appearance' property and its
- <compat-none> and
<compat-auto>
- non-terminal value types.
If computedAppearance is 'none' or one of the <compat-none>
- values, then return none.
+
If computedAppearance is 'none', then return
+ none.
Let localName be element's local name.
From 46b8fdc21b7e3b9722a1b9d922c387c026078095 Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Thu, 4 Jun 2020 13:52:18 +0200
Subject: [PATCH 13/38] Remove appearance: button handling for
-
The appropriate widget, given a boolean include background properties
- flag, a map of properties authorProps, and an
- expected kind of widgetexpected, and a fallback kind of
- widgetfallback, is as follows:
+
The appropriate widget, given a map of properties
+ authorProps, and an expected kind of widgetexpected, and a
+ fallback kind of widgetfallback, is as follows:
-
Let anyValueProps be the relevant any-value border
- properties.
-
-
Let nonInitialValueProps be the relevant non-initial value border
- properties.
-
-
If include background properties is true, then append all items of the
- relevant any-value background properties to anyValueProps, and append all
- items of the relevant non-initial value background properties to
- nonInitialValueProps.
-
-
For each prop of anyValueProps:
+
For each prop of the relevant any-value properties:
If authorProps[prop] exists, then return
fallback.
-
-
For each prop of nonInitialValueProps:
+
For each prop of the relevant non-initial value properties:
If authorProps[prop] exists and has a value that is not the
@@ -118998,9 +118980,10 @@ input[type=image i][align=bottom i], object[align=bottom i] {
Let authorProps be a map of all properties
- that have a cascaded value for element, where all cascade origins except the Author Origin are ignored, where the key
- is the property name and the value is that cascaded value.
+ that have a cascaded value for element, where the Author
+ Origin, Animation Origin and Transition Origincascade origins are included and the User Origin and
+ User Agent Origincascade origins are ignored,
+ where the key is the property name and the value is that cascaded value.
If namespace is the HTML namespace:
From 5c6603dabc9ab8405ddcfa6ea7700f8ef93ea132 Mon Sep 17 00:00:00 2001
From: Simon Pieters
Date: Thu, 4 Jun 2020 13:47:33 +0200
Subject: [PATCH 25/38] Remove reference to
---
source | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/source b/source
index 1ef6ecd5881..238152f5296 100644
--- a/source
+++ b/source
@@ -3749,9 +3749,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
The 'outline' property
The 'cursor' property
The 'appearance' property and its
- <compat-none> and
<compat-auto>
- non-terminal value types.
Given computedAppearance: localName is
"button", or localName is
- "input" and typeState is one of input" and inputState is one of Button, Submit, Reset, or
Date: Tue, 31 Aug 2021 09:25:07 -0500
Subject: [PATCH 32/38] formatting
---
source | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/source b/source
index faa788db6b8..557ba2d65a7 100644
--- a/source
+++ b/source
@@ -118880,7 +118880,7 @@ input[type=image i][align=bottom i], object[align=bottom i] {
inputState to element's type
attribute's state.
-
Given computedAppearance: localName is
+
Given computedAppearance, localName is
"button", or localName is
"input" and inputState is one of Button,
-
Given computedAppearance: localName is
+
Given computedAppearance, localName is
"input" and:
@@ -118940,7 +118940,7 @@ input[type=image i][align=bottom i], object[align=bottom i] {
inputState to element's type
attribute's state.
-
Given computedAppearance: localName is
+
Given computedAppearance, localName is
"input" and inputState is Search.
@@ -118960,7 +118960,7 @@ input[type=image i][align=bottom i], object[align=bottom i] {
inputState to element's type
attribute's state.
-
Given computedAppearance: localName is
+
Given computedAppearance, localName is
"input" and inputState is Range.
@@ -118980,7 +118980,7 @@ input[type=image i][align=bottom i], object[align=bottom i] {
inputState to element's type
attribute's state.
-
Given computedAppearance: localName is
+
Given computedAppearance, localName is
"input" and inputState is Checkbox.
@@ -119000,7 +119000,7 @@ input[type=image i][align=bottom i], object[align=bottom i] {
inputState to element's type
attribute's state.
-
Given computedAppearance: localName is
+
Given computedAppearance, localName is
"input" and inputState is Radio.
The 'appearance' property and its
<compat-auto>
non-terminal value type.
+
The concept native appearance
+
The concept kind of widget
+ and associated kinds of widgets
+ none,
+ button,
+ searchfield,
+ textfield,
+ slider-horizontal,
+ checkbox,
+ radio,
+ listbox,
+ menulist,
+ menulist-button,
+ textarea,
+ progress-bar,
+ meter.
+
The can be a button,
+ can be a textfield,
+ can be a searchfield,
+ can be a slider-horizontal,
+ can be a checkbox,
+ can be a radio,
+ can be a listbox,
+ can be a menulist,
+ can be a menulist-button,
+ can be a textarea,
+ can be a progress-bar,
+ can be a meter concepts.
This section defines how to determine what kind of widget an element can be.
- The possible kinds of widgets are
- none,
- button,
- textfield,
- searchfield,
- slider-horizontal,
- checkbox,
- radio,
- listbox,
- menulist,
- menulist-button,
- textarea,
- progress-bar, and
- meter.
+
The CSS Basic User Interface specification defines how to determine what
+ kind of widget an element can be. This section defines which elements can be a
+ button, can be a textfield, can be a searchfield, can be a
+ slider-horizontal, can be a menulist-button, can be a menulist,
+ can be a textarea, can be a progress-bar, can be a meter.
+
Determine if element can be a button
-
To determine if an element element can be a button, given
+
To determine if an element elementcan be a button, given
computedAppearance:
The CSS Basic User Interface specification defines how to determine what
- kind of widget an element can be. This section defines which elements can be a
- button, can be a textfield, can be a searchfield, can be a
- slider-horizontal, can be a menulist-button, can be a menulist,
- can be a textarea, can be a progress-bar, can be a meter.
-
-
-
-
Determine if element can be a button
+ kind of widget an element can be. This section defines which elements match these
+ concepts for HTML.
To determine if an element elementcan be a button, given
computedAppearance:
-
If element's namespace is not
- the HTML namespace, then return false.
-
-
Let localName be element's local name.
-
-
If localName is "button", then return true.
+
If element is a button element, then return true.
-
If localName is "input", then:
+
If element is an input element, then:
Let inputState be element's
Return false.
-
-
Determine if element can be a textfield
-
To determine if an element elementcan be a textfield, given
computedAppearance:
-
If element's namespace is not
- the HTML namespace, then return false.
-
-
Let localName be element's local name.
-
-
If localName is "input", then:
+
If element is an input element, then:
Let inputState be element's type attribute's state.
-
If one of the following are true, then return true:
+
If either of the following are true, then return true:
inputState is one of Text, Week, Time, Local Date and Time, or Number or,
+ data-x="attr-input-type-number">Number; or
inputState is Search and
computedAppearance is 'textfield'.