我有一个像下面这样的 EditText
<EditText
android:id="@+id/extUsername"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="Username field"
android:hint="Username" />
我希望 TalkBack 说出“用户名字段”,但它说的是“用户名”。它忽略 contentDescription。
不要让我删除提示或内容描述。我需要同时使用两者。
如有任何建议,我们将不胜感激。
最佳答案
您要做的是改用 LabelFor。 LabelFor 允许将可视标签与 EditText 框相关联。如果愿意,您可以使视觉标签不可见,这样它就不会改变您的视觉布局。
提示的缺点是,它们会在输入文本后消失,这使它们成为非常差的可访问性工具。如果您依赖辅助功能信息的提示,则您的应用无法访问。
做这样的事情:
<TextView
android:text="@string/yourEditTextDescription"
android:labelFor="@+id/editTextField" />
<EditText android:id="@+id/editTextField"/>
关于安卓 TalkBack : Hint overwrites contentDescription,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29889904/