'Missing contentDescription attribute on image' in XML

AndroidEclipseWarningsAccessibilityAndroid Imageview

Android Problem Overview


I get an warning about [Accessibility]Missing contentDescription attribute on image in eclipse. This warning show at line 5 (declare ImageView) in XML code below.

This not make any error when build and run my application. But I really want to know why i get this warning.

This is my XML file:

<?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>

Please help me regarding this and thanks for your reading.

Android Solutions


Solution 1 - Android

Follow this link for solution: https://stackoverflow.com/questions/8500544/android-lint-contentdescription-warning

> Resolved this warning by setting attribute android:contentDescription > for my ImageView > > android:contentDescription="@string/desc" > > Android Lint support in ADT 16 throws this warning to ensure that > image widgets provide a contentDescription > > This defines text that briefly describes the content of the view. This > property is used primarily for accessibility. Since some views do not > have textual representation this attribute can be used for providing > such. > > Non-textual widgets like ImageViews and ImageButtons should use the > contentDescription attribute to specify a textual description of the > widget such that screen readers and other accessibility tools can > adequately describe the user interface.

This link for explanation: Accessibility, It's Impact and Development Resources

> Many Android users have disabilities that require them to interact > with their Android devices in different ways. These include users who > have visual, physical or age-related disabilities that prevent them > from fully seeing or using a touchscreen. > > Android provides accessibility features and services for helping these > users navigate their devices more easily, including text-to-speech, > haptic feedback, trackball and D-pad navigation that augments their > experience. Android application developers can take advantage of these > services to make their applications more accessible and also build > their own accessibility services.

This guide is for making your app accessible: Making Apps More Accessible

> Making sure your application is accessible to all users is relatively > easy, particularly when you use framework-provided user interface > components. If you only use these standard components for your > application, there are just a few steps required to ensure your > application is accessible: > > 1. Label your ImageButton, ImageView, EditText, CheckBox and other user > interface controls using the android:contentDescription attribute. > > 2. Make all of your user interface elements accessible with a directional > controller, such as a trackball or D-pad. > > 3. Test your application by turning on accessibility services like TalkBack > and Explore by Touch, > and try using your application using only directional controls.

Solution 2 - Android

Add android:contentDescription="@string/description" (static or dynamic) to your ImageView. Please do not ignore nor filter the message, because it is helpfull for people using alternative input methods because of their disability (Like TalkBack, Tecla Access Shield etc etc).

Solution 3 - Android

Updated:

As pointed out in the comments, setting the description to null indicates that the image is purely decorative and is understood as that by screen readers like TalkBack.

Old answer, I no longer support this answer:

For all the people looking how to avoid the warning:

I don't think android:contentDescription="@null" is the best solution.

I'm using tools:ignore="ContentDescription" that is what is meant to be.

Make sure you include xmlns:tools="http://schemas.android.com/tools" in your root layout.

Solution 4 - Android

Going forward, for graphical elements that are purely decorative, the best solution is to use:

android:importantForAccessibility="no"

This makes sense if your min SDK version is at least 16, since devices running lower versions will ignore this attribute.

If you're stuck supporting older versions, you should use (like others pointed out already):

android:contentDescription="@null"

Source: https://developer.android.com/guide/topics/ui/accessibility/apps#label-elements

Solution 5 - Android

Add

tools:ignore="ContentDescription"

to your image. Make sure you have xmlns:tools="http://schemas.android.com/tools" . in your root layout.

Solution 6 - Android

The warning is indeed annoying and in many (most!) cases no contentDescription is necessary for various decorative ImageViews. The most radical way to solve the problem is just to tell the Lint to ignore this check. In Eclipse, go to "Android/Lint Error Checking" in Preferences, find "contentDescription" (it is in the "Accessibility" group) and change "Severity:" to Ignore.

Solution 7 - Android

If you don't care at all do this:

    android:contentDescription="@null"

Although I would advise the accepted solutions, this is a hack :D

Solution 8 - Android

This warning tries to improve accessibility of your application.

To disable missing content description warning in the whole project, you can add this to your application module build.gradle

android {

    ...

    lintOptions {
        disable 'ContentDescription'
    }
}

Solution 9 - Android

It is giving you the warning because the image description is not defined.

We can resolve this warning by adding this code below in Strings.xml and activity_main.xml

Add this line below in Strings.xml
<string name="imgDescription">Background Picture</string>
you image will be like that:
<ImageView
        android:id="@+id/imageView2"
        android:lay`enter code hereout_width="0dp"
        android:layout_height="wrap_content"
        android:contentDescription="@string/imgDescription"
        app:layout_editor_absoluteX="0dp"
        app:layout_editor_absoluteY="0dp"
        app:srcCompat="@drawable/background1"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="0dp" />
Also add this line in activity_main.xml
android:contentDescription="@string/imgDescription"

Strings.xml

<resources>
    <string name="app_name">Saini_Browser</string>
    <string name="SainiBrowser">textView2</string>
    <string name="imgDescription">BackGround Picture</string>
</resources>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPhatHVView Question on Stackoverflow
Solution 1 - AndroidPhatHVView Answer on Stackoverflow
Solution 2 - AndroidJeroenView Answer on Stackoverflow
Solution 3 - AndroidSottiView Answer on Stackoverflow
Solution 4 - AndroidarekolekView Answer on Stackoverflow
Solution 5 - AndroidMwongera808View Answer on Stackoverflow
Solution 6 - AndroidAlexRView Answer on Stackoverflow
Solution 7 - AndroidalapView Answer on Stackoverflow
Solution 8 - AndroidMaksim TuraevView Answer on Stackoverflow
Solution 9 - AndroidKuldeep SinghView Answer on Stackoverflow