网页无障碍静态审查与修复

SKILL开发

原名 WCAG 无障碍静态审查(Scan-Fix-Verify) · 标识 wcag-accessibility-auditor

开发 未标注权限 许可证不明确
安装这个技能

按 WCAG 2.2 A/AA 扫描源码中的替代文本、键盘操作、对比度、ARIA 与标题层级等问题,按扫描、修复、验证三阶段推进,无需额外依赖,也能接入持续集成。

一句话选型结论

按资料字段整理

网页无障碍静态审查与修复是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_e42078a9/wcag-accessibility-auditor
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_e42078a9仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量5.7 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

0 项能力
上游给出的能力概览与适用场景
扫描页面无障碍违规修复图片替代文本检查键盘与对比度

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
网页无障碍静态审查与修复当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

5.7 KB
模型实际读到的说明书原文,来自技能仓库

> Adapted from alirezarezvani/claude-skills by Alireza Rezvani (MIT License)。
> 本技能为功能性改编:保留上游「WCAG 2.2 三阶段 Scan-Fix-Verify + 框架专属修复 + 合规报告」的方法论,重写为平台无关的中文工作流,并附两个纯 Python 标准库、零依赖脚本(scripts/a11y_scanner.py、scripts/contrast_checker.py);剥离了上游闭源参考文档与特定框架绑定,改为可直接套用的通用规则与对比度算法。

WCAG 无障碍静态审查

何时使用

  • 给代码库做无障碍体检,定位 WCAG 2.2 Level A/AA 违规;
  • 修复已知 a11y 问题,并验证修复未引入回归;
  • 把无障碍检查接进 CI/CD,防止回归;
  • 计算前景/背景颜色对比度是否达到 AA/AAA。

铁律:静态扫描是起点而非终点——它无法替代真实屏幕阅读器与浏览器键盘测试,结果应与人工复核(见下方「人工复核清单」)配合。

三阶段工作流

阶段 1 · Scan(扫描)——遍历源码,自动探测框架(React/Nextjs/Vue/Angular/Svelte/纯 HTML),按规则集输出问题清单(按 Critical/Major/Minor 分级)。

python scripts/a11y_scanner.py /path/to/project --format table
python scripts/a11y_scanner.py /path/to/project --format json --severity critical,major

阶段 2 · Fix(修复)——对每条违规给出对应框架的 before/after 修复示例(见下方「常见陷阱与正确做法」)。

阶段 3 · Verify(验证)——重新扫描确认修复,并用 --baseline 对比上次结果,确认无回归。

python scripts/a11y_scanner.py /path/to/project --baseline prev.json --ci   # 有 critical 则非零退出

严重度定义

严重度 含义 示例 SLA
Critical 整类用户无法使用 图片缺 alt、导航无法键盘操作 发布前必须修复
Major 显著障碍、体验下降 对比度不足、表单缺 label 当前迭代内修复
Minor 可用性摩擦 冗余 ARIA、标题层级不完美 下个迭代内修复

扫描覆盖的规则(a11y_scanner.py)

  • 图片 alt:<img> 缺少 alt(Critical,WCAG 1.1.1)。
  • 表单 label:<input> 缺少 label 关联或 aria-label/aria-labelledby(Critical,1.3.1/4.1.2)。
  • 键盘可达:<div>/<span>/<a> 的 onClick 没有 onKeyDown 或 role(Critical,2.1.1)。
  • ARIA 误用:role="button" 却无键盘处理/无 tabIndex(Major,2.1.1)。
  • 正 tabindex:tabIndex={>0} 破坏自然焦点顺序(Major,2.4.3)。
  • 空链接:<a> 无可访问名称(Major,2.4.4/4.1.2)。
  • 表格表头:<table> 缺少 <th>(Major,1.3.1)。
  • 视频字幕:<video> 缺少 <track>(Major,1.2.2)。
  • 标题层级跳跃:如 h1 直接跳到 h3(Major,1.3.1/2.4.6)。
  • 颜色对比:设置前景/填充色却未就近声明背景,对比度可能不足(Minor,1.4.3)。

颜色对比度(contrast_checker.py)

按 WCAG 相对亮度公式计算对比度,判定 AA(普通文本 4.5:1、大字 3:1)与 AAA(7:1 / 4.5:1)。

# 单对颜色
python scripts/contrast_checker.py --fg "#777777" --bg "#ffffff"
# 失败时给出替代色建议
python scripts/contrast_checker.py --fg "#777777" --bg "#ffffff" --suggest
# 扫描 CSS 文件,按规则块配对检测
python scripts/contrast_checker.py --file styles.css --json
# AAA 级别
python scripts/contrast_checker.py --fg "#595959" --bg "#ffffff" --level aaa

> 实测:#777777 白底对比度 4.48:1,普通文本 AA 不达标;#595959 白底 7.0:1,AA/AAA 双达标。

常见陷阱与正确做法

陷阱 正确做法
<div role="button"> 用原生 <button>,键盘处理免费获得
给所有元素加 tabindex="0" 仅交互元素需聚焦,优先原生元素
在非交互元素上加 aria-label 用 aria-labelledby 指向可见文本
用 display:none 隐藏屏幕阅读器内容 改用 .sr-only 类
仅靠颜色传达含义 加图标/文字/图案
仅用 placeholder 当 label 始终提供可见 <label>
outline:none 却不替代 用 :focus-visible 提供可见焦点指示
信息图 alt="" 信息图需描述性 alt
标题层级跳跃(h1→h3) 层级必须连续
onClick 无 onKeyDown 加键盘支持或改用原生元素
忽略 prefers-reduced-motion 动画包在 @media (prefers-reduced-motion: no-preference) 中

人工复核清单(静态扫描之外必做)

  • 纯键盘走查:Tab/Shift+Tab、Enter/Space、Esc 是否都可用。
  • 屏幕阅读器走查:NVDA/VoiceOver 是否能读出结构、链接与表单目的。
  • 视觉:放大 200% 不破版;文本对比度达标;焦点指示可见。
  • 表单:错误信息与输入关联(aria-describedby)。

CI 集成示例

- name: a11y-scan
  run: python scripts/a11y_scanner.py src --ci

说明

  • 两个脚本均仅依赖 Python 标准库,无需安装任何包,可直接在 CI 运行。
  • 上游仓库含 380+ 技能,本技能仅取其 a11y-audit 单技能做等价改编,不引入任何专有依赖。
  • 静态扫描基于源码文本匹配,对模板语法敏感;它用于拦住明显违规与回归,正式合规仍需结合真实辅助技术测试。

常见问题

5 问
答案由本站依据条目字段整理
网页无障碍静态审查与修复怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_e42078a9/wcag-accessibility-auditor。安装方式为未标注。装完刷新技能列表或重开客户端。

网页无障碍静态审查与修复支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

网页无障碍静态审查与修复权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

网页无障碍静态审查与修复收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

网页无障碍静态审查与修复用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。