axe-core tests 1 of the 9 success criteria WCAG 2.2 added. Sightline tests 8.
pip install sightline-a11y
python -m playwright install chromium
sightline https://example.com --level AA --html report.htmlVerify the gap yourself — axe-core publishes every WCAG tag it emits:
curl -s https://raw.githubusercontent.com/dequelabs/axe-core/develop/doc/rule-descriptions.md \
| grep -oE "wcag[0-9a-z]+" | sort -uOne WCAG 2.2 tag in the whole list: wcag258, on a single target-size rule marked "needs review".
What's in 0.1.0
| SC | Criterion | Level |
|---|---|---|
| 2.4.11 / 2.4.12 | Focus Not Obscured | AA / AAA |
| 2.4.13 | Focus Appearance | AAA |
| 2.5.7 | Dragging Movements | AA |
| 2.5.8 | Target Size (Minimum) | AA |
| 3.2.6 | Consistent Help | A |
| 3.3.8 / 3.3.9 | Accessible Authentication | AA / AAA |
Real Tab traversal with elementFromPoint hit testing, pixel-diffed focus
indicators via a dependency-free PNG decoder, addEventListener instrumentation
for drag detection, and a genuine cancelable paste probe. Terminal, JSON and
standalone HTML reports. Exit code 1 on failure for CI.
One runtime dependency (Playwright). No network calls, no telemetry, no model
inference. 55 tests.
What it deliberately does not do
3.3.7 Redundant Entry is not implemented — it needs a model of a multi-step
process, and any automated verdict would be a guess. Heuristic checks report
review, never fail. And it does not re-implement axe-core: run both.
Full notes, limitations and a German README in the repository.