The BatchOperationsPanel component (web/src/components/batch-operations/BatchOperationsPanel.tsx lines 412-424) uses <button> elements as tabs but lacks proper ARIA semantics for screen readers.
What to do:
- Read
web/src/components/batch-operations/BatchOperationsPanel.tsx
- Add
role="tablist" to the tab container
- Add
role="tab" and aria-selected={isActive} to each tab button
- Add
role="tabpanel" to the tab content panels
- Add
aria-controls and aria-labelledby to link tabs and panels
- Verify with keyboard navigation (arrow keys between tabs)
- Run:
pnpm -C web run typecheck
Skills needed: HTML accessibility, React, TypeScript
Estimated time: 30 minutes
The
BatchOperationsPanelcomponent (web/src/components/batch-operations/BatchOperationsPanel.tsxlines 412-424) uses<button>elements as tabs but lacks proper ARIA semantics for screen readers.What to do:
web/src/components/batch-operations/BatchOperationsPanel.tsxrole="tablist"to the tab containerrole="tab"andaria-selected={isActive}to each tab buttonrole="tabpanel"to the tab content panelsaria-controlsandaria-labelledbyto link tabs and panelspnpm -C web run typecheckSkills needed: HTML accessibility, React, TypeScript
Estimated time: 30 minutes