测试应用的无障碍功能

通过测试无障碍功能,您可以从用户的角度体验您的应用,并发现原本可能忽略的易用性问题。无障碍功能测试可以挖掘出改进机会,使您的应用变得功能更强大且更多样,造福于所有用户,包括残障用户。

为了获得最佳效果,请使用本文档中介绍的所有方法:

  • 手动测试:使用 Android 无障碍服务与您的应用互动。
  • 使用分析工具进行测试:使用各种工具发现改进应用无障碍功能的机会。
  • 自动化测试:使用 Compose 测试 API 来自动化界面测试。
  • 用户测试:从与您的应用互动的用户那里获得反馈。

手动测试

手动测试能让您从用户的角度体验应用。Android AccessibilityService 对象会改变应用内容呈现给用户的方式以及用户与内容互动的方式。通过使用无障碍服务与您的应用互动,您可以像用户一样体验应用。

如需详细了解如何在 Compose 中进行测试,请参阅测试测试 Compose 布局

TalkBack

TalkBack 是 Android 的内置屏幕阅读器。开启 TalkBack 后,用户无需查看屏幕即可与 Android 设备互动。视障用户在使用您的应用时可能需要依赖于 TalkBack。

开启 TalkBack

  1. 打开设备的“设置”应用。
  2. 转到无障碍,然后选择 TalkBack
  3. 在 TalkBack 屏幕的顶部,按开启/关闭即可开启 TalkBack。
  4. 在确认对话框中,选择确定以确认权限。

使用 TalkBack 浏览应用

开启 TalkBack 后,您可以通过以下两种常见方式导航:

  • 线性导航:快速向左或向右滑动即可按顺序浏览屏幕元素。点按任意位置两次即可选择当前屏幕元素。
  • 点按浏览:在屏幕上拖动手指即可让系统读出手指轻触的内容。点按任意位置两次即可选择当前元素。

如需使用 TalkBack 浏览应用,请完成以下步骤:

  1. 打开您的应用。
  2. 按顺序滑动浏览各个元素。
  3. 在浏览过程中,注意下面几个问题:

    • 每个元素的语音反馈是否恰当地传达了其内容或用途?了解如何编写有意义的标签
      • 朗读内容是简洁明了,还是过于冗长?
    • 您能否轻松完成主要工作流程?
    • 您能否通过滑动浏览每个元素?
    • 如果出现提醒或其他临时消息,TalkBack 能否朗读出来?

如需了解详情和提示,请参阅 TalkBack 用户文档

可选:TalkBack 开发者设置

TalkBack 开发者设置可让您轻松使用 TalkBack 测试应用。

如需查看或更改开发者设置,请完成以下步骤:

  1. 打开设备的“设置”应用。
  2. 转到无障碍,然后选择 TalkBack
  3. 依次选择设置 > 高级设置 > 开发者设置

    1. 日志输出级别:选择详细
    2. 显示语音输出:开启此设置即可在屏幕上查看 TalkBack 语音输出。

开关控制

“开关控制”可让用户使用开关(而不是触摸屏)与 Android 设备互动。开关分为以下几种:AbleNet、Enabling Devices、RJ Cooper 或 Tecla* 等出售的辅助技术设备;外部键盘按键;或者按钮。对于有运动障碍的用户,此服务非常有用。

* Google 不对这些公司或他们的产品给予认可。

开启“开关控制”

配置“开关控制”的一种方式是使用两个开关。一个开关被指定为“下一项”开关,用于在屏幕上移动焦点;第二个是“选择”开关,用于选择焦点所在的元素。如需使用这种双开关方法,您可以使用任意一对硬件按键。

在设置“开关控制”时,如需将音量调低键用作“下一项”开关,并将音量调高键用作“选择”开关,请完成以下步骤:

  1. 确保 TalkBack 已关闭。
  2. 打开设备的“设置”应用。
  3. 转到无障碍并选择开关控制,然后选择设置
  4. 在“开关控制偏好设置”屏幕中,确保自动扫描功能已关闭。
  5. 将音量调低键用作“下一项”开关:

    1. 依次点按指定扫描按键 > 下一项
    2. 对话框打开后,按音量调低键。此时,对话框会显示 KEYCODE_VOLUME_DOWN。
    3. 点按确定,确认并退出该对话框。
  6. 将音量调高键用作“选择”开关:

    1. 点按“选择”。
    2. 对话框打开后,按音量调高键。此时,对话框会显示 KEYCODE_VOLUME_UP。
    3. 点按确定,确认并退出该对话框。
  7. 如需返回“开关控制偏好设置”,请点按返回按钮。

  8. 可选:如果您使用的是 TalkBack 5.1 或更高版本,则可以选择语音反馈来开启语音反馈。

  9. 如需返回“开关控制”主屏幕,请点按返回按钮。

  10. 在“开关控制”屏幕的顶部,按开启/关闭即可开启“开关控制”。

  11. 在确认对话框中,选择确定以确认权限。

