Skip to content

Update aria-busy to reflect relaxed accessibility child constraints when true#2754

Open
giacomo-petri wants to merge 1 commit intomainfrom
giacomo-petri-aria-busy-update
Open

Update aria-busy to reflect relaxed accessibility child constraints when true#2754
giacomo-petri wants to merge 1 commit intomainfrom
giacomo-petri-aria-busy-update

Conversation

@giacomo-petri
Copy link
Copy Markdown
Contributor

@giacomo-petri giacomo-petri commented Mar 20, 2026

🚀 Netlify Preview:
🔄 this PR updates the following sspecs:

Closes #2737

This PR updates aria-busy content:

  • replaced "Allowed Accessibility Child Roles" with "accessibility children" in the condition clause; the term was originally "required owned elements" in ARIA 1.2, then changed to "allowed accessibility child roles" in ARIA 1.3, making the reference increasingly confusing and no longer meaningful in context
  • clarified author guidance for when aria-busy is set to true, permitting a temporarily non-conformant accessibility child structure during the update process, as discussed in the ARIA WG meeting
  • added a normative requirement (MUST) for authors to set aria-busy back to false once the content update is complete

Test, Documentation and Implementation tracking

Once this PR has been reviewed and has consensus from the working group, tests should be written and issues should be opened on browsers. Add N/A and check when not applicable.

  • "author MUST" tests:
  • "user agent MUST" tests:
  • Browser implementations (link to issue or commit):
    • WebKit:
    • Gecko:
    • Blink:
  • ACT review?
  • Does this need AT implementations?
  • Related APG Issue/PR:
  • MDN Issue/PR:

@giacomo-petri giacomo-petri self-assigned this Mar 20, 2026
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 20, 2026

Deploy Preview for wai-aria ready!

Name Link
🔨 Latest commit 1eed292
🔍 Latest deploy log https://app.netlify.com/projects/wai-aria/deploys/69bd1f5e5ab5eb00086e02c8
😎 Deploy Preview https://deploy-preview-2754--wai-aria.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

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

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Deployed on https://deploy-preview-2754--wai-aria.netlify.app

@github-actions github-actions bot temporarily deployed to pull request March 20, 2026 10:21 Inactive
branches are modified.
If changes to a rendered <rref>widget</rref> would create a state where the <rref>widget</rref> is modifying <a>accessibility children</a> during script
execution, authors MAY set <code>aria-busy</code> to <code>true</code> on the <rref>widget</rref> during the update process. While <code>aria-busy</code> is set to <code>true</code>,
the <rref>widget</rref> MAY temporarily contain invalid <a>accessibility children</a>. Authors MUST set <code>aria-busy</code> back to <code>false</code> once the update is complete.
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.

The new MUST statement seems problematic to me. It does not seem testable since "once the update is complete" is an author decision.

I think it's more important to explain what happens when authors do not do this (e.g. AT may ignore the content marked busy).

I think a note, possibly including a warning on potential WCAG failures.

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.

In that case, I'd move the example into the note.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I agree that the author MUST is not testable with an automated static or generic test. However, I believe it is testable. I proposed some revisions to the wording that I believe could improve clarity and thus testability.

I think a clear, normative authoring requirement is of this nature is important.

@jnurthen jnurthen requested review from jnurthen and mcking65 March 26, 2026 17:11
execution, authors MAY set <code>aria-busy</code> to <code>true</code> on the <rref>widget</rref> 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.
If changes to a rendered <rref>widget</rref> would create a state where the <rref>widget</rref> is modifying <a>accessibility children</a> during script
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
If changes to a rendered <rref>widget</rref> would create a state where the <rref>widget</rref> is modifying <a>accessibility children</a> during script
If a script needs to change multiple <a>accessibility children</a> of a rendered <rref>widget</rref>,

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.
If changes to a rendered <rref>widget</rref> would create a state where the <rref>widget</rref> is modifying <a>accessibility children</a> during script
execution, authors MAY set <code>aria-busy</code> to <code>true</code> on the <rref>widget</rref> during the update process. While <code>aria-busy</code> is set to <code>true</code>,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
execution, authors MAY set <code>aria-busy</code> to <code>true</code> on the <rref>widget</rref> during the update process. While <code>aria-busy</code> is set to <code>true</code>,
authors MAY temporarily set <code>aria-busy</code> to <code>true</code> on the <rref>widget</rref> before the first change
and then set it to <code>false</code> when script execution completes.
While <code>aria-busy</code> is set to <code>true</code>,

branches are modified.
If changes to a rendered <rref>widget</rref> would create a state where the <rref>widget</rref> is modifying <a>accessibility children</a> during script
execution, authors MAY set <code>aria-busy</code> to <code>true</code> on the <rref>widget</rref> during the update process. While <code>aria-busy</code> is set to <code>true</code>,
the <rref>widget</rref> MAY temporarily contain invalid <a>accessibility children</a>. Authors MUST set <code>aria-busy</code> back to <code>false</code> once the update is complete.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
the <rref>widget</rref> MAY temporarily contain invalid <a>accessibility children</a>. Authors MUST set <code>aria-busy</code> back to <code>false</code> once the update is complete.
the <rref>widget</rref> MAY temporarily contain invalid <a>accessibility children</a>.
Authors MUST ensure that <code>aria-busy</code> is set to <code>false</code> either when updates are complete or when error conditions prevent their completion.

branches are modified.
If changes to a rendered <rref>widget</rref> would create a state where the <rref>widget</rref> is modifying <a>accessibility children</a> during script
execution, authors MAY set <code>aria-busy</code> to <code>true</code> on the <rref>widget</rref> during the update process. While <code>aria-busy</code> is set to <code>true</code>,
the <rref>widget</rref> MAY temporarily contain invalid <a>accessibility children</a>. Authors MUST set <code>aria-busy</code> back to <code>false</code> once the update is complete.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I agree that the author MUST is not testable with an automated static or generic test. However, I believe it is testable. I proposed some revisions to the wording that I believe could improve clarity and thus testability.

I think a clear, normative authoring requirement is of this nature is important.

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.

aria-busy="true" with descendant invalid ARIA structure

3 participants