diff --git a/templates/web_accessibility_improvements.md b/templates/web_accessibility_improvements.md new file mode 100644 index 0000000..9719140 --- /dev/null +++ b/templates/web_accessibility_improvements.md @@ -0,0 +1,342 @@ +# Runbook: Web Application Accessibility Improvements + +## Summary of Changes +- [Customize: List accessibility audit findings from automated and manual testing] +- [Customize: Document current WCAG compliance level and target level (typically WCAG 2.1 AA)] +- [Customize: Summarize major violation categories discovered in the codebase] +- High-level improvements covering semantic HTML, keyboard accessibility, screen reader support, forms, images, color contrast, and dynamic content + +## Prerequisites +- Familiarity with WCAG 2.1 guidelines: https://www.w3.org/WAI/WCAG21/quickref/ +- WAI-ARIA Authoring Practices for custom widget patterns: https://www.w3.org/WAI/ARIA/apg/ +- Automated testing tool installed (axe-core, pa11y, or Lighthouse) +- Screen reader available for manual testing (NVDA on Windows, VoiceOver on macOS/iOS, TalkBack on Android) +- Browser accessibility extensions (axe DevTools, WAVE, or similar) +- [Customize: Note any organization-specific accessibility guidelines or design system documentation] +- [Customize: Identify existing component libraries in use and their accessibility documentation] + +## Execution Steps + +### Step 1: Audit and Establish Baseline +Context: Before making changes, establish a clear picture of current accessibility state. Automated tools catch approximately 30-40% of issues; manual testing is essential for the remainder. + +#### 1.1: Automated Accessibility Scan +Run automated tooling across the application to identify programmatically detectable violations. +- [Customize: Configure scanning tool appropriate to project's test infrastructure] \ + Common options: axe-core for unit/integration tests, pa11y for CLI scanning, Lighthouse for page-level audits. +- Scan all unique page templates and route endpoints in the application. +- Generate baseline report documenting violations by WCAG criterion and severity. +- Export findings to `docs/accessibility-audit-baseline.md` with violation counts as metrics for measuring progress. +- [Customize: Note any existing accessibility tests in the codebase and their coverage] + +#### 1.2: Manual Keyboard Navigation Audit +Test all interactive elements using keyboard only (no mouse). +- Tab through every page and document the focus order—it should follow logical reading order. +- Identify interactive elements that cannot be reached via Tab key. +- Identify interactive elements that cannot be activated via Enter or Space keys. +- Note any focus traps where keyboard users get stuck. +- Note any missing or invisible focus indicators. +- Test for presence and functionality of skip links ("Skip to main content"). +- Document findings in `docs/accessibility-audit-baseline.md` under keyboard navigation section. + +#### 1.3: Screen Reader Testing +Test critical user flows with screen reader software to identify issues automated tools miss. +- [Customize: Identify the 3-5 most critical user journeys to test (e.g., signup, login, checkout, primary feature workflows)] +- Test each journey and document where announcements are missing, confusing, or incorrect. +- Note images missing alt text or with unhelpful descriptions like "image" or filename. +- Note form fields lacking proper labels or where labels don't match visible text. +- Note dynamic content changes that aren't announced. +- Document findings in `docs/accessibility-audit-baseline.md` under screen reader section. + +#### 1.4: [NO-CODE-CHANGE] Prioritization and Planning +Categorize findings by impact and effort to create remediation roadmap. +- Group all findings by WCAG success criterion. +- Prioritize by user impact: blockers (prevent task completion) vs. obstacles (slow users down) vs. annoyances. +- Identify quick wins (high impact, low effort). +- Create remediation roadmap in `docs/accessibility-remediation-plan.md` mapping issues to subsequent steps in this runbook. + +### Step 2: Semantic HTML and Document Structure +Context: Proper semantic structure is foundational—it improves screen reader navigation, provides implicit ARIA roles, and makes subsequent fixes easier. These changes often have broad positive impact with relatively low risk. + +#### 2.1: Landmark Regions +Ensure proper page structure using HTML5 landmark elements so screen reader users can navigate by region. +- Add or verify presence of `
` for site/page header content. +- Add or verify presence of `