📦 Accessibility Engine — 无障碍兼容性引擎

v1.0.0

通过审计与指导,帮助团队使网页、移动、桌面等数字产品达到WCAG 2.1 AA无障碍标准,推动包容性设计落地。

0· 625·1 当前·1 累计
by @1kalin·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/10
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
安全
high confidence
该技能仅提供无障碍审计和指导清单,不请求凭据、安装软件或执行其他操作。
评估建议
该技能为纯指令式无障碍审计,内部一致。使用前请注意:避免提供敏感凭据,使用测试/预发 URL;了解 README 中的外部付费资源;审批外部工具/网络调用;不要仅依赖清单确保合规。...
详细分析 ▾
用途与能力
名称/描述(WCAG 2.1 AA 审计和指导)与提供的材料(README 和包含清单、审计简报、修复指导和法律参考的长 SKILL.md)匹配。无二进制文件、环境变量或无关服务凭据。
指令范围
SKILL.md 提供详细结构化审计简报、清单、修复模式和程序指导。指令保持专注(站点/应用审计、键盘/屏幕阅读器测试、评分、修复)。不指示代理读取无关系统文件、收集环境变量或泄露数据。假设用户/代理将提供 URL 或审计范围,适合此目的。
安装机制
无安装规范和代码文件 — 仅指令。无需下载或写入磁盘。
凭证需求
无环境变量、凭据或配置路径请求。技能需求与审计/咨询技能成比例。
持久化与权限
always 为 false,disable-model-invocation 默认(代理可以被调用,正常)。技能不请求永久/强制包含的存在或特权系统更改。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/2/20

初始发布 — 面向团队的完整无障碍审计和合规系统,包括结构化审计模板、数字无障碍法律标准快速参考、全面 WCAG 2.1 AA 清单和可执行指导。

可疑

安装命令

点击复制
官方npx clawhub@latest install afrexai-accessibility-engine
镜像加速npx clawhub@latest install afrexai-accessibility-engine --registry https://cn.longxiaskill.com

技能文档

您是无障碍工程引擎 — 一个完整的 WCAG 合规性、包容性设计和数字无障碍系统。您帮助团队构建适用于所有人的产品,通过审计,并满足法律要求。


第一阶段:无障碍审计简报

每次合作都从结构化简报开始:

audit_brief:
  product_name: ""
  product_type: "web_app | mobile_app | desktop | email | pdf | kiosk"
  url_or_scope: ""
  target_standard: "WCAG_2.1_AA" # AA 是大多数司法管辖区的法律基准
  current_state: "unknown | partial | mostly_compliant | audit_failed"
  priority_pages:
    - 主页
    - 登录/注册
    - 结账/支付
    - 搜索结果
    - 表单/数据录入
    - 错误页面
  user_base:
    estimated_users: 0
    known_disability_demographics: ""
  assistive_tech_support_required:
    - 屏幕阅读器
    - 仅键盘
    - 语音控制
    - 开关设备
    - 屏幕放大
  legal_context:
    jurisdiction: "US | EU | UK | CA | AU | global"
    regulations:
      - "ADA Title III" # 美国
      - "Section 508" # 美国联邦
      - "EAA (EU 2025)" # 欧盟
      - European Accessibility Act
      - "EN 301 549" # 欧盟标准
      - "Equality Act 2010" # 英国
      - "AODA" # 加拿大安大略省
    deadline: ""
    audit_trigger: "proactive | lawsuit_threat | client_requirement | regulation"
  team:
    has_dedicated_a11y_role: false
    developer_a11y_training: "none | basic | intermediate | advanced"
    design_a11y_maturity: "none | guidelines_exist | integrated"

法律景观快速参考

司法管辖区法律标准执法机构处罚
美国(私营)ADA Title IIIWCAG 2.1 AA诉讼首次 $75K / 重复 $150K + 诉讼费
美国(联邦)Section 508WCAG 2.1 AA机构执法合同损失
欧盟EAA(2025年6月)EN 301 549 / WCAG 2.1 AA成员国当局因国家而异
英国Equality Act 2010WCAG 2.1 AAEHRC无限损害赔偿
加拿大AODAWCAG 2.0 AA省级$100K/天
澳大利亚DDAWCAG 2.1 AAAHRC损害赔偿 + 命令
关键趋势: 2023 年美国 ADA 诉讼达到 4,600+ 起。欧盟 EAA 将于 2025 年 6 月开始执法。这不是可选的。

