Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
1.3 KiB
1.3 KiB
Accessibility notes (Descrybe v2 web)
Critical fixes from the a11y pass (keyboard / focus / ARIA).
Sidebar (Nav.svelte)
- Mobile drawer uses
inert+aria-hiddenwhen closed so off-canvas links are not in the Tab order. - Open drawer traps focus; Escape closes it.
- Hamburger
aria-controls="app-sidebar"matches the asideid; label toggles Open/Close. - Nav links expose
aria-current="page"; More usesaria-expanded/aria-controls. - Primary Stores points at
/stores(data-tour="nav-stores").
Focus traps
Shared helper: src/lib/a11y/focus-trap.ts.
| Surface | Behavior |
|---|---|
Dialog.svelte |
Tab cycle inside panel; focus restored on close; Escape closes |
| Tutorial popover | Tab cycle = popover controls + highlighted data-tour target (so forced steps stay keyboard-reachable); Escape pauses |
| Mobile sidebar | Tab cycle while drawer open |
Store hub (/stores)
- Landmark
sectionwith accessible heading (sr-only). - Each connector is an
articlewith labelled title + CTAaria-label. - Status badges include an accessible name (
Status: …).
Remaining (non-blocking)
- Individual feature dialogs that bypass
ui/Dialogshould adopt the same trap. - Live axe/browser keyboard audit on every route still recommended before production.