Access
Built to be operated.
The glass is a material. The controls underneath use real roles, real keyboard behavior, and the motion and contrast preferences the platform already has.
Roles
Each control sets its own role when it connects. You do not add role="button" yourself. Do give it an accessible name when the visible label is not enough: icon buttons need aria-label, and so do sliders and switches that sit beside a separate caption.
- Button, switch, slider, tab bar, segmented control, menu, menu item, search, and dialog (the sheet) expose platform roles.
- Switches, sliders, and the search field are form-associated. They submit with
nameandvalue. - Focus is visible. The ring uses
--glass-accent, drawn outside the slab so the rim light does not hide it. - Opening a menu or a sheet moves focus inside. Escape closes it and returns focus to the trigger. A
modalsheet also keeps Tab and Shift+Tab inside and is announced witharia-modal.
Keyboard
| Control | Keys |
|---|---|
| Button | Enter and Space activate. |
| Switch | Space toggles. Enter toggles when it is focused. |
| Slider | Arrow keys step. Page Up and Page Down take larger steps. Home and End jump to the ends. |
| Tab bar, segmented | Arrow keys move the selection. Home and End jump to the ends. |
| Menu | Enter, Space, or Arrow Down opens. Arrows move. Type-ahead jumps. Enter selects. Escape closes. |
| Toolbar | Arrow keys move focus between the buttons. |
| Search | Enter fires search. Escape clears the field. |
| Sheet | Escape closes, unless no-dismiss is set. |
Preferences
prefers-reduced-motion: reducedrops the elastic press, the menu morph, the sheet slide, and the thumb's bounce. State still changes immediately.prefers-reduced-transparency: reducereplaces the transmitted backdrop with an opaque fill, so the control stays legible without relying on blur.forced-colors: activepaints the slab withCanvasandCanvasTextand hides the decorative rim.
This site does the same for its own motion. The plate scroller, the command palette, and the reveal of the opener all sit still when reduced motion is requested. Touch targets on this site are at least 44 by 44 pixels, including the navigation, the copy buttons, and the playground choices.
Try the keys
Tab into this row. Space toggles the switch. Arrows move the slider. Enter on the search field fires a search you will not see leave the page.