it-swarm.com.ru

"Отсутствует атрибут contentDescription на изображении" в XML

Я получаю предупреждение о [Доступность] Отсутствует атрибут contentDescription на изображении в Eclipse. Это предупреждение показано в строке 5 (объявите ImageView) в приведенном ниже XML-коде.

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

Это мой XML-файл:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
              Android:layout_width="fill_parent"
              Android:layout_height="wrap_content">
    <ImageView
        Android:id="@+id/contact_entry_image"
        Android:src="@drawable/ic_launcher"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        />
    <TextView
        Android:id="@+id/contact_entry_text"
        Android:text=""
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:textSize="30sp"
        />

</LinearLayout>

Пожалуйста, помогите мне в этом и спасибо за ваше чтение.

192
PhatHV

Перейдите по этой ссылке для решения:Android Lint contentDescription warning

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

Android: contentDescription = "@ строка/убывание"

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

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

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

Ссылка для объяснения:Доступность, влияние и ресурсы для разработки

Многие пользователи Android имеют ограничения, которые требуют от них взаимодействия со своими устройствами Android по-разному. К ним относятся пользователи, которые иметь зрительные, физические или возрастные нарушения, которые их предотвращают от полного просмотра или использования сенсорного экрана.

Android предоставляет специальные возможности и услуги для помощи этим пользователи легче ориентируются на своих устройствах, включая преобразование текста в речь, тактильная обратная связь, трекбол и D-pad навигация, которая дополняет их опыт. Разработчики приложений для Android могут воспользоваться этими преимуществами сервисы, чтобы сделать их приложения более доступными, а также создавать их собственные услуги доступности.

Это руководство для обеспечения доступности вашего приложения:Повышение доступности приложений

Убедиться в том, что ваше приложение доступно для всех пользователей, относительно легко, особенно если вы используете пользовательский интерфейс, предоставляемый фреймворком компоненты. Если вы используете только эти стандартные компоненты для вашего Приложение, есть только несколько шагов, необходимых для обеспечения вашего приложение доступно:

  1. Пометьте свои ImageButton, ImageView, EditText, CheckBox и другой пользователь управление интерфейсом с использованием атрибута Android: contentDescription.

  2. Сделайте все ваши элементы пользовательского интерфейса доступными с направленным контроллер, например трекбол или D-pad.

  3. Протестируйте свое приложение, включив специальные сервисы, такие как TalkBack и исследуй на ощупь, и попробуйте использовать ваше приложение, используя только средства управления направлением.

252
PhatHV

Добавьте Android:contentDescription="@string/description" (статический или динамический) к вашему ImageView. Пожалуйста, не игнорируйте и не фильтруйте сообщение, потому что оно полезно для людей, использующих альтернативные методы ввода из-за их инвалидности (например, TalkBack, Tecla Access Shield и т.д.).

64
Jeroen

Обновлено:

Как указано в комментариях, установка описания на ноль означает, что изображение является чисто декоративным и понимается как средство чтения с экрана, такое как TalkBack.

Старый ответ, я больше не поддерживаю этот ответ:

Для всех людей, ищущих, как избежать предупреждения:

Я не думаю, что Android:contentDescription="@null" - лучшее решение.

Я использую tools:ignore="ContentDescription" именно так и должно быть. 

Убедитесь, что вы включили xmlns:tools="http://schemas.Android.com/tools" в свой корневой макет.

31
Sotti

Предупреждение действительно раздражает, и во многих (большинстве!) Случаях нет необходимости в описании контента для различных декоративных изображений. Самый радикальный способ решения проблемы - просто попросить Линт проигнорировать эту проверку. В Eclipse перейдите к «Проверка ошибок Android/Lint» в «Предпочтениях», найдите «contentDescription» (он находится в группе «Доступность») и измените «Серьезность:» на «Пропустить».

9
AlexR

Если вам все равно, сделайте это:

    Android:contentDescription="@null"

Хотя я бы посоветовал принятые решения, это хак: D

9
alap

Добавлять 

tools:ignore="ContentDescription"

к вашему образу. Убедитесь, что у вас есть xmlns:tools="http://schemas.Android.com/tools" . в вашем корневом макете.

7
Mwongera

В дальнейшем, для графических элементов, которые являются чисто декоративными, лучшим решением будет использование:

Android:importantForAccessibility="no"

Это имеет смысл, если ваша минимальная версия SDK не менее 16, так как устройства с более низкими версиями будут игнорировать этот атрибут.

Если вы застряли с поддержкой более старых версий, вы должны использовать (как уже отмечали другие):

Android:contentDescription="@null"

Источник: https://developer.Android.com/guide/topics/ui/accessibility/apps#label-elements

0
arekolek