accessibility-diff
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDefault branch: !
git symbolic-ref refs/remotes/origin/HEAD --short 2>/dev/null | sed 's|.*/||' || echo mainReport only what changed. Locate; don't fix.
Shared grounding and honesty conventions: .
../shared/methodology.mdParse : if is present, remove it and use branch mode (no value means the default branch above). The rest is the target: a URL, a config target name, or empty for the default target from . If it's empty and there's no config, ask for a URL.
$ARGUMENTS--branch <name>accesslint.config.json默认分支:!
git symbolic-ref refs/remotes/origin/HEAD --short 2>/dev/null | sed 's|.*/||' || echo main仅报告变更内容。定位问题,不自动修复。
共享基准与诚信规范:
../shared/methodology.md解析:如果存在参数,则移除该参数并启用分支模式(无参数值时使用上述默认分支)。剩余部分为目标:可以是URL、配置中的目标名称,或留空以使用中的默认目标。如果留空且无配置文件,则提示输入URL。
$ARGUMENTS--branch <name>accesslint.config.json1. Audit
1. 审计
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 fails, warn and exit.
git stash pushbash
git stash push -u -m "accesslint-diff-baseline"
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --update-snapshot
git stash pop && sleep 2
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --format jsonBranch mode (). Tell the user first: "Diffing against — 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, so the CLI opens a fresh tab each run to read the current build. Use to hold the audit until the rebuild is ready; without it, warn that a slow build may give a stale baseline.
--branch <name><name>--wait-for "<selector>"bash
git diff --quiet && git diff --cached --quiet || git stash push -u -m "accesslint-diff-branch"
git checkout <branch>
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --update-snapshot [--wait-for "<selector>"]
git checkout - && git stash pop 2>/dev/null
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --format json [--wait-for "<selector>"]Pass and to both runs.
--selector--include-aaabash
PORT=$(npx -y @accesslint/chrome@latest ensure | node -e 'process.stdin.on("data",d=>process.stdout.write(""+JSON.parse(d).port))')Stash模式(默认;针对未提交变更)。首先告知用户:"正在运行差异模式——将您的变更暂存以捕获基准版本,之后将恢复。您的工作区将完全恢复。" 如果执行失败,发出警告并退出。
git stash pushbash
git stash push -u -m "accesslint-diff-baseline"
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --update-snapshot
git stash pop && sleep 2
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --format json分支模式()。首先告知用户:"正在与分支进行差异对比——将检出该分支以捕获基准版本,之后将恢复。您的工作区将完全恢复。" 分支切换会触发重建,但不会刷新浏览器,因此CLI每次运行都会打开新标签页以读取当前构建结果。使用参数可等待重建完成后再执行审计;如果不使用该参数,需提示用户:构建过慢可能导致基准版本过时。
--branch <name><name>--wait-for "<selector>"bash
git diff --quiet && git diff --cached --quiet || git stash push -u -m "accesslint-diff-branch"
git checkout <branch>
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --update-snapshot [--wait-for "<selector>"]
git checkout - && git stash pop 2>/dev/null
npx -y @accesslint/cli@latest scan <target> --port "$PORT" --snapshot accesslint-diff --snapshot-dir /tmp --format json [--wait-for "<selector>"]两次运行均需传入和参数。
--selector--include-aaa2. Report
2. 报告
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)For each new violation: where (selector verbatim, plus if is present; don't fabricate), evidence, and fix (mechanical change or ).
file:line (symbol)sourceNEEDS HUMANDon't edit. For fixes, apply the mechanical ones and re-run to verify; for bulk work hand off to .
accesslint:accessibility-diffaccesslint:accessibility-fixAccessibility 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)对于每个新增违规项:需包含位置(保留原始选择器,如果存在则添加;请勿编造)、证据以及修复方案(自动修复或人工处理)。
sourcefile:line (symbol)NEEDS HUMAN请勿编辑报告内容。对于修复,先应用自动修复方案,然后重新运行进行验证;如需批量修复,请使用。
accesslint:accessibility-diffaccesslint:accessibility-fix3. Tear down
3. 清理
bash
npx -y @accesslint/chrome@latest stop --all # skip if ensure reported "managed":falsebash
npx -y @accesslint/chrome@latest stop --all # 如果ensure返回"managed":false则跳过此步骤Notes
注意事项
- determines the port; don't hardcode 9222.
ensure - CLI exit 2 means a bad URL or target, or the page never loaded; check the dev server.
- A target name resolves the same in both runs only if is unchanged across the stash or checkout. If your changes touch the config, pass an explicit URL.
accesslint.config.json - Stash mode: covers most HMR cases; if the baseline looks identical to current, add
sleep 2.--wait-for "<selector>" - Branch mode: no HMR; the CLI opens a fresh tab each run, and is the rebuild gate.
--wait-for - Large DOM changes between runs cause selector drift; re-run for the full picture.
accesslint:accessibility-scan
- 命令确定端口;请勿硬编码为9222。
ensure - CLI退出码为2表示URL或目标无效,或页面未加载;请检查开发服务器。
- 只有当在暂存或检出操作前后未发生变更时,目标名称在两次运行中的解析结果才会一致。如果您的变更涉及配置文件,请传入明确的URL。
accesslint.config.json - Stash模式:可覆盖大多数HMR(热模块替换)场景;如果基准版本与当前版本看起来完全相同,请添加
sleep 2参数。--wait-for "<selector>" - 分支模式:无HMR;CLI每次运行都会打开新标签页,参数是重建完成的触发条件。
--wait-for - 两次运行之间DOM发生较大变更会导致选择器偏移;如需完整情况,请重新运行。
accesslint:accessibility-scan