Jetpack Compose 中的无障碍功能

无障碍功能对于创建每个人都能使用的包容性应用至关重要。Compose 为构建无障碍 UI 提供了基础,使您的应用在任何地方都能供所有人使用。

关键概念

  • 语义:代表无障碍服务 UI 元素含义的系统。这包括用户可以执行的描述、状态和操作等属性。

  • 遍历:无障碍服务(如 TalkBack)在屏幕上遍历元素的顺序。您可以自定义此顺序以获得更好的用户体验。

  • 无障碍操作:用户可以在 UI 元素上执行的特定操作,例如点击、滚动和关闭。您的应用将它们传达给无障碍服务。

开始使用

Compose 的无障碍模型和工具的基础是语义。有关更多信息,请参阅 Compose 中的语义指南。

在开发应用时,请从一开始就牢记以下关键步骤,以提高 Compose 应用的无障碍性

  • 考虑最小触摸目标大小确保可点击和交互式元素至少为 48dp。这符合 Material Design 无障碍指南。
  • 添加点击标签使用 clickable 修饰符或 semantics 修饰符描述点击行为,如果您无法直接访问 clickable
  • 描述视觉元素使用 contentDescription 参数以文本方式描述图标和图像。对于装饰性元素,将 contentDescription 设置为 null
  • 定义标题使用 semantics 修饰符属性将元素标记为标题,以便于导航。
  • 控制遍历顺序使用 isTraversalGroup 标记应一起读取的元素组。利用 traversalIndex 进一步自定义这些组中元素的顺序。

有关更多信息,请参阅专门的 提高 Compose 无障碍性的关键步骤指南。

工具

  • TalkBackGoogle 的 Android 屏幕阅读器。激活它以测试您的应用的语义对于依赖辅助技术的用户的有效性。
  • 布局检查器可视化和调试应用的语义树。
  • Compose 测试 API编写与语义元素交互的测试,以断言 Compose UI 的无障碍性。

Codelab

要了解有关在 Compose 代码中支持无障碍功能的更多信息,请参加 Jetpack Compose 中的无障碍功能 codelab。

其他资源