AI Agent 写完代码却漏掉无障碍问题?Aether 用真实浏览器完成 WCAG 修复闭环
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 工具:
aether_scan_and_fix:推荐入口,扫描 URL,返回违规项与修复;设置maxFixes: 0可以只扫描。aether_get_fix:针对单个违规项获取修复,省略html时可查询规则级解释。aether_verify_fix:用 Playwright 和 axe 重新验证修复,也能比较原始 HTML 与修改后的 HTML。aether_check_html:只分析 HTML 片段,不需要在线页面。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 编码工作流的原因。