feat(a11y): implement dashboard-wide keyboard nav, focus rings, ARIA live regions #237
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Depends on
Reference
charles/claude-hooks#237
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As an operator using the dashboard daily, I want full keyboard navigation, visible focus rings, and ARIA live-region announcements for async state changes (task started / finished / failed), so that the dashboard is usable without a mouse and state changes are accessible.
Dependencies
Acceptance criteria
:focus-visiblestyle per the mockup.g m,g a,/,?,esc).<div onClick>withoutrole=button).bun run qaclean.Out of scope
References
apps/web/e2e/— add axe smoke tests next to the existing Playwright specs.All acceptance criteria implemented and merged to
main(commit350fcca). QA clean on the implementation branch.:focus-visiblering —src/styles/index.cssg m,g a,/,?,Esc) —src/hooks/use-global-keymap.ts, wired inroutes/__root.tsxsrc/components/global-keymap-overlay.tsxsrc/components/board/use-board-keymap.ts;DraggableCardcarriesrole=button+tabIndex=0+onKeyDownsrc/components/app-shell.tsx;src/lib/announce.ts; toast-store callsannounce()on every push; task-lifecycle events surface via toastse2e/a11y.spec.ts— zero violations on Monitor, Pipeline, Planner, Board, Agents