How to build an accessible StructuredList in React

Static lists use table/row/cell roles so columns are announced; selectable lists become a radiogroup of role=radio rows with roving tabindex, so arrow keys move focus and Enter/Space check a row exactly like native radios

When to use a StructuredList

When not to use it

Keyboard interactions

Role table, verified at WCAG 2.2-AA.

Common mistakes

Avoid: selectable with multiple rows marked selected

Prefer: A single selected id (value/defaultValue) — selection is single-choice

The selectable variant is a radiogroup; multiple selected rows break the radio semantics

Example

<StructuredList headers={["Name", "Role"]} items={[{ id: "a", cells: ["Ada", "Engineer"] }]} />

See the full StructuredList reference →