所有,我们正在使用Espresso辅助功能检查,并且在同一视图中遇到以下错误。解决此问题的最佳方法是什么?删除内容描述可修复第二个错误,但第一个错误仍然存在。是否有一种方法可以满足TextInputEditText的辅助功能检查器?
https://developer.android.com/training/testing/espresso/accessibility-checking
AccessibilityViewCheckException: There were 2 accessibility errors:
TextInputEditText{id=2131362592, res-name=reason}: View is missing speakable text needed for a screen reader
TextInputEditText{id=2131362592, res-name=reason}: Editable TextView should not have a contentDescription.
答案 0 :(得分:1)
我注意到,如果您在TextInputEditText中设置提示并在TextInputLayout中删除labelFor,则该错误将消失。
根据Google文档,设置提示是一种向Accessibility告知您EditTexts视图的方法。
在标记可编辑元素(例如EditText对象)时,请将android:hint XML属性用于静态元素,将setHint()方法用于动态元素以指示每个元素的用途。 (Source)
此外,在Google的TextInputLayout示例中,它没有指定您需要具有labelFor字段。 (Source)
代码示例:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_text_hint"/>
</android.support.design.widget.TextInputLayout>
我知道该帖子与此帖子直接矛盾: Accessibility Check fail when using TextInputLayout。但是,在最新版本的Android上,执行该文章中提到的操作对我不起作用。