Я получаю предупреждение как "[Доступность] Отсутствует атрибут contentDescription на изображении" для изображения. при использовании android lint
Что это значит?
Я получаю предупреждение как "[Доступность] Отсутствует атрибут contentDescription на изображении" для изображения. при использовании android lint
Что это значит?
Устранено это предупреждение, установив атрибут android:contentDescription
для моего ImageView
android:contentDescription="@string/desc"
Поддержка Android Lint в ADT 16 выдает это предупреждение, чтобы убедиться, что виджеты изображений содержат описание контента.
Это определяет текст, который кратко описывает содержимое представления. Это свойство используется в первую очередь для доступности. Поскольку некоторые представления не имеют текстового представления, этот атрибут может использоваться для обеспечения такого.
Нетекстовые виджеты, такие как ImageViews и ImageButtons, должны использовать атрибут contentDescription, чтобы указать текстовое описание виджета, чтобы экранные программы и другие средства обеспечения доступности могли адекватно описывать пользовательский интерфейс.
Отключение предупреждений Lint легко поможет вам в будущем. Вам лучше просто указать contentDescription для всех ваших ImageViews. Если вам не нужно описание, просто используйте:
android:contentDescription="@null"
Другой вариант - подавить предупреждение индивидуально:
xmlns:tools="http://schemas.android.com/tools" (usually inserted automatically)
tools:ignore="contentDescription"
Пример:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="contentDescription" >
<ImageView
android:layout_width="50dp"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:padding="5dp"
android:src="@drawable/icon" />
Я рекомендую вам добавить описание контента.
android:contentDescription="@string/contentDescriptionXxxx"
но, пусть реалистично. Большинство людей не поддерживают литературу для доступности. Тем не менее, с минимальными усилиями, вы можете реализовать что-то, чтобы помочь людям с ограниченными возможностями.
<string name="contentDescriptionUseless">deco</string>
<string name="contentDescriptionAction">button de action</string>
<string name="contentDescriptionContent">image with data</string>
<string name="contentDescriptionUserContent">image from an other user</string>
.
Самое главное, о котором должен знать слепой пользователь, - "Где кнопка, которую мне нужно нажать, чтобы продолжить"
Использовать contentDescriptionAction для всего, что можно щелкнуть.
использовать contentDescriptionContent для изображения с информацией (graph, textAsImage,...)
использовать contentDescriptionUserContent для всего содержимого, предоставленного пользователем.
использовать contentDescriptionУсловия для остальных.
Так как это только предупреждение, вы можете его подавить. Перейдите в свой XML-графический макет и сделайте следующее:
Нажмите на правый верхний угол красной кнопки
Выберите "Отключить тип проблемы" (например)
Нетекстовые виджеты нуждаются в некотором описании содержания, чтобы описать текстовое изображение, чтобы читатели могли просматривать пользовательский интерфейс. Вы можете игнорировать свойство xmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"xmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"xmlns:tools="http://schemas.android.com/tools"
или определите свойство
tools:ignore="contentDescription"android:contentDescription="your description"
ContentDescription
необходимо для доступности Android. Особенно для функции чтения с экрана. Если вы не поддерживаете доступность Android, вы можете проигнорировать это с настройкой Lint.
Так что просто создайте lint.xml
.
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="ContentDescription" severity="ignore" />
</lint>
И положить его в папку app
.
Поскольку мне нужен ImageView для добавления иконки только для эстетики, я добавил tools:ignore="ContentDescription"
в каждом ImageView, который я имел в своем XML файле.
Я больше не получаю никаких сообщений об ошибках
Для графических элементов, которые являются чисто декоративными, установите для их соответствующих атрибутов XML android: contentDescription значение "@null".
Если ваше приложение поддерживает только устройства под управлением Android 4.1 (уровень API 16) или выше, вы можете вместо этого установить для атрибутов XML этих элементов android: ImportantForAccessibility значение "нет".
Перейдите в файл Gradle
(приложение модуля), добавьте ниже блок кода
android {
...
lintOptions {
disable 'ContentDescription'
}
...
}
Нет больше предупреждений! счастливое кодирование