技术

屏幕阅读器

另见: SR

将屏幕内容转换为合成语音或可刷新盲文的软件。主流桌面屏幕阅读器包括 JAWS(付费,Windows)、NVDA(开源,Windows)和 VoiceOver(内置于 macOS/iOS)。TalkBack 是 Android 平台的对应产品。

屏幕阅读器是将屏幕内容转换为合成语音或可刷新盲文的软件。它是盲人及严重低视力计算机用户使用的主要辅助技术,也是整个 ARIA 与语义化 HTML 体系最终服务的用户代理。

屏幕阅读器的工作原理

屏幕阅读器通过遍历操作系统或浏览器的无障碍树来工作——这是一种内部数据结构,用于暴露元素的角色、名称、状态及关系。屏幕阅读器将该树序列化为语音(或盲文),并将键盘输入路由回应用程序。

使用屏幕阅读器浏览网页时,用户可以:

  • 按下方向键或”读取下一项”快捷键顺序阅读
  • 按标题跳转(许多阅读器使用 H 键)以快速浏览长页面。
  • 在地标之间跳转<nav><main><aside>)以在页面各区域间移动。
  • 打开链接列表,单独浏览导航选项。
  • 打开表单字段列表,快速完成表单填写。
  • 通过”全部朗读”命令连续朗读

这正是标题结构、地标及准确的链接文本如此重要的原因。屏幕阅读器用户不会逐一 Tab 浏览页面上的每个元素——他们依靠结构进行导航。没有标题或链接文本含糊(如”点击这里”)的页面根本无法浏览。

主要桌面屏幕阅读器

  • JAWS(Job Access With Speech)— 商业产品,运行于 Windows,由 Freedom Scientific 开发。企业市场的历史主导产品,通常与 Chrome 或 Edge 配合使用。
  • NVDA(NonVisual Desktop Access)— 免费开源,运行于 Windows。市场份额接近 JAWS,是无障碍专业人员默认测试所用的屏幕阅读器。
  • VoiceOver — 内置于 macOS 和 iOS,是 Apple 全平台的参考级屏幕阅读器。
  • Narrator — 内置于 Windows,传统上作为备选方案,但在 Windows 11 中已具备越来越强大的功能。
  • Orca — 免费,适用于 GNOME/Linux。用户群体较小,但是开源桌面环境的默认屏幕阅读器。

主要移动端屏幕阅读器

  • VoiceOver(iOS) — 移动端网页无障碍测试的公认参考标准。
  • TalkBack(Android) — Google 的移动屏幕阅读器,随 Pixel 设备及大多数 OEM Android 系统预装。

实际测试的方式

WebAIM 屏幕阅读器用户调查(约每两年发布一次)是目前唯一被广泛引用的使用数据来源。JAWS 和 NVDA 在桌面端占主导地位;VoiceOver for iOS 在移动端占主导地位。实际质量保障程序通常至少测试以下三种组合:

  • NVDA + Firefox(Windows)
  • JAWS + Chrome(Windows)
  • VoiceOver + Safari(macOS 和 iOS)

每种组合会暴露不同的问题——各组合之间在 ARIA 支持深度、焦点行为和实时区域处理方面存在不可忽视的差异。一旦预算允许,跨屏幕阅读器测试不可或缺。

常见的屏幕阅读器体验破坏因素

  • 自定义组件缺乏正确的 ARIA 角色。
  • 动态内容变化没有对应的 aria-live 区域(或者同样糟糕的情况:对每一次细微更新都使用 aria-live="assertive"——屏幕阅读器会不断打断用户)。
  • 焦点未跟随可见上下文移动(模态框打开后,焦点仍停留在屏幕外的触发元素上)。
  • 图片的 alt 属性为空,但图片实际传达了内容。
  • 视觉隐藏文本与可见文本相矛盾。