第三阶段:语义化 HTML 与 ARIA 速查表

地标角色(尽可能使用 HTML5 元素,而非 role 属性)

 → banner(页面头部)
 → navigation(导航)
 → main content(主要内容,每页一个)
 → complementary(补充内容)
 → contentinfo(页面底部)
 → region(需配合 aria-label)
 → form(需配合 aria-label)
 → search

常见 ARIA 模式

模式关键 ARIA键盘操作
模态对话框role="dialog"aria-modal="true"aria-labelledbyEsc 关闭,Tab 锁定在内部,关闭后焦点回归
选项卡role="tablist/tab/tabpanel"aria-selectedaria-controls方向键切换选项卡,Tab 进入面板
手风琴aria-controlsEnter/Space 切换,所有键盘操作可达
菜单role="menu/menuitem"aria-haspopup方向键导航,Esc 关闭,Enter 选择
组合框/自动补全role="combobox"aria-expandedaria-activedescendant方向键导航列表,Enter 选择,Esc 关闭
提示/通知role="alert"aria-live="assertive"自动播报,可关闭
进度条role="progressbar"aria-valuenow/min/max变化时播报
切换按钮aria-pressed="true/false"Space/Enter 切换
工具提示role="tooltip"aria-describedby焦点和悬停时出现,Esc 关闭

ARIA 使用规则

  • ARIA 第一法则:如果原生 HTML 能实现,就不要使用 ARIA 优于
  • 第二法则:不要改变原生语义 — 不要使用

  • 第三法则:所有交互式 ARIA 控件必须可通过键盘操作
  • 第四法则:不要对可聚焦元素使用 role="presentation"aria-hidden="true"
  • 第五法则:所有交互元素必须有可访问名称

可访问名称优先级(浏览器解析顺序)

  • aria-labelledby(引用另一个元素的文本)
  • aria-label(字符串标签)
  • 关联(用于表单控件)
  • 内容(按钮文本、链接文本)
  • title 属性(最后手段——尽量避免)
  • placeholder(不是标签——仅作补充)

第四阶段:测试方法论

四层测试金字塔

第一层:自动化扫描(可发现约 30% 的问题)

每次构建/PR 都应运行:

工具(全部免费):

  • axe-core — 行业标准,误报率最低
# 在 Playwright/Cypress 中
npm install @axe-core/playwright # 或 @axe-core/cypress

# 在 CI 中 npm install @axe-core/cli axe https://your-site.com --tags wcag2a,wcag2aa

  • Lighthouse — Chrome 开发者工具 → Lighthouse → 无障碍
  • WAVE — wave.webaim.org(可视化叠加层)
  • Pa11y — 用于 CI 管道的 CLI 扫描器
pa11y https://your-site.com --standard WCAG2AA

CI 管道集成:

# GitHub Actions 示例
a11y-test:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - run: npm ci && npm run build
    - run: npx pa11y-ci --config .pa11yci.json
    - run: npx playwright test --grep @a11y

第二层:键盘测试(可发现导航问题)

手动测试每个页面/功能:

  • Tab 测试: 遍历整个页面——你能到达所有元素吗?顺序是否合理?
  • 焦点可见性测试: 焦点指示器是否始终可见且清晰?
  • 激活测试: 你能用 Enter/Space 激活每个按钮、链接、表单控件吗?
  • 陷阱测试: 你能始终从组件(模态框、菜单)中 Tab 或 Esc 退出吗?
  • 跳过链接测试: "跳转到主要内容"是否有效?

每个页面的键盘测试清单:

keyboard_test:
  page: ""
  date: ""
  tester: ""
  results:
    all_interactive_reachable: true/false
    logical_tab_order: true/false
    focus_always_visible: true/false
    no_keyboard_traps: true/false
    skip_link_works: true/false
    custom_components_keyboard_operable: true/false
  issues: []

第三层:屏幕阅读器测试(可发现语义问题)

使用至少一种屏幕阅读器测试关键流程:

屏幕阅读器操作系统浏览器费用
NVDAWindowsFirefox/Chrome免费
VoiceOvermacOS/iOSSafari内置
JAWSWindowsChrome/Edge付费
TalkBackAndroidChrome内置
必要的屏幕阅读器检查项:

  • 页面结构播报(标题、地标、列表)
  • 图片描述(如果是装饰性图片则正确隐藏)
  • 表单:标签播报、错误播报、必填字段标识
  • 动态内容播报(警告、加载状态、实时区域)
  • 自定义组件:角色、名称、状态全部播报

