揭秘屏幕阅读器:无障碍表单与最佳实践

Avatar of Chris DeMars
Chris DeMars 发表于

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用,并获得 $200 免费赠金!

这是我们关于表单无障碍性的系列文章中的第三篇。如果您错过了第二篇文章,请查看 “使用 :focus-visible 管理用户焦点”。 在这篇文章中,我们将研究如何在导航表单时使用屏幕阅读器,以及一些最佳实践。

编者注: 我们对文中的一些最佳实践和代码示例进行了编辑。如果您对这篇文章有任何想法和反馈,请告诉我们!

什么是屏幕阅读器?

您可能在浏览网页时听说过“屏幕阅读器”一词。您现在甚至可能正在使用屏幕阅读器对您正在构建的体验进行手动辅助功能测试。屏幕阅读器是一种辅助技术 (AT)。

屏幕阅读器将数字文本转换为合成语音或盲文输出,通常与盲文阅读器一起使用。

在本例中,我将使用 Mac VO。 Mac VO(VoiceOver)内置于所有 Mac 设备中;iOS、iPadOS 和 macOS 系统。根据您运行 macOS 的设备类型,打开 VO 的方式可能有所不同。我正在撰写本文的运行 VO 的 Macbook Pro 没有触控栏,因此我将根据硬件使用快捷键。

在 macOS 上启动 VO

如果您使用的是更新的 Macbook Pro,则机器上的键盘将类似于下图。

您首先按住 cmd 键,然后快速按下触控 ID 三次。

MacBook Pro Keyboard with steps on how to start mac voiceover.

如果您使用的是带有触控栏的 MBP(MacBook Pro),则可以使用快捷键 cmd+fn+f5 打开 VO。如果您在台式机或笔记本电脑上使用传统键盘,则按键应该相同,或者您必须在“辅助功能”设置中打开 VO。打开 VO 后,您会看到此对话框以及 VO 的语音介绍。

Welcome to VoiceOver dialog when opening up voiceover.

如果您单击“使用 VoiceOver”按钮,则可以使用 VO 测试您的网站和应用程序。需要注意的是,VO 针对 Safari 进行了优化。也就是说,在运行屏幕阅读器测试时,请确保 Safari 是您正在使用的浏览器。iPhone 和 iPad 也是如此。

从一开始,您就可以通过两种主要方式使用 VO。我个人使用它的方式是导航到一个网站,并结合使用 tab、control、option、shift 和箭头键,我可以仅使用这些键就可以有效地在体验中导航。

另一种常见的导航体验方式是使用 VoiceOver 转盘。转盘是一项功能,旨在直接导航到您想要体验的位置。通过使用转盘,您无需遍历整个网站,将其视为“选择您自己的冒险”。

修饰键

修饰键是您使用 VO 中不同功能的方式。默认修饰键或 VOcontrol + option,但您可以将其更改为大写锁定或选择这两个选项以互换使用。

VoiceOver utility to change the modifier keys.

使用转盘

要使用转盘,您必须同时使用修饰键和字母“U”。对我来说,我的修饰键是 caps lock。我按下 caps lock + U,转盘就会出现。转盘出现后,我可以使用左右箭头导航到体验中的任何部分。

VoiceOver rotor feature showing the Headings navigation.
在 VoiceOver 中使用转盘

另一种浏览体验的巧妙方法是按标题级别。如果您使用修饰键 + cmd + H 的组合键,则可以根据标题级别遍历文档结构。您还可以通过在序列中按 shift 来向上移动文档,例如,修饰键 + shift + cmd + H

使用 VoiceOver 的标题级别快捷方式

历史与最佳实践

表单是我们在 HTML 中拥有的最强大的原生元素之一。无论您是在页面上搜索内容、提交表单以购买商品还是提交调查。表单是网络的基石,并且是将交互性引入我们体验的催化剂。

Web 表单的历史可以追溯到 1995 年 9 月,当时它是在 HTML 2.0 规范 中引入的。有些人说网络的黄金时代,至少我是这么说的。Stephanie Stimac 在 Smashing Magazine 上写了一篇很棒的文章,标题为“标准化选择及其他:原生 HTML 表单控件的过去、现在和未来”。

