Проверка доступности - TextInputEditText имеет противоречивые исключения - PullRequest
0 голосов
/ 24 июня 2019

Все, мы используем проверку доступности 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 Ответ

1 голос
/ 28 июня 2019

Я заметил, что эта ошибка исчезнет, ​​если вы установите подсказку в TextInputEditText и удалите labelFor в TextInputLayout.

Согласно документации Google, установка подсказки - это способ сообщить Accessibility о вашем представлении для EditTexts.

При маркировке редактируемых элементов, таких как объекты EditText, используйте андроид: подсказкаАтрибут XML для статических элементов и метод setHint () для динамических элементов, чтобы указать назначение каждого элемента.( Source )

Кроме того, в примере Google TextInputLayout он не указывает, что вам нужно иметь поле labelFor.( Источник )

Пример кода:

<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>

Мне известно, что этот пост находится в прямом противоречии с этим сообщением: Ошибка проверки доступности при использовании TextInputLayout.Однако выполнение вещей, упомянутых в этом посте, не помогло мне в последней версии Android.

...