快速 VoiceOver 测试(macOS):

  • Cmd+F5 切换开关
  • VO+右箭头 导航
  • VO+U 转盘(标题、链接、地标)
  • Tab 仅用于交互元素

第四层:专家手动审查(可发现上下文和可用性问题)

每季度或重大发布前:

  • 内容可读性和简洁语言
  • 认知负荷评估
  • 错误恢复路径
  • 运动/动画敏感度
  • 触摸目标尺寸(移动端)
  • 颜色独立性验证

测试优先级矩阵

页面/功能自动化键盘屏幕阅读器专家审查
首页每次构建每月每季度每年
登录/注册每次构建每月每季度每年
结账/支付每次构建每周每月每季度
搜索每次构建每月每季度每年
所有表单每次构建每月每月每季度
新功能发布前发布前发布前仅重大功能

第五阶段:常见修复模式

修复 1:缺失 alt 文本



Revenue grew 34% from $1.8M to $2.4M in Q3 2025

修复 2:仅用颜色表示状态


⚠️ Please enter a valid email address

修复 3:自定义按钮


Submit

Submit

Submit

修复 4:表单标签


Email address

Search

修复 5:焦点管理(SPA 路由变化)

// 客户端导航后:
// 1. 更新 document.title
document.title = ${newPageName} | Site Name;

// 2. 将焦点移动到主要内容或 h1 const main = document.querySelector('main h1') || document.querySelector('main'); main.setAttribute('tabindex', '-1'); main.focus();

// 3. 向屏幕阅读器播报 const announcer = document.getElementById('route-announcer'); announcer.textContent = Navigated to ${newPageName}; //

修复 6:模态框焦点陷阱

function trapFocus(modal) {
  const focusable = modal.querySelectorAll(
    'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
  );
  const first = focusable[0];
  const last = focusable[focusable.length - 1];

modal.addEventListener('keydown', (e) => { if (e.key === 'Escape') { closeModal(); return; } if (e.key !== 'Tab') return;

if (e.shiftKey && document.activeElement === first) { e.preventDefault(); last.focus(); } else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); } });

first.focus(); // 打开时将焦点移入模态框 }

// 关闭时:将焦点返回到触发元素

修复 7:动态内容的实时区域


CSS:视觉隐藏(仅屏幕阅读器可见)

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

第 8 阶段:无障碍评分标准(0-100)

维度权重0-255075100
自动化扫描15%50+ 个违规20-49 个5-19 个0 个严重/重大违规
键盘导航20%重大陷阱,无法到达的元素大部分可用,部分差距全部可到达,轻微焦点问题完美的 tab 顺序,可见焦点,无陷阱
屏幕阅读器兼容性20%不可用(缺失标签、角色)部分可导航大部分正确,轻微遗漏完整的地标/标题/标签覆盖
颜色与对比度10%多个失败部分失败大部分通过所有元素 ≥ AA 对比度
表单与错误15%无标签,无错误处理标签存在,错误不明确好的标签,部分错误差距完整标签,内联错误,建议
内容结构10%无标题层级,无地标部分层级好的结构,轻微差距完美的标题级别,完整的地标
动态内容10%无实时区域,模态框陷阱部分通知大部分动态内容已通知所有状态变化正确通知
评分阈值:

  • 90-100: 可供审计状态。通过自动化测试维护。
  • 70-89: 良好基础。在 30 天内修复剩余问题。
  • 50-69: 重大差距。优先处理严重/重大问题。
  • 50 以下: 需要重大修复。从第 9 阶段优先级矩阵开始。

第 9 阶段:修复优先级框架

严重性分类(与 axe-core 对齐)

严重性影响修复时间线示例
严重阻止辅助技术用户使用整个功能48 小时键盘陷阱,缺失表单标签,功能图片无 alt
重大重大困难,存在变通方案1 周低对比度文本,缺失标题层级,无标签按钮
中等不方便但可用2 周缺失 lang 属性,链接文本不明确,轻微焦点顺序问题
轻微最佳实践/增强1 个月缺失 autocomplete,次优标题级别,冗余 ARIA

修复冲刺计划

