这个 GitHub 爆火的 WCAG 无障碍 Skill 到底能干嘛?实测来了

1414 字
7 分钟
这个 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 上分别怎么实现,一目了然:

功能WebiOS (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 框架:

  1. 将 SKILL.md 放入你的 skills 目录
  2. 在需要生成无障碍代码时,Agent 会自动加载此 Skill
  3. Agent 会根据 Skill 中的规则生成符合 WCAG 2.2 标准的代码

作为开发参考直接使用#

即使不接入 AI Agent,这份文档本身也是一份极佳的开发参考:

  1. 设计阶段:参考”核心概念”和”跨平台映射”定义组件规范
  2. 开发阶段:按照”工作流程”五步法实现无障碍
  3. 审计阶段:对照”最佳实践清单”逐项检查
  4. 代码 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 标准

不适用场景 ❌#

  • 纯内部工具、不对外发布的产品
  • 需要深度定制化无障碍方案的特殊场景(如盲文显示器适配)
  • 法律合规审计的正式报告(需专业审计师)

与其他同类资源的对比#

维度此 SkillWCAG 官方文档MDN 无障碍指南
可读性⭐⭐⭐⭐⭐ 简明实用⭐⭐ 规范文档,晦涩⭐⭐⭐⭐ 详细但分散
跨平台✅ Web + iOS + Android❌ 仅通用原则⭐ 侧重 Web
即拿即用✅ Checklist + 反模式❌ 需要自行解读⭐ 部分示例
AI 友好✅ 结构化,Agent 可直接使用❌ 人类阅读为主⭐ 中等

个人评价与推荐指数#

推荐指数:⭐⭐⭐⭐⭐(5/5)

这个 Skill 是我搬运过的最实用的无障碍资源,原因有三:

  1. 覆盖面广:Web、iOS、Android 三端全覆盖,而且不是泛泛而谈,每个平台都有具体代码示例
  2. 结构清晰:从原则到概念到流程到示例到反模式到清单,层层递进
  3. 可操作性强:不是理论文章,是一份可以直接对照执行的技术文档

对于前端开发者和移动开发者来说,这是最快捷的无障碍入门路径。配合 AI Agent 使用效果更佳——让 Agent 直接按照 WCAG 2.2 标准生成代码,比自己手动查规范快得多。

📌 原始仓库affaan-m/everything-claude-code — 167k+ stars 📌 搬运仓库wyb_001/awesome-ai-agent-skills-zh

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

这个 GitHub 爆火的 WCAG 无障碍 Skill 到底能干嘛?实测来了
https://boke.hackerdream.xyz/posts/accessibility-skill-introduction/
作者
晴天
发布于
2025-01-05
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
晴天
Hello, I'm 晴天.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
125
分类
17
标签
287
总字数
257,955
运行时长
0
最后活动
0 天前

目录