2026年10月9日 1 分钟阅读

AI Agent 写完代码却漏掉无障碍问题?Aether 用真实浏览器完成 WCAG 修复闭环

tinyash 0 条评论

AI 编码 Agent 能快速生成页面,却不一定知道页面在真实浏览器中的无障碍表现:对比度、可访问名称、ARIA 用法、焦点区域和响应式布局,都可能在“代码看起来没问题”时出错。Aether WCAG Scanner 是一个面向 Claude Code、Cursor、Codex 等 Agent 的 MCP 服务端,目标不是只列出问题,而是把扫描、给出修复、重新验证串成一条工作流。

它解决的不是“再跑一次 lint”

Aether 的关键区别是使用 Playwright 驱动 Chromium,再由 axe-core 检查实际渲染页面。也就是说,Agent 看到的不只是静态 HTML,还包括浏览器计算后的页面状态。项目 README 明确列出的检测范围包括对比度、可访问名称、ARIA 使用方式、可聚焦区域和 landmarks 等。

发现问题后,Aether 可以返回对应的 HTML 修复、WCAG 成功标准和技术示例;修复还会在真实浏览器中重新执行 axe 检查,报告目标是否清除,以及是否引入回归。这种“测量—修改—复测”比让模型凭经验猜一个修复更容易审计。

安装方式:优先按 Claude Code 插件使用

项目提供 Claude Code 插件市场配置:

/plugin marketplace add https://github.com/allchemylabs/claude-plugins.git
/plugin install aether-wcag-scanner@allchemylabs

首次启动会安装插件依赖,并在第一次扫描时下载 Playwright 所需的 Chromium。README 说明,安装后如果 /mcp 暂时显示服务未连接,可以稍等片刻再运行:

/reload-plugins

Aether 客户端采用 MIT 许可证;仓库同时明确说明,托管的 insights 引擎属于专有服务。因此,文章中应把它理解为“本地扫描客户端 + 可选的云端增强”,而不是把整个平台都称为开源。

不依赖密钥也能运行

项目支持离线模式。没有 ALLCHEMY_API_KEY 时,扫描器仍然在本地运行,并为违规项返回模板化修复;配置 beta key 后,才会请求托管 insights 引擎获得更具上下文的建议。通过普通 MCP 客户端接入时,可以使用 npm 包:

{
  "mcpServers": {
    "aether-wcag-scanner": {
      "command": "npx",
      "args": ["-y", "@allchemylabs/aether-wcag-scanner"],
      "env": {
        "ALLCHEMY_API_KEY": "<your beta key>"
      }
    }
  }
}

如果不需要云端能力,可以省略密钥。首次扫描会下载约 150 MB 的 Chromium,运行环境要求 Node.js 20 或更高版本。

五个工具如何组成闭环

Aether 暴露五个 MCP 工具:

  1. aether_scan_and_fix:推荐入口,扫描 URL,返回违规项与修复;设置 maxFixes: 0 可以只扫描。
  2. aether_get_fix:针对单个违规项获取修复,省略 html 时可查询规则级解释。
  3. aether_verify_fix:用 Playwright 和 axe 重新验证修复,也能比较原始 HTML 与修改后的 HTML。
  4. aether_check_html:只分析 HTML 片段,不需要在线页面。
  5. aether_submit_feedback:提交修复是否有帮助的反馈。

Claude Code 还提供 /wcag-scan 技能,把扫描、查看违规、应用修复和复测组织起来。对单页应用,aether_scan_and_fix 支持 spa 配置,可发现路由或显式传入路由列表。例如:

{
  "spa": {
    "entryUrl": "http://localhost:4200",
    "framework": "angular",
    "maxRoutes": 10
  }
}

值得注意的是,项目明确拒绝依赖 Playwright 的 networkidle 判断页面稳定,因为长轮询或 WebSocket 可能让它一直等待。它改用 DOM 安静状态、框架钩子和请求排空等分层信号,这对真实开发环境更稳妥。

使用时别把自动扫描当成合规证明

Aether 的价值在于减少重复检查和修复猜测,但自动化扫描只能覆盖部分无障碍障碍。项目免责声明也强调,“零问题”只代表扫描范围内没有被检测到问题,并不等于符合 WCAG、ADA、EAA 或其他法律标准。

更可靠的做法是把它放在 CI 或开发迭代中:Agent 完成功能后先运行扫描;人工确认修复没有改变交互语义;再用 aether_verify_fix 复测,并针对键盘操作、屏幕阅读器、内容语义和真实用户流程进行人工审计。这样,Aether 承担的是可重复的浏览器测量与回归检查,而不是替代无障碍专家。

对于已经依赖 Claude Code 或其他 MCP 客户端的团队,Aether 的亮点并非又一个静态规则列表,而是把 Agent 的修复建议绑定到真实页面、WCAG 规则和复测结果。把“页面能渲染”推进到“页面值得被更多人使用”,这正是无障碍检查应该进入 AI 编码工作流的原因。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。