本文へ移動
cccskills
無料GitHub で公開

accessibility

设计无障碍可访问的界面时使用。适用于满足 WCAG 标准、键盘导航、屏幕阅读器支持。优先使用 WCAG 2.2 AA 级标准 + 键盘 + 焦点 + 对比度 + ARIA。

インストール方法を見る

含まれるファイル(5)

  • SKILL.md6.6 KB
  • references/accessibility-guide.md1.4 KB
  • templates/a11y-checklist-template.md594 B
  • templates/aria-cheatsheet.md574 B
  • templates/contrast-table-template.md570 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

可访问性(Accessibility / A11y)

参考来源:WCAG 2.2、The Accessible UI/UX Design Playbook 2026

适用场景

  • 政府 / 教育 / 公共服务产品(合规要求)
  • 国际化产品(欧美市场)
  • 用户群体多样(老人 / 视障 / 听障)
  • 提升整体产品质量

核心原则(WCAG POUR)

Perceivable(可感知)
  内容必须能被所有用户感知
  - 文本替代(图标 alt)
  - 字幕(视频)
  - 颜色不是唯一信息载体

Operable(可操作)
  界面必须能被所有用户操作
  - 键盘可用
  - 足够时间
  - 不引发癫痫(避免快速闪烁)
  - 易于导航

Understandable(可理解)
  内容和操作必须能被理解
  - 语言标识
  - 可预测的行为
  - 输入帮助

Robust(健壮)
  必须兼容辅助技术
  - 语义 HTML
  - ARIA 属性
  - 屏幕阅读器友好

WCAG 等级

A  (最低):基本可访问性
AA (推荐):行业标准 ← 大部分产品的目标
AAA(最高):高级别要求

本 skill 默认 AA 级。

核心检查清单

视觉

□ 文字对比度 ≥ 4.5:1(正文,AA 级)
□ 文字对比度 ≥ 3:1(大文字 18px+ 或 14px+ bold)
□ 非文字元素对比度 ≥ 3:1(图标、边框、按钮边)
□ 颜色不是唯一信息载体(错误状态除红色外加 ✗ 图标)
□ 文字可缩放至 200% 不破坏布局
□ 不依赖颜色区分链接(加下划线)

键盘

□ 所有可交互元素键盘可达(Tab 键)
□ Tab 顺序符合视觉顺序
□ 焦点状态明显(不是浏览器默认的 outline:none)
□ 没有键盘陷阱(能进去能出来)
□ 键盘快捷键可关闭/重映射
□ Skip Link(跳过导航直达内容)

触控

□ 触控目标最小 44×44px
□ 相邻可点击元素间距 ≥ 8px
□ 不依赖手势(提供按钮替代)

语义和结构

□ 用语义 HTML(h1-h6/nav/main/article 而非 div)
□ 标题层级正确(不跳级)
□ 表单字段有 label
□ 图片有 alt(装饰图 alt="")
□ 图标有 aria-label 或文字
□ 动态内容用 aria-live 通知

动效

□ 支持 prefers-reduced-motion 媒体查询
□ 没有快速闪烁(< 3 次/秒)
□ 自动播放可暂停
□ 视差滚动可关闭

表单

□ 错误信息不只用颜色(加图标 + 文字)
□ 错误信息有 aria-describedby 关联
□ 必填字段明确标识
□ 提示文字(placeholder)不替代 label
□ 表单可被键盘完全填写和提交

媒体

□ 视频有字幕
□ 音频有文字版本
□ 图表有数据替代(表格)

焦点环(Focus Ring)设计

不要做:
  - 移除 outline(outline: none)
  - 用极淡的颜色

要做:
  - 焦点可见(蓝色 outline / 阴影)
  - 焦点宽度 ≥ 2px
  - 焦点对比度 ≥ 3:1
  - 提供 :focus-visible 区分键盘和鼠标

示例 CSS:
.button:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

ARIA 常见用法

aria-label="关闭"            # 图标按钮
aria-labelledby="title-id"   # 引用标题
aria-describedby="desc-id"   # 引用描述
aria-hidden="true"           # 装饰元素,屏幕阅读器跳过
aria-live="polite"           # 动态通知(不打断)
aria-live="assertive"        # 紧急通知(打断)
aria-expanded="true|false"   # 折叠状态
aria-controls="panel-id"     # 控制的元素
role="alert"                 # 警告
role="dialog"                # 对话框

