SuperAPI AI 工具集

ss-a11y

前端与建站

查看项目

更新于 10-15 14:47

技能介绍

用途

ss-a11y 用于对组件或页面进行无障碍(accessibility)审计并修复发现的问题。它面向遵循 StyleSeed 约定的代码,属于静态代码审计,而非屏幕阅读器模拟或运行时测试。

主要能力

该技能依据 WCAG 2.2 AA 标准,从四个维度进行审查:

1. 可感知(Perceivable)

  • 颜色对比度:普通文本需达到 4.5:1,大号或粗体文本需达到 3:1。示例中检查 text-muted-foreground(#717182)在 bg-background(#FFFFFF)上为 4.6:1,通过。text-brand 在白色背景上的对比度需结合皮肤的品牌色验证。任何不满足比率的自定义颜色都会被标记。
  • 非文本对比度:UI 控件与图形需达到 3:1。
  • 文本替代:所有 <img> 需要 alt,有意义的图标需要 aria-label。
  • 颜色独立性:不能仅靠颜色传达信息,需补充图标或文字。

2. 可操作(Operable)

  • 触摸目标:触摸界面上最小为 44x44px(min-h-11 min-w-11)。会标记过小的触摸命中区域,但不会仅因高度为 36–40px 就标记已批准的指针优先桌面控件。指针优先控件遵循已解析的契约,同时保留键盘访问与适用的无障碍底线。图标按钮需要与输入模式相匹配的明确命中区域。
  • 键盘导航:所有交互元素必须可键盘访问,Tab 顺序应合乎逻辑。焦点样式为 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2。
  • 动效:动画必须尊重 prefers-reduced-motion,示例中通过媒体查询将动画与过渡时长降至 0.01ms。

3. 可理解(Understandable)

  • 标签:表单输入必须有可见标签或 aria-label。
  • 错误消息:表单错误必须通过 aria-describedby 等以编程方式关联。
  • 语言:<html lang="en"> 或项目对应的语言代码。

4. 健壮(Robust)

  • 语义 HTML:使用合适的元素,如 <button>、<nav>、<main>、<header>。
  • ARIA:使用 Radix UI 组件,它们会自动处理 ARIA。
  • 角色:自定义交互元素需要正确的 role 属性。

使用方式

使用前需遵循每会话一次的更新预检(update preflight)。目标通过 $ARGUMENTS 传入。

注册表优先的产物边界:当 .styleseed/project.json 与 .styleseed/artifacts/index.json 存在时,先解析请求的 artifact ID,然后仅读取 .styleseed/bundles/<artifact-id>.md 与 .styleseed/manifests/<artifact-id>.json。对于注册表项目,绝不回退到全局旧版 bundle。旧版项目仅在不存在注册表时使用 .styleseed/effective-rules.md。

适用场景

  • 对遵循 StyleSeed 约定的组件或页面进行无障碍审计与修复。
  • 需要按 WCAG 2.2 AA 检查颜色对比度、触摸目标、键盘导航、表单标签、语义与 ARIA 等。

限制

  • 不适用于通用设计系统合规审查,应使用 /ss-review。
  • 不适用于 Nielsen UX 启发式评估,应使用 /ss-audit。
  • 不适用于非 StyleSeed 代码(无 data-slot、无语义 token),因为它假定 StyleSeed 约定。
  • 不适用于运行时测试,它是静态代码审计,不是屏幕阅读器模拟。

设计系统 Token 参考

Token 最低对比度 说明
--foreground 7:1+ 正文文本,需结合皮肤验证
--muted-foreground 4.5:1+ 次要文本,需结合皮肤验证
--brand 4.5:1+ 强调色,需结合皮肤的品牌色验证
--destructive 4.5:1+ 错误,需结合皮肤验证
--success 3:1+ 仅大号文本或图标,需结合皮肤验证
--warning 4.5:1+ 警告文本,部分皮肤需要更深的变体

输出

  • 发现的问题:按严重程度(Critical/Major/Minor)列出。
  • 自动修复:在可能的情况下直接应用修复。
  • 需要人工审查:标记需要人工判断的项目。