«Отсутствует атрибут contentDescription на изображении» в XML - PullRequest
200 голосов
/ 16 марта 2012

Я получаю предупреждение о [Доступность] Отсутствует атрибут contentDescription на изображении в затмении.Это предупреждение отображается в строке 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>

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

Ответы [ 7 ]

256 голосов
/ 16 марта 2012

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

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

android: contentDescription = "@ string / desc"

Поддержка 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 и Explore by Touch, и попробуйте использовать свое приложение, используя только средства управления направлением.

65 голосов
/ 15 января 2013

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

33 голосов
/ 11 ноября 2014

Обновлено:

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

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

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

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

Я использую tools:ignore="ContentDescription", что и должно быть.

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

9 голосов
/ 02 июня 2017

Добавьте

tools:ignore="ContentDescription"

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

9 голосов
/ 13 июля 2014

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

    android:contentDescription="@null"

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

9 голосов
/ 19 декабря 2012

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

1 голос
/ 12 ноября 2018

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

android:importantForAccessibility="no"

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

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

android:contentDescription="@null"

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

...