axe-core rule: aria-required-children
ARIA composite widgets are missing required child roles
What it is
An element with a composite ARIA role (such as list, menu, tablist, or grid) does not contain the child roles that role requires, so assistive technology cannot interpret the widget.
Who it blocks
Screen reader users may find tabs that do not announce as tabs, or menus with no items.
How to fix it
Give the children the roles the parent requires: role="tab" inside role="tablist", role="listitem" inside role="list", role="menuitem" inside role="menu".
Example fix
<!-- Before -->
<div role="tablist">
<button>Description</button>
<button>Reviews</button>
</div>
<!-- After -->
<div role="tablist">
<button role="tab" aria-selected="true">Description</button>
<button role="tab" aria-selected="false">Reviews</button>
</div>
This is one of the barrier types BarrierScan checks for on every scan. Request a free accessibility scan to see whether it appears on your site, alongside the rest of the automated findings.