# Accessibility Testing Framework This directory contains tools and scripts for testing the website's accessibility compliance with WCAG 2.1 AAA standards. ## Overview The accessibility testing framework uses multiple approaches: 1. **Automated Testing with Pa11y**: Command-line accessibility testing using Pa11y 2. **Automated Testing with axe-core**: JavaScript-based accessibility testing using axe-core 3. **Manual Testing Checklist**: A comprehensive checklist for aspects that can't be automated ## Running Tests To run all accessibility tests: ```bash npm run test:accessibility ``` Or run directly: ```bash ./tests/accessibility/run-accessibility-tests.sh [BASE_URL] ``` The default BASE_URL is `http://localhost:8080` if not specified. ## Test Components ### Pa11y Tests Pa11y tests are run using the `pa11y-test.sh` script, which: - Tests multiple pages against WCAG 2.1 AAA standards - Generates JSON reports for each page - Creates a summary report ### axe-core Tests axe-core tests are run using the `playwright-axe.js` script, which: - Uses Playwright to load pages - Injects axe-core into each page - Runs accessibility tests against WCAG 2.1 AAA standards - Generates detailed reports ### Manual Testing Some aspects of accessibility can't be automatically tested. The `manual-checklist.md` file provides a comprehensive checklist for manual testing, focusing on AAA-level criteria. ## Reports Test reports are saved in the `tests/reports/` directory: - Individual page reports (e.g., `pa11y-index.json`, `axe-index.json`) - Summary reports (`pa11y-summary.json`, `axe-summary.json`) - Combined accessibility report (`accessibility-summary.json`) ## Requirements - Node.js - NPM packages: pa11y, axe-core, playwright - For Pa11y: `npm install -g pa11y` or use npx