You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _rules/form-field-label-descriptive-cc0f0a.md
+29-16Lines changed: 29 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,21 +34,12 @@ acknowledgments:
34
34
35
35
## Applicability
36
36
37
-
This rule applies to any [programmatic label][] of an element which has one of the following [semantic roles][semantic role]:
38
-
39
-
-`checkbox`
40
-
-`combobox`
41
-
-`listbox`
42
-
-`menuitemcheckbox`
43
-
-`menuitemradio`
44
-
-`radio`
45
-
-`searchbox`
46
-
-`slider`
47
-
-`spinbutton`
48
-
-`switch`
49
-
-`textbox`
50
-
51
-
and where both the element and the [programmatic label][] are [visible][].
37
+
This rule applies to any [programmatic label][] of an element for which one of the following is true:
38
+
39
+
- the element has one of the following [semantic roles][semantic role]: `checkbox`, `combobox`, `listbox`, `menuitemcheckbox`, `menuitemradio`, `radio`, `searchbox`, `slider`, `spinbutton`, `switch`, `textbox`; or
40
+
- the element is an `input` with no [semantic role][] and a `type`[attribute value][] of `color`, `date`, `datetime-local`, `file`, `month`, `password`, `time`, or `week`.
41
+
42
+
In addition, both the element and the [programmatic label][] must be [visible][].
52
43
53
44
## Expectation
54
45
@@ -58,9 +49,11 @@ Each test target, together with its [visual context][], describes the purpose of
58
49
59
50
The list of applicable [semantic roles][semantic role] is derived by taking all the [ARIA 1.2][aria12] roles that:
60
51
61
-
- inherit from the `input`, `menuitem` or `select` role, and
52
+
- inherit from the `input`, `menuitem` or `select` role; and
62
53
- are form field controls (this notably excludes `menu`, `option` or `tree`).
63
54
55
+
This rule also applies to `input` elements whose `type`[attribute value][] is `color`, `date`, `datetime-local`, `file`, `month`, `password`, `time`, or `week`. These input types have no semantic role but still require a descriptive [programmatic label][] so users can understand their purpose.
56
+
64
57
[Labels][label] in WCAG are not restricted to the `label` element of HTML and can be any element. This rule is only concerned about actual `label` elements, and elements that are programmatically marked as [labels][label] via the `aria-labelledby` attribute.
65
58
66
59
It is possible for an element to have an [accessible name][] but still have a non-descriptive `label` element (and even a non-descriptive [label][]). In that case, it would pass [Success Criterion 4.1.2: Name, Role and Value][sc412] but still fail this rule and [Success Criterion 2.4.6: Headings and Labels][sc246].
@@ -160,6 +153,16 @@ Both the `div` and the `span` elements are [programmatic labels][programmatic la
160
153
</html>
161
154
```
162
155
156
+
#### Passed Example 7
157
+
158
+
The `label` element is a [programmatic label][] of the `input` element whose `type` attribute value is `date` and describes its purpose.
159
+
160
+
```html
161
+
<htmllang="en">
162
+
<label>Date of birth:<inputid="dob"type="date"name="dob"/></label>
163
+
</html>
164
+
```
165
+
163
166
### Failed
164
167
165
168
#### Failed Example 1
@@ -225,6 +228,16 @@ These `button` and `span` elements are both [programmatic labels][programmatic l
225
228
</html>
226
229
```
227
230
231
+
#### Failed Example 6
232
+
233
+
The `label` element is a [programmatic label][] of the `input` element whose `type` attribute value is `date`, but the label text "Info" does not describe the purpose of the form field.
Copy file name to clipboardExpand all lines: _rules/form-field-non-empty-accessible-name-e086e5.md
+24-2Lines changed: 24 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,10 @@ acknowledgments:
29
29
30
30
## Applicability
31
31
32
-
This rule applies to any element that is [included in the accessibility tree](#included-in-the-accessibility-tree), and that has one of the following [semantic roles][]: `checkbox`, `combobox` (`select` elements), `listbox`, `menuitemcheckbox`, `menuitemradio`, `radio`, `searchbox`, `slider`, `spinbutton`, `switch`, `textbox`.
32
+
This rule applies to any element that is [included in the accessibility tree](#included-in-the-accessibility-tree) and for which one of the following is true:
33
+
34
+
- the element has one of the following [semantic roles][]: `checkbox`, `combobox` (`select` elements), `listbox`, `menuitemcheckbox`, `menuitemradio`, `radio`, `searchbox`, `slider`, `spinbutton`, `switch`, `textbox`; or
35
+
- the element is an `input` with no [semantic role][] and a `type`[attribute value][] of `color`, `date`, `datetime-local`, `file`, `month`, `password`, `time`, or `week`.
33
36
34
37
## Expectation
35
38
@@ -42,7 +45,7 @@ The list of roles in the applicability is derived by taking all the roles from [
42
45
- have [semantic roles][] that inherit from the `input`, `menuitem` or `select` role; and
43
46
- are form field controls (this notably excludes `menu`, `option` or `tree`).
44
47
45
-
This rule does not test other control-like roles such as `button` and `menuitem`, because these do not inherit from `input` or `select`. These should be tested separately.
48
+
This rule does not test other control-like roles such as `button` and `menuitem`, because these do not inherit from `input` or `select`; these should be tested separately. This rule tests explicitly input types such as date and color because they have no semantic role, but still require an accessible name.
46
49
47
50
This rule does not map to [3.3.2 Labels or Instructions](https://www.w3.org/TR/WCAG22/#labels-or-instructions) as there are sufficient techniques within 3.3.2 that don't need the elements to have an [accessible name][]. For example "[G131: Providing descriptive labels](https://www.w3.org/WAI/WCAG22/Techniques/general/G131)" **AND** "[G162: Positioning labels to maximize predictability of relationships](https://www.w3.org/WAI/WCAG22/Techniques/general/G162)" would be sufficient.
48
51
@@ -152,6 +155,17 @@ These `menuitemcheckbox` elements have an [accessible name][] because its aria-l
152
155
</div>
153
156
```
154
157
158
+
#### Passed Example 9
159
+
160
+
This `input` element with a `type`[attribute value][] of `color` has an [accessible name][] because of its [programmatic label](#programmatic-label).
161
+
162
+
```html
163
+
<label>
164
+
Favorite color
165
+
<inputtype="color" />
166
+
</label>
167
+
```
168
+
155
169
### Failed
156
170
157
171
#### Failed Example 1
@@ -230,6 +244,14 @@ These `menuitemcheckbox` elements do not have an [accessible name][].
230
244
</div>
231
245
```
232
246
247
+
#### Failed Example 9
248
+
249
+
This `input` element with a `type`[attribute value][] of `date` has an empty (`""`) [accessible name][].
0 commit comments