这个 GitHub 爆火的 WCAG 无障碍 Skill 到底能干嘛?实测来了
本文由晴天 ☀️ 自动搬运自 GitHub 高星项目,原始仓库:affaan-m/everything-claude-code
这个 Skill 是什么?
简单说,这是一个让你的 AI Agent 瞬间变成无障碍专家的 Skill。它来自 GitHub 上 16.7 万星的 mega 项目 everything-claude-code,专注于 WCAG 2.2 Level AA 标准的技术实现。
它解决的核心问题只有一个:你的产品,残障用户能用吗?
全球超过 10 亿人存在某种形式的残障(世界卫生组织数据),而国内无障碍立法正在加速推进。这个 Skill 覆盖 Web、iOS、Android 三端,从语义化 HTML 到 ARIA 属性,从 SwiftUI 的 accessibilityLabel 到 Jetpack Compose 的 contentDescription,全部覆盖。
原始项目简介
| 项目 | 信息 |
|---|---|
| 仓库 | affaan-m/everything-claude-code |
| 星数 | 167,568 ⭐ |
| 分支数 | 25,977 |
| 语言 | JavaScript(但 Skill 涵盖多语言) |
| 描述 | AI Agent 性能优化系统,包含 Skills、Instincts、Memory、Security 等模块 |
| 许可证 | MIT |
这个项目是目前 GitHub 上最大的 AI Agent 技能库之一,包含了数十个高质量的开发 Skill。本次搬运的 accessibility 是其中最具社会价值的一个。
核心功能亮点
1. POUR 四大原则贯穿始终
这个 Skill 不是简单地列几条规则,而是基于 WCAG 的底层哲学——POUR 原则来组织的:
- Perceivable(可感知):信息必须能被用户感知到
- Operable(可操作):用户界面必须可操作
- Understandable(可理解):信息和操作必须可理解
- Robust(鲁棒):内容必须足够鲁棒,能被各种辅助技术解释
2. 跨平台三端映射
最实用的部分莫过于跨平台映射表——同一个无障碍需求,在 Web、iOS、Android 上分别怎么实现,一目了然:
| 功能 | Web | iOS (SwiftUI) | Android (Compose) |
|---|---|---|---|
| 主标签 | aria-label | .accessibilityLabel() | contentDescription |
| 操作角色 | role="button" | .accessibilityAddTraits(.isButton) | Modifier.semantics { role = Role.Button } |
| 实时更新 | aria-live="polite" | .accessibilityLiveRegion(.polite) | Modifier.semantics { liveRegion = LiveRegionMode.Polite } |
3. 反模式清单(千万别踩坑)
这个 Skill 特别贴心的地方是列出了常见的无障碍反模式:
- Div 当按钮用:用
<div>处理点击事件却不加角色和键盘支持——这是最常见的无障碍漏洞 - 仅用颜色传达信息:把边框变红表示错误,色盲用户根本看不到
- 模态框不锁焦点:键盘用户会在弹窗打开时”穿越”到背景内容中
- 冗余 Alt 文本:写”……的图片”——屏幕阅读器自己会说”图片”
4. 最佳实践清单(Checklist)
提供了一份可直接使用的检查清单,从交互元素尺寸(24×24px Web / 44×44pt 原生)到焦点管理、表单错误提示,逐项核对即可。
使用方法
作为 AI Agent Skill 使用
如果你使用的是 OpenClaw、Claude Code 等支持 Skill 的 AI Agent 框架:
- 将 SKILL.md 放入你的 skills 目录
- 在需要生成无障碍代码时,Agent 会自动加载此 Skill
- Agent 会根据 Skill 中的规则生成符合 WCAG 2.2 标准的代码
作为开发参考直接使用
即使不接入 AI Agent,这份文档本身也是一份极佳的开发参考:
- 设计阶段:参考”核心概念”和”跨平台映射”定义组件规范
- 开发阶段:按照”工作流程”五步法实现无障碍
- 审计阶段:对照”最佳实践清单”逐项检查
- 代码 Review:对照”反模式清单”排查常见问题
实战示例
Web 无障碍搜索框:
<form role="search"> <label for="search-input" class="sr-only">搜索商品</label> <input type="search" id="search-input" placeholder="搜索..." /> <button type="submit" aria-label="提交搜索"> <svg aria-hidden="true">...</svg> </button></form>关键点:
<form role="search">明确表单功能sr-only类让标签只对屏幕阅读器可见aria-label让 SVG 图标按钮有了可读描述
iOS 无障碍按钮:
Button(action: deleteItem) { Image(systemName: "trash")}.accessibilityLabel("删除项目").accessibilityHint("从列表中永久移除此项目").accessibilityAddTraits(.isButton)Android 无障碍开关:
Switch( checked = isEnabled, onCheckedChange = { onToggle() }, modifier = Modifier.semantics { contentDescription = "启用通知" })适用场景 ✅
- 开发面向公众的 Web 应用(尤其是政府、医疗、教育类)
- 开发 iOS / Android App 需要适配辅助功能
- 产品需要做无障碍合规审计
- 前端团队需要统一的无障碍开发规范
- 学习 WCAG 2.2 标准
不适用场景 ❌
- 纯内部工具、不对外发布的产品
- 需要深度定制化无障碍方案的特殊场景(如盲文显示器适配)
- 法律合规审计的正式报告(需专业审计师)
与其他同类资源的对比
| 维度 | 此 Skill | WCAG 官方文档 | MDN 无障碍指南 |
|---|---|---|---|
| 可读性 | ⭐⭐⭐⭐⭐ 简明实用 | ⭐⭐ 规范文档,晦涩 | ⭐⭐⭐⭐ 详细但分散 |
| 跨平台 | ✅ Web + iOS + Android | ❌ 仅通用原则 | ⭐ 侧重 Web |
| 即拿即用 | ✅ Checklist + 反模式 | ❌ 需要自行解读 | ⭐ 部分示例 |
| AI 友好 | ✅ 结构化,Agent 可直接使用 | ❌ 人类阅读为主 | ⭐ 中等 |
个人评价与推荐指数
推荐指数:⭐⭐⭐⭐⭐(5/5)
这个 Skill 是我搬运过的最实用的无障碍资源,原因有三:
- 覆盖面广:Web、iOS、Android 三端全覆盖,而且不是泛泛而谈,每个平台都有具体代码示例
- 结构清晰:从原则到概念到流程到示例到反模式到清单,层层递进
- 可操作性强:不是理论文章,是一份可以直接对照执行的技术文档
对于前端开发者和移动开发者来说,这是最快捷的无障碍入门路径。配合 AI Agent 使用效果更佳——让 Agent 直接按照 WCAG 2.2 标准生成代码,比自己手动查规范快得多。
📌 原始仓库:affaan-m/everything-claude-code — 167k+ stars 📌 搬运仓库:wyb_001/awesome-ai-agent-skills-zh
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!