通过“开关控制”浏览应用

如需通过“开关控制”浏览您的应用,请完成以下步骤:

  1. 打开您的应用。
  2. 按“下一项”键(音量调低按钮)开始扫描。
  3. 继续按“下一项”开关,直到找到您想要选择的项。
  4. 按“选择”键(音量调高按钮)选择突出显示的项。
  5. 在浏览过程中,注意下面几个问题:

    • 您能否轻松完成主要工作流程?
    • 如果存在文本或其他输入内容,您能否轻松添加和修改内容?
    • 这些项只有在您可以对它们执行操作时才会突出显示吗?
    • 每项是否只能突出显示一次?
    • 可通过触摸屏手势使用的所有功能是否也可作为“开关控制”中的可选控件或自定义操作使用?
    • 如果您使用的是 TalkBack 5.1 或更高版本,并且已开启语音反馈,那么每个元素的语音反馈是否恰当地传达了其内容或用途?了解如何编写有意义的标签

可选:通过组选择来查看所有可扫描项

组选择是一种“开关控制”导航方法,可让您同时查看所有的可扫描项。借助此选项,您可以快速检查屏幕上是否突出显示了正确的元素。

如需开启组选择,请完成以下步骤:

  1. 打开设备的“设置”应用。
  2. 转到无障碍并选择开关控制,然后选择设置
  3. 在“开关控制偏好设置”屏幕中,确保自动扫描功能已关闭。
  4. 依次选择扫描方法 > 组选择
  5. 点按指定用来控制扫描的开关
  6. 确保组选择开关 1组选择开关 2 下的文本表明已经为这两者各指定了一个开关。如果您按照本文档中的步骤开启“开关控制”,则应该已指定音量按钮。

如需通过组选择使用“开关控制”来浏览您的应用,请完成以下步骤:

  1. 按“选择”键(音量调高按钮)以突出显示当前屏幕上的所有可操作项。注意下面几个问题:

    • 是否仅突出显示了可操作项?
    • 是否突出显示所有可操作项?
    • 突出显示的项的密度是否合理?
  2. 转到其他屏幕以清除突出显示效果。

如需详细了解用户如何使用组选择进行导航,请参阅“开关控制”使用提示

Voice Access

Voice Access 可让用户通过语音指令控制 Android 设备。搭载 Android 5.0(API 级别 21)及更高版本的设备提供 Voice Access。如需使用 Voice Access 测试您的应用,请了解如何开始使用 Voice Access

使用分析工具进行测试

分析工具可以发现手动测试可能会错失的无障碍功能改进机会。

Compose 界面检查

在 Compose 预览中激活 Compose 界面检查模式 ,以便 Android Studio 自动审核您的 Compose 界面是否存在无障碍问题。Android Studio 会通过在“问题”面板中突出显示问题(例如大屏幕上的文字拉伸或颜色对比度低)来检查您的界面在不同屏幕尺寸下的运行情况。

Android Studio,突出显示了标有“Start UI Check Mode”(启动界面检查模式)的按钮。
图 1. “启动界面检查模式”按钮。

当界面检查模式处于激活状态时,“问题”面板会显示检测到的无障碍功能问题的详细信息,如图 2 所示。

已启用界面检查模式的 Android Studio。“问题”面板已打开,其中显示了检测到的无障碍功能问题列表。
图 2. 界面检查模式已激活,问题面板中显示了详细信息。

例如,界面检查模式可以显示有关如何修正颜色对比度不足的建议。如图 3 所示,您还可以预览界面在有不同类型色觉障碍的用户眼中的样子。

