使用 Jetpack Compose 改进应用的无障碍功能
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
无障碍对于打造人人都能使用的包容性应用至关重要。
Compose 为构建无障碍界面奠定了基础,使您的应用可供世界各地的所有人使用。
主要概念
语义:表示无障碍服务界面元素含义的系统。这包括说明、状态和用户可以执行的操作等属性。
遍历:TalkBack 等无障碍服务在屏幕上浏览元素的顺序。您可以自定义此顺序,以提供更好的用户体验。
无障碍操作:用户可以对界面元素执行的特定操作,例如点击、滚动和关闭。您的应用会将这些消息传达给无障碍服务。
开始
Compose 无障碍功能模型和工具的基础是语义。如需了解详情,请参阅 Compose 中的语义指南。
在开发应用时,请从一开始就牢记以下关键步骤,以改进 Compose 应用的无障碍功能:
- 考虑最小触摸目标尺寸:确保可点击的互动元素至少为 48dp。这符合 Material Design 无障碍功能指南。
- 添加点击标签:如果您无法直接访问
clickable
,请使用 clickable
修饰符或 semantics
修饰符描述点击行为。
- 描述视觉元素:使用
contentDescription
参数以文本形式描述图标和图片。对于装饰性元素,请将 contentDescription
设置为 null
。
- 定义标题:使用
semantics
修饰符属性将元素标记为标题,以便更轻松地进行导航。
- 控制遍历顺序:使用
isTraversalGroup
标记应一起读取的元素组。利用 traversalIndex
进一步自定义这些组中元素的顺序。
如需了解详情,请参阅专门的改进 Compose 无障碍功能的关键步骤指南。
- TalkBack:适用于 Android 的 Google 屏幕阅读器。激活它即可测试应用语义对于依赖辅助技术的用户如何发挥作用。
- 布局检查器:直观呈现和调试应用的语义树。
- Compose 测试 API:编写与语义元素交互的测试,以断言 Compose 界面的无障碍功能。
Codelab
如需详细了解如何在 Compose 代码中支持无障碍功能,请学习 Jetpack Compose 中的无障碍功能 Codelab。
其他资源
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-04-23。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-04-23\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-04-23。"]]