Web无障碍开发规范
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/accessibility-sh-r1jydj。
技能介绍
人工走查缺位时,无障碍谁来兜底
在 AI 驱动的前端流程里,手动测试往往被压缩到极低比例,缺陷常常拖到上线才暴露。无障碍问题尤其隐蔽:用 <div> 伪装的按钮看起来一切正常,键盘用户却无法聚焦和触发;图片少了 alt 属性,视觉上毫无破绽,屏幕阅读器只能念出一串文件名。事后补修的成本远高于从第一天就做对,因此这套规范把无障碍优先设为所有开发任务的起点。
规范要求怎么做
- 语义化优先:能用原生元素就不自造组件。
<button>自带键盘聚焦与激活能力,<nav>、<main>、<form>为页面划出清晰的结构地标;只有原生元素确实无法满足时才引入 ARIA,并必须记录选择理由。 - 代码即文档:凡为无障碍而写的实现,都要在注释中标注对应的 WCAG 2.2 条款等级,说明预期的用户流程。
- 键盘可达是硬指标:所有交互元素必须仅靠
Tab、Enter、Space与方向键就能到达并操作,焦点指示器保持一致可见;自定义组件上tabindex只允许负值。 - 指标可量化:正文文本对比度不低于 4.5:1,大字不小于 3:1,按
(L1 + 0.05) / (L2 + 0.05)公式或检查工具验证;鼠标拖拽类交互必须给出替代路径。 - 持续回归:把
pa11y这类自动化检查纳入回归测试,每新增媒体就补alt文本,图标加标签,纯装饰元素用aria-hidden="true"。 - 反模式清单:拒绝
<div onclick>假按钮、outline: none、用aria-label顶替可见标签、给外链加role="button"等做法。
适用边界
- 规范不声称覆盖全部无障碍知识,遇到不确定的场景应查阅 W3C / WCAG / WAI-ARIA 官方资源并记录待办。
- 对已有代码库无法整体重构时,给出谨慎的局部建议,而不是推倒重来。
lang属性、skip links、prefers-reduced-motion、缩放回流、表单错误提示等事项仍需在项目中持续落实。- 当需求本身可能引入无障碍缺陷时,先向用户说明风险并征询是否继续,而不是默默实现。
使用场景
- 接手 AI 生成的前端项目,需要逐条审查代码是否存在 `<div>` 假按钮、缺失的 `alt` 属性或跳过的标题层级。
- 准备提交新组件时,需要验证键盘用户能否仅靠 Tab、Enter、Space 完成操作,并确保焦点指示器样式一致可见。
- 为新的品牌色系写样式前,需要按对比度公式核对文本、图标、按钮及其 hover/focus 状态是否达到 4.5:1 或 3:1 标准。
- 把组件库接入自动化测试,需要在构建流水线里加上 `pa11y` 一类的无障碍回归检查,防止新提交引入缺陷。
适合人员
- Web 应用开发者,在迭代中持续维护语义化结构与键盘交互,避免无障碍缺陷累积。
- 组件库维护者,需要为每个自定义控件写清 ARIA 角色、焦点管理和屏幕阅读器公告规则。
- 设计转前端的工程师,想把设计稿落到语义化标签、表单分组和状态提示上。
- AI 编程工具的提示词作者,希望把无障碍检查清单固化进生成流程,减少人工走查缺位带来的风险。