跳转到主要内容
研究

方法说明:我们如何测量市政网站的无障碍程度

版本 1.1 · 2026年9月1日 · Maksim Galatin & Claude (Anthropic) · 采用 CC BY 4.0 许可

为什么需要一份单独的方法说明

世界上并不缺少自动化的无障碍测量。axe-core 之类的扫描器就在做这件事:成本低、可复现,衡量的是页面标记。

但关于「用键盘尝试走完这条路时究竟会发生什么」的数据几乎没有。规则集检查的是标记,它并不试图抵达目标。我们需要的是一次真正在活页面上按 Tab、并观察焦点落在何处的遍历。

我们同时进行两种测量,并将二者相互比较。它们之间的差距正是这项工作的主要成果,而这个差距只有当两种检测走的是完全相同的样本时才能得出。

第一部分:自动测量

样本如何选取

美国部分采用 CISA 机构维护的 .gov 官方域名登记册(cisagov/dotgov-data,CC0 许可,每日更新)。从中选取 City 与 County 类型的机构:51 个州与属地中的 11,659 条记录。

这与靠搜索拼凑出来的名单有重要区别。面对「这些城市是从哪里来的」这一提问,我们有一个一分钟即可核验的答案:整份官方登记册,而不是我们碰巧找到的那些。

欧洲部分采用 OpenStreetMap 中的市政机构,依据 amenity=townhall、office=government 及相关标签。

样本的已知局限。

OpenStreetMap 由志愿者填写,各国的完整度并不相同。我们并不宣称覆盖了一个国家的全部市政当局;我们宣称的是,覆盖了所有在 OSM 中标注了网站的市政当局。这是两件不同的事,而后者可以核验。

如何检测

使用真实浏览器(通过 Puppeteer 驱动 Chromium),而不是 HTTP 请求。原因是:当今相当一部分网站由脚本装配而成,检查原始 HTML 测到的并不是人所看到的内容。

在每个网站上:打开页面并等待 domcontentloaded 事件;运行符合 WCAG 2.1 AA 的开放规则集 axe-core;记录每一条被触发的规则、出现次数与 DOM 选择器;寻找缴费页面并检查通往它的路径。

统计什么,如何统计

违规密度 = 被触发的规则数除以受检页面数。用密度而非绝对数量:大型网站页面更多,按违规总数比较等于因规模而受罚。

我们不做什么——这一点很重要

我们不会根据单个页面给整个网站定性,不把警告计为违规,也不用主观评价替代测量。自动化部分只回答一个问题——某条规则是否被触发,除此之外一概不答。

第二部分:键盘遍历

从这里开始的,是任何自动化审计都不做的事。

交给检测方的任务

仅用键盘走完一个想缴纳市政税费或罚款的人所走的路径。完全不碰鼠标。

由谁执行检测

遍历由真实 Chrome 浏览器中的软件代理执行,而不是坐在桌前的人。我们把这一点直说出来,因为下文所有数字该如何理解,取决于这个答案。

代理操作真实页面的方式与没有鼠标的人相同:按 Tab,读取焦点移动到了哪里,并在无处可移之处停下。它不解析原始 HTML,也不凭标记下判断——它走的是带有全部脚本、同意横幅与弹窗的活页面。

这样做带来了什么。 可复现性:同一次遍历可以重新运行并得到相同结果,而真人无法被安排去面对六万七千个页面,也无法在一个月后被要求重走同一条路径。还有规模:这种量级的测量根本无法靠人手完成——这正是此前不存在此类数据的原因。

这样做没有带来什么,我们予以承认。 代理不能替代屏幕阅读器用户,也不衡量页面是否易于理解。它只回答一个问题——单靠键盘能否在物理上抵达目标。我们并不宣称进行过有视障参与者的测试:那件事我们没有做。

每个网站记录哪些内容

字段含义
到缴费的步数到缴费表单需按多少次 Tab
到缴费的秒数这条路径花了多少时间
在何处中断路径在哪个元素上变得无法继续
原因究竟是什么造成了阻碍
字段是否有标签表单字段是否与其说明文字相关联
对比度是否达标缴费按钮上的文字是否可辨认
截图中断处的画面
вердикт_человека遍历结果:通过、部分障碍、未通过。该字段名沿用历史命名,并在开放数据中保持一致
扫描器的判断自动检测对该网站给出的判断

最后一个字段最为关键:它使得对同一对象的两次测量得以相互比较。

什么算作障碍

  • 焦点不可见(outline: none)——无法判断自己身在何处
  • 焦点陷阱——无法用键盘离开该元素
  • 字段没有标签——屏幕阅读器无法说明该输入什么
  • 不是按钮的按钮——带事件处理的 div 无法获得焦点
  • 模态窗口无法用 Escape 键关闭

遍历样本如何选取

两组都要检测:既包括自动检测判定为无障碍的网站,也包括被它判定不合格的网站。否则得到的将是单向测量,只显示对我们有利的那一类错误。