Android Studio,问题面板中选择了一个界面检查问题。此问题与色彩对比度不足有关,该面板会显示建议的修正措施,并提供色觉缺陷用户界面预览。
图 3. 界面检查模式会显示界面预览,并提供有关如何修正色彩对比度不足问题的建议。

无障碍功能扫描仪

无障碍功能扫描仪应用会扫描您的屏幕,并提出关于如何改进应用无障碍功能的建议。无障碍功能扫描仪使用无障碍功能测试框架,并在查看内容标签、可点击项、对比度等内容后提供具体建议。

如需了解详情,请参阅以下资源:

Google Play 上的发布前测试报告

如果您在 Google Play 上分发应用,便可查看应用的发布前测试报告。在您通过 Google Play 管理中心将应用上传到发布渠道不久后,Google Play 会生成此报告。发布前测试报告也可在 Google Play 管理中心内找到,它显示了 Google Play 对您的应用执行的测试的结果。

具体而言,Google Play 会使用无障碍功能测试框架运行无障碍功能测试。。这些测试的结果将显示在应用的发布前测试报告的无障碍标签页上的一个表格中。

该表格将改进机会分为以下几类:

触摸目标大小
应用中的某些互动元素的可聚焦区域(即触摸目标大小)小于建议的值。
低对比度
对某个文本元素和该元素后面的背景使用的一对颜色的色彩对比度低于建议的值。
内容标签
某些界面元素没有描述元素用途的标签
实现
为界面元素分配了某些属性,这使得系统的无障碍服务更难以正确解读元素,例如,使用与元素的逻辑排列方式不匹配的元素遍历顺序

在该表格后面,发布前测试报告显示了应用的快照。这些快照呈现了各个类别中改进应用无障碍功能的首要机会。选择屏幕截图后,您可以查看更多详细信息,包括建议的改进和一个更完整的列表,其中列出了您可以在应用中的哪些位置应用同样的改进。

图 4 显示了一个表格的示例,它显示在 Google Play 中发布前测试报告的无障碍标签页上。此图还包含应用的一个快照,它显示了下一项按钮的触摸目标大小小于建议的值。

显示发布前测试报告“无障碍”标签页的图片
图 4. 发布前测试报告的无障碍标签页上的摘要表格(左)和屏幕截图(右)示例。

UI Automator 查看器

uiautomatorviewer 工具提供了一个方便的 GUI,可扫描和分析 Android 设备上当前显示的界面组件。您可以使用 UI Automator 检查语义树,该树表示可组合项的无障碍功能属性。利用此信息,您可以创建更精细的测试。例如,通过创建与特定可见属性匹配的界面选择器来做到这一点。该工具位于 Android SDK 的 tools 目录中。

在无障碍功能测试中,此工具对于调试使用其他测试方法发现的问题很有用。例如,如果手动测试揭示了某个界面元素应包含却未包含可朗读的文本,或者某个元素不应获得焦点却获得了焦点,您可以使用该工具帮助找出问题根源。

如需详细了解 UI Automator 查看器,请参阅使用 UI Automator 编写自动化测试与 UiAutomator 的互操作性

自动测试

使用 Compose 测试 API 创建并运行自动化测试,以评估应用布局的无障碍功能。这些 API 支持查找元素、验证其属性和执行用户操作,还支持时间操控等高级功能。

Compose 测试依赖于语义树,该树提供与无障碍服务用于读取界面说明的语义信息相同的语义信息。这意味着您的无障碍功能测试可以更准确地反映实际的无障碍功能使用情形。

如需详细了解 Compose 中的自动化测试和 Compose 测试 API,请参阅测试 Compose 布局

用户测试

与本指南中的其他测试方法一样,用户测试可以提供有关应用易用性的具体且宝贵的深入分析。

为了找到可以测试您的应用的用户,请使用如下方法:

  1. 与为残障人士提供培训的当地组织、学院或大学联系。
  2. 在您的社交圈中询问。可能会有残障人士愿意提供帮助。
  3. 询问用户测试服务机构(如 usertesting.com),看看他们能否邀请残障用户测试您的应用。

如需更多提示,请观看以下视频的用户测试部分(从 31 分 10 秒到 44 分 51 秒):幕后故事:Android 无障碍功能的新变化 - 2016 年 Google I/O 大会

其他资源

如需详细了解无障碍功能测试,请参阅以下资源:

查看内容