Component library · Accessibility showcase

Accessible components, done right

Five core widgets built to the WAI-ARIA Authoring Practices. Every example is fully operable with the keyboard alone, and every ARIA attribute stays in lockstep with what you see. Press Tab and start exploring.

03 · Tabs

Tabs

role="tablist"

Exactly one tab in the tab order at a time. Arrow keys move and activate; hidden panels carry the hidden attribute so they never enter the accessibility tree.

AriaKit ships five core widgets, each a single self-contained pattern from the WAI-ARIA Authoring Practices. No state is visual-only — every open, selected, or expanded condition is mirrored in ARIA attributes, and every widget is reachable with the keyboard alone.

←/→ move & activate · Home/End jump · Tab into panel content

04 · Input

Combobox

aria-activedescendant

The listbox is never focusable — the input owns focus and tracks the highlighted option by ID. Typing filters, and Esc reverts to the value the list opened with.

Nothing selected yet.

Type filter · ↓/↑ highlight, wraps · Enter select · Esc revert & close

05 · Disclosure

Accordion

aria-expanded

Buttons toggle regions; several may be open at once. Height animates via the Web Animations API while hidden is applied only at the end of the animation.

Enter and Space toggle the region; focus stays on the button, and the content becomes reachable by Tab while open. Multiple regions may be open at the same time.

Read the APG disclosure pattern

Enter/Space toggle · multiple open at once · Tab into open content