Diff a live page's accessibility violations against a baseline โ by default compares uncommitted changes (stash-based), or pass --branch [<name>] to diff against a branch. Reports only new violations introduced, violations fixed, and pre-existing count. Use `scan` for a full
Installs just this skill. Get the whole plugin for auto-invocation.
โก How it fires
How this skill gets triggered: by you, by Claude, or both.
Fires itselfClaude auto-loads it when your prompt matches the work.
You can call itInvoke it directly when you want it.
Slash command/accesslint-diff
๐๏ธ Context preview
The summary Claude sees to decide when to auto-load this skill.
Diff a live page's accessibility violations against a baseline โ by default compares uncommitted changes (stash-based), or pass --branch [<name>] to diff against a branch. Reports only new violations introduced, violations fixed, and pre-existing count. Use `scan` for a full
๐ Stats
Stars43,759
Forks6,464
LanguagePython
LicenseMIT
๐ฆ Ships with agentic-awesome-skills
</> SKILL.md
accesslint-diff.SKILL.md
---name: accesslint-diff
description: "Diff a live page's accessibility violations against a baseline โ by default compares uncommitted changes (stash-based), or pass --branch [<name>] to diff against a branch. Reports only new violations introduced, violations fixed, and pre-existing count. Use `scan` for a full audit with no diffing."
risk: safe
source: "https://github.com/AccessLint/skills"
date_added: "2026-06-02"
---Default branch: !`git symbolic-ref refs/remotes/origin/HEAD --short 2>/dev/null | sed 's|.*/||' || echo main`
Report only what changed. Locate; don't fix. If no URL in `$ARGUMENTS`, ask for one.
Parse `$ARGUMENTS`: strip `--branch <name>` if present โ branch mode. If `--branch` has no value, use the default branch above. Remainder is the URL.
## When to Use
- Use this skill when the task matches this description: Diff a live page's accessibility violations against a baseline โ by default compares uncommitted changes (stash-based), or pass --branch [<name>] to diff against a branch. Reports only new violations introduced, violations fixed, and pre-existing count. Use `scan` for a full audit with no diffing.
## 1. Audit
```bash
PORT=$(npx -y @accesslint/chrome@latest ensure | node -e 'process.stdin.on("data",d=>process.stdout.write(""+JSON.parse(d).port))')
```
**Stash mode** (default โ uncommitted changes). Tell the user first: _"Running in diff mode โ stashing your changes to capture a baseline, then restoring. Your working tree will be fully restored."_ If `git stash push` fails, warn and exit.
**Branch mode** (`--branch <name>`). Tell the user first: _"Diffing against `<name>` โ checking out that branch to capture a baseline, then restoring. Your working tree will be fully restored."_
Branch switching triggers a rebuild but not a browser reload โ the CLI opens a fresh tab each time so it always reads the current build. Use `--wait-for "<selector>"` to gate the audit until the rebuild is ready; without it, warn the user that a slow build may yield a stale baseline.
Keep the branch value in the quoted `branch` variable below; never paste or evaluate a branch name as shell syntax.
Pass `--selector`, `--include-aaa` to **both** runs.
## 2. Report
```
Accessibility diff โ http://localhost:3000/ vs main (94 rules, live DOM)
2 new ยท 1 fixed ยท 4 pre-existing hidden
New โ Critical
- color-contrast โ 2.1:1 (needs 4.5:1), #bbb on #fff
where: main > p.subtitle fix: darken to #767676
Fixed
- img-alt โ <img src="old.jpg"> (no longer present)
```
Each new violation: **where** (selector verbatim + `file:line (symbol)` if `source` present โ never fabricate), **evidence**, **fix** (mechanical change or `NEEDS HUMAN`).
Don't edit. For fixes: apply mechanical ones then re-run `accesslint:diff` to verify; for bulk work hand off to `accesslint:audit`.