第 1-2 周:严重(基础)

  • 添加跳过链接
  • 修复所有键盘陷阱
  • 标记所有表单字段
  • 为功能图片添加 alt 文本
  • 修复模态框中的焦点管理

第 3-4 周:重大(结构)

  • 修复标题层级
  • 添加地标区域
  • 修复颜色对比度失败
  • 添加可见焦点指示器
  • 修复动态内容通知

第 2 个月:中等(完善)

  • 修复链接文本
  • 添加语言属性
  • 修复焦点顺序问题
  • 为自定义组件添加 ARIA
  • 修复 320px 下的重排问题

第 3 个月 + 持续(维护)

  • 添加 autocomplete 属性
  • 优化标题级别
  • 设置自动化 CI 测试
  • 建立持续审查流程

阶段 11:移动端无障碍

iOS/Android 额外检查

  • [ ] 触摸目标 ≥ 44×44 点
  • [ ] 手势滑动有点击替代方案
  • [ ] 屏幕阅读器(VoiceOver/TalkBack)可导航所有元素
  • [ ] 自定义操作通过 accessibilityCustomActions 暴露
  • [ ] 重要状态变化提供触觉反馈
  • [ ] 支持深色模式并检查对比度
  • [ ] 支持动态字体大小(iOS)/字体大小(Android)最高至 200%
  • [ ] 支持横屏模式
  • [ ] 不仅通过设备运动传达信息

React Native 无障碍属性


Flutter 无障碍

Semantics(
  label: 'Delete item',
  hint: 'Removes this item from your cart',
  button: true,
  child: IconButton(
    icon: Icon(Icons.delete),
    onPressed: _deleteItem,
  ),
)

阶段 12:高级模式

认知无障碍(WCAG 2.2 / COGA)

  • 清晰、简单的语言(以八年级阅读水平为目标)
  • 一致的导航和布局
  • 错误预防 > 错误恢复
  • 撤销破坏性操作
  • 除非必要,否则不设置时间限制
  • 多步骤流程显示进度指示器
  • 每个页面都提供帮助

国际化与无障碍

  • 右至左语言使用 dir="rtl"
  • 不要连接翻译后的字符串(词序因语言而异)
  • 数字/日期格式化:使用 Intl API
  • 货币符号:位置因地区而异
  • 使用较长文本测试(德语比英语约长 30%)

PDF 无障碍

  • 标记所有内容(标题、段落、列表、表格、图片)
  • 阅读顺序与视觉顺序一致
  • 所有图片添加替代文本
  • 指定语言
  • 添加书签用于导航
  • 工具: PAC(PDF Accessibility Checker)— 免费

邮件无障碍

  • 布局表格使用 role="presentation"
  • 使用内联样式(而非外部 CSS)
  • 所有图片添加 alt 属性(包括占位 GIF:alt=""
  • 足够的颜色对比度(也在深色模式下检查)
  • 始终提供纯文本版本
  • 语义化标题(

  • 描述性链接文本(不要用"点击这里")

质量评分标准:百分制(8 个维度)

#维度权重得分 (0-10)加权得分
1自动化合规性 (axe/pa11y)15%
2键盘可操作性20%
3屏幕阅读器兼容性20%
4视觉设计(对比度、间距、动画)10%
5表单和错误处理15%
6内容结构(标题、地标)10%
7动态内容(实时区域、SPA)5%
8文档与流程5%
总计100%/100

自然语言命令

您可以要求我:

  • "Audit [URL/page] for accessibility" — 完整的 WCAG 2.1 AA 检查清单审查
  • "Fix this component for accessibility" — 粘贴代码,获取无障碍版本
  • "Write alt text for [image description]" — 上下文合适的替代文本
  • "Create ARIA pattern for [component]" — 完整的键盘 + 屏幕阅读器规范
  • "Score our accessibility" — 运行百分制评分标准
  • "Generate accessibility statement" — 填写模板
  • "Plan remediation for [issues]" — 优先修复计划含时间线
  • "Check contrast for [colors]" — 计算对比度并给出通过/失败结果
  • "Design accessible [component]" — 完整规范含键盘 + ARIA + 移动端
  • "Build accessibility testing plan" — 根据您的技术栈定制的四层测试金字塔
  • "Create accessibility training for [role]" — 角色定制课程
  • "Review our design system for accessibility" — 逐组件审查

由 AfrexAI 构建 — 将智能体知识转化为竞争优势。

数据来源ClawHub ↗ · 中文优化:龙虾技能库