Names, roles & states
An ARIA Role Is Missing the Parent It Needs
Some items, like a tab or a menu item, only make sense inside the right group. Without it, screen reader users don't hear how items relate.
aria-required-parentWCAG 2.0Introduced in WCAG 2.0.Level AA — the minimum. Missing it blocks people outright.
- Status
- CriticalCritical — Someone can complete the task only with great difficulty or outside help.CurrentScanners run this rule today.
- Owner
- DesignDevTest
- Audit
- Automated+ManualA scanner finds it; a person confirms the fix.
Why it matters
ARIA roles tell screen readers what something is. Some roles are parts of a bigger whole — a tab belongs in a tablist, a menuitem in a menu, an option in a listbox.
If the parent is missing, the screen reader can't say "tab 2 of 4" or treat the group as one control. Arrow-key support may also break, so people get lost.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Screen reader users | They hear loose items with no group and no count, like "Pricing, tab" instead of "Pricing, tab, 2 of 4". | High impact |
| Keyboard-only users | Arrow keys that should move between items may not work if the group is built wrongly. | Partial impact |
| Cognitive and neurodivergent users | Affected if they use a screen reader, as mixed-up announcements are confusing. | Partial impact |
| Voice control users | They can usually still say the item's name to click it. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | It fails WCAG at Level A, the minimum, under 1.3.1 Info and Relationships. Complaints under Australia's Disability Discrimination Act and EN 301 549 point to WCAG. | High impact |
| Conversion | Broken tabs, menus and dropdowns can stop people choosing a plan or finishing checkout. | Moderate impact |
| SEO | Search engines don't use this markup — no real benefit. | Low impact |
| Brand trust | A menu that makes no sense to a screen reader feels careless. | Moderate impact |
| Cost to fix | Usually a small fix in a shared component. Using a tested component library avoids it. | High impact |
Fixing it in code
Tabs without a tab list
Don't
<div>
<button role="tab" aria-selected="true">Overview</button>
<button role="tab" aria-selected="false">Pricing</button>
</div>A screen reader says: “Overview, tab, selected”
Do
<div role="tablist" aria-label="Product details">
<button role="tab" aria-selected="true">Overview</button>
<button role="tab" aria-selected="false">Pricing</button>
</div>A screen reader says: “Product details, tab list. Overview, tab, selected, 1 of 2”
A tab needs a tablist parent so the screen reader knows the group.
Options outside a list box
Don't
<ul>
<li role="option">Small</li>
<li role="option">Medium</li>
</ul>A screen reader says: “Small”
Do
<ul role="listbox" aria-label="Size">
<li role="option" aria-selected="false">Small</li>
<li role="option" aria-selected="false">Medium</li>
</ul>A screen reader says: “Size, list box. Small, 1 of 2”
An option only works inside a listbox or similar parent.
Designer's handoff note
When you design tabs, menus or pickers, name the group as well as each item — for example, "Product details" for a set of tabs.
Note how many items there are, so developers know what "2 of 4" should say.
Quick test
Tool
NVDA (opens in a new tab) (free on Windows) or VoiceOver (opens in a new tab)
Checklist
- Pass
- You hear the group and the position, like "tab, 2 of 4".
- Fail
- You hear only the name and role, with no group or count.
Check these at the same time
- An element has an ARIA role that doesn't suit it
aria-allowed-role - A role is missing an ARIA attribute it needs
aria-required-attr
What a green scan still misses
A scanner checks that the parent role exists. It can't tell whether the widget behaves properly with arrow keys or whether the group's label makes sense.
Reference
- Rule ID
aria-required-parent- Raised by
- axe-core: “Certain ARIA roles must be contained by particular parents”
- WCAG
- 1.3.1 Info and Relationships (opens in a new tab) · Level A · since WCAG 2.0
- Other standards
- EN 301 549 9.1.3.1 · RGAA 9.3.1
- Last reviewed
- 14 October 2026