Skip to content

fix(a11y): WCAG 2.2 AA remediation across 9 elements#47

Merged
ErickXavier merged 1 commit into
mainfrom
fix/a11y-wcag
Jun 16, 2026
Merged

fix(a11y): WCAG 2.2 AA remediation across 9 elements#47
ErickXavier merged 1 commit into
mainfrom
fix/a11y-wcag

Conversation

@ErickXavier

Copy link
Copy Markdown
Collaborator

Summary

  • validate: aria-invalid on fields when validation fails, aria-live="polite" on error message containers
  • virtual-list: role="listbox" on container, role="option" + aria-setsize/aria-posinset on items, keyboard navigation (ArrowUp/Down/Home/End)
  • dnd: Replace deprecated aria-grabbed with aria-roledescription="draggable item", add role="button", create live-region for screen reader announcements (grab/drop/cancel/reorder)
  • table sort: tabindex="0" on sortable headers, Enter/Space keyboard activation (WCAG 2.1.1)
  • table reorder: Replace deprecated aria-grabbed with aria-roledescription="draggable row"
  • table styles: Update CSS selector from [aria-grabbed="true"] to .nojs-dragging
  • accordion: aria-expanded + aria-controls on summary, role="region" on content panels
  • popover: role="dialog" (only when no existing role), aria-haspopup="dialog" on triggers
  • toast: Already compliant (role="log", aria-live, button dismiss) — no changes
  • stepper: Already compliant (aria-current, tabindex, focus management) — no changes
  • Tests updated to match new ARIA attributes

Test plan

  • npm test — 498 passed, 5 skipped, 0 failures
  • npm run build — dist/ files included
  • Manual screen reader testing with VoiceOver
  • E2E tests (cd e2e && npx playwright test)

- validate: add aria-invalid on fields, aria-live on error messages
- virtual-list: add role=listbox/option, keyboard nav (Arrow/Home/End)
- dnd: replace deprecated aria-grabbed with aria-roledescription, add
  live-region screen reader announcements, role=button on draggables
- table sort: add tabindex=0 and Enter/Space keyboard activation
- table reorder: replace aria-grabbed with aria-roledescription
- accordion: add aria-expanded, aria-controls, role=region on panels
- popover: add role=dialog (respecting existing roles), aria-haspopup=dialog
- toast/stepper: already WCAG-compliant, no changes needed
- Update tests to match new ARIA attributes
@ErickXavier ErickXavier merged commit ed0e273 into main Jun 16, 2026
1 check passed
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