accesslint-diff
SkillDev toolsaccesslint-diff is a skill that lets an AI agent diff a live page's accessibility violations against a baseline. By default it compares uncommitted changes using a stash-based workflow, or it can diff against a branch with --branch. It reports only new violations introduced, violations fixed, and a count of pre-existing issues, so the agent can focus on what a change actually affected.
Use accesslint-diff in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add accesslint-diff and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the accesslint-diff skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Have a git repository with a live web page you want to audit, and a working git setup for stashing or switching branches.
What your AI can do with it
- Diff a live page's accessibility violations against uncommitted changes
- Diff against a branch by passing --branch [<name>]
- Report new violations introduced, violations fixed, and pre-existing count
- Run a full audit with no diffing using the `scan` command
- Locate issues and suggest fixes without editing code itself
- Run audits in a headless Chrome browser via the AccessLint CLI
Getting started
- Have a git repository with a live web page you want to audit, and a working git setup for stashing or switching branches.
- Add the accesslint-diff skill to your agent so it can be invoked when you ask for an accessibility diff.
- Ask the agent to audit a page, providing the URL; if no URL is given, the agent will ask for one.
- Optionally pass --branch <name> to diff against a branch instead of uncommitted changes; with no value, the default branch is used.
- Review the report of new violations, fixed violations, and pre-existing count, then apply suggested fixes yourself.
What this skill tells your AI
The instructions your AI receives, as published by sickn33/agentic-awesome-skills in skills/accesslint-diff/SKILL.md and read by ahel’s review.
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 [] to diff against a branch. Reports only new violations introduced, violations fixed, and pre-existing count. Use
scanfor a full audit with no diffing.
1. Audit
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.
git stash push -u -m "accesslint-diff-baseline"
npx -y @accesslint/cli@latest "<url>" --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --update-snapshot
git stash pop && sleep 2
npx -y @accesslint/cli@latest "<url>" --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --format json
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.
git diff --quiet && git diff --cached --quiet || git stash push -u -m "accesslint-diff-branch"
branch="<branch>"
git check-ref-format --branch "$branch" >/dev/null
case "$branch" in -*) echo "Refusing option-like branch name: $branch" >&2; exit 1 ;; esac
git rev-parse --verify --quiet "$branch^{commit}" >/dev/null
git switch "$branch"
npx -y @accesslint/cli@latest "<url>" --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --update-snapshot [--wait-for "<selector>"]
git switch - && git stash pop 2>/dev/null
npx -y @accesslint/cli@latest "<url>" --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --format json [--wait-for "<selector>"]
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.
3. Tear down
npx -y @accesslint/chrome@latest stop --all # skip if ensure reported "managed":false
Gotchas
ensurealways determines the port — never hardcode 9222.- CLI exit 2 = bad URL or page never loaded; check the dev server.
- Stash mode:
sleep 2covers most HMR cases; if baseline looks identical to current, add--wait-for "<selector>". - Branch mode: no HMR — CLI opens a fresh tab each run.
--wait-foris the rebuild gate. - Heavy DOM changes between runs cause selector drift — re-run with
accesslint:scanfor the full picture.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Signals
- GitHub stars
- 47k
- Forks
- 7k
- Last commit
- Sep 2026
Others that do the same job
Questions
- Does it fix the issues it finds?
- No. It locates issues and suggests fixes but does not edit code itself.
- How does the default diff work?
- It stashes uncommitted changes to capture a baseline scan, restores your work, re-scans, and reports only what changed. Your working tree is fully restored.
Advanced
- Item type
- skill
- Key
accesslint-diff-sickn33- Source
- github.com/sickn33/agentic-awesome-skills
github.com/sickn33/agentic-awesome-skills