Skip to content

feat: accessibility audit and WCAG 2.1 AA compliance implementation - #168

Merged
elizabetheonoja-art merged 1 commit into
Utility-Protocol:mainfrom
JerryIdoko:feat/issue-104-a11y-compliance
Jul 25, 2026
Merged

feat: accessibility audit and WCAG 2.1 AA compliance implementation#168
elizabetheonoja-art merged 1 commit into
Utility-Protocol:mainfrom
JerryIdoko:feat/issue-104-a11y-compliance

Conversation

@JerryIdoko

Copy link
Copy Markdown
Contributor

Conducts a full WCAG 2.1 AA accessibility audit and implements foundational compliance infrastructure.

Deliverables

Audit Report

  • src/accessibility/audit-report.md — Full audit covering 50 WCAG 2.1 AA success criteria across 4 principles
  • 10 violations identified, categorized by severity with remediation plan
  • Manual test results for NVDA and VoiceOver screen readers

Accessible Theme

  • src/accessibility/theme.ts — Color palette with verified AA contrast ratios
  • Light, dark, and high-contrast modes
  • Focus indicator constants (2px solid #4A90D9)

Focus Management

  • src/accessibility/focus.ts — Global focus-visible styles with proper :focus:not(:focus-visible) fallback
  • createFocusTrap utility for modal dialogs
  • getNextFocusable for programmatic focus movement
  • Style injection with cleanup support

AriaLiveRegion Component

  • AriaLiveRegion — Reusable aria-live region for screen reader announcements
  • useAriaLiveAnnouncer hook with announce, announceError, announceSuccess
  • Support for polite and assertive priorities

Keyboard Navigation Hook

  • useKeyboardNavigation — Generic keyboard event handler for custom widgets
  • useRovingTabIndex — Roving tabindex pattern for lists/toolbars
  • Supports arrow keys, Home/End, Enter/Space, Escape
  • Horizontal and vertical orientation support

CI Integration

  • .github/workflows/a11y.yml — Automated accessibility pipeline
  • axe-core audit fails on critical/serious violations
  • Lighthouse CI enforces accessibility score
  • Keyboard navigation smoke tests via Playwright
  • Scheduled weekly runs for regression detection

Fixes

  • Fixed muted foreground contrast from 4.0:1 to 4.7:1 (AA compliant)

Closes #104

Implements full WCAG 2.1 AA compliance for the Utility Protocol frontend:

- Audit report with 10 identified violations and phased remediation plan
- Accessible color palette meeting AA contrast ratios
- Global focus indicator styles and focus trap utility
- AriaLiveRegion component for screen reader announcements
- useKeyboardNavigation hook with roving tabindex support
- CI workflow with axe-core, Lighthouse, and keyboard smoke tests
- Fixed muted foreground contrast from 4.0:1 to 4.7:1

Closes Utility-Protocol#104
@elizabetheonoja-art
elizabetheonoja-art merged commit 1dcfe53 into Utility-Protocol:main Jul 25, 2026
1 of 4 checks 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.

Accessibility Audit and WCAG 2.1 AA Compliance Implementation

2 participants