Skip to content

Instantly share code, notes, and snippets.

@dylarcher
Created September 9, 2025 18:21
Show Gist options
  • Select an option

  • Save dylarcher/c04cfc1eb6fc48b182c5718c2835d043 to your computer and use it in GitHub Desktop.

Select an option

Save dylarcher/c04cfc1eb6fc48b182c5718c2835d043 to your computer and use it in GitHub Desktop.

Accessibility Adoption Roadmap

Goal: Implement comprehensive accessibility testing and compliance across the CapitalRx platform to ensure WCAG 2.2 AA standards for all users.

Quick Start Guide

Recommended Starting Points: Stories #1, #2, and #7 provide the foundation for automated testing and manual validation processes.

Story Overview

Story Type Focus Area Priority Points
1 Automated Infrastructure Setup πŸ”₯ High 3
2 Automated Color Contrast πŸ”₯ High 3
3 Automated ARIA Attributes 🟑 Medium 3
4 Automated Keyboard Navigation 🟑 Medium 3
5 Automated Semantic HTML 🟑 Medium 3
6 Automated Accessible Names 🟑 Medium 3
7 Manual Screen Readers πŸ”₯ High 3
8 Manual Keyboard Testing 🟑 Medium 3
9 Manual Focus Management 🟑 Medium 3
10 Integration Documentation 🟒 Low 3
11 Integration CI/CD Pipeline 🟒 Low 3
12 Integration Component Audit 🟒 Low 3

Automated Testing Stories

Story 1: Set Up Automated Accessibility Testing Infrastructure

Story Details

Points: 3 | Priority: πŸ”₯ High

User Story: As a developer, I want to integrate automated a11y validation tools into our tests so that we can catch accessibility issues early in the dev process.

Acceptance Criteria:

  • Install and configure axe-core and jest-axe in the project
  • Create a base test helper/utility for accessibility testing
  • Add accessibility testing to CI pipeline with failure thresholds
  • Document setup and usage in README
  • Create sample test demonstrating the pattern

Story 2: Implement Color Contrast Testing

Story Details

Points: 3 | Priority: πŸ”₯ High

User Story: As a user with visual impairments, I want all UI content to have WCAG v2 AA contrast ratio compliance so that I can read and interact with the interface clearly.

Acceptance Criteria:

  • Write automated tests for all text/background color combinations
  • Verify AA compliance (4.5:1 for normal text, 3:1 for large text)
  • Test interactive node states (:hover, :focus, :disabled, [inert])
  • Generate color contrast report for design system tokens
  • Fix any failing contrast ratios identified

Story 3: Test ARIA Attributes Implementation

Story Details

Points: 3 | Priority: 🟑 Medium

User Story: As a screen reader user, I want proper ARIA/Role attributes on all components so that I can understand the purpose and state of UI elements.

Acceptance Criteria:

  • Create tests for required ARIA roles on custom components
  • Verify aria-label and aria-labelledby usage
  • Test aria-describedby for help text and errors
  • Validate aria-live regions for dynamic content
  • Ensure no ARIA attribute conflicts or misuse

Story 4: Implement Keyboard Navigation Testing

Story Details

Points: 3 | Priority: 🟑 Medium

User Story: As a keyboard-only user, I want to navigate through all interactive elements using keyboard so that I can use the application without a mouse.

Acceptance Criteria:

  • Write tests for tab order sequence in forms and modals
  • Test Enter/Space key activation for buttons and links
  • Verify Escape key closes modals and dropdowns
  • Test arrow key navigation in menus and lists
  • Ensure no keyboard traps exist

Story 5: Test Semantic HTML Structure

Story Details

Points: 3 | Priority: 🟑 Medium

User Story: As an assistive technology user, I want proper semantic HTML elements used throughout so that I can understand the document structure and navigate efficiently.

Acceptance Criteria:

  • Verify heading hierarchy (h1-h6) is logical and sequential
  • Test that buttons use <button> not <div> with onClick
  • Ensure links use <a> tags with proper href
  • Validate list items use proper <ul>, <ol>, <li> structure
  • Check form elements have associated labels

Story 6: Implement Accessible Names Testing

Story Details

Points: 3 | Priority: 🟑 Medium

User Story: As a screen reader user, I want all interactive elements to have descriptive accessible names so that I know what each control does.