第三部分:比较得出了什么

本研究的核心量值,是机器与遍历之间的差距,并且要在两个方向上分别测量:

虚假的安心——自动检测判定「无障碍」,而遍历走不通。
虚假的警报——自动检测判定不合格,而遍历能够走通。

截至 2026年9月1日 的工作进展

指标数值
遍历记录数95,524
已走完的市政当局11,902
州与属地51
带已核实截图的记录83,212
扫描器与遍历的差距53.8 %

我们承认的局限

1. 美国普查已经结束——CISA 登记册全部走完,11,659 个网站中的 11,659 个。美国的数字已是最终结果;只有在纳入其他国家时才会变化,届时会明确说明。

2. 并非每条记录都有截图。页面根本没有打开的地方,本就无图可截。

3. 反机器人屏障不等于不可访问。屏障之后是什么我们并不知道,也不把它记为障碍。

4. 遍历不能替代真实用户。它只回答一个问题:单靠键盘能否在物理上抵达目标。 八种页面类型各有自己的目标:查找公开文件、提交 311 请求、到达付款步骤、查找会议记录、抵达主导航、查找职位、查找联系方式、查找日历事件。整体数字(74.6 % 未抵达,25.4 % 抵达)涵盖全部八个目标,而非其中之一。仅付款目标的抵达率为 19.0 %。

5. 四十次 Tab 的阈值是我们自己定的。其依据是成功路径的中位数为三次按键,但这终究是我们的选择,而非某项标准。 已做敏感性检验:阈值取 40、60 和 100 时数字完全相同——超过四十次按键无人抵达目标,成功路径的第 99 百分位为 35 次。更低的阈值确实会改变结果:取 30 时抵达比例下降 0.6 个百分点,取 20 下降 2.1,取 10 下降 5.7。核心数字同样变化:40 时为 53.8 %,30 时为 55.0 %,20 时为 57.6 %。因此四十是余量,而非实质性的建模选择。

6. 自动检测无法访问的网站,此前会整体掉出样本。这类网站共 787 个,其中包括整个纽约州;其中 230 个市政当局须在 2027 年 4 月 26 日前达标。我们正按同样的顺序——由大到小——单独对它们进行遍历。

7. 部分页面被检测了两次,我们计算了这会带来什么变化。遍历按轮次推进,同一地址有时会再次进入:这类记录有 348 条,占 95,524 条日志的 0.4 %。我们对每个「地址加页面类型」的组合只保留最新的一条记录,重新计算了全部比例。核心数字完全没有变化:前后均为 74.6 %;抵达比例前后均为 25.4 %。相差百分之一个百分点,我们在此说明,以免日后需要解释。

8. 观测值并不相互独立,我们对此做了测量。同一站点的八项任务彼此关联:构建不佳的站点往往八项全部失败。组内相关系数为 0.263,方差膨胀因子为 2.72——因此八项任务提供的并非八个独立观测,而是约三个。有效样本量为 17 272,而非 47 036 条可测记录。核心数字经此校正后的置信区间为 52.7 % [51.7; 53.8]。未校正时为 [53.2; 54.4],宽度几乎只有一半,而那将是不真实的。另外:若按市政当局而非按页面计数——每个站点一票——结果为 52.7 %,对比 53.8 %。相差 1.1 个百分点:结论不依赖于计数单位。

开放性

  • 原始数据完整发布,包括对我们不利的记录
  • 检测代码是开放的
  • 附有遍历截图——每个受检页面各一张
  • 早期版本中的错误直接写在方法说明里,而不是事后改写

我们也检测了自己

一项关于无障碍的研究,如果自己的网站都不可访问,那就一文不值。2026 年 8 月 27 日,我们用与市政网站完全相同的流程走了自己的全部四个网站:用键盘、在真实浏览器中,每一步都检查焦点是否可见。

网站焦点轮廓元素数无名称
codeofdigitaleternity.comsolid 3px910
aifa.workssolid 2px1040
aifa.digitalsolid 3px670
radiocode.spaceauto 1px460

我们也把在自己身上发现的问题单独说清楚。我们的代码中有 83 处 outline: none——正是这一行,在我们自己的研究里造成了全部中断的 31 %。它们之所以无害,只是因为被全局的 :focus-visible 规则覆盖了。这恰恰就是「写得不好」与「运行得不好」之间的区别,而我们用自己作了示范。

利益冲突披露

作者提供修复无障碍缺陷的服务。本研究为自筹经费。没有人付费以进入样本,也没有人付费以被排除在外。

如何引用

Maksim Galatin & Claude (Anthropic). Municipal Website Accessibility: Automated Scan versus Keyboard Traversal. AIfa Works, 2026. CC BY 4.0. aifa.works/research/methodology

反馈

如在方法或数据中发现错误,请来信:contact@codeofdigitaleternity.com

数据本身 — aifa.works/research/data