Содержание Android LintОписание предупреждения - PullRequest
125 голосов
/ 14 декабря 2011

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

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

Ответы [ 10 ]

167 голосов
/ 14 декабря 2011

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

android:contentDescription="@string/desc"

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

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

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

50 голосов
/ 12 июля 2013

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

android:contentDescription="@null"
37 голосов
/ 19 мая 2013

Другим вариантом является индивидуальное подавление предупреждения:

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" />
23 голосов
/ 21 января 2014

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

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

12 голосов
/ 21 декабря 2012

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

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

    enter image description here

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

    enter image description here

1 голос
/ 24 октября 2018

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

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

1 голос
/ 16 октября 2018

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

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

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

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

</lint>

и поместите его в1010 * папка.

enter image description here

1 голос
/ 30 марта 2018

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

0 голосов
/ 08 апреля 2019

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

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

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

0 голосов
/ 01 июня 2018

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

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

...