65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
# 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
|