在我看来,以下是在为网络构建无障碍表单时应遵循的一些最佳实践。

  1. 隐式标记是完全可以的。查看 https://www.w3.org/WAI/tutorials/forms/labels/ 文章。如果表单作者不知道 ID,则可以隐式标记。我个人更喜欢显式的方式。
<!-- Implicit Label -->

<label>
  First Name:
  <input type="text" name="firstname">
</label>
<!-- Explicit Label -->

<label for="name">Name:</label>
<input type="text" id="name" name="name" required/>
  1. 如果需要某个字段才能完成表单,请使用 required 属性。 确保也有一个直观的指示表明某个字段是必需的,因为非屏幕阅读器用户也需要知道某个字段是必需的。
<input type="text" id="name" name="name" required />
  1. button 用于调用操作,例如提交表单。用它!不要使用 div 创建按钮。 div 本身是一个没有语义的容器。

演示

使用 VoiceOver 导航 Web 表单

如果您想查看代码,请导航至 VoiceOver 演示 GitHub 存储库。如果您想使用您选择的屏幕阅读器试用上面的演示,请查看 使用 VoiceOver 导航 Web 表单

屏幕阅读器软件

以下列出了您可以在给定操作系统上使用的各种类型的屏幕阅读器软件。如果 Mac 不是您选择的机器,则 Windows 和 Linux 以及 Android 设备都有相应的选项。

NVDA

NVDA 是 NV Access 提供的一款屏幕阅读器。它目前仅在运行 Microsoft Windows 7 SP1 及更高版本的 PC 上受支持。如需了解更多信息,请访问 NV Access 网站上的 NVDA 2024.1 版本下载页面

JAWS

“我们需要更好的屏幕阅读器”

— 匿名

如果您理解了上面的说法,那么您并不孤单。根据 JAWS 网站,简而言之,它就是:

“JAWS(Job Access With Speech,带语音的作业访问)是全球最受欢迎的屏幕阅读器,专为视力障碍、无法看到屏幕内容或使用鼠标导航的计算机用户而开发。JAWS 为您 PC 上最常用的计算机应用程序提供语音和盲文输出。您将能够从您的办公室、远程桌面或家中浏览互联网、编写文档、阅读电子邮件和创建演示文稿。”

JAWS 网站

亲自体验 JAWS,如果该解决方案符合您的需求,请务必试一试!

讲述人

讲述人是 Windows 11 附带的内置屏幕阅读器解决方案。如果您选择使用它作为您的首选屏幕阅读器,以下链接提供有关其使用的支持文档。

讲述人完整指南

Orca

Orca 是一款可以在运行 GNOME 的不同 Linux 发行版上使用的屏幕阅读器。

“Orca 是一款免费、开源、灵活且可扩展的屏幕阅读器,可通过语音和可刷新盲文提供对图形桌面的访问。

Orca 可与支持辅助技术服务提供程序接口 (AT-SPI) 的应用程序和工具包配合使用,该接口是 Linux 和 Solaris 的主要辅助技术基础架构。支持 AT-SPI 的应用程序和工具包包括 GNOME Gtk+ 工具包、Java 平台的 Swing 工具包、LibreOffice、Gecko 和 WebKitGtk。目前正在努力为 KDE Qt 工具包提供 AT-SPI 支持。”

Orca 网站

TalkBack

Google TalkBack 是 Android 设备上使用的屏幕阅读器。有关打开和使用它的更多信息,请查看 Android 无障碍功能支持网站上的这篇文章

浏览器支持

如果您正在寻找对 HTML 元素和 ARIA(无障碍富互联网应用程序)属性的实际浏览器支持,我建议您访问 caniuse.com 了解 HTML辅助功能支持了解 ARIA,以获取有关浏览器支持的最新 4-1-1 信息。请记住,如果浏览器不支持该技术,那么屏幕阅读器可能也不支持。

DigitalA11Y 可以通过他们的文章 屏幕阅读器和浏览器!哪种组合最适合无障碍测试? 帮助总结浏览器和屏幕阅读器的信息。

谢谢!

感谢 Adrian Roselli、Karl Groves、Todd Libby、Scott O'Hara、Kev Bonnett 等人为澄清和反馈提供的帮助!