SuperAPI AI 工具集

ci-cd

部署与运维

查看项目

更新于 10-15 12:11

技能介绍

用途

该技能适用于在添加、审查或维护 CI/CD 无障碍检查时使用,尤其针对 GitHub Actions 工作流和自动化测试配置。其核心目标是防止已知的无障碍回归、保留已测试的语义,并为人工审查产出证据。技能明确指出:CI 本身无法确立 WCAG 合规;自动化规则、评分、快照和 AI 输出只是无障碍评估的输入,而非评估的替代品。指南以 WCAG 2.2 AA 为目标,但该目标本身不构成合规声明。

主要能力

技能提供了一套分层测试模型,按受影响的任务及回归的可能性/后果选择层次:

  • 静态分析/lint:对可检测的源码模式提供快速反馈,但不建立运行时行为或最终输出。
  • 单元/组件测试:验证稳定的组件契约(名称、角色、状态),但不覆盖整页阅读和焦点顺序。
  • 浏览器规则扫描(axe-core):检测渲染状态下的可检测规则,但不覆盖完整 WCAG 或可用性。
  • 语义断言(角色查询、ARIA 快照):验证无障碍树结构及变化,但不代表屏幕阅读器的确切语音输出。
  • 视觉检查:发现主题/布局回归、焦点指示器问题,但不验证含义、键盘访问或文本替代。
  • 端到端测试:验证可操作性、焦点、状态变化、错误,但本身不建立辅助技术互操作性。
  • 手动与辅助技术测试:评估质量、顺序、交互、兼容性,但不保证所有配置下的通用行为。

技能还定义了严重性分级(Critical、Serious、Moderate、Minor),并强调工具标签(如 axe 的 critical/serious/moderate/minor、Lighthouse 评分)只是分诊输入,需在评估实际用户影响后映射到该分级。

使用方式

技能要求在选工具前先定义 CI 契约:记录每个检查覆盖的用户任务/页面/组件/状态、命令与配置文件、工具/浏览器/运行时/规则集版本、结果是警告、阻断还是仅产出工件、基线/预期结果、失败时的负责人与响应流程、已知误报与未测试需求,以及保留供审查的证据。不得将检查描述为合并门禁,除非分支保护确实要求;不得将警告描述为失败。

技能给出了多个示例配置:

  • Lighthouse CI 配置示例(collect/assert/upload),其中 categories:accessibility 设为 warn 且 minScore 0.9,属于警告而非阻断。
  • 使用 @axe-core/playwright 的 AxeBuilder 在浅色/深色模式下扫描首页,并在导航展开状态下扫描。
  • 使用角色和可访问名称查询进行语义断言,以及 toMatchAriaSnapshot 验证导航语义结构。
  • 使用 @guidepup/virtual-screen-reader 进行单元级精确语音输出测试。
  • 视觉与偏好回归测试,要求为不同主题和强制颜色行为保留单独审查的基线,并指出截图相等不能作为唯一的对比度测试。

技能还给出了 GitHub Actions 工作流示例,包括权限声明(contents: read)、并发控制、超时、固定第三方 action 到完整提交 SHA、persist-credentials: false、失败后上传调试证据等安全实践。

适用场景

适用于需要为 Web 项目建立或审查无障碍 CI 检查的团队,包括:在 PR 中运行 axe-core 扫描、配置 Lighthouse CI 无障碍断言、编写语义断言与 ARIA 快照测试、设置视觉回归基线、规划定时扫描(如 GitHub Accessibility Scanner)、以及审查无障碍工作流的安全性。技能还涉及全站/全舰队扫描的要求,如区分唯一根因簇与受影响实例、与已审查基线比较、记录检测器/浏览器/基线版本、为每个已审查例外指定负责人、原因和到期日,并定期抽样看似干净的结果以调查假阴性。

限制

技能明确说明:CI 不能单独确立 WCAG 合规;干净的扫描仅表示在测试范围内未发现违规,不代表不存在障碍;ARIA 快照代表无障碍树,而非屏幕阅读器实际播报的逐字记录;截图相等不能作为唯一的对比度测试;风险指标(如 Reflow 风险、Focus Visible 测试)产生的是指标而非合规裁决,不应自动转为阻断构建失败。技能还指出,GitHub Accessibility Scanner 处于公开预览阶段,其接口、权限和 Copilot 集成可能变化,采用前需审查其当前 README、action.yml 和安全指南,并应使用专用的细粒度凭据。

关于该技能的具体版本、维护者、更新频率、收费情况、支持平台等事实,资料中暂未提供。