Android Lint contentDescription предупреждение


Я получаю предупреждение "[Доступность] отсутствует атрибут contentDescription на изображении " для imageview. при использовании android lint

что это значит?

7 122

7 ответов:

разрешил это предупреждение, установив атрибут android:contentDescription для моего ImageView

android: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 и сделайте следующее:

  1. нажмите на красную кнопку в правом верхнем углу

    enter image description here

  2. выберите "Отключить тип проблемы" (например)

    enter image description here

Нетекстовые виджеты нуждаются в описании контента некоторым образом для текстового описания изображения, чтобы читатели экранов могли описать пользовательский интерфейс. Вы можете игнорировать свойство xmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"
или определить свойство android:contentDescription="your description"

Так как мне нужно ImageView, чтобы добавить значок только для эстетики я добавил tools:ignore="ContentDescription" внутри каждой книги в моей XML-файл.

Я больше не получаю никаких сообщений об ошибках