Acceptance Criteria:

  • Test all buttons have meaningful text or aria-label
  • Verify form inputs have associated labels or aria-label
  • Check images have appropriate alt text
  • Test icon-only buttons have accessible names
  • Validate links have descriptive text (not just "click here")

Manual Testing Stories

Story 7: Establish Screen Reader Testing Process

Story Details

Points: 3 | Priority: πŸ”₯ High

User Story: As a blind or low-vision user, I want the application tested with real screen readers so that I can have a good experience with assistive technology.

Acceptance Criteria:

  • Document testing process for NVDA and VoiceOver
  • Create screen reader testing checklist
  • Test 5 critical user flows with screen readers
  • Document any issues found and create fix tickets
  • Add screen reader testing to QA process

Story 8: Manual Keyboard Navigation Validation

Story Details

Points: 3 | Priority: 🟑 Medium

User Story: As a mobility-impaired user, I want comprehensive keyboard navigation throughout the app so that I can complete all tasks without a mouse.

Acceptance Criteria:

  • Manually test tab navigation through entire application
  • Verify all interactive elements are reachable via keyboard
  • Test complex components (date pickers, data tables, modals)
  • Document any keyboard navigation issues
  • Create keyboard navigation guide for testers

Story 9: Focus Management and Indicators

Story Details

Points: 3 | Priority: 🟑 Medium

User Story: As a keyboard user, I want clear visual focus indicators so that I always know where I am on the page.

Acceptance Criteria:

  • Audit all interactive elements for visible focus indicators
  • Ensure focus indicators meet 3:1 contrast ratio
  • Test focus restoration after modal/drawer close
  • Verify focus moves appropriately after dynamic content changes
  • Document focus management patterns for developers

Integration & Documentation Stories

Story 10: Create Accessibility Testing Documentation

Story Details

Points: 3 | Priority: 🟒 Low

User Story: As a developer, I want comprehensive accessibility testing documentation so that I can maintain and extend accessibility standards.

Acceptance Criteria:

  • Create accessibility testing guide with examples
  • Document common accessibility patterns and solutions
  • Create troubleshooting guide for common issues
  • Add accessibility checklist to PR template
  • Include accessibility requirements in component documentation

Story 11: Integrate Accessibility into CI/CD Pipeline

Story Details

Points: 3 | Priority: 🟒 Low

User Story: As a development team, I want automated accessibility checks in our pipeline so that we catch issues before they reach production.

Acceptance Criteria:

  • Add accessibility tests to pre-commit hooks
  • Configure CI to run accessibility test suite
  • Set up accessibility score reporting
  • Create GitHub Actions workflow for accessibility checks
  • Configure build to fail on critical accessibility violations

Story 12: Component Library Accessibility Audit

Story Details

Points: 3 | Priority: 🟒 Low

User Story: As a component library consumer, I want all components to be accessible by default so that I don't introduce accessibility issues when using them.

Acceptance Criteria:

  • Audit top 10 most-used components for accessibility
  • Create accessibility props/variants for each component
  • Document accessibility features in Storybook
  • Add accessibility notes to component documentation
  • Create accessible component usage examples

Implementation Strategy

Phase 1: Foundation (Stories 1, 2, 7)

Timeline: Sprint 1-2

  • Establish automated testing infrastructure
  • Implement color contrast validation
  • Set up screen reader testing process

Phase 2: Core Testing (Stories 3, 4, 5, 6, 8)

Timeline: Sprint 3-4

  • Expand automated test coverage
  • Manual keyboard navigation validation
  • ARIA and semantic HTML testing

Phase 3: Integration (Stories 9, 10, 11, 12)

Timeline: Sprint 5-6

  • Focus management and documentation
  • CI/CD integration
  • Component library audit

Resources & Standards

  • WCAG 2.2 AA Compliance: Target standard for all implementations
  • Tools: axe-core, jest-axe, NVDA, VoiceOver
  • Testing Framework: Jest-based automated testing with manual validation
  • Reporting: Accessibility score tracking and violation reporting

These tasks are based on targets outlined by @Hector-Ubiera and prioritized by product and user need. Stories #1, 2 & 7 establish foundational building blocks and automation to reduce cumbersome manual testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment