android 应用的目标应该是让所有人都可以使用,包括具有无障碍功能需求的人。
视力受损、色盲、听力受损、精细动作失能的人、以及有认知障碍和许多其他残疾的人可以使用 android 设备来处理他们日常生活中的各种事务。如果您能够在开发应用时考虑无障碍功能,那么您便可以改善用户体验,对具有这些需求以及其他无障碍功能需求的用户来说尤其如此。
本文介绍了应该依据哪些准则来实现无障碍功能的关键元素,以便所有人都可以更轻松地使用您的应用。如需获得有关如何让您的应用使用起来更没有障碍的更深入指导,请访问改进应用无障碍功能要遵循的原则页面:
改进应用无障碍功能要遵循的原则
https://developer.android.google.cn/guide/topics/ui/accessibility/principles
提升文字显示效果
对于应用中的每组文字,建议将色彩对比度 (即文字颜色与文字后面的背景颜色之间感知到的亮度差异) 设为高于特定阈值。确切阈值取决于文字的字体大小以及文字是否以粗体显示:
如果文字小于 18pt,或者如果文字为粗体且小于 14pt,则色彩对比度应至少为 4.5:1。
对于其他所有文字,色彩对比度应至少为 3.0:1。
下图显示了文字与背景色彩对比度的两个示例:
△ 低于建议的色彩对比度 (左图)足够高的色彩对比度 (右图)
如需查看应用中文字与背景的色彩对比度,请使用在线色彩对比度检查工具或无障碍功能扫描仪应用。
无障碍功能扫描仪https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor
使用简单的大型控件
如果应用的界面包含更易于查看和点按的控件,界面就会更易于使用。我们建议每个互动界面元素的可聚焦区域 (即触摸目标大小) 至少为 48dp x 48dp。越大越好。
为使给定界面元素的触摸目标足够大,应同时满足以下两个条件:
android:paddingleft、android:minwidth 和 android:paddingright 的值的总和应大于或等于 48dp。android:paddingtop、android:minheight 和 android:paddingbottom 的值的总和应大于或等于 48dp。
android:paddingleft
https://developer.android.google.cn/reference/android/view/view#attr_android:paddingleft
android:minwidth
https://developer.android.google.cn/reference/android/view/view#attr_android:minwidth
android:paddingright
https://developer.android.google.cn/reference/android/view/view#attr_android:paddingright
android:paddingtop
https://developer.android.google.cn/reference/android/view/view#attr_android:paddingtop
android:minheight
https://developer.android.google.cn/reference/android/view/view#attr_android:minheight
android:paddingbottom
https://developer.android.google.cn/reference/android/view/view#attr_android:paddingbottom
这些内边距值允许对象的可见大小小于 48dp x 48dp,同时仍具有建议的轻触目标大小。
以下代码段展示了一个具有建议的触摸目标大小的元素:
描述每个界面元素
我们建议应用中的每个界面元素都包含描述该元素用途的说明。在大多数情况下,您可以在元素的 contentdescription 属性中添加此说明,如以下代码段所示:
注意: 请勿为 textview 元素提供说明。android 无障碍服务会自动读出文字本身作为说明。
textview
https://developer.android.google.cn/reference/android/widget/textview
向应用的界面元素添加说明时,请牢记以下最佳做法:请勿将界面元素的类型包含在内容说明中。屏幕阅读器会自动读出元素的说明和类型。例如,如果选择某个按钮会导致应用中发生 提交 操作,则该按钮的说明应为 submit,而非 submit button。每条说明都应该是独一无二的。这样,当屏幕阅读器用户遇到重复的元素说明时,他们便能正确地识别出焦点现在位于之前已聚焦的元素上。特别是,视图组中的每一项 (如 recyclerview) 都应具有不同的说明。每条说明都应反映给定项所特有的内容,如位置列表中某个城市的名称。如果界面包含仅用于装饰效果的图形元素,请将其说明设为 @null。如果应用的 minsdkversion 为 16 或更高版本,您可以改为将这些图形元素的 android:importantforaccessibility 属性设为 no。
recyclerviewhttps://developer.android.google.cn/reference/androidx/recyclerview/widget/recyclerviewandroid:importantforaccessibilityhttps://developer.android.google.cn/reference/android/view/view#attr_android:importantforaccessibility
其他资源
如需详细了解如何让您的应用使用起来更没有障碍,请参阅下面列出的其他资源:codelab: android 无障碍功能入门https://codelabs.developers.google.com/codelabs/starting-android-accessibility博文: 无障碍功能: 是否所有用户都能使用您的应用?https://android-developers.googleblog.com/2012/04/accessibility-are-you-serving-all-your.html
点击屏末 | 阅读原文 | 即刻了解无障碍功能更多相关内容
原文标题:为应用打造更好的无障碍体验
文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。
采用CPLD和VHDL语言实现CMOS APS图像传感器时序控制电路的设计
智能视觉环卫机器人在杭州投入使用
Display Supply Chain Consultants (DSCC)最新显示设备报告
虽然激光电视正在崛起,但仍有这些痛点尚待解决
为什么倍压整流电路带负载时电压会下降很多呢?
为应用打造更好的无障碍体验
dfrobotI2C LCD1602 RGB彩色字体液晶屏简介
小米入局造车胜算在哪里?
CAT1域格模块常见问题部分设计参考
电池修复技术:比重与比重计制作的说明
ICH 2023深圳连接器线束展将于5月16日开幕
MCU内“忧”外“患”,本土MCU或将洗牌
华数锦明已供货多家企业_连续中标多条动力电池线项目
采用云计算技术可降低潜在的网络、系统、数据等潜在安全风险
人工智能的智慧城市应用场景
电流表的使用方法及注意事项
采用基于PC的监控设备和以太网提高烟草生产线的制造和管理
金刚石/氮化镓薄膜生长工艺与热物性表征领域研究进展
Rustacean原则概要
分析电能质量分析仪一个案例中的测试效果