让应用使用起来更没有障碍

Android 应用的目标应该是让所有人都可以使用,包括有无障碍功能需求的人士。

有视觉障碍、色盲、视觉障碍、精细动作失能、认知障碍以及很多其他残疾的人员在日常生活中使用 Android 设备来完成各项任务。如果您能够在开发应用时考虑无障碍功能,那么您便可以改善用户体验,尤其是对于具有这些障碍和其他无障碍功能需求的用户来说。

本文档介绍了依据哪些准则来实现无障碍功能关键元素,才能让所有人都可以更加轻松地使用您的应用。如需获取如何让您的应用使用起来更没有障碍的更深入指导,请访问改进应用无障碍功能的原则页面。

提升文字显示效果

对于应用内的每组文字,建议将色彩对比度(或文字颜色与文字后的背景颜色之间感知到的亮度差异)设置为高于特定阈值。确切阈值取决于文字的字体大小以及文字是否以粗体显示:

  • 如果文字小于 18pt,或者如果文字为粗体且小于 14pt,则色彩对比度应至少为 4.5:1。
  • 对于所有其他文字,色彩对比度应至少为 3.0:1。

下图显示了文字与背景色彩对比度的两个示例:

显示文字的图片
图 1. 低于建议的色彩对比度(左侧)和足够的色彩对比度(右侧)

要查看应用中文字与背景的色彩对比度,可使用在线色彩对比度检查工具或无障碍功能扫描仪应用。

使用简单的大型控件

如果您的应用界面中包含易于查看和点按的控件,则该界面使用起来会更加方便。我们建议每个互动式界面元素的可聚焦区域(或者触摸目标尺寸)至少为 48dp x 48dp。尺寸越大越好。

对于触摸目标尺寸足够大的的指定界面元素,应同时满足以下两个条件:

通过设置这些内边距值,一个对象的可见尺寸可以小于 48dp x 48dp,同时仍具有建议的触摸目标尺寸。

以下代码段展示了一个具有建议的触摸目标尺寸的元素:

    <ImageButton ...
        android:paddingLeft="4dp"
        android:minWidth="40dp"
        android:paddingRight="4dp"

        android:paddingTop="8dp"
        android:minHeight="32dp"
        android:paddingBottom="8dp" />
    

描述每个界面元素

我们建议应用中的每个界面元素都包含描述相应元素用途的说明。在大多数情况下,您可以将此说明添加到元素的 contentDescription 属性中,如以下代码段所示:

    <!-- Use string resources for easier localization. -->
    <!-- The en-US value for the following string is "Inspect". -->
    <ImageView
        ...
        android:contentDescription="@string/inspect" />
    

向应用的界面元素添加说明时,请牢记以下最佳做法:

  • 请勿在内容说明中添加界面元素的类型。屏幕阅读器会自动公布元素的说明和类型。

    例如,如果选择某个按钮会导致应用中发生“提交”操作,则该按钮的说明应为 "Submit",而非 "Submit button"

  • 每条说明都应该是独一无二的。这样,当屏幕阅读器用户遇到重复的元素说明时,他们便能正确地识别出焦点现在位于之前已聚焦的元素上。

    特别是,视图组中的每一项(例如 RecyclerView)都应该具有不同的说明。每个说明都应反映给定项所特有的内容,例如位置列表中某个城市的名称。

  • 如果您的界面包含仅用于装饰效果的图形元素,请将它们的说明设置为 "@null"。如果您的应用的 minSdkVersion16 或更高版本,则您可以改为将这些图形元素的 android:importantForAccessibility 属性设置为 "no"

其他资源

要详细了解如何让您的应用使用起来更没有障碍,请参阅以下其他资源:

Codelab

博文