屏幕阅读器

将屏幕上的文本和 UI 元素以语音朗读出来的辅助技术。帮助视障者访问 Web。

屏幕阅读器是一种使用语音合成朗读计算机屏幕上文本和 UI 元素的辅助技术 (assistive technology)。它是有视觉障碍的用户使用网站和应用程序时不可缺少的工具。WHO 作为截至 2026 年的公布值指出,全世界至少有 22 亿人存在近视力或远视力方面的视觉障碍,但这个数字采用的是连老视这类轻度视力下降都包含在内的宽泛定义,并不能直接代表屏幕阅读器的使用者人数。实际的使用者规模会因国家和调查而有差异,但如果疏于适配,就必然会漏掉只能通过朗读才能获取信息的那部分人群。屏幕阅读器不只是单纯的朗读软件,它还会解析页面的结构,并具备通过键盘操作在标题、链接、表单等元素之间移动的功能。

主要的屏幕阅读器包括 Windows 的 NVDA (免费、开源) 和 JAWS (商业)、macOS/iOS 的 VoiceOver (系统标准内置)、Android 的 TalkBack (系统标准内置)。它们会解释 HTML 的 DOM 结构和无障碍树,并结合 ARIA 属性的信息以语音传达内容。NVDA 由于可以免费使用,也适合开发者用于测试。在 WebAIM 的第 10 次屏幕阅读器用户调查 (于 2023 年 12 月至 2024 年 1 月实施) 中,主要使用的屏幕阅读器为 JAWS 占 40.5%、NVDA 占 37.7%,几乎势均力敌,而且占优势的产品会随地区而互换。不要只用单一产品确认就视为"已适配",至少用 NVDA 和 VoiceOver 这两个系统听一遍朗读,是实务上的最低底线。

要制作兼容屏幕阅读器的网站,有几个重要的要点。通过使用语义化 HTML,屏幕阅读器能够识别页面的地标 (header、nav、main、footer),用户可以快速移动到目标区块。恰当的 alt 文本传达图像的内容,ARIA 标签补充自定义 UI 组件的角色和状态。正确使用标题的层级结构 (h1 到 h6),用户就能从标题一览跳转到目标位置。

对键盘操作的支持也是屏幕阅读器适配的核心。屏幕阅读器的用户不使用鼠标,而是用 Tab 键移动焦点、用 Enter 键执行操作。这要求焦点指示器在视觉上明确、焦点顺序合乎逻辑、所有交互元素都能通过键盘操作。在模态对话框中还需要实现焦点陷阱,做到防止移动到对话框之外的周全考虑。

一个常见的误解是"屏幕阅读器只有视障者才使用"。实际上,使用者层面十分多样,还包括有学习障碍的用户、暂时性视觉障碍者 (如眼部手术后)、希望在多任务处理中通过语音获取信息的用户等。另外还有"大量使用 ARIA 属性就能完成适配"这样的误解,但 ARIA 的第一原则是"如果能用原生 HTML 元素实现,就不要使用 ARIA"。

从字符计数的角度来看,屏幕阅读器也会朗读屏幕上不显示的文本 (alt 属性、aria-label、visually-hidden 类的文本)。因此,对这些不可见文本的字符数管理也很重要。alt 文本的长度在规范上并没有上限,但出于避免在旧朗读环境中被截断的惯例,把它控制在 125 个字符左右作为参考的做法被广泛采用。aria-label 同样地,基本原则是控制在听一遍就能理解的长度。在掌握整个页面的文本量时,需要不仅考虑可见文本,也把这些不可见文本包含在内。

分享这篇文章