Menu

Site and documentation links

Search documentation

Type to filter pages and sections. Use the arrow keys to move and Enter to open.

    Accessibility

    The patterns each component follows, the keyboard support, and how we test it.

    Every component follows a pattern from the WAI-ARIA Authoring Practices Guide, so it behaves the way keyboard and screen reader users expect.

    Patterns we follow

    ComponentPattern
    AccordionAccordion
    Copy ButtonA button, plus a polite live region that announces the copy
    DialogDialog (Modal)
    ListboxListbox
    MenuMenu Button
    Radio GroupRadio Group
    SwitchSwitch
    TabsTabs
    TooltipTooltip

    Keyboard support

    KeysWhat they do
    TabMoves into and out of each component. Tabs, radio groups and listboxes take one tab stop and use the arrow keys inside.
    Arrow keysMove between tabs, radios, menu items, listbox options and accordion headers.
    Home and EndJump to the first or last item in tabs, menus, listboxes and accordions.
    LettersTypeahead in menus and listboxes: type the start of an item's name to jump to it.
    Enter and SpaceActivate the focused button, tab, menu item or switch. Space checks a radio.
    EscapeCloses dialogs, menus and tooltips. Focus goes back to the element that opened them.

    Each component page has the full keyboard table for that component.

    Focus

    • Dialogs use the native <dialog> element with showModal(), so the rest of the page is inert while one is open.
    • Menus and tooltips open in the browser's top layer, so no overflow or z-index can hide them.
    • The theme draws a visible focus ring on every interactive part, in both modes.

    Contrast and motion

    The optional theme keeps text at 4.5:1 contrast or more and control outlines at 3:1 or more, in light and dark. Its transitions stop when the system asks for reduced motion.

    How we test

    Every component has automated keyboard tests written with Testing Library and an automated check with axe. We also check each one by hand in a real browser, because some behaviour, such as the top layer and focus return, only shows up there.

    Built by Syncclouds. Syncclouds UI is in development.