输出格式

## 可访问性检查:[页面/组件]

### WCAG 等级目标:AA

### 视觉
✅ 主文本对比度:6.2:1(黑#1a1a1a on 白)
✅ 副文本对比度:4.6:1
⚠️ 灰色 placeholder:3.2:1(达到 AA 大文字标准)

### 键盘
✅ 所有交互元素 Tab 可达
✅ 焦点环:2px 蓝色 outline
✅ 无键盘陷阱
✅ Skip Link 已设置

### 触控
✅ 按钮:48px × 48px
✅ 列表项:56px 高
✅ 间距:12px

### 语义
✅ 使用 nav/main/article
✅ 标题层级:h1 → h2 → h3
✅ 所有图标有 aria-label

### 动效
✅ 支持 prefers-reduced-motion
✅ 无快速闪烁

### 待修复
- ⚠️ 灰色 placeholder 对比度偏低,建议加深到 4.5:1
- ⚠️ 头像图片缺少 alt 属性

工作流程

1. 设计完成后做可访问性检查
2. 用核心检查清单逐项检查
3. 用工具验证(axe DevTools / WAVE)
4. 修复问题(按严重程度)
5. 输出可访问性报告
6. 转交前端实现

工具推荐

设计阶段:
  - Stark(Figma 插件):对比度检查
  - Contrast Ratio Calculator

代码阶段:
  - axe DevTools(浏览器扩展)
  - WAVE(浏览器扩展)
  - Lighthouse(Chrome DevTools)
  - NVDA / VoiceOver(屏幕阅读器实测)

质量自检

□ 是否符合 WCAG 2.2 AA 级
□ 所有交互元素键盘可达
□ 焦点状态明显
□ 对比度满足要求
□ 颜色不是唯一信息
□ 表单有 label 和错误提示
□ 图标有文字替代
□ 支持 reduced-motion
□ 用工具实测过(不是只看清单)

常见坑

  1. outline: none 没有替代——键盘用户失去焦点反馈
  2. 只用颜色表达状态——色盲用户看不出错误
  3. 对比度刚好达标——4.5:1 在某些屏幕上还是难读
  4. placeholder 当 label 用——视障用户找不到字段名
  5. aria-label 翻译错误——中文产品用了英文 label
  6. 图标按钮没有 label——纯图标按钮屏幕阅读器读不出
  7. 触控目标太小——移动端 24px 按钮老人点不准
  8. 不实测——只看清单不用屏幕阅读器测

配套模板

  • templates/a11y-checklist-template.md — 完整检查清单模板
  • templates/contrast-table-template.md — 对比度记录表模板
  • templates/aria-cheatsheet.md — ARIA 速查表

与其他 skill 的协作

上游:
  page-structure → 列出所有需要检查的元素

平行:
  component-states → Focus 状态
  design-tokens → 对比度 tokens
  visual-style → 视觉风格不能违反对比度

下游:
  design-handoff → 可访问性要求交接给前端
  usability-evaluation → 可访问性是评审重点之一

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

A/B 测试设计与分析时使用。适用于产品实验、功能验证、转化率优化。融合假设驱动 + 样本量计算 + 置信度判断。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

上线前业务方/产品方验收时使用。适用于功能交付确认、UAT、发布会签。融合 BDD Given-When-Then、Specification by Example、ATDD。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

实现可访问性(无障碍)时使用。覆盖 WCAG 2.2 AA / ARIA / 键盘导航 / 屏幕阅读器 / 颜色对比 / 焦点管理。融合 React Aria / Radix UI / Headless UI 实践 + axe-core 自动化测试。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

AI 模型部署时使用。适用于推理服务 / GPU / TensorRT / 监控 / 扩缩容。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

数据分析报告输出时使用。适用于业务分析报告、周报、专项分析、决策支持。融合洞察 + 建议 + 行动项。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

API 契约测试时使用。适用于消费者驱动契约测试(Pact)/ OpenAPI 验证(Dredd / Schemathesis)。融合 Pact + Schemathesis + 契约优先。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

zhaoxuya520 のスキルをすべて見る

このスキルの問題を報告する