accessibility-audit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseThis is a full WCAG 2.2 accessibility audit using WCAG-EM. It defines scope, samples representative pages and flows, runs both evaluation tiers, and produces one conformance report:
- Automated tier: (the rule engine).
accesslint:accessibility-scan - Semi-automated manual tier: (keyboard, focus, state, reflow, and the rest the engine can't decide).
accesslint:accessibility-inspect
Assess; don't fix () or diff (). One page with no sampling is a , not an audit. This skill delegates each sampled page to its own subagent (step 4), so it stays light on large samples.
accesslint:accessibility-fixaccesslint:accessibility-diffaccessibility-scanThe full doctrine — WCAG-EM in detail, the severity rubric with examples, the no-proxy boundary, grounding — is in . The rules needed to run this skill are below.
../shared/methodology.md这是一项采用WCAG-EM方法论的完整WCAG 2.2无障碍审计服务。它会定义审计范围、选取代表性页面与流程,运行两个评估层级,并生成一份合规性报告:
- 自动化层级:(规则引擎)。
accesslint:accessibility-scan - 半自动化手动层级:(键盘操作、焦点、状态、重排版等引擎无法判定的内容)。
accesslint:accessibility-inspect
仅做评估,不修复(使用)或对比差异(使用)。无需抽样的单页面检查属于,而非审计。该技能会将每个抽样页面委托给独立的子Agent(步骤4),因此在处理大量样本时仍能保持轻量化。
accesslint:accessibility-fixaccesslint:accessibility-diffaccessibility-scan完整的准则细节——WCAG-EM详解、含示例的严重性评估标准、无代理边界、基础规则——请查看。运行此技能所需的规则如下。
../shared/methodology.mdGrading
分级标准
Each finding carries a severity and an evidence basis. Keep them separate.
- Evidence basis: ● verified (deterministic, with cited proof) · ◐ flagged (evidence captured, a person decides) · ○ human-required (needs assistive technology or lived experience; handed off, not emulated).
- Severity: critical (blocks a core task) · serious (major barrier) · moderate (friction, still completable) · minor (polish).
每个发现都会标注严重性和证据基础,二者需区分开。
- 证据基础:● 已验证(确定性结论,附引用依据) · ◐ 已标记(已收集证据,需人工判定) · ○ 需人工介入(需要辅助技术或实际使用经验;转交人工,不做模拟)。
- 严重性:critical(核心任务受阻) · serious(主要障碍) · moderate(存在摩擦,但仍可完成) · minor(优化细节)。
WCAG-EM steps
WCAG-EM执行步骤
Run in order and state what you did at each.
-
Scope. State the target and its boundary, the goal (default WCAG 2.2 AA;adds AAA), the technologies in use, and the assistive-technology baseline the human handoff should cover. You scope that baseline; you don't test it.
--level AAA -
Explore. Use Glob/Grep to find routes, templates, and shared components. Note key flows, content types, and stateful UI (modals, wizards, empty and error states).targets are a starting point.
accesslint.config.json -
Sample. Choose a structured set (entry page, each key flow end to end, every page with a new template or complex widget, and the important states) and a small random set. Say what's in each and why.
-
Evaluate. Delegate each sampled page or state to its ownso it runs in its own context and returns its findings; independent pages can run in parallel. Each Task:
Task- runs (
accesslint:accessibility-scan) first, then--format jsonagainst the same rendered state — same URL,accesslint:accessibility-inspect,--selector— passing scan's results (or at least the list of SCs the engine covered) into the inspect run;--wait-for - dedups by SC ownership before driving, not after: owns rule-detectable criteria,
accessibility-scanowns interaction and judgment criteria; inspect never re-checks an engine-owned SC, and where both still cover the same SC at the same element,accessibility-inspect's result wins;accessibility-scan - returns a structured block: per finding, the SC, severity, evidence basis (●/◐/○), location, tier, evidence, and fix or handoff, plus this page's per-SC ledger (verified / flagged / engine-owned / N/A / not exercised).
Aggregate the returned blocks in step 5. For a one- or two-page scope, run the tiers inline instead of spawning a.TaskA shared browser is optional and improves selector matching across tiers, but it's a pre-wired precondition, not something this skill sets up at runtime: the browser MCP binds to its Chrome at server start (or--autoConnect), with the engine pointed at the same port. Without it (the default), each Task runs both tiers against the same URL and--browser-urlgate and dedups by SC ownership.--wait-for - runs
-
Report. Aggregate into the format below. Conformance has three states: pass or fail only for ● findings; everything ◐ or ○ — and every SC no page exercised — is undetermined and goes to a human. One sampled page failing an SC fails it for the whole scope at that level. Don't report conformance you can't support, and don't let a not-exercised SC read as a pass. Keep the ledger to counts and bare SC lists — group undetermined SCs by shared reason, one clause per group — and spend the report's words on failures, flags, and handoffs: a pass is its SC number in the list, with at most one sentence of narration for the whole passing set.
按顺序执行,并说明每个步骤的操作内容。
-
范围定义。明确目标及其边界、审计目标(默认WCAG 2.2 AA级;添加可升级为AAA级)、所使用的技术,以及人工转交环节应覆盖的辅助技术基准。由你确定该基准范围,无需对其进行测试。
--level AAA -
探索调研。使用Glob/Grep查找路由、模板和共享组件。记录关键流程、内容类型和有状态的UI(模态框、向导、空状态和错误状态)。中的目标可作为起始参考。
accesslint.config.json -
样本选取。选择一组结构化样本(入口页面、每个关键流程的完整链路、所有包含新模板或复杂组件的页面,以及重要状态)和一组小型随机样本。说明每个样本的内容及选取原因。
-
评估执行。将每个抽样页面或状态委托给独立的,使其在独立上下文环境中运行并返回结果;独立页面可并行执行。每个Task需完成:
Task- 先运行(
accesslint:accessibility-scan格式),再针对相同渲染状态(同一URL、--format json、--selector条件)运行--wait-for,并将扫描结果(或至少引擎覆盖的准则列表)传入检查环节;accesslint:accessibility-inspect - 在执行前而非执行后按准则归属去重:负责可通过规则检测的准则,
accessibility-scan负责交互和需主观判断的准则;检查环节不得重新验证引擎已覆盖的准则,若两者在同一元素上覆盖同一准则,以accessibility-inspect的结果为准;accessibility-scan - 返回结构化内容:每个发现需包含准则编号、严重性、证据基础(●/◐/○)、位置、评估层级、证据、修复建议或转交说明,此外还需包含该页面的准则台账(已验证/已标记/引擎覆盖/不适用/未测试)。
在步骤5中汇总返回的结构化内容。若审计范围为1-2个页面,可直接运行两个层级,无需创建。Task共享浏览器为可选配置,可提升跨层级的选择器匹配精度,但这是预先配置的前提条件,而非该技能在运行时设置的内容:浏览器MCP在服务器启动时绑定到Chrome(或--autoConnect),引擎指向同一端口。若未配置共享浏览器(默认状态),每个Task会针对同一URL和--browser-url条件运行两个层级,并按准则归属去重。--wait-for - 先运行
-
报告生成。按以下格式汇总内容。合规状态分为三类:仅对●类发现标记通过或失败;所有◐/○类发现,以及未测试的准则,均标记为不确定并转交人工。只要有一个抽样页面未通过某准则,则整个审计范围内该准则的合规状态为失败。不得报告无依据的合规结论,且不能将未测试的准则视为通过。台账仅保留统计数量和准则编号列表——按共同原因对不确定准则分组,每组用一句话说明——报告重点描述失败、标记和转交内容:通过的准则只需列出编号,整个通过集合最多用一句话说明。
Report format
报告格式
undefinedundefinedAccessibility audit — <product / scope>
无障碍审计 — <产品/范围>
WCAG 2.2 Level AA · WCAG-EM · <N> pages/states sampled
WCAG 2.2 AA级 · WCAG-EM · 抽样<N>个页面/状态
Scope
审计范围
- Target & boundary: <…> Goal: WCAG 2.2 AA
- Technologies in use: <…>
- AT baseline (for the human handoff, not tested here): <SR+browser pairs, keyboard-only, …>
- 目标与边界:<…> 审计目标:WCAG 2.2 AA级
- 使用的技术:<…>
- 辅助技术基准(供人工测试使用,此处不做测试):<屏幕阅读器+浏览器组合、仅键盘操作等>
Sample
样本说明
- Structured: <page/state> — <why> (×N)
- Random: <page/state>
- 结构化样本:<页面/状态> — <选取原因> (共×N个)
- 随机样本:<页面/状态>
Conformance (per success criterion)
合规性(按成功准则划分)
- Pass ●: <n> · Fail ●: <n> · Undetermined (◐/○/not exercised): <n> · N/A: <n>
- Fail ●: <SCs> Pass ●: <SCs> N/A: <SCs>
- Undetermined: <SCs (shared reason)> · <SCs (shared reason)>
- Pass/fail is asserted only for ● criteria; ◐/○ and not-exercised are undetermined.
- 通过 ●:<n> · 失败 ●:<n> · 不确定(◐/○/未测试):<n> · 不适用:<n>
- 失败 ●:<准则编号> 通过 ●:<准则编号> 不适用:<准则编号>
- 不确定:<准则编号(共同原因)> · <准则编号(共同原因)>
- 仅对●类准则判定通过/失败;◐/○类及未测试准则均为不确定。
Findings — by severity, tagged by evidence basis
发现结果 — 按严重性排序,标记证据基础
Critical
Critical(严重)
- [●] <barrier> — SC x.x.x — where: <selector / file:line> — tier: scan|inspect — →
accessibility-fix - [◐] <barrier> — SC x.x.x — evidence: <screenshot / measurement> — confirm: <what a person checks>
- [●] <障碍描述> — 准则x.x.x — 位置:<选择器 / 文件:行号> — 评估层级:scan|inspect — → 建议使用修复
accessibility-fix - [◐] <障碍描述> — 准则x.x.x — 证据:<截图/测量数据> — 需确认:<人工检查内容>
Serious / Moderate / Minor
Serious / Moderate / Minor(严重/中等/轻微)
[same shape]
[格式同上]
Human-required (○) — the testing handoff
需人工介入(○)—— 测试转交项
- <what only AT or lived experience reveals> — SC x.x.x needs: <functional ability + AT, per Section 508 FPC> flow: <sampled flow>
- <仅辅助技术或实际使用经验可发现的问题> — 准则x.x.x 需求:<功能能力+辅助技术,符合Section 508 FPC标准> 流程:<抽样流程>
Recommendations
建议
- Root-cause / pattern fixes (one change that clears many instances) → hand to .
accessibility-fix - What to send to human and AT testing, and on which flows.
- Wire into CI for the sampled targets.
accesslint:accessibility-diff
undefined- 根因/模式修复(一处修改解决多个案例)→ 转交处理。
accessibility-fix - 需转交人工和辅助技术测试的内容及对应流程。
- 在CI中集成用于抽样目标的检查。
accesslint:accessibility-diff
undefinedNotes
注意事项
- Assess, don't fix (use ) or diff (use
accessibility-fix). Don't emulate human experience: usability is ◐, lived experience is ○ and handed off.accessibility-diff - Conformance is per SC across the whole sample. Don't average failures away.
- Two browsers can drift selectors; prefer a shared browser for ●-precision, otherwise note that dedup is best-effort.
- State what wasn't covered (pages outside the sample, ○ criteria). Omitting it reads as "all clear".
- Use and
list_rulesfor engine-rule metadata.explain_rule
- 仅做评估,不修复(使用)或对比差异(使用
accessibility-fix)。不要模拟人类使用体验:可用性问题标记为◐,实际使用经验相关问题标记为○并转交人工。accessibility-diff - 合规性按准则在整个样本中的表现判定,不得平均失败案例。
- 不同浏览器的选择器可能存在差异;为保证●级精度,建议使用共享浏览器,否则需说明去重仅为最佳效果。
- 明确说明未覆盖的内容(样本外的页面、○类准则)。遗漏会被视为“无问题”。
- 可使用和
list_rules获取引擎规则的元数据。explain_rule