# 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
