dequelabs / dequelabs/axe-core

Support the aria-actions pattern in aria-required-children and nested-interactive

Open
#5,215 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
7.5k
Forks
933
Avg merge
2d 13h
Merged PRs (30d)
29

Description

## Background

#5200 added recognition of the `aria-actions` attribute (valid / allowed / prohibited-on-role). That covers the *attribute* but not the authoring *pattern* it enables. The APG added two experimental examples that associate action controls via `aria-actions`:

- [tabs-actions](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-actions/) — the `tablist` owns the action ``s and `role="menu"` in addition to the `tab`s → **aria-required-children** flags the tablist.
- [listbox-actions](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/examples/listbox-actions/) — each `role="option"` nests action ``s → **nested-interactive** flags them.

Because `aria-actions`-referenced controls are legitimately associated actions (not content children), axe should account for them in these rules rather than treating them as invalid structure.

## Interim state

As part of #5200, these two rules are disabled per-page in `test/aria-practices/apg.spec.js` so the APG suite stays green. This issue tracks removing those per-page disables once the rules understand `aria-actions`.

## Scope

- `aria-required-children`: exclude `aria-actions`-referenced descendants from the owned-children check.
- `nested-interactive`: exclude `aria-actions`-referenced interactive controls from the check.
- Remove the per-page `disabledRules` entries in `apg.spec.js` and re-verify both pages pass.

Contributor guide

Open the contributing guide

Research direction

Start with the aria-required-children and nested-interactive rule implementations and the per-page disabledRules entries in test/aria-practices/apg.spec.js. Trace how aria-actions references are handled, then update both checks so referenced controls are excluded. Done means the disables are removed and the tabs-actions and listbox-actions APG pages pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
accessibility, testing
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.