Accessibility-Agent

定义

Accessibility Agent(无障碍 Agent) 是 GitHub Copilot 团队正在试验的通用无障碍 Agent,有两个核心目标:为工程师提供即时可靠的无障碍问题解答(集成于 Copilot CLI 和 VS Code),以及自动捕获并修复进入生产环境前的简单客观无障碍问题。截至 2026 年 5 月,已评审 3535 个 PR,解决率 68%

核心架构:评审者 + 实现者

不同于常见的"多子 Agent 并行执行"方案,Accessibility Agent 采用两个专用子 Agent 顺序执行

子 Agent角色能力
评审者(Reviewer)被动评审 + 研究只读,进行代码审计、WCAG 研究、检测升级触发器
实现者(Implementer)主动修复可读写,两种模式:默认代码变更模式 + 回退纯指导模式

工作流程:父 Agent → 评审者(结构化发现)→ 父 Agent 验证路由 → 实现者(变更/指导)→ 父 Agent

选择顺序执行而非并行执行的原因:

  • 升级检查点:评审者识别需要人工干预的区域
  • 复杂度行为:代码过于复杂时切换到纯指导模式
  • 过滤:评审者报告所有发现,父 Agent 决定哪些相关
  • 可追溯性:子 Agent 之间不直接通信,保留审计追踪

执行策略:线性阶段

Agent 强制执行固定顺序的阶段,每个阶段包含有序步骤:

  1. Phase 1 - Research:查阅 WCAG 成功标准、组织内部解读、辅助技术支持、历史审计记录
  2. Phase 2 - Code Audit:按需读取源文件、验证 URL、交叉对比发现
  3. Phase 3 - Structured Output:生成标准化发现报告(含严重度评分:critical/warning/info)

线性执行比并行 Agent 更准确,因为无障碍工作本身需要方法论和细致态度。

关键数据点

  • 评审 3535 个 PR,解决率 68%
  • Top 5 问题类型:结构与关系不清晰、交互控件缺少名称、用户未感知重要通知、非文本内容缺替代文本、键盘焦点顺序不合理
  • WCAG 2.2 级别 A 和 AA 共 55 个成功标准,仅 35 个(64%)可通过自动代码检查器检测,约 36% 需人工评估
  • LLM 对无障碍反模式有偏差,因为所有主流 LLM 都训练于数十年不可访问的代码

前提与局限性

  • 不是银弹:Agent 不能自动解决所有无障碍场景,而是增强人工工程师的努力
  • LLM 反模式偏差:训练数据中大量不可访问代码导致 LLM 倾向生成无障碍反模式
  • 高质量历史数据是关键:Agent 的强弱高度依赖组织积累的结构化无障碍问题库
  • 复杂度限制:通过脚本启发式评分判断是否应自动修改,高分代码需转人工
  • 高风险模式排除:拖放、Toast、富文本编辑器、树形视图、数据网格等模式禁止 Agent 自动修改
  • Token 消耗大:无障碍是整体性和高度上下文的工作,Agent 可能消耗大量 Token

关联概念

  • WCAG — Web Content Accessibility Guidelines,Agent 评审的核心标准
  • 子 Agent 顺序架构 — 评审者+实现者的两 Agent 顺序架构
  • Agentic-Engineering — 更广泛的 Agent 工程实践
  • Bias-to-Action-LLM — LLM 的"迫切生成内容"倾向,需反博弈指令约束
  • Social-Model-of-Disability — 无障碍 Agent 的哲学基础
  • Accessibility-Complexity-Evaluation — 代码复杂度评估决定 Agent 行为模式
  • Accessibility-High-Risk-Patterns — 被排除在 Agent 自动化之外的高风险交互模式
  • 模板 Schema 模式 — 子 Agent 间使用模板 Schema 传递信息
  • Agent-PR-Review — Agent 自动评审 PR 的实践