ARIA roles define how assistive technologies interpret and interact with user interface components. Many ARIA roles are part of composite widgets, which only function correctly when their internal structure matches the requirements defined in the ARIA specification.
For these roles, structure is not optional. Certain parent roles are required to own specific child roles to form a complete, meaningful widget. When those required child roles are missing, assistive technologies cannot determine how the component works, and users lose essential context when navigating the interface.
This rule exists to ensure that ARIA roles are used as a contract, not as visual decoration, and that widgets behave in a predictable, accessible way.
What Composite Widgets Are
A composite widget is an interactive component made up of multiple related parts that work together, such as:
- Listboxes
- Comboboxes
- Tab interfaces
- Trees
These widgets rely on defined parent–child role relationships so assistive technologies can announce:
- What kind of widget the user is interacting with
- What items or options are available
- How users can move between those items
Without the correct internal structure, the widget is exposed as incomplete or misleading.
WCAG Success Criteria
The following WCAG criteria explain why required ARIA child roles are essential.
1.3.1 Info and Relationships (Level A)
Structural and semantic relationships must be programmatically determinable.
Example:
A role="listbox" that does not own any role="option" elements exposes no meaningful relationship. Screen readers cannot identify selectable items.
4.1.2 Name, Role, Value (Level A)
User interface components must expose accurate roles and relationships.
Example:
A role="combobox" must expose its related popup and options so assistive technologies can identify it as a complete widget rather than a plain text field.
Note: WCAG 4.1.1 Parsing does not apply here and is intentionally excluded. ARIA structural failures are semantic failures, not parsing errors.
What the ARIA Specification Requires
ARIA does not allow arbitrary nesting. For many roles, the specification defines Required Owned Elements, meaning child roles that must be present for the widget to be valid.
Examples include:
role="listbox"→ must own one or morerole="option"elementsrole="tablist"→ must ownrole="tab"elementsrole="tree"→ must ownrole="treeitem"elements (optionally nested)
These relationships may be established through:
- DOM containment (preferred and safest), or
- aria-owns, when visual order and DOM order do not match
Both approaches must follow ARIA rules exactly.
Examples
Correct Example
<div role="listbox">
<div role="option">Option A</div>
<div role="option">Option B</div>
</div>
Assistive technologies can announce this as a listbox with selectable options.
Incorrect Example (Missing Required Children)
<div role="listbox">
<p>No options here</p>
</div>
Although this may be visually styled as a listbox, assistive technologies cannot identify any selectable items. The widget is effectively broken.
Why This Matters
ARIA roles express more than appearance, they express interaction models. Assistive technologies rely on these models to:
- Provide correct announcements
- Enable keyboard navigation
- Communicate available actions
- Preserve grouping and hierarchy
When required child roles are missing, users may encounter:
- Widgets that appear empty
- Missing or incomplete announcements
- Broken navigation patterns
- Loss of context and predictability
For example:
- A treeitem without a proper tree context loses its hierarchical meaning
- A combobox without discoverable options behaves like a plain input with hidden functionality
These failures are often silent; no errors appear, but usability collapses.
Native HTML vs ARIA
Many ARIA misuse problems occur when ARIA is used to recreate native controls.
Native HTML elements already enforce correct structure:
- <select> ensures valid options
- <ul> ensures list items
- <button> provides built-in interaction semantics
When native HTML can be used, it should be preferred. ARIA should only be used when native elements cannot express the required behaviour.
ARIA does not fix broken structure; it depends on the correct structure.
Common Practices for Ensuring Required ARIA Children
To keep ARIA widgets accessible and predictable:
- Review the ARIA specification or Authoring Practices for each role used
- Confirm which required owned elements apply
- Ensure all required child roles are present
- Use DOM nesting whenever possible
- Use aria-owns only when necessary and with care
- Avoid mixing unrelated roles inside composite widgets
Incorrect
<div role="tablist">
<div>Just text</div>
</div>
Correct
<div role="tablist">
<button role="tab">Overview</button>
<button role="tab">Details</button>
</div>
How to Fix the Problem
To correct missing ARIA child roles:
- Identify elements with explicit or implicit ARIA roles
- Check the ARIA specification for required owned elements
- Add missing child roles using proper markup
- Remove unrelated elements from the widget structure
- Use aria-owns only when DOM restructuring is not possible
Incorrect Use
<div role="listbox"></div>
Correct Use
<div role="listbox">
<div role="option">Item 1</div>
</div>
Who Is Affected
Improper ARIA structures affect:
- Screen reader users navigating composite widgets
- Keyboard-only users relying on predictable interaction
- Users who depend on consistency across interfaces
When the ARIA structure is invalid, assistive technologies cannot accurately communicate how widgets work.
Rule Description
Some ARIA roles are defined as composite widgets and are required to own specific child roles. When a parent role, such as listbox, combobox, tablist, or tree is present, its associated child roles must also be present to establish meaningful relationships.
The Algorithm
This rule evaluates:
- Every element with an ARIA role
- Whether that role defines required owned elements
- Whether those required child roles are present
- Whether ownership is correctly established (DOM or aria-owns)
If any required owned elements are missing, the ARIA role fails accessibility validation.
Wrapping Up
ARIA enables rich, interactive experiences, but only when its structural rules are respected. Composite widgets depend on precise parent–child relationships to function correctly for assistive technology users.
By ensuring that every ARIA role includes its required child roles, developers create interfaces that are predictable, navigable, and usable for everyone. ARIA is powerful, but only when treated as a specification, not a suggestion.