应用中的可编辑项可让用户输入文本。每一个可编辑项都应带有一个说明性标签,以便说明各自的用途。
Android 为开发者提供了几种为应用界面中的 View
添加标签的方法。对于界面中的可编辑项,其中一些添加标签的方法可以改进无障碍功能。
实现
要为可编辑的 TextView
或 EditText
添加标签,请在其为空时使用 android:hint
在相应项中显示说明性文本标签。
<EditText
android:id="@+id/email_subject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/email_subject_hint" />
如果应用界面已经为可编辑项提供文本标签,请在所标注的 View
上定义 android:labelFor
,以指出标签描述的是哪一项。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/email_subject_label"
android:labelFor="@id/email_subject" />
<EditText
android:id="@+id/email_subject"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
提示:Android 设计支持库
中的 TextInputLayout 可帮助您轻松管理 EditText
以及相关联的文本标签,并可与 Android 的无障碍服务完美配合使用。
如果为任何 EditText
或可编辑的 TextView
定义 android:contentDescription
,则可能会干扰无障碍服务的说明和导航功能,以及与用户在相应项中输入的文本进行互动的功能。
设计
当用户借助屏幕阅读器导航到可编辑项时,完善的界面应该包含以下元素:
- 如果可编辑字段为空,其中会有说明性标签可供屏幕阅读器朗读。
- 如果用户在可编辑字段中输入了文本,那么除了说明性标签以外,屏幕阅读器还会读出文本。
当用户以较低的粒度(例如,一个字符接着一个字符)浏览时,屏幕阅读器会读出输入的文本,或在可编辑字段留空时给出提示。
测试
要手动验证应用所含可编辑项的标签是否正确,请按照以下步骤操作:
- 开启 TalkBack。
- 在应用中,将无障碍功能焦点移至空的可编辑项上。
- 检查 TalkBack 对空的可编辑项的语音说明是否包含标签,以及该说明性标签是否与应用中的任何视觉标签相符。
- 在相应的可编辑项中输入一些文本。
- 将无障碍功能焦点移至相应的可编辑项上。
- 要确认语音描述是否包含您输入的文本,请听取 TalkBack 对可编辑项的说明。
Android 的自动化测试工具能够检测到可编辑项上的非空 contentDescription
。您也可以考虑使用 Android 版无障碍功能扫描仪对设备上的应用进行人工测试。要实现自动化测试,请在 Espresso 和 Robolectric 中开启无障碍检查功能。