Native semantics first
Each component starts from the platform control that already has the right role and keyboard behavior: <button>, <dialog>, <details>, checkbox and radio inputs, and the Popover API. ARIA is the fallback.
Keyboard navigation
- Activation — Enter and Space activate buttons and toggles; Space toggles checkboxes and switches.
- Composite widgets — arrow keys move focus within menus, tabs, radio groups and toolbars; Home and End jump to the first and last item.
- Overlays — Escape closes dialogs, popovers and menus and returns focus to the trigger.
- Tab order — only interactive elements are tab stops; disabled controls are skipped.
Each component page lists its keyboard interactions.
Focus management
Modals trap focus while open and restore it on close. Popovers and menus use a roving tabindex on their items. Focus-visible styling belongs to your app CSS, using data-state and :focus-visible.
How this is verified
Each claim on this page is a release gate: zero axe violations in Chromium, Firefox and WebKit, and the no-JavaScript suite that Tier 0 components pass in full. See Proof