@@ -323,42 +323,54 @@ <h2 class="no-num no-toc" id=contents>Table of Contents</h2>
323323 language pseudo-class < code > :lang()</ code > </ a >
324324 </ ul >
325325
326- < li > < a href ="#ui-states- pseudos "> < span class =secno > 11. </ span > The UI
327- states pseudo -classes</ a >
326+ < li > < a href ="#input- pseudos "> < span class =secno > 11. </ span > The Input
327+ Pseudo -classes</ a >
328328 < ul class =toc >
329- < li > < a href ="#enableddisabled "> < span class =secno > 11.1. </ span > The
330- < code > :enabled</ code > and < code > :disabled</ code > pseudo-classes</ a >
329+ < li > < a href ="#input-states "> < span class =secno > 11.1. </ span > Input
330+ Control States</ a >
331+ < ul class =toc >
332+ < li > < a href ="#enableddisabled "> < span class =secno > 11.1.1. </ span > The
333+ < code > :enabled</ code > and < code > :disabled</ code > pseudo-classes</ a >
331334
332- < li > < a href ="#placeholder "> < span class =secno > 11.2. </ span > The
333- placeholder-shown pseudo-class < code > :placeholder-shown</ code > </ a >
335+ < li > < a href ="#rw-pseudos "> < span class =secno > 11.1.2. </ span > The
336+ mutability pseudo-classes < code > :read-only</ code > and
337+ < code > :read-write</ code > </ a >
334338
335- < li > < a href ="#checked "> < span class =secno > 11.3. </ span > The
336- selected-option pseudo-class < code > :checked </ code > </ a >
339+ < li > < a href ="#placeholder "> < span class =secno > 11.1 .3. </ span > The
340+ placeholder-shown pseudo-class < code > :placeholder-shown </ code > </ a >
337341
338- < li > < a href ="#indeterminate "> < span class =secno > 11.4. </ span > The
339- indeterminate-value pseudo-class < code > :indeterminate</ code > </ a >
342+ < li > < a href ="#the-default-pseudo "> < span class =secno > 11.1.4. </ span >
343+ The default option pseudo-class < code > :default</ code > </ a >
344+ </ ul >
340345
341- < li > < a href ="#the-default-pseudo "> < span class =secno > 11.5. </ span > The
342- default option pseudo-class < code > :default</ code > </ a >
346+ < li > < a href ="#input-value-states "> < span class =secno > 11.2. </ span > Input
347+ Value States</ a >
348+ < ul class =toc >
349+ < li > < a href ="#checked "> < span class =secno > 11.2.1. </ span > The
350+ selected-option pseudo-class < code > :checked</ code > </ a >
343351
344- < li > < a href ="#validity-pseudos "> < span class =secno > 11.6 . </ span > The
345- validity pseudo-classes: < code > :valid </ code > and
346- < code > :invalid </ code > </ a >
352+ < li > < a href ="#indeterminate "> < span class =secno > 11.2.2 . </ span > The
353+ indeterminate-value pseudo-class < code > :indeterminate </ code > </ a >
354+ </ ul >
347355
348- < li > < a href ="#range-pseudos "> < span class =secno > 11.7. </ span > The range
349- pseudo-classes < code > :in-range</ code > and
350- < code > :out-of-range</ code > </ a >
356+ < li > < a href ="#ui-validity "> < span class =secno > 11.3. </ span > Input
357+ Value-checking</ a >
358+ < ul class =toc >
359+ < li > < a href ="#validity-pseudos "> < span class =secno > 11.3.1. </ span > The
360+ validity pseudo-classes: < code > :valid</ code > and
361+ < code > :invalid</ code > </ a >
351362
352- < li > < a href ="#opt -pseudos "> < span class =secno > 11.8 . </ span > The
353- optionality pseudo-classes < code > :required </ code > and
354- < code > :optional </ code > </ a >
363+ < li > < a href ="#range -pseudos "> < span class =secno > 11.3.2 . </ span > The
364+ range pseudo-classes < code > :in-range </ code > and
365+ < code > :out-of-range </ code > </ a >
355366
356- < li > < a href ="#user-pseudos "> < span class =secno > 11.9. </ span > The
357- user-interaction pseudo-class < code > :user-error</ code > </ a >
367+ < li > < a href ="#opt-pseudos "> < span class =secno > 11.3.3. </ span > The
368+ optionality pseudo-classes < code > :required</ code > and
369+ < code > :optional</ code > </ a >
358370
359- < li > < a href ="#rw -pseudos "> < span class =secno > 11.10 . </ span > The
360- mutability pseudo-classes < code > :read-only </ code > and
361- < code > :read-write </ code > </ a >
371+ < li > < a href ="#user -pseudos "> < span class =secno > 11.3.4 . </ span > The
372+ user-interaction pseudo-class < code > :user-error </ code > </ a >
373+ </ ul >
362374 </ ul >
363375
364376 < li > < a href ="#structural-pseudos "> < span class =secno > 12. </ span >
@@ -2793,12 +2805,16 @@ <h3 id=the-lang-pseudo><span class=secno>10.2. </span> The language
27932805
27942806 < p class =note > Wildcard language matching is new in Level 4.
27952807
2796- < h2 id =ui-states-pseudos > < span class =secno > 11. </ span > The UI states
2797- pseudo-classes</ h2 >
2808+ < h2 id =input-pseudos > < span class =secno > 11. </ span > The Input Pseudo-classes</ h2 >
27982809
2799- < h3 id =enableddisabled > < span class =secno > 11.1. </ span > The < a
2810+ < p > The pseudo-classes in this section mostly apply to elements that take
2811+ user input, such as HTML’s < code > <input> </ code > element.
2812+
2813+ < h3 id =input-states > < span class =secno > 11.1. </ span > Input Control States</ h3 >
2814+
2815+ < h4 id =enableddisabled > < span class =secno > 11.1.1. </ span > The < a
28002816 href ="#enabled-pseudo "> < code > :enabled</ code > </ a > and < a
2801- href ="#disabled-pseudo "> < code > :disabled</ code > </ a > pseudo-classes</ h3 >
2817+ href ="#disabled-pseudo "> < code > :disabled</ code > </ a > pseudo-classes</ h4 >
28022818
28032819 < p > The < dfn id =enabled-pseudo > :enabled</ dfn > pseudo-class represents user
28042820 interface elements that are in an enabled state; such elements have a
@@ -2822,18 +2838,49 @@ <h3 id=enableddisabled><span class=secno>11.1. </span> The <a
28222838 < code > display</ code > and < code > visibility</ code > properties have no effect
28232839 on the enabled/disabled state of an element.
28242840
2825- < h3 id =placeholder > < span class =secno > 11.2. </ span > The placeholder-shown
2841+ < h4 id =rw-pseudos > < span class =secno > 11.1.2. </ span > The mutability
2842+ pseudo-classes < a href ="#read-only-pseudo "> < code > :read-only</ code > </ a > and
2843+ < a href ="#read-write-pseudo "> < code > :read-write</ code > </ a > </ h4 >
2844+
2845+ < p > An element matches < dfn id =read-write-pseudo > :read-write</ dfn > if it is
2846+ user-alterable, as defined by the host language. Otherwise, it is < dfn
2847+ id =read-only-pseudo > :read-only</ dfn > .
2848+
2849+ < p > For example, in HTML5 a non-disabled non-readonly
2850+ < code > <input> </ code > element is < a
2851+ href ="#read-write-pseudo "> < code > :read-write</ code > </ a > , as is any element
2852+ with the < code > contenteditable</ code > attribute set to the true state. < a
2853+ href ="#HTML5 " rel =biblioentry > [HTML5]<!--{{HTML5}}--> </ a >
2854+
2855+ < h4 id =placeholder > < span class =secno > 11.1.3. </ span > The placeholder-shown
28262856 pseudo-class < a
2827- href ="#placeholder-shown-pseudo "> < code > :placeholder-shown</ code > </ a > </ h3 >
2857+ href ="#placeholder-shown-pseudo "> < code > :placeholder-shown</ code > </ a > </ h4 >
28282858
28292859 < p > Input elements can sometimes show placeholder text as a hint to the user
28302860 on what to type in. See, for example, the < code > placeholder</ code >
28312861 attribute in < a href ="#HTML5 " rel =biblioentry > [HTML5]<!--{{HTML5}}--> </ a > .
28322862 The < dfn id =placeholder-shown-pseudo > :placeholder-shown</ dfn > pseudo-class
28332863 matches an input element that is showing such placeholder text.
28342864
2835- < h3 id =checked > < span class =secno > 11.3. </ span > The selected-option
2836- pseudo-class < a href ="#checked-pseudo "> < code > :checked</ code > </ a > </ h3 >
2865+ < h4 id =the-default-pseudo > < span class =secno > 11.1.4. </ span > The default
2866+ option pseudo-class < a href ="#default-pseudo "> < code > :default</ code > </ a > </ h4 >
2867+
2868+ < p > The < dfn id =default-pseudo > :default</ dfn > pseudo-class applies to the
2869+ one or more UI elements that are the default among a set of similar
2870+ elements. Typically applies to context menu items, buttons and select
2871+ lists/menus.
2872+
2873+ < p > One example is the default submit button among a set of buttons. Another
2874+ example is the default option from a popup menu. Multiple elements in a
2875+ select-many group could have multiple < a
2876+ href ="#default-pseudo "> < code > :default</ code > </ a > elements, like a
2877+ selection of pizza toppings for example.
2878+
2879+ < h3 id =input-value-states > < span class =secno > 11.2. </ span > Input Value
2880+ States</ h3 >
2881+
2882+ < h4 id =checked > < span class =secno > 11.2.1. </ span > The selected-option
2883+ pseudo-class < a href ="#checked-pseudo "> < code > :checked</ code > </ a > </ h4 >
28372884
28382885 < p > Radio and checkbox elements can be toggled by the user. Some menu items
28392886 are "checked" when the user selects them. When such elements are toggled
@@ -2858,9 +2905,9 @@ <h3 id=checked><span class=secno>11.3. </span> The selected-option
28582905 < pre > :not(:checked)</ pre >
28592906 </ div >
28602907
2861- < h3 id =indeterminate > < span class =secno > 11.4 . </ span > The
2908+ < h4 id =indeterminate > < span class =secno > 11.2.2 . </ span > The
28622909 indeterminate-value pseudo-class < a
2863- href ="#indetermine-pseudo "> < code > :indeterminate</ code > </ a > </ h3 >
2910+ href ="#indetermine-pseudo "> < code > :indeterminate</ code > </ a > </ h4 >
28642911
28652912 < p > The < dfn id =indetermine-pseudo > :indeterminate</ dfn > pseudo-class applies
28662913 to UI elements whose value is in an indeterminate state. For example,
@@ -2877,23 +2924,11 @@ <h3 id=indeterminate><span class=secno>11.4. </span> The
28772924 href ="#indetermine-pseudo "> < code > :indeterminate</ code > </ a > even in a
28782925 static display.
28792926
2880- < h3 id =the-default-pseudo > < span class =secno > 11.5. </ span > The default
2881- option pseudo-class < a href ="#default-pseudo "> < code > :default</ code > </ a > </ h3 >
2927+ < h3 id =ui-validity > < span class =secno > 11.3. </ span > Input Value-checking</ h3 >
28822928
2883- < p > The < dfn id =default-pseudo > :default</ dfn > pseudo-class applies to the
2884- one or more UI elements that are the default among a set of similar
2885- elements. Typically applies to context menu items, buttons and select
2886- lists/menus.
2887-
2888- < p > One example is the default submit button among a set of buttons. Another
2889- example is the default option from a popup menu. Multiple elements in a
2890- select-many group could have multiple < a
2891- href ="#default-pseudo "> < code > :default</ code > </ a > elements, like a
2892- selection of pizza toppings for example.
2893-
2894- < h3 id =validity-pseudos > < span class =secno > 11.6. </ span > The validity
2929+ < h4 id =validity-pseudos > < span class =secno > 11.3.1. </ span > The validity
28952930 pseudo-classes: < a href ="#valid-pseudo "> < code > :valid</ code > </ a > and < a
2896- href ="#invalid-pseudo "> < code > :invalid</ code > </ a > </ h3 >
2931+ href ="#invalid-pseudo "> < code > :invalid</ code > </ a > </ h4 >
28972932
28982933 < p > An element is < dfn id =valid-pseudo > :valid</ dfn > or < dfn
28992934 id =invalid-pseudo > :invalid</ dfn > when its contents or value is,
@@ -2915,9 +2950,9 @@ <h3 id=validity-pseudos><span class=secno>11.6. </span> The validity
29152950 < code > <p> </ code > element has no validity semantics at all, and so it
29162951 never matches either of these pseudo-classes.
29172952
2918- < h3 id =range-pseudos > < span class =secno > 11.7 . </ span > The range
2953+ < h4 id =range-pseudos > < span class =secno > 11.3.2 . </ span > The range
29192954 pseudo-classes < a href ="#in-range-psuedo "> < code > :in-range</ code > </ a > and
2920- < a href ="#out-of-range-pseudo "> < code > :out-of-range</ code > </ a > </ h3 >
2955+ < a href ="#out-of-range-pseudo "> < code > :out-of-range</ code > </ a > </ h4 >
29212956
29222957 < p > The < dfn id =in-range-psuedo > :in-range</ dfn > and < dfn
29232958 id =out-of-range-pseudo > :out-of-range</ dfn > pseudo-classes apply only to
@@ -2934,18 +2969,18 @@ <h3 id=range-pseudos><span class=secno>11.7. </span> The range
29342969 menu element with a value of "E" that happens to be presented in a popup
29352970 menu that only has choices "A", "B" and "C".
29362971
2937- < h3 id =opt-pseudos > < span class =secno > 11.8 . </ span > The optionality
2972+ < h4 id =opt-pseudos > < span class =secno > 11.3.3 . </ span > The optionality
29382973 pseudo-classes < a href ="#required-pseudo "> < code > :required</ code > </ a > and
2939- < a href ="#optional-pseudo "> < code > :optional</ code > </ a > </ h3 >
2974+ < a href ="#optional-pseudo "> < code > :optional</ code > </ a > </ h4 >
29402975
29412976 < p > A form element is < dfn id =required-pseudo > :required</ dfn > or < dfn
29422977 id =optional-pseudo > :optional</ dfn > if a value for it is, respectively,
29432978 required or optional before the form it belongs to can be validly
29442979 submitted. Elements that are not form elements are neither required nor
29452980 optional.
29462981
2947- < h3 id =user-pseudos > < span class =secno > 11.9 . </ span > The user-interaction
2948- pseudo-class < a href ="#user-error-pseudo "> < code > :user-error</ code > </ a > </ h3 >
2982+ < h4 id =user-pseudos > < span class =secno > 11.3.4 . </ span > The user-interaction
2983+ pseudo-class < a href ="#user-error-pseudo "> < code > :user-error</ code > </ a > </ h4 >
29492984
29502985 < p > The < dfn id =user-error-pseudo > :user-error</ dfn > pseudo-class represents
29512986 an input element with incorrect input, but only < em > after</ em > the user
@@ -2968,10 +3003,9 @@ <h3 id=user-pseudos><span class=secno>11.9. </span> The user-interaction
29683003 < p > For example, the input in the following document fragment would match
29693004 < a href ="#invalid-pseudo "> < code > :invalid</ code > </ a > as soon as the page
29703005 is loaded (because it the initial value violates the max-constraint), but
2971- it won’t match < a
2972- href ="#user-error-pseudo "> < code > :user-error</ code > </ a > until the user
2973- significantly interacts with the element, or attempts to submit the form
2974- it's part of.
3006+ it won't match < a href ="#user-error-pseudo "> < code > :user-error</ code > </ a >
3007+ until the user significantly interacts with the element, or attempts to
3008+ submit the form it's part of.
29753009
29763010 < pre > <!--
29773011 --> <form>
@@ -2994,20 +3028,6 @@ <h3 id=user-pseudos><span class=secno>11.9. </span> The user-interaction
29943028 <code>:user-invalid</code> and <code>:user-omitted</code> could be used.
29953029-->
29963030
2997- < h3 id =rw-pseudos > < span class =secno > 11.10. </ span > The mutability
2998- pseudo-classes < a href ="#read-only-pseudo "> < code > :read-only</ code > </ a > and
2999- < a href ="#read-write-pseudo "> < code > :read-write</ code > </ a > </ h3 >
3000-
3001- < p > An element matches < dfn id =read-write-pseudo > :read-write</ dfn > if it is
3002- user-alterable, as defined by the host language. Otherwise, it is < dfn
3003- id =read-only-pseudo > :read-only</ dfn > .
3004-
3005- < p > For example, in HTML5 a non-disabled non-readonly
3006- < code > <input> </ code > element is < a
3007- href ="#read-write-pseudo "> < code > :read-write</ code > </ a > , as is any element
3008- with the < code > contenteditable</ code > attribute set to the true state. < a
3009- href ="#HTML5 " rel =biblioentry > [HTML5]<!--{{HTML5}}--> </ a >
3010-
30113031 < h2 id =structural-pseudos > < span class =secno > 12. </ span > Tree-Structural
30123032 pseudo-classes</ h2 >
30133033
0 commit comments