Skip to content

Commit af583d9

Browse files
authored
Merge branch 'develop' into rule-2311
2 parents b6139e5 + e10a2ae commit af583d9

14 files changed

+30
-41
lines changed

_rules/aria-attr-defined-5f99a7.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ This `article` element has an `aria-atomic` attribute which is defined in [WAI-A
6565
This `div` element with a role of `dialog` has an `aria-modal` attribute which is defined in [WAI-ARIA Specifications][].
6666

6767
```html
68-
<div role="dialog" aria-modal="true">Contains modal content...</div>
68+
<div role="dialog" aria-modal="true" aria-label="Modal title">Contains modal content...</div>
6969
```
7070

7171
#### Passed Example 3

_rules/aria-required-id-references-in6db8.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ The `aria-controls` [attribute value][] of this `scrollbar` matches the `id` of
7878
The `aria-controls` [attribute value][] of this expanded `combobox` matches the `id` of the `ul` element in the same document.
7979

8080
```html
81-
<label for="tag_combo">Tag</label>
81+
<label for="tag_combo" id="tag_label">Tag</label>
8282
<input
8383
type="text"
8484
id="tag_combo"
@@ -87,7 +87,7 @@ The `aria-controls` [attribute value][] of this expanded `combobox` matches the
8787
aria-controls="popup_listbox"
8888
aria-activedescendant="selected_option"
8989
/>
90-
<ul role="listbox" id="popup_listbox">
90+
<ul role="listbox" id="popup_listbox" aria-labelledby="tag_label">
9191
<li role="option">Zebra</li>
9292
<li role="option" id="selected_option">Zoom</li>
9393
</ul>

_rules/aria-required-owned-element-bc4a75.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ This element with the `list` role only owns elements with the `listitem` role. T
8080
This element with the `grid` role only owns elements with the `row` role, and the element with the `row` role only owns elements with the `gridcell` role. The `row` role is one of the [required owned elements][] for `grid`, and `gridcell` is one of the [required owned elements][] for `row`.
8181

8282
```html
83-
<table role="grid">
83+
<table role="grid" aria-label="grid name">
8484
<tr role="row">
8585
<td role="gridcell">Item 1</td>
8686
</tr>
@@ -250,7 +250,7 @@ This `ul` element does not have an [explicit semantic role][].
250250
This element with the `progressbar` role does not need [required owned elements][].
251251

252252
```html
253-
<div role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">20 %</div>
253+
<div role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" aria-label="Completion">20 %</div>
254254
```
255255

256256
#### Inapplicable Example 4

_rules/aria-state-or-property-permitted-5c01ea.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,23 +131,23 @@ The `aria-checked` [state][] is [required][] for the [semantic][semantic role] `
131131
The `aria-expanded` [property][] is [required][] for the [semantic][semantic role] `combobox`.
132132

133133
```html
134-
<div role="combobox" aria-controls="id1" aria-expanded="false">My combobox</div>
134+
<div role="combobox" aria-controls="id1" aria-expanded="false" aria-label="My combobox">My combobox</div>
135135
```
136136

137137
#### Passed Example 7
138138

139139
The `aria-expanded` [property][] is [required][] for the [semantic][semantic role] `combobox`.
140140

141141
```html
142-
<div role="combobox" aria-expanded="false" aria-controls="id1">My combobox</div>
142+
<div role="combobox" aria-expanded="false" aria-controls="id1" aria-label="My combobox">My combobox</div>
143143
```
144144

145145
#### Passed Example 8
146146

147147
The `aria-expanded` [property][] is [required][] for the [semantic][semantic role] `combobox`. [WAI-ARIA states and properties][wai-aria state or property] with `undefined` value are still applicable to this rule.
148148

149149
```html
150-
<div role="combobox" aria-expanded="undefined" aria-controls="id1">My combobox</div>
150+
<div role="combobox" aria-expanded="undefined" aria-controls="id1" aria-label="My combobox">My combobox</div>
151151
```
152152

153153
#### Passed Example 9

_rules/autocomplete-valid-value-73f2c2.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ The purpose of a control is programmatically identifiable even when its `autocom
6969

7070
- While `autocomplete` is a promising technique for supporting personalization in HTML, support for this in assistive technologies is fairly limited.
7171
- Implementation of [Presentational Roles Conflict Resolution][] varies from one browser or assistive technology to another. Depending on this, some elements can have a [semantic role][] of `none` and fail this rule with some technology but users of other technologies would not experience any accessibility issue.
72-
- In some user agents, querying the value of the `autocomplete` property returns an empty string ("") even when the attribute was set according to the rule's expectations. It affects assistive technologies which rely on this property to personalize input fields collecting information about the user.
7372
- Authors may assign inappropriate `autocomplete` attribute values. Moreover, HTML specifications restrict certain `autocomplete` attribute values to specific form controls. Mismatches between `autocomplete` attribute values and form control types may or may not lead to a failure of [success criterion 1.3.5 Identify Input Purpose](https://www.w3.org/TR/WCAG22/#identify-input-purpose). However, this rule focuses exclusively on validating valid `autocomplete` attribute values, disregarding their contextual appropriateness.
7473

7574
### Bibliography

_rules/block-collapsible-3e12e1.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,14 @@ For each [block of repeated content][] in each test target, which is before (in
3939

4040
### Assumptions
4141

42-
There are no assumptions.
42+
Usually the same [instrument][] removes both [visibility][visible] and [inclusion in the accessibility tree][included in the accessibility tree] of a [block of repeated content][]. That [instrument][] may remove all [blocks of repeated content][block of repeated content]. If there is no [block of repeated content][] before the non-repeated content the rule passes.
43+
44+
[Technique SCR28: Using an expandable and collapsible menu to bypass block of content][tech scr28] does not have any requirements concerning the location of the [instruments][instrument] in relation to the [block of repeated content][] they control, hence this rule doesn't. It is likely a good idea to either keep each [instrument][] close to the start of the [block of repeated content][] it controls; or to group them all in one place near the start of the document. Notably, [instruments][instrument] located after (in reading order) the block they collapse are likely not satisfying [Success Criterion 2.4.1 Bypass blocks][sc241], which this rule is designed for. Thus, it is possible to pass this rule without satisfying [Success Criterion 2.4.1 Bypass blocks][sc241].
4345

4446
### Accessibility Support
4547

4648
There are no accessibility support issues known.
4749

48-
Usually the same [instrument][] removes both [visibility][visible] and [inclusion in the accessibility tree][included in the accessibility tree] of a [block of repeated content][]. That [instrument][] may remove all [blocks of repeated content][block of repeated content]. If there is no [block of repeated content][] before the non-repeated content the rule passes.
49-
50-
[Technique SCR28: Using an expandable and collapsible menu to bypass block of content][tech scr28] does not have any requirements concerning the location of the [instruments][instrument] in relation to the [block of repeated content][] they control, hence this rule doesn't. It is likely a good idea to either keep each [instrument][] close to the start of the [block of repeated content][] it controls; or to group them all in one place near the start of the document. Notably, [instruments][instrument] located after (in reading order) the block they collapse are likely not satisfying [Success Criterion 2.4.1 Bypass blocks][sc241], which this rule is designed for. Thus, it is possible to pass this rule without satisfying [Success Criterion 2.4.1 Bypass blocks][sc241].
51-
5250
### Bibliography
5351

5452
- [Technique SCR28: Using an expandable and collapsible menu to bypass block of content][tech scr28]

_rules/iframe-with-interactive-content-in-tab-order-akn7bn.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@ name: Iframe with interactive elements is not excluded from tab-order
44
rules_format: 1.1
55
rule_type: atomic
66
description: |
7-
This rule checks that `iframe` elements which contain an interactive (tabbable) element are not excluded from sequential focus navigation.
7+
This rule checks that `iframe` elements which contain keyboard focusable elements are not excluded from sequential focus navigation.
88
accessibility_requirements:
99
wcag20:2.1.1: # Keyboard (A)
1010
forConformance: true
1111
failed: not satisfied
1212
passed: further testing needed
1313
inapplicable: further testing needed
14+
wcag20:2.1.3: # Keyboard (No exceptions) (AAA)
15+
forConformance: true
16+
failed: not satisfied
17+
passed: further testing needed
18+
inapplicable: further testing needed
1419
wcag-technique:G202: # Ensuring keyboard control for all functionality
1520
forConformance: false
1621
failed: not satisfied

_rules/image-non-empty-accessible-name-23a2a8.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ There are no assumptions.
5555

5656
### Accessibility Support
5757

58-
- There are several popular browsers that do not treat images with an empty `alt` attribute (`alt=""`) as having a role of `presentation` but instead add the `img` element to the accessibility tree with a [semantic role][] of either `img` or `graphic`.
5958
- Implementation of [Presentational Roles Conflict Resolution][] varies from one browser or assistive technology to another. Depending on this, some [semantic][semantic role] `img` elements can fail this rule with some technology but users of other technologies would not experience any accessibility issue.
6059
- Images can have their role set to `presentation` through an empty `alt` attribute. [Presentational Roles Conflict Resolution][] does not specify what to do if such an image is [focusable][] (it only specifies what to do in case of explicit `role="none"` or `role="presentation"`). Some browsers expose these images and some don't. Thus, this rule may fail for technologies that expose these without creating an accessibility issue for users of other technologies.
6160
- `svg` elements have an [implicit role][] of `graphics-document` in [svg-aam](https://www.w3.org/TR/svg-aam-1.0/#details-id-66). There are popular browsers that do not follow [svg-aam](https://www.w3.org/TR/svg-aam-1.0/#details-id-66) and instead expose SVG elements with a different [semantic role][], such as `image`, `generic` or `SvgRoot`.

_rules/role-attribute-valid-value-674b10.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ This `role` attribute is empty ("").
167167
This `role` attribute is only [ASCII whitespace][].
168168

169169
```html
170-
<input type="text" role=" " />
170+
<input type="text" role=" " aria-label="field name"/>
171171
```
172172

173173
#### Inapplicable Example 5

_rules/role-required-states-and-properties-4e8ab6.md

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ This `separator` is not a `widget` because it is not [focusable][]. The `separat
119119
This `combobox` has the required properties `aria-controls` and `aria-expanded`.
120120

121121
```html
122-
<label for="tag_combo">Tag</label>
123-
<input type="text" id="tag_combo" role="combobox" aria-expanded="true" aria-controls="popup_listbox" />
124-
<ul role="listbox" id="popup_listbox">
122+
<label for="tag_combo" id="tag_label">Tag</label>
123+
<input type="text" id="tag_combo" role="combobox" aria-expanded="true" aria-controls="popup_listbox"/>
124+
<ul role="listbox" id="popup_listbox" aria-labelledby="tag_label">
125125
<li role="option">Zebra</li>
126126
<li role="option" id="selected_option">Zoom</li>
127127
</ul>
@@ -181,19 +181,6 @@ This `combobox` does not have the required `aria-expanded` property. Prior to [W
181181
</ul>
182182
```
183183

184-
#### Failed Example 6
185-
186-
This `combobox` uses `aria-owns` instead of using the required `aria-controls` property.
187-
188-
```html
189-
<label for="tag_combo">Tag</label>
190-
<input type="text" id="tag_combo" role="combobox" aria-expanded="true" aria-owns="popup_listbox" />
191-
<ul role="listbox" id="popup_listbox">
192-
<li role="option">Zebra</li>
193-
<li role="option" id="selected_option">Zoom</li>
194-
</ul>
195-
```
196-
197184
### Inapplicable
198185

199186
#### Inapplicable Example 1
@@ -209,7 +196,7 @@ This `div` does not have a [semantic role](#semantic-role).
209196
This `checkbox` has an [implicit semantic role](#implicit-role) that is identical to the [explicit semantic role](#explicit-role). This allows native HTML `checked` attribute to apply.
210197

211198
```html
212-
<input type="checkbox" role="checkbox" />
199+
<input type="checkbox" role="checkbox" aria-label="Checkbox name"/>
213200
```
214201

215202
#### Inapplicable Example 3

_rules/table-header-cell-has-assigned-cells-d0f69e.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ This `th` element has an assigned `td` element.
8080
Each of the 2 `span` elements with role of `columnheader` has assigned `span` elements with a role of `cell`.
8181

8282
```html
83-
<div role="table">
83+
<div role="table" aria-label="Temperatures">
8484
<div role="rowgroup">
8585
<div role="row">
8686
<span role="columnheader">Month</span>
@@ -125,7 +125,7 @@ Each of the 2 `th` elements has an assigned `td` element because this `td` eleme
125125
Each of the 4 `th` elements has an assigned `td` element, within the same `table` element having a [semantic role][] of `grid`.
126126

127127
```html
128-
<table role="grid">
128+
<table role="grid" aria-label="Meal times">
129129
<thead>
130130
<tr>
131131
<td></td>

_rules/table-headers-attribute-refer-to-data-cells-a25f45.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ The `table` is not [visible][] in page.
371371
The rule applies only to `headers` attribute within a `table` element.
372372

373373
```html
374-
<div role="table">
374+
<div role="table" aria-label="Grades">
375375
<div role="row">
376376
<div role="columnheader" id="header1">Projects</div>
377377
<div role="columnheader" id="header2">Exams</div>
@@ -405,7 +405,7 @@ The `table` is not [included in the accessibility tree][].
405405
This `table` doesn't have a role of `table`, `grid` or `treegrid`.
406406

407407
```html
408-
<table role="region">
408+
<table role="heading" aria-level="1">
409409
<td id="self" headers="self">World</td>
410410
</table>
411411
```

_rules/zoom-text-no-overflow-clipping-59br37.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ This [text node][] is fully [visible][] at a [viewport size][] of 640 by 512.
8686

8787
#### Passed Example 2
8888

89-
This [text node][] is [horizontally clipped][] using `text-overflow: ellipsis` at a [viewport size][] of 640 by 512. A link to a full version of the poem is also provided.
89+
This [text node][] is [horizontally clipped][] using `text-overflow: ellipsis` at a [viewport size][] of 640 by 512. This fulfills expectation 1. A link to a full version of the poem is also provided. The link to the full version is not required by this rule, but is necessary to satisfy [success criterion 1.4.4 Resize text][sc144].
9090

9191
```html
9292
<div style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 16px;">
@@ -98,7 +98,7 @@ This [text node][] is [horizontally clipped][] using `text-overflow: ellipsis` a
9898

9999
#### Passed Example 3
100100

101-
This [text node][] is restricted to a single line, by setting a `line-height` that is the same as the `height`. A link to a full version of the poem is also provided.
101+
This [text node][] is restricted to a single line, by setting a `line-height` that is the same as the `height`. This fulfills expectation 2. A link to a full version of the poem is also provided. The link to the full version is not required by this rule, but is necessary to satisfy [success criterion 1.4.4 Resize text][sc144].
102102

103103
```html
104104
<style>
@@ -290,3 +290,4 @@ This [text node][] with the text "Web Content Accessibility Guidelines 2.1" is f
290290
[viewport size]: #viewport-size
291291
[visible]: #visible
292292
[white-space]: https://www.w3.org/TR/CSS22/text.html#propdef-white-space
293+
[sc144]: https://www.w3.org/TR/WCAG22/#resize-text

netlify.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[build]
2-
command = "npm run pr:preview && cd wcag-act-rules-tmp && git submodule update --init --remote && bundle install && bundle exec jekyll build --config '_config.yml,_config_staging.yml'"
2+
command = "npm install && npm run pr:preview && cd wcag-act-rules-tmp && git submodule update --init --remote && bundle install && bundle exec jekyll build --config '_config.yml,_config_staging.yml'"
33
# base = "wcag-act-rules-tmp"
44
publish = "wcag-act-rules-tmp/_site"
55

0 commit comments

Comments
 (0)