aria-required-children
Web validation
Certain ARIA roles only work when their required child roles are present. For example, an element with role="list" relies on one or more role="listitem" children so assistive technologies can communicate the list structure. Omitting those children results in a list with zero items, which makes no sense.
When required children are added later by script or after data loads, set aria-busy="true" on the parent until the children are in place, then remove it.
Pass Patterns
A list contains the required listitem children
The role="listitem" attribute is applied to each child, giving the list the structure assistive technologies need to announce it correctly.
<div role="list">
<div role="listitem">Product A</div>
<div role="listitem">Product B</div>
<div role="listitem">Product C</div>
</div>A menu uses a list with native semantics removed for its visual display
Applying role="none" to the <ul> and <li> elements removes their native list semantics, so assistive technologies treat the role="menuitem" buttons as direct children of the menu.
<div role="menu">
<ul role="none">
<li role="none"><button role="menuitem">a</button></li>
<li role="none"><button role="menuitem">b</button></li>
<li role="none"><button role="menuitem">c</button></li>
</ul>
</div>Fail Patterns
A list is missing its required children
Without role="listitem" on the children, the list structure is not communicated to assistive technologies.
<div role="list">
<div>Product A</div>
<div>Product B</div>
<div>Product C</div>
</div>A menu uses a list without removing native semantics for its visual display
The <ul> and <li> elements carry their native list semantics, which conflict with the role="menu" parent.
<div role="menu">
<ul>
<li><button role="menuitem">a</button></li>
<li><button role="menuitem">b</button></li>
<li><button role="menuitem">c</button></li>
</ul>
</div>Try It Yourself
Using a screen reader
New to screen reader testing, or need a refresher?
Review this article first: Practical guides for using screen readers
- Load the page and open a screen reader.
- Navigate to the element using standard screen-reader navigation (Arrow keys or Tab sequence, depending on the reader).
- Listen to how the list is announced.
Expected results: The reader announces the list and the number of items, then allows item-by-item navigation.
Actual results: The reader either skips announcing the list or reads all text as a single block, preventing structured navigation.
Inspecting the browser dev-tools
- Open the page and highlight the element with an ARIA role that expects children (for example,
role="list"). - In the Accessibility Tree panel, expand the node.
Expected results: Child elements with the required roles (such as listitem) appear beneath the parent.
Actual results: If required children are missing, the Accessibility Tree shows no such roles or the parent is treated as a generic container.
Note: Modern browsers and screen readers often overcome such situations and the elements are read correctly. However, this is not something that is safe to count on since the behavior may change between browsers, screen readers, and specific combinations of the two.
FAQ
How does this issue relate to 1.3.1 Info and Relationships?
SC 1.3.1 requires that relationships conveyed visually are also available programmatically. When required child roles are missing, assistive technologies cannot determine those relationships, so the criterion is violated.
Why is this issue marked as Critical?
Without required child roles, users of assistive technologies miss structural information, leading to confusion, misnavigation, and potential task failure. Because the impact is severe and affects many roles across browsers and screen readers, the severity is set to Critical.
Where can I find the required children for a role?
While the ARIA specification does not require specific children for all elements, it does specify the children that are allowed for certain types of elements. You can find these definitions at https://www.w3.org/TR/wai-aria-1.3/#[role-name] (replace the square brackets and their content with the element’s role).
In the role’s details table, find the role’s “Allowed Accessibility Child Roles”.
Standards and Regulations
| Standard | Success Criterion | Reference |
|---|---|---|
| WCAG 2.2 | 1.3.1 Info and Relationships (A) | Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text. |
| EN 301 549 | 9.1.3.1 Info and Relationships | Same as the WCAG text. |