-
This is a work-in-progress, not cleared for shipping (see
Github issue 1250).
-
- This previously existed as a prefixed form in most browsers.
- Before standardization, in addition to none,
- the possible values were a very long list of all the ways an element could look;
- each value being responsible for giving form control their specific look and feel.
- This list was different across browsers.
-
- We concluded this was impractical to standardize,
- in part because many apply to pseudo-elements that other browsers don't have,
- as they construct form elements differently,
- and which should not be standardized,
- since the ability to make for controls look substantially different on different platforms
- should be preserved.
-
- Also, because the ability to turn any arbitrary element (including any form control)
- into any (other) arbitrary form control
- is considered a misfeature.
-
- Instead, we'd just have an "auto" value that makes form controls look like whatever they need,
- and a "none" value that suppresses "native" look.
-
- However, there is evidence that this alone is not web compatible,
- due in part to uses such as:
-
- input { appearance: none; }
- input[type=checkbox] { appearance: checkbox; }
-
-
- This Work-In-Progress specification is a compromise between the two,
- preserving the simplicity of the ''none | auto'' model
- while maintaining compatibility with existing content.
-
-
While the way most elements in a document look can be fully controlled by CSS,
form controls are typically rendered by UAs using native UI controls of the host operating system,
which can neither be replicated nor styled using CSS.