Предупреждение о содержании Android

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

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

Ответ 1

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

android:contentDescription="@string/desc"

Поддержка Android Lint в ADT 16 выдает это предупреждение, чтобы убедиться, что виджеты изображений содержат описание контента.

Это определяет текст, который кратко описывает содержимое представления. Это свойство используется в первую очередь для доступности. Поскольку некоторые представления не имеют текстового представления, этот атрибут может использоваться для обеспечения такого.

Нетекстовые виджеты, такие как ImageViews и ImageButtons, должны использовать атрибут contentDescription, чтобы указать текстовое описание виджета, чтобы экранные программы и другие средства обеспечения доступности могли адекватно описывать пользовательский интерфейс.

Ответ 2

Отключение предупреждений Lint легко поможет вам в будущем. Вам лучше просто указать contentDescription для всех ваших ImageViews. Если вам не нужно описание, просто используйте:

android:contentDescription="@null"

Ответ 3

Другой вариант - подавить предупреждение индивидуально:

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

Ответ 4

Я рекомендую вам добавить описание контента.

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Условия для остальных.

Ответ 5

Так как это только предупреждение, вы можете его подавить. Перейдите в свой XML-графический макет и сделайте следующее:

  • Нажмите на правый верхний угол красной кнопки

    enter image description here

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

    enter image description here

Ответ 6

Нетекстовые виджеты нуждаются в некотором описании содержания, чтобы описать текстовое изображение, чтобы читатели могли просматривать пользовательский интерфейс. Вы можете игнорировать свойство 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"

Ответ 7

ContentDescription необходимо для доступности Android. Особенно для функции чтения с экрана. Если вы не поддерживаете доступность Android, вы можете проигнорировать это с настройкой Lint.

Так что просто создайте lint.xml.

<?xml version="1.0" encoding="UTF-8"?>
<lint>

    <issue id="ContentDescription" severity="ignore" />

</lint>

И положить его в папку app.

enter image description here

Ответ 8

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

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

Ответ 9

Для графических элементов, которые являются чисто декоративными, установите для их соответствующих атрибутов XML android: contentDescription значение "@null".

Если ваше приложение поддерживает только устройства под управлением Android 4.1 (уровень API 16) или выше, вы можете вместо этого установить для атрибутов XML этих элементов android: ImportantForAccessibility значение "нет".

Ответ 10

Перейдите в файл Gradle (приложение модуля), добавьте ниже блок кода

android {
    ... 
    lintOptions {
        disable 'ContentDescription'
    }
    ...
}

Нет больше предупреждений! счастливое кодирование