Skip to content

fix: make Run tabs keyboard accessible - #28

Merged
pppolf merged 1 commit into
mainfrom
agent/keyboard-accessible-run-tabs
Aug 12, 2026
Merged

pppolf merged 1 commit into
mainfrom
agent/keyboard-accessible-run-tabs

Conversation

@pppolf

@pppolf pppolf commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

  • give the Run workspace a complete WAI-ARIA tab/tablist/tabpanel relationship
  • use a single roving tab stop and support ArrowLeft, ArrowRight, Home, and End navigation with automatic activation
  • preserve DOM targets for inactive tab panels while rendering only the active panel's content
  • localize the tablist accessible name
  • add focused DOM regression tests for semantics, focus movement, wraparound, and activation

Why

The Run navigation previously assigned role="tab" to every button, but every tab remained in the page tab order and the tablist did not implement the keyboard interactions expected by assistive technology. The content also lacked a linked tabpanel, so tab-to-panel relationships were not exposed.

Validation

  • Node.js 24.19.0
  • npm ci (0 vulnerabilities)
  • npm run test -- --run src/components/run-workspace-tabs.test.tsx (2/2)
  • npm test (58 files, 220 tests)
  • npm run typecheck
  • npm run check:api
  • npm run build
  • npm audit --audit-level=high (0 vulnerabilities)
  • git diff --check

The existing jsdom canvas warnings remain informational and unchanged.

@pppolf
pppolf marked this pull request as ready for review August 12, 2026 15:23
@pppolf
pppolf merged commit d2dacc6 into main Aug 12, 2026
4 checks passed
@NanaseInori
NanaseInori deleted the agent/keyboard-accessible-run-tabs branch September 16, 2026 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant