• Success Criterion 1.3.1
  • Conformance level A

Mismatched Parent and Child Roles in a Custom ARIA Widget

1.3.1 — Info and Relationships

Scenario

Setting

A car-rental site's checkout flow

What’s wrong

ARIA structural roles broken: role="list" whose children aren't listitem — tab without tablist — row outside grid/table.

Example

<div class="heading">Shipping Address</div>

Why it matters

Screen-reader, braille, and reading-tool users who depend on coded structure rather than visual layout.

How to test

Inspect a custom widget's ARIA parent/child structure in DevTools (e.g., li inside ul, tab inside tablist): mismatched nesting breaks the pattern a screen reader expects.

How to fix

Complete the required ARIA parent/child structure (listitem in list, tab in tablist, row in grid/table).

<h2>Shipping Address</h2>

A real heading element exposes the section structure to assistive tech; a styled div doesn't.

Outcome

On a car-rental site's checkout flow, this barrier is gone for screen-reader, braille — they get the same result as anyone else here.

Who is affected

Screen-reader, braille, and reading-tool users who depend on coded structure rather than visual layout.

Learn more