Skip to content

[rule]update to Aria 1.3: ARIA allowed accessibility child roles - #2450

Open
shunguoy wants to merge 20 commits into
aria1.3-devfrom
aria1.3-allowed-child
Open

shunguoy wants to merge 20 commits into
aria1.3-devfrom
aria1.3-allowed-child

Conversation

@shunguoy

@shunguoy shunguoy commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

<< Describe the changes >>

Closes issue(s):

Need for Call for Review:
<< choose one of the following and remove the rest >>
<< check Process Document on Call for Review >>
This can be merged with 1 approval << choose reason: editorial changes to website/test code, adding new contributor, other (explain). >>

This will require a 2 weeks Call for Review << new rule, or substantial changes affecting a large number of examples, if in doubt, use this. >>


Pull Request Etiquette

When creating PR:

  • Make sure you're requesting to pull a branch (right side) to the develop branch (left side).
  • Make sure you do not remove the "How to Review and Approve" section in your pull request description

After creating PR:

  • Add yourself (and co-authors) as "Assignees" for PR.
  • Add label to indicate if it's a Rule, Definition or Chore.
  • Link the PR to any issue it solves. This will be done automatically by referencing the issue at the top of this comment in the indicated place.
  • Optionally request feedback from anyone in particular by assigning them as "Reviewers".
  • If your PR is for a new rule with an Accessibility Support note, or for updating the Accessibility Support note of an existing section, make sure to open a corresponding Accessibility Support issue.

When merging a PR:

  • Close any issue that the PR resolves. This will happen automatically upon merging if the PR was correctly linked to the issue, e.g. by referencing the issue at the top of this comment.

How to Review And Approve

  • Go to the “Files changed” tab
  • Here you will have the option to leave comments on different lines.
  • Once the review is completed, find the “Review changes” button in the top right, select “Approve” (if you are really confident in the rule) or "Request changes" and click “Submit review”.
  • Make sure to also review the proposed Call for Review period. In case of disagreement, the longer period wins.

daniel-montalvo and others added 5 commits July 24, 2026 14:32
* Remove redundant "so this fails the rule".

* More polishing of example descriptions

* Another instance

* Remove isolated parenthetical sentence.

* A couple more instances of "so this [...]"
* s/button/link in Failed Example 3

* Add a missing space in Failed Example 4
@shunguoy shunguoy self-assigned this Sep 3, 2026
@netlify

netlify Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for act-rules ready!

Name Link
🔨 Latest commit 791860d
🔍 Latest deploy log https://app.netlify.com/projects/act-rules/deploys/6ae39792d742985a57c1eb9c
😎 Deploy Preview https://deploy-preview-2450--act-rules.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@shunguoy shunguoy changed the title [rule]update the to aria 1.3: ARIA allowed accessibility child roles [rule]update to Aria 1.3: ARIA allowed accessibility child roles Sep 3, 2026
shunguoy and others added 5 commits September 3, 2026 08:56
Co-authored-by: Dan Tripp <113939352+dan-tripp-siteimprove@users.noreply.github.com>
Co-authored-by: Dan Tripp <113939352+dan-tripp-siteimprove@users.noreply.github.com>
Co-authored-by: Dan Tripp <113939352+dan-tripp-siteimprove@users.noreply.github.com>
Co-authored-by: Dan Tripp <113939352+dan-tripp-siteimprove@users.noreply.github.com>
Co-authored-by: Dan Tripp <113939352+dan-tripp-siteimprove@users.noreply.github.com>
@shunguoy
shunguoy marked this pull request as ready for review September 3, 2026 14:09

#### Passed Example 12

This element with the `menu` role has no accessibility child. Note because the element also has an `aria-busy` attribute set to `true`, it also passes ARIA 1.2.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still a failure of the expectation. As it's written in the spec today, I don't think this is valid either:

If changes to a rendered widget would create a state where the widget is modifying Allowed Accessibility Child Roles during script execution, authors MAY set aria-busy to true on the widget during the update process. For example, if a rendered tree grid required a set of simultaneous updates to multiple discontiguous branches, an alternative to replacing the complete tree element with a single update would be to mark the tree busy while each of the branches are modified.

E.g. you can set aria-busy if you're making multiple changes to the descendants and want those communicated as one change. There's nothing here about allowing other content while aria-busy is set. I this continues to be an error. Loading is a status message after all, which screen readers have to announce, but putting aria-busy on it actually may prevent the announcement.

@shunguoy shunguoy Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

based on the spec, the aria-busy="true" can be used in a menu role to signal loading of the menu items, however, the example inside the list break the HTML structure, updated into:

<ul role="menu" aria-busy="true">
    <li role="none">Loading...</li>
</ul>

Comment on lines -309 to -312
<ul>
<div></div>
<div></div>
</ul>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should lave this in with a global attribute to show how generics can find their way back into the accessibility tree:

<ul>
	<div aria-live="true">
		<li>Hello world</li>
    </div>
</ul>

@shunguoy shunguoy Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on ARIA 1.3, the elements with the generic role are ignored in Accessibility Child calculation in general:
All DOM descendants of the [element](https://dom.spec.whatwg.org/#concept-element) with only elements of role [generic](https://w3c.github.io/aria/#generic) or [none](https://w3c.github.io/aria/#none) intervening.

This example may cause confusion although <div aria-live="true"> may be exposed to the accessibility tree, but yet, ARIA 1.3 doesn't include it in the accessibility child calculation.

In addition, this example breaks HTML structure. It's better to remove it.

Co-authored-by: Wilco Fiers <WilcoFiers@users.noreply.github.com>
shunguoy and others added 6 commits October 21, 2026 09:46
Co-authored-by: Dan Tripp <113939352+dan-tripp-siteimprove@users.noreply.github.com>
Co-authored-by: Wilco Fiers <WilcoFiers@users.noreply.github.com>

#### Passed Example 13

The both `div` elements with explicit `list` roles have no accessibility children. The `listitem` element is either with `aria-hidden` or has no owned element through `aria-owns` in the first `div` element.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The both `div` elements with explicit `list` roles have no accessibility children. The `listitem` element is either with `aria-hidden` or has no owned element through `aria-owns` in the first `div` element.
Both `div` elements with explicit `list` roles have no accessibility children. The `listitem` element is either with `aria-hidden` or has no owned element through `aria-owns` in the first `div` element.

Co-authored-by: Dan Tripp <113939352+dan-tripp-siteimprove@users.noreply.github.com>
@dan-tripp-siteimprove
dan-tripp-siteimprove changed the base branch from develop to aria1.3-dev November 4, 2026 22:12

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants