SuperAPI AI 工具集

accesslint-scan

测试与质量

查看项目

更新于 10-16 02:24

技能介绍

用途

accesslint-scan 用于对在线页面进行无障碍审计,报告“哪里坏了、坏在哪里”,只定位、不修复。如果 $ARGUMENTS 中没有提供 URL,需要先向用户索取一个 URL。

何时使用

  • 提供的页面需要自动化的对比度、可访问名称或语义标记审计。
  • UI 变更后需要以选择器为依据的发现结果,但不修改应用。
  • 手动辅助技术检查或全站合规评估属于另外的工作,不在本技能范围内。

使用方式

1. 审计

使用已经过审查、由项目锁定安装的 @accesslint/chrome 和 @accesslint/cli;在执行前确认它们的本地二进制文件和 CLI 帮助信息。不要静默下载并执行 @latest。确认 URL,以及浏览器访问是否可能暴露认证或敏感内容。

对于锁定安装暴露了相应二进制名称的项目:

session_file="$(mktemp)"
./node_modules/.bin/accesslint-chrome ensure > "$session_file"

完整读取一次 JSON 结果,记录 port 和 managed,并将返回的端口代入:

./node_modules/.bin/accesslint scan "<target>" --port "<returned-port>" --format json

切勿把任意 stdout 片段当作完整 JSON 解析。请从已安装的包中确认实际二进制名称,它们可能因版本而异。当前上游命令形态为 scan <target> --port <port> --format json。

按需使用标志:--selector、--wait-for "<selector>"、--include-aaa、--disable <rules>。

2. 报告

先按影响程度统计数量,然后每条违规一条记录:

  • where — 逐字选择器 + file:line(symbol),如果存在源码;绝不编造。如果没有任何违规有源码,注明“source mapping unavailable — located by selector only”。
  • evidence — 对比度比值、缺失属性、空名称。
  • fix — 机械性修改或 NEEDS HUMAN。

返回工作清单,不做编辑。修复需要单独的授权任务;当前上游将其命名为 accesslint:accessibility-fix,该任务在本主机上可能并未安装。

3. 清理

只停止本次审计所创建的被管理浏览器会话,使用已安装辅助工具支持的、针对会话/端口的停止操作。如果它只支持 stop --all,先检查是否存在其他被管理会话,不要终止无关的审计。跳过对非被管理浏览器的清理。

注意事项

  • ensure 始终会确定端口——绝不要硬编码 9222。
  • CLI 退出码 2 = URL 错误或页面从未加载;检查开发服务器。

限制

  • 自动化规则无法证明完全符合 WCAG;保留需要人工处理的发现,并将扫描失败与零违规分开记录。
  • 上游 CLI 形态已对照 AccessLint scan 源码核对;本 AAS 技能不捆绑 CLI,也不安装它。
  • 仅当任务明确符合上述范围时才使用本技能。
  • 不要将输出视为环境特定验证、测试或专家评审的替代品。
  • 如果缺少必需输入、权限、安全边界或成功标准,请停止并请求澄清。