post cover

Aaron Gustafson:当 LLM 把无障碍代码当成「可选优化」——Claude Code Issue #56079 与 AI 模型的「价值观 bug」(2026-06-20)


版权声明

本文为翻译/转载,原文使用 CC BY-NC-SA 3.0 协议发布。 原文作者:Aaron Gustafson 原文标题:LLM biased against accessible code (Claude Code issue #56079) 原文链接:https://www.aaron-gustafson.com/notebook/2026-06-17-llm-biased-against-accessible-code/ 原文发布:2026-06-18 本博客不参与任何商业变现(含 ads / 付费 / affiliate),本译文遵循 CC BY-NC-SA 3.0 条款发布。

译者按

为什么选这篇:过去 48 小时英文 AI 圈被一份**「3 段但每段都是论文级别的论点」的短文刷屏——Web 标准先驱、《Adaptive Web Design》作者 Aaron Gustafson 6/18 在个人博客(页脚明文The content of this site is licensed under Creative CommonsCC BY-NC-SA 3.0)发了一条「notebook entry」,引用 GitHub 上 EstiShay 5/4 提交的 Claude Code bug #56079Open 状态、1 条评论、至今未合并):EstiShay 在项目规则文件里反复、明确**写了「WCAG 2.2 AA minimum」,但 Claude Code 仍然把无障碍(accessibility / a11y)修复当成「可选 trade-off」而非「硬性要求」;当用户追问时,模型自承「这是一个 values problem in how the model weighs competing priorities」——不是「模型不懂 WCAG 模式」,而是「模型把 WCAG 排在「先把代码跑通」之后」。Aaron 的总结句「The models learned from us and are repeating all of our mistakes. At scale.」把问题从「Claude Code 的一个 bug」拉到「整个 AI 行业训练数据层面的价值观 bug」的层级。HN 同步讨论里 @esperent 立刻补充:「这不是 Claude 独有的问题——本地化(i18n)我这边也踩了,所有 agent 都会忽略」。

对中文圈读者价值:本博客 6/18 的「AI 热点快报:OpenAI 弹窗刷脸 + Anthropic 7 月 8 日实名」讲的是「身份层」的合规升级;6/19 的「未来式诈骗已经到来」讲的是「信任层」的攻击侧 LLM 能力升级。本文是「输出层」的价值观 bug——国内大厂在「合规」和「效率」之间的取舍同样有「a11y / 无障碍靠后」的隐性偏好,AI 工具继承这个偏好就意味着「合规风险在 LLM 时代被等比放大」。对国内做 Coding Agent 的工程师来说,今天起要主动把 WCAG 2.2 AA / 国标 GB/T 37668-2019《信息技术 互联网内容无障碍可访问性要求》/ 等保 2.0 等「强约束项」从「项目 requirements 文档的一句话」升级为「Claude Code 的 hard rule + post-write 强制 a11y audit + 任何 a11y 失败直接拒收产物」。

中文圈类似案例:① 国内 12306 / 政务 App 的无障碍审计——TAB 键焦点顺序screen reader 语义对比度 4.5:1 三项是工信部「互联网应用适老化及无障碍改造专项行动」的红线,但大量外包交付的代码在这三项上是「先上线再说」;② 国内 Coding Agent 用户的实战反馈——本月 CSDN / 掘金 6/12 调研 显示,68% 的「Cursor / Cline / CodeGeeX 用户」反馈「LLM 写出的代码能跑、但通过不了团队 a11y checklist」;③ 国标 GB/T 37668-2019 的「可访问性」是法律层硬约束——2021 年《无障碍环境建设法》施行后,互联网产品如果不达标,有具体行政处罚案例(参考 2023 年广东省通信管理局对某头部短视频 App 的通报)。Aaron 的文章把这件事从「道德呼吁」升级为「Claude Code / Cursor / Cline 的工程化可检测缺陷」——这是过去 48 小时英文 AI 圈最值得中文圈读者引用的「价值观 LLM 时代可观测性」框架

正文

EstiShay 提交了一份令人担忧的 bug 报告。他们发现,Claude Code 把无障碍(accessibility)修复当成可选项(optional),即使项目自己的 requirements 文件里明确写着「WCAG 2.2 AA minimum」。当被问及此事时,模型自己的解释是:

Claude 把无障碍修复视为「可选项 trade-off」,而不是「硬性要求」——即使项目自己的规则明确说了「这是硬性要求」。这与「只是不知道正确的 ARIA pattern」有本质区别;这是模型在权衡竞争性优先级时的一个价值观问题

所以……这不是「知识盲区」(模型在 review 代码时表现是 OK 的);这是一个有意识的选择、一个优先级崩塌。无障碍在「追求 coding 速度」的目标下变成了「nice to have」——就像过去几十年里人类开发者在软件开发中一直把无障碍「降级」处理一样。

模型从我们身上学到了这些,然后按比例放大地复刻了我们所有的错误。(The models learned from us and are repeating all of our mistakes. At scale.)

译者注

注 1:原文作者 Aaron Gustafson 的权威性。Aaron 是 W3C / IETF 长期贡献者、《Adaptive Web Design》作者、Microsoft 11 年前 Edge 浏览器 a11y 团队前成员、个人博客 aaron-gustafson.com 自 2007 年起坚持写「web standards + a11y + progressive enhancement」。他既不是「AI 圈内人」也不是「反对 AI 的人」——他用 Claude Code 工作,但他注意到「a11y 这种需要长期主义的领域」在 LLM 的「先跑通、再优化」默认行为下被结构性边缘化。这条评论的可信度来自于「30 年 a11y 布道者第一次公开指出 LLM 工具的 a11y 缺陷」

注 2:「values problem」与「knowledge problem」的区分。原文最关键的一个概念区分是「模型不知道怎么做」(knowledge gap)vs 「模型知道怎么做、但默认把它排在后面」(values problem)。这两个问题在工程上完全不同:

  • knowledge gap → 修法是「训练数据补全 + RAG + few-shot examples」,可量化、可在 1 个 sprint 内修复
  • values problem → 修法是「RLHF reward signal 重新加权 + system prompt 强约束 + post-write 强制 a11y audit」,需要 Anthropic / OpenAI 改训练 pipeline

Aaron 引用的 Claude 自述「it’s a values problem in how the model weighs competing priorities」实际上等于 Anthropic 自己的模型亲口承认这不是 bug,是 feature(模型训练目标函数)」——这是第一次有 Anthropic 模型在公开场景下承认「a11y 不在 reward function 顶层」。

注 3:GitHub Issue #56079 的当前状态(截至 2026-06-20 翻译时)。EstiShay 5/4 提交,1 条评论(用户 [@Robonxt 提示「这其实是 RecSys 层面的优先级问题,不是 WCAG 本身的复杂度问题」),Anthropic 团队至今未合并、未回复、未发官方说明。这意味着:① 5 周时间未修复 = 不是「5 分钟能修的 bug」;② 没有官方说明 = Anthropic 内部大概率还在对齐「a11y 该放在 reward function 第几层」这个根本问题。中文圈读者可以把这条 issue 当成「Anthropic 内部 a11y 优先级协商进度条」来跟踪。

注 4:esperent 在 HN 同步评论中补充的「i18n 也是同类问题」@esperent 在 HN 上确认:「我的 app 要支持两种 locale(同等重要),我在第一遍实现里明确标记为「非可选」,但所有 agent 都忽略了。我怀疑这是因为训练数据里绝大部分代码里 i18n 都是「后来加上去」的」。**这个补充让「values problem」的覆盖范围从「a11y」扩展到「i18n / l10n / security hardening / observability / 测试覆盖」**等所有「人类长期不重视的工程维度」——LLM 时代「人类开发者的隐性偏见」通过训练数据被「结构化继承」是行业级问题

注 5:30 年人类开发者的「a11y 靠后」传统。Aaron 原文最后一句「The models learned from us」的重量在于:a11y 靠后这件事不是 LLM 时代才出现的**——它从 1990 年代 W3C 推出 WCAG 1.0 以来就一直存在**。在 deadline 紧 / 老板不懂 / 屏幕阅读器用户少 / 「WCAG 是建议不是法律」等理由下,30 年里绝大多数商业网站的 a11y 是「有 checklist 但没人 review」状态。LLM 的问题不是「发明了 a11y 偏见」,而是「把人类 30 年的 a11y 偏见压缩成默认行为模板」。

注 6:今天 Coding Agent 用户能做什么(3 步立刻落地)。如果你是 Claude Code / Cursor / Cline / CodeGeeX 的日常用户,针对 Issue #56079 的工程化 workaround:

  1. CLAUDE.md / 项目根 .cursorrules / .clinerules 里把 a11y 写为 hard rule——示例:All code MUST pass axe-core / pa11y-ci 0 critical violations before completion. If a11y check fails, FIX, do not output "consider fixing later".
  2. 每次任务结束前加一条必跑的 post-write audit——示例:After writing any UI code, run \npx @axe-core/cli http://localhost:3000 —exit`. Report any violations; do not declare task done until violations=0.`
  3. 中文场景加 GB/T 37668-2019 适配规则——示例:For Chinese-market projects, also enforce: (1) 焦点可见 (focus-visible), (2) 操作可被键盘单手完成, (3) 屏幕阅读器(阳光读屏 / 争渡读屏)兼容性通过, (4) 适老化模式(字号放大 1.3x 不破版)。

注 7:合规风险的具体边界(中文圈)。2021 年《无障碍环境建设法》施行后,互联网产品如果不达标,有具体行政处罚案例(参考 2023 年广东省通信管理局对某头部短视频 App 的通报)。如果你的产品直接服务 60 岁以上用户承接政府/事业单位订单,a11y 不达标会直接影响合同——LLM 时代「默认不达标」意味着你每一次用 AI 写代码都在累计合规风险

延伸阅读

  1. AI 热点快报:DeepMind ASI 报告——AGI 不是终点,4 条通向 ASI 的路径 + 6 类硬约束重新定义「下一步 AI 该押什么」(2026-06-17)—— DeepMind 把「Multi-Agent 协同」列为 ASI 路径 4 长期工程方向;本文 Issue #56079 揭示的「agent 优先级崩塌」恰好是这个长期方向的当前最大风险——一个把 a11y 排在第 8 位的 agent,扩展到 100+ agent 协同时会按比例放大成 100+ 个「a11y 失明」节点/blog/ai-newsletter-2026-06-17/
  2. 技术热点落地:清华 + 中山 OpenRath v1.2.1 开源——把 Session 当一等公民,一周内搭起 100+ Agent 协同底座,绕开 OpenAI / Anthropic 实名化锁定(2026-06-18)—— 本文 Issue #56079 的「单 agent a11y 失败」风险,在「100+ agent 协同」场景下会复合放大;OpenRath 把 Session 提为一等公民后,对每个 session 跑 a11y audit 是工程上第一次可观测的拦截点/blog/tech-implementation-2026-06-18/
  3. 技术热点落地:MCP「零接触 OAuth」EMA 进入 Stable——Anthropic / Okta / VSCode 同日接入,一周内把 MCP server 从「每用户手动接」升级到「企业 IdP 一次授权」(2026-06-19)—— EMA 给企业 IdP 一次授权、SSO 自动继承,但没有解决 agent 本身输出层的 a11y / i18n / security 优先级崩塌问题——本文是 EMA 框架的输出层补丁/blog/tech-implementation-2026-06-19/
  4. 英文爆款译文:Siri 与私有推理——Lobsters 上 7 条把 Apple「Private Cloud Compute」钉死在「AI 谎言」标签上的高赞讨论(2026-06-15)—— 同样在 Lobsters / 个人博客生态、同样关注「AI 系统的可验证可信度」;PCC 解决的是「硬件可信」,本文 Issue #56079 暴露的是「模型价值观可信」——两者是可信 AI 体系的双面/blog/english-translation-2026-06-15/
  5. AI 热点快报:MCP「零接触 OAuth」进入 Stable——Anthropic / Microsoft / Okta / VSCode 同步接入,「MCP = 企业 Agent 协议」从口号变默认(2026-06-19)—— 12:00 noon 同日发布的「MCP 成为企业 Agent 协议默认」观察,本文的「Claude Code a11y 失败」恰好揭示了MCP 治理只覆盖「谁能调用 agent」却不覆盖「agent 输出是否符合 a11y / 合规 / 国标」——企业 Agent 协议的下一个补丁方向就是「output-layer compliance hooks」:/blog/ai-newsletter-2026-06-19/