辅助功能检查-TextInputEditText具有矛盾的异常

时间:2019-06-24 16:00:34

标签: android accessibility android-espresso android-accessibility

所有,我们正在使用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.

1 个答案:

答案 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上,执行该文章中提到的操作对我不起作用。