mcpField
S
ss-a11y

ss-a11y

github.com/bitjaru设计与 UI993862 次安装1 天前更新
代码仓库

关于 ss-a11y

ss-a11y 是 StyleSeed 的静态无障碍审查技能,面向检查 StyleSeed 约定代码的开发者。它依据 WCAG 2.2 AA 检查对比度、键盘操作、标签及语义结构,并在可行时直接应用修复。

主要功能

  1. 01检查 WCAG 2.2 AA 项目
  2. 02评估颜色与非文本对比度
  3. 03检查键盘访问与触控目标
  4. 04审查标签、错误关联和语义 HTML
  5. 05可行时直接应用自动修复

适用场景

  1. 01静态审查 StyleSeed 界面代码
  2. 02检查表单标签和错误提示关联
  3. 03发现键盘访问或颜色对比度问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bitjaru/styleseed --skill ss-a11y

安装后在 Claude Code 中输入/ss-a11y确认已加载。

详细介绍

在执行此工作流前,请先按照 更新前检查 的说明,每个会话执行一次。

无障碍审计

以注册表为先的制品边界

如果 .styleseed/project.json 和 .styleseed/artifacts/index.json 存在,请先解析请求的制品 ID,然后只读取 .styleseed/bundles/<artifact-id>.md 和 .styleseed/manifests/<artifact-id>.json。对于注册表项目,绝不要回退到全局旧版 bundle。仅当不存在注册表时,旧版项目才可以使用 .styleseed/effective-rules.md。

不适用情形

  • 对设计系统进行常规合规性审查 → 使用 /ss-review
  • 检查 Nielsen UX 启发式原则 → 使用 /ss-audit
  • 非 StyleSeed 代码(没有 data-slot,也没有语义令牌)——本流程假设遵循 StyleSeed 约定
  • 运行时测试——这是静态代码审计,不是屏幕阅读器模拟

目标:$ARGUMENTS

审计标准

WCAG 2.2 AA 合规性
1. 可感知
  • 颜色对比度:文本对比度必须达到 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. 可操作
  • 触控目标:触控界面的最小尺寸为 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
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
      }
    }
    
3. 易于理解
  • 标签:表单输入项必须有可见标签或 aria-label
  • 错误消息:表单错误必须通过程序关联(aria-describedby)
  • 语言:<html lang="en">(或项目适用的语言代码)
4. 稳健
  • 语义化 HTML:使用适当的元素(<button>、<nav>、<main>、<header>)
  • ARIA:使用 Radix UI 组件(它们会自动处理 ARIA)
  • 角色:自定义交互元素需要正确的 role 属性

设计系统令牌参考

令牌最低对比度说明
--foreground7:1+正文文本——请使用你的皮肤验证
--muted-foreground4.5:1+次要文本——请使用你的皮肤验证
--brand4.5:1+强调色——请使用你皮肤的品牌色验证
--destructive4.5:1+错误——请使用你的皮肤验证
--success3:1+仅适用于大号文本/图标——请使用你的皮肤验证
--warning4.5:1+警告文本——某些皮肤需要使用更深的变体

输出

  1. 发现的问题:按严重程度列出(严重/主要/轻微)
  2. 自动修复:在可行时直接应用修复
  3. 需要人工审查:标记需要人工判断的项目

评论

支持 Markdown