From fcc4845076d839001cd4423d1d616e38944c771c Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Wed, 21 Oct 2026 11:46:24 -0500 Subject: [PATCH 01/14] Update role-required-states-and-properties-4e8ab6.md --- ...e-required-states-and-properties-4e8ab6.md | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 5a25dc2b3d..f24794461e 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -12,7 +12,7 @@ accessibility_requirements: passed: further testing needed inapplicable: further testing needed aria12:requiredState: - title: ARIA 1.2, 5.2.2 Required States and Properties + title: ARIA 1.3, 5.2.2 Required States and Properties forConformance: true failed: not satisfied passed: satisfied @@ -26,6 +26,7 @@ input_aspects: acknowledgments: authors: - Anne Thyme Nørregaard + - Shunguo Yan - Tom Brunet funding: - WAI-Tools @@ -41,7 +42,7 @@ For each test target, the [WAI-ARIA required states and properties][] for the ro ## Background -Omitting [WAI-ARIA required states and properties][] is often the result of a developer error. When required properties are missing and a default value is not specified by [WAI-ARIA Specifications][], the behavior is not defined. For [WAI-ARIA 1.2][], the only [explicit semantic roles][explicit semantic role] with a required property with a default value are the `option` and `tabs roles` for the `aria-selected` property. +Omitting [WAI-ARIA required states and properties][] is often the result of a developer error. When required properties are missing and a default value is not specified by [WAI-ARIA Specifications][], the behavior is not defined. For [WAI-ARIA 1.3][], the only [explicit semantic roles][explicit semantic role] with a required property with a default value are the `option` and `tabs roles` for the `aria-selected` property. This rule is testing author built components that specify [explicit semantic roles][explicit semantic role] and not components that keep their [implicit semantic role][]. For components that keep their [implicit semantic role][], all native HTML and SVG elements have native attributes that are mapped to all of the [WAI-ARIA required states and properties](https://www.w3.org/TR/wai-aria/#requiredState). Most of these mappings are defined in the [HTML Accessibility API Mappings, Attribute State and Property Mappings][html aam]. @@ -58,7 +59,7 @@ This rule relies on browsers and assistive technologies to support leaving out [ ### Other Resources - [ARIA5: Using WAI-ARIA state and property attributes to expose the state of a user interface component](https://www.w3.org/WAI/WCAG22/Techniques/aria/ARIA5) -- [WAI-ARIA required states and properties](https://www.w3.org/TR/wai-aria-1.2/#requiredState) +- [WAI-ARIA required states and properties](https://www.w3.org/TR/wai-aria-1.3/#requiredState) - [RFC 3986](https://www.ietf.org/rfc/rfc3986.txt) ## Examples @@ -86,7 +87,7 @@ This `checkbox` has the required `aria-checked` property. #### Passed Example 3 -This `scrollbar` has the required properties `aria-controls` and `aria-valuenow`. `aria-valuemin` has a default value of 0 and `aria-valuemax` of 100. +This `scrollbar` has the required properties `aria-valuenow`. The optional `aria-controls` refers to the element with "content" as ID. Also, `aria-valuemin` has a default value of 0 and `aria-valuemax` of 100. ```html
@@ -95,7 +96,7 @@ This `scrollbar` has the required properties `aria-controls` and `aria-valuenow` #### Passed Example 4 -These `option` nodes do not need the required `aria-selected` property because it has a default value of `false`. +These `option` nodes do not need `aria-selected` property because it has a default value of `false`. ```html
Tags
@@ -117,7 +118,7 @@ This `separator` is not a `widget` because it is not [focusable][]. The `separat #### Passed Example 6 -This `combobox` has the required properties `aria-controls` and `aria-expanded`. +This `combobox` has the required properties `aria-expanded`, and an optional `aria-controls`. ```html @@ -132,7 +133,7 @@ This `combobox` has the required properties `aria-controls` and `aria-expanded`. #### Failed Example 1 -This `heading` does not have the required `aria-level` property. Prior to [WAI-ARIA 1.2][] the `heading` role had an implicit default `aria-level` value of `2`. As of WAI-ARIA 1.2 this property must be explicitly set. +This `heading` does not have the required `aria-level` property. Per [WAI-ARIA 1.3][] this property must be explicitly set. ```html
@@ -142,7 +143,7 @@ This `heading` does not have the required `aria-level` property. Prior to [WAI-A #### Failed Example 2 -This `switch` does not have the required `aria-checked` property. Prior to [WAI-ARIA 1.2][] the `switch` role had an implicit default `aria-checked` value of `false`. As of WAI-ARIA 1.2 this property must be explicitly set. +This `switch` does not have the required `aria-checked` property. Per [WAI-ARIA 1.3][] this property must be explicitly set. ```html
@@ -152,7 +153,7 @@ This `switch` does not have the required `aria-checked` property. Prior to [WAI- #### Failed Example 3 -This `checkbox` does not have the required property `aria-checked`. Prior to [WAI-ARIA 1.2][] the `checkbox` had an implicit default `aria-checked` value of `false`. As of WAI-ARIA 1.2 this property must be explicitly set. +This `checkbox` does not have the required property `aria-checked`. Per [WAI-ARIA 1.3][] this property must be explicitly set. ```html
@@ -171,7 +172,7 @@ This `separator` does not have the required `aria-valuenow` property. This is re #### Failed Example 5 -This `combobox` does not have the required `aria-expanded` property. Prior to [WAI-ARIA 1.2][] the `combobox` had an implicit default `aria-expanded` value of `false`. As of WAI-ARIA 1.2 this property must be explicitly set. +This `combobox` does not have the required `aria-expanded` property. Per [WAI-ARIA 1.3][] this property must be explicitly set. ```html @@ -186,7 +187,7 @@ This `combobox` does not have the required `aria-expanded` property. Prior to [W #### Inapplicable Example 1 -This `div` does not have a [semantic role](#semantic-role). +This `div` does not have an [explicit semantic role](#explicit-role). ```html
Some Content
@@ -212,9 +213,9 @@ This `combobox` is not [included in the accessibility tree][] due to its styling [html aam]: https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings 'Specification of HTML attributes value mapping to ARIA states and properties' [implicit semantic role]: #implicit-role 'Definition of implicit semantic role' [included in the accessibility tree]: #included-in-the-accessibility-tree 'Definition of Included in The Accessibility Tree' -[wai-aria required states and properties]: https://www.w3.org/TR/wai-aria-1.2/#requiredState +[wai-aria required states and properties]: https://www.w3.org/TR/wai-aria-1.3/#requiredState [wai-aria specifications]: #wai-aria-specifications 'Definition of WAI-ARIA Specifications' -[wai-aria implicit value for role]: https://www.w3.org/TR/wai-aria-1.2/#implictValueForRole -[wai-aria 1.2]: https://www.w3.org/TR/wai-aria-1.2/ +[wai-aria implicit value for role]: https://www.w3.org/TR/wai-aria-1.3/#implictValueForRole +[wai-aria 1.3]: https://www.w3.org/TR/wai-aria-1.3/ [html or svg element]: #namespaced-element [focusable]: #focusable From b369a501b515964145b7ecee90cef488d9a909f2 Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Wed, 21 Oct 2026 11:46:42 -0500 Subject: [PATCH 02/14] Update package.json --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index d9125761cf..b525fb7c70 100644 --- a/package.json +++ b/package.json @@ -124,6 +124,10 @@ "name": "Stein Erik Skotkjerra", "url": "https://github.com/skotkjerra" }, + { + "name": "Shunguo Yan", + "url": "https://github.com/shunguoyan" + }, { "name": "Tom Brunet", "url": "https://github.com/tombrunet" From 885eb08b894913228a578a80896607247a6a8a8b Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Wed, 21 Oct 2026 12:31:59 -0500 Subject: [PATCH 03/14] Update role-required-states-and-properties-4e8ab6.md --- _rules/role-required-states-and-properties-4e8ab6.md | 1 - 1 file changed, 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index f24794461e..79bb84d052 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -26,7 +26,6 @@ input_aspects: acknowledgments: authors: - Anne Thyme Nørregaard - - Shunguo Yan - Tom Brunet funding: - WAI-Tools From 332924b6688140aa26bc371dccb36e2e81cf747c Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 11:44:59 -0500 Subject: [PATCH 04/14] Update role-required-states-and-properties-4e8ab6.md --- _rules/role-required-states-and-properties-4e8ab6.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 79bb84d052..9d0619edf4 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -86,7 +86,7 @@ This `checkbox` has the required `aria-checked` property. #### Passed Example 3 -This `scrollbar` has the required properties `aria-valuenow`. The optional `aria-controls` refers to the element with "content" as ID. Also, `aria-valuemin` has a default value of 0 and `aria-valuemax` of 100. +This `scrollbar` has the required property `aria-valuenow`. The optional `aria-controls` refers to the element with "content" as ID. Also, `aria-valuemin` has a default value of 0 and `aria-valuemax` of 100. ```html
@@ -117,7 +117,7 @@ This `separator` is not a `widget` because it is not [focusable][]. The `separat #### Passed Example 6 -This `combobox` has the required properties `aria-expanded`, and an optional `aria-controls`. +This `combobox` has the required properties `aria-expanded`, and an optional `aria-controls` property. ```html From cba8e5d41053a4389b50952c3050009e727b710f Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:12:49 -0500 Subject: [PATCH 05/14] Update _rules/role-required-states-and-properties-4e8ab6.md Co-authored-by: Daniel Montalvo <49305434+daniel-montalvo@users.noreply.github.com> --- _rules/role-required-states-and-properties-4e8ab6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 9d0619edf4..00bdf522cd 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -41,7 +41,7 @@ For each test target, the [WAI-ARIA required states and properties][] for the ro ## Background -Omitting [WAI-ARIA required states and properties][] is often the result of a developer error. When required properties are missing and a default value is not specified by [WAI-ARIA Specifications][], the behavior is not defined. For [WAI-ARIA 1.3][], the only [explicit semantic roles][explicit semantic role] with a required property with a default value are the `option` and `tabs roles` for the `aria-selected` property. +Omitting [WAI-ARIA required states and properties][] is often the result of a developer error. When required properties are missing and a default value is not specified by [WAI-ARIA Specifications][], the behavior is not defined. For [WAI-ARIA 1.3][], the only [explicit semantic roles][explicit semantic role] with a required property with a default value are the `option` and `tab` roles for the `aria-selected` property. This rule is testing author built components that specify [explicit semantic roles][explicit semantic role] and not components that keep their [implicit semantic role][]. For components that keep their [implicit semantic role][], all native HTML and SVG elements have native attributes that are mapped to all of the [WAI-ARIA required states and properties](https://www.w3.org/TR/wai-aria/#requiredState). Most of these mappings are defined in the [HTML Accessibility API Mappings, Attribute State and Property Mappings][html aam]. From e20c186439f89d86c0234360e51a99a408794f3d Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:13:18 -0500 Subject: [PATCH 06/14] Update _rules/role-required-states-and-properties-4e8ab6.md Co-authored-by: Daniel Montalvo <49305434+daniel-montalvo@users.noreply.github.com> --- _rules/role-required-states-and-properties-4e8ab6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 00bdf522cd..7a8dcbf5df 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -117,7 +117,7 @@ This `separator` is not a `widget` because it is not [focusable][]. The `separat #### Passed Example 6 -This `combobox` has the required properties `aria-expanded`, and an optional `aria-controls` property. +This `combobox` has the required property `aria-expanded`, and an optional `aria-controls`. ```html From fa105c5ab375e0298c40b94529cd9ef091a10cad Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:13:51 -0500 Subject: [PATCH 07/14] Update _rules/role-required-states-and-properties-4e8ab6.md Co-authored-by: Daniel Montalvo <49305434+daniel-montalvo@users.noreply.github.com> --- _rules/role-required-states-and-properties-4e8ab6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 7a8dcbf5df..5c763fa57f 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -132,7 +132,7 @@ This `combobox` has the required property `aria-expanded`, and an optional `aria #### Failed Example 1 -This `heading` does not have the required `aria-level` property. Per [WAI-ARIA 1.3][] this property must be explicitly set. +This `heading` does not have the required property `aria-level`. Per [WAI-ARIA 1.3][] this property must be explicitly set. ```html
From 6b620a3ac9781a38d2065de996cc5879e3007336 Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:14:14 -0500 Subject: [PATCH 08/14] Update _rules/role-required-states-and-properties-4e8ab6.md Co-authored-by: Daniel Montalvo <49305434+daniel-montalvo@users.noreply.github.com> --- _rules/role-required-states-and-properties-4e8ab6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 5c763fa57f..5bdae2d342 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -95,7 +95,7 @@ This `scrollbar` has the required property `aria-valuenow`. The optional `aria-c #### Passed Example 4 -These `option` nodes do not need `aria-selected` property because it has a default value of `false`. +These `option` nodes do not need the `aria-selected` property because it has a default value of `false`. ```html
Tags
From 3c2f8c9d4610717f9602b3d55b69e8fb3abbaf0b Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:14:27 -0500 Subject: [PATCH 09/14] Update _rules/role-required-states-and-properties-4e8ab6.md Co-authored-by: Daniel Montalvo <49305434+daniel-montalvo@users.noreply.github.com> --- _rules/role-required-states-and-properties-4e8ab6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 5bdae2d342..1416f9b549 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -142,7 +142,7 @@ This `heading` does not have the required property `aria-level`. Per [WAI-ARIA 1 #### Failed Example 2 -This `switch` does not have the required `aria-checked` property. Per [WAI-ARIA 1.3][] this property must be explicitly set. +This `switch` does not have the required property `aria-checked`. Per [WAI-ARIA 1.3][] this property must be explicitly set. ```html
From 20dfc281f1c00c44136419a6e6e63b63c892c275 Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:14:48 -0500 Subject: [PATCH 10/14] Update _rules/role-required-states-and-properties-4e8ab6.md Co-authored-by: Daniel Montalvo <49305434+daniel-montalvo@users.noreply.github.com> --- _rules/role-required-states-and-properties-4e8ab6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 1416f9b549..4c3a6fca14 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -171,7 +171,7 @@ This `separator` does not have the required `aria-valuenow` property. This is re #### Failed Example 5 -This `combobox` does not have the required `aria-expanded` property. Per [WAI-ARIA 1.3][] this property must be explicitly set. +This `combobox` does not have the required property `aria-expanded`. Per [WAI-ARIA 1.3][] this property must be explicitly set. ```html From 162a1483282dd540ef42baf17d91b7df1dd6765e Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:35:10 -0500 Subject: [PATCH 11/14] Update package.json --- package.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/package.json b/package.json index b525fb7c70..d9125761cf 100644 --- a/package.json +++ b/package.json @@ -124,10 +124,6 @@ "name": "Stein Erik Skotkjerra", "url": "https://github.com/skotkjerra" }, - { - "name": "Shunguo Yan", - "url": "https://github.com/shunguoyan" - }, { "name": "Tom Brunet", "url": "https://github.com/tombrunet" From 89493cd91ce9243eba49e18c4c476af1dbcb5ba7 Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Thu, 22 Oct 2026 13:37:44 -0500 Subject: [PATCH 12/14] Update package.json --- package.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/package.json b/package.json index b525fb7c70..d9125761cf 100644 --- a/package.json +++ b/package.json @@ -124,10 +124,6 @@ "name": "Stein Erik Skotkjerra", "url": "https://github.com/skotkjerra" }, - { - "name": "Shunguo Yan", - "url": "https://github.com/shunguoyan" - }, { "name": "Tom Brunet", "url": "https://github.com/tombrunet" From 8ab315d8e1d7dd96ee410dbec0608cf3205aa6b5 Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Tue, 27 Oct 2026 11:14:20 -0500 Subject: [PATCH 13/14] Update role-required-states-and-properties-4e8ab6.md --- _rules/role-required-states-and-properties-4e8ab6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_rules/role-required-states-and-properties-4e8ab6.md b/_rules/role-required-states-and-properties-4e8ab6.md index 4c3a6fca14..08a7d93d1c 100755 --- a/_rules/role-required-states-and-properties-4e8ab6.md +++ b/_rules/role-required-states-and-properties-4e8ab6.md @@ -41,7 +41,7 @@ For each test target, the [WAI-ARIA required states and properties][] for the ro ## Background -Omitting [WAI-ARIA required states and properties][] is often the result of a developer error. When required properties are missing and a default value is not specified by [WAI-ARIA Specifications][], the behavior is not defined. For [WAI-ARIA 1.3][], the only [explicit semantic roles][explicit semantic role] with a required property with a default value are the `option` and `tab` roles for the `aria-selected` property. +Omitting [WAI-ARIA required states and properties][] is often the result of a developer error. When required properties are missing and a default value is not specified by [WAI-ARIA Specifications][], the behavior may be not defined. For example, per [WAI-ARIA 1.3][], for the `aria-selected` property, only the `option`, `tab` and `treeitem` roles permit user agents to provide an implicit value when specified conditions are met. For all other roles that support the `aria-selected` property (`gridcell`, `row`, `columnheader`, and `columnheader`), the value for the `aria-selected` property, if not specified by the developer, is `undefined`, indicating the element is not selectable. This rule is testing author built components that specify [explicit semantic roles][explicit semantic role] and not components that keep their [implicit semantic role][]. For components that keep their [implicit semantic role][], all native HTML and SVG elements have native attributes that are mapped to all of the [WAI-ARIA required states and properties](https://www.w3.org/TR/wai-aria/#requiredState). Most of these mappings are defined in the [HTML Accessibility API Mappings, Attribute State and Property Mappings][html aam]. From 151d424667502224732754e1157f89456783d10d Mon Sep 17 00:00:00 2001 From: Shunguo Yan Date: Tue, 27 Oct 2026 11:30:16 -0500 Subject: [PATCH 14/14] Update spelling-ignore.yml --- __tests__/spelling-ignore.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/__tests__/spelling-ignore.yml b/__tests__/spelling-ignore.yml index e7d0c16864..6bcbc5f441 100644 --- a/__tests__/spelling-ignore.yml +++ b/__tests__/spelling-ignore.yml @@ -90,6 +90,7 @@ - rfc - webauthn - customizable +- selectable # spell checker checks against strict casing & hence some repeated words here - Autocomplete