abigailkeegan's picture
Deploy ReelShield to Hugging Face Space
8af1084
|
Raw
History Blame Contribute Delete
2.68 kB
# Accessibility Audit Evidence
External validation of the WCAG 2.1 AA claims in
[`../wireframes.md` Β§ Style Guide β€Ί Accessibility Rationale](../wireframes.md).
## Method
| Detail | Value |
|---|---|
| Tool | Lighthouse 12.x (Chromium headless via `npx lighthouse`) |
| Latest run | 2026-05-15 (post-remediation) |
| Target | `http://localhost:7860/` (Docker container, parity with the live HF Space) |
| Categories audited | accessibility |
| Reports | [`lighthouse-home.report.html`](lighthouse-home.report.html) (human-readable), [`lighthouse-home.report.json`](lighthouse-home.report.json) (raw) |
## Score
**100 / 100** β€” all 26 Lighthouse accessibility audits pass, zero element findings.
## Remediation history
| Run | Score | Outstanding failures |
|---|---|---|
| 1 β€” initial audit (2026-05-15 morning) | 89 / 100 | 4 rules / 6 elements |
| 2 β€” after `<main>`/contrast/h2 fixes | 98 / 100 | 1 rule / 1 element (h4 inside groupSection) |
| 3 β€” after h4 β†’ h3 promotion | **100 / 100** | none |
### Fixes applied between Run 1 and Run 3
1. **`color-contrast` (3 buttons)** β€” `--accent` darkened from `#6c8eff` (3.02:1 against white) to `#4860e8` (5.10:1). Single token change in `frontend/static/css/main.css`; cascades to every primary-button background.
2. **`aria-prohibited-attr`** β€” added `role="region"` to `#searchResults` so its `aria-label` has a valid target.
3. **`landmark-one-main`** β€” the page had a `<main id="main">` that was `display:none` until a movie loaded, which axe-core treats as no main landmark. Renamed it to `<section id="main">` and added a real, always-visible `<main>` wrapping the page's primary content (epilepsy banner through reviews section). The skip-link target (`#main`) still works because the id was preserved.
4. **`heading-order`** β€” promoted six top-level section headings from `h3` to `h2` (Discover, Group Watch, Watchlist, Content Twins, Recommendations, Reviews), since they are semantic peers of the epilepsy banner's `h2`. Three nested `h4`s inside Group Watch (Group Members / Group Profile / Find Movies) were then promoted to `h3` for the same reason. CSS selectors targeting these headings were updated in parallel.
## How to reproduce
```bash
docker compose up -d
npx lighthouse http://localhost:7860/ \
--only-categories=accessibility \
--output=json --output=html \
--output-path=./docs/wireframes/accessibility/lighthouse-home \
--chrome-flags="--headless --no-sandbox --disable-gpu" \
--quiet
```
The committed reports in this folder are the output of the post-remediation run; running the command above against a current container should reproduce the 100/100 score.