Android Lint contentDescription предупреждение
Я получаю предупреждение "[Доступность] отсутствует атрибут contentDescription на изображении " для imageview. при использовании android lint
что это значит?
7 ответов:
разрешил это предупреждение, установив атрибут
android:contentDescription
для моего ImageViewandroid:contentDescription="@string/desc"
поддержка Android Lint в ADT 16 выдает это предупреждение, чтобы гарантировать, что виджеты изображений предоставляют contentDescription.
определяет текст, который кратко описывает содержимое. Это свойство используется в основном для специальных возможностей. Поскольку некоторые представления не имеют текстового представления, этот атрибут может использоваться для их предоставления.
нетекстовые виджеты, такие как ImageViews и ImageButtons должны использовать атрибут contentDescription для указания текстового описания виджета таким образом, чтобы программы чтения с экрана и другие инструменты специальных возможностей могли адекватно описать пользовательский интерфейс.
отключение предупреждений Lint легко приведет вас к неприятностям позже. Вам лучше просто указать contentDescription для всех ваших изображений. Если вам не нужно описание, то просто используйте:
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" />
Я рекомендую вам добавить contentDescription.
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 для всех предоставленных Пользователем материалов.
используйте contentDescriptionUseless для всех остальных.
Так как это только предупреждение, вы можете подавить его. Перейдите к графическому макету вашего XML и сделайте следующее:
нажмите на красную кнопку в правом верхнем углу
выберите "Отключить тип проблемы" (например)
Нетекстовые виджеты нуждаются в описании контента некоторым образом для текстового описания изображения, чтобы читатели экранов могли описать пользовательский интерфейс. Вы можете игнорировать свойство
xmlns:tools="http://schemas.android.com/tools"
или определить свойство
tools:ignore="contentDescription"android:contentDescription="your description"