技术

VoiceOver

Apple 内置屏幕阅读器,预装于每台 macOS 和 iOS 设备。在 iOS 上,VoiceOver 是移动端网页无障碍测试的参考标准屏幕阅读器。

VoiceOver 是 Apple 内置屏幕阅读器,随每台 Mac、iPhone、iPad、Apple Watch 和 Apple TV 免费提供。在 iOS 上,VoiceOver 是进行任何有意义的移动端网页无障碍测试时公认的参考标准屏幕阅读器。

在 macOS 上

macOS 上的 VoiceOver 通过 Cmd+F5 启动(在支持的键盘上,也可长按 Touch ID 按钮)。它拥有专属修饰键——VoiceOver 键(VO),通常为 Caps LockControl+Option——作为大多数 VoiceOver 专属快捷键的前缀。激活后,VoiceOver 会朗报当前焦点元素的内容、角色和状态。

从宏观行为来看,macOS VoiceOver 与 Windows 上的 JAWS 或 NVDA 相似:按地标、标题、表单字段进行键盘导航;ARIA 角色、状态与值的朗报;实时区域处理。

从微观细节来看,有一些特殊之处可能令习惯 Windows 测试的开发者感到意外:

  • VoiceOver”转子”(rotor) 相当于 JAWS 虚拟光标/表单模式的 Apple 版本。VO+U 打开转子(一个环形样式的菜单),列出各导航模式——标题、链接、表单控件、地标、网页热点。用户选择一种模式,然后逐项导航。
  • <button>role="button" — VoiceOver 历史上在细微之处对两者的朗报存在差异;现代 Safari 已缩小但尚未完全消除这一差距。
  • 自定义焦点环。 macOS VoiceOver 会在焦点元素周围绘制深色轮廓。若页面本身也绘制焦点环,两者将同时可见,可能产生视觉冲突。

在 iOS 上——更重要的平台

在 iOS 上,VoiceOver 通过无障碍快捷方式(三击侧边按钮,或通过”设置”)启动。其交互模式基于手势,是移动无障碍的实际标准:

  • 单指向右轻扫 — 移动焦点到下一个元素。
  • 单指向左轻扫 — 移动焦点到上一个元素。
  • 单指双击 — 激活当前焦点元素。
  • 三指上下轻扫 — 滚动屏幕。
  • 双指捏合 — 退出并重新进入具有子结构的元素。
  • VoiceOver 转子(在触摸屏上双指旋转)— 概念与 macOS 相同,按地标、标题等导航。

这些手势构成了移动屏幕阅读器使用的事实词汇表。任何通过劫持触摸事件、困住焦点或使元素无法关闭而破坏这些手势的网页应用或页面,都属于直接的移动无障碍缺陷。

iOS VoiceOver 测试实践

三种测试模式能发现大多数 iOS VoiceOver 问题:

  1. 用单指轻扫逐一浏览整个屏幕。 焦点顺序应与视觉顺序一致。每个交互元素都应朗报其角色。
  2. 打开转子,检查标题和地标列表。 缺失的地标或跳级的标题层次在此处一目了然。
  3. 触发任何动态更新(轮播切换、展开/折叠、表单提交)。验证变化是否通过适当的 aria-live 区域朗报,而非通过用户从未听到的静默 DOM 变更传达。

iOS VoiceOver 同时也是 Apple 原生 iOS 应用的参考工具;在 Apple 生态系统内,相同的测试技能可同时应用于网页端和原生端。