Android Lint contentDescription-Warnung

Lesezeit: 4 Minuten

Benutzer-Avatar
MGK

Ich bekomme eine Warnung als “[Accessibility] Fehlendes contentDescription-Attribut auf Bild” für Bildansicht. bei Verwendung von Android Lint

Was bedeutet das?

  • das ist so eine ärgerliche Warnung – besonders für Bilder, die nur dem Flair dienen

    – Irgendwer irgendwo

    24. Oktober 2012 um 22:48 Uhr

  • Ich habe dies in der strings.xml definiert: <string name="none"></string> und dann habe ich verwendet android:contentDescription="@string/none"

    – Irgendwer irgendwo

    24. Oktober 2012 um 22:54 Uhr


Benutzer-Avatar
MGK

Diese Warnung wurde durch Setzen des Attributs behoben android:contentDescription für meine ImageView

android:contentDescription="@string/desc"

Die Android Lint-Unterstützung in ADT 16 gibt diese Warnung aus, um sicherzustellen, dass Bild-Widgets eine contentDescription bereitstellen.

Dies definiert Text, der den Inhalt der Ansicht kurz beschreibt. Diese Eigenschaft wird hauptsächlich für die Barrierefreiheit verwendet. Da einige Ansichten keine Textdarstellung haben, kann dieses Attribut verwendet werden, um eine solche bereitzustellen.

Nicht-Text-Widgets wie ImageViews und ImageButtons sollten das contentDescription-Attribut verwenden, um eine Textbeschreibung des Widgets anzugeben, sodass Bildschirmleseprogramme und andere Barrierefreiheitstools die Benutzeroberfläche angemessen beschreiben können.

Das Deaktivieren von Lint-Warnungen wird Sie später leicht in Schwierigkeiten bringen. Sie sind besser dran, wenn Sie einfach contentDescription für alle Ihre ImageViews angeben. Wenn Sie keine Beschreibung benötigen, verwenden Sie einfach:

android:contentDescription="@null"

Benutzer-Avatar
Gunnar Bernstein

Eine weitere Möglichkeit besteht darin, die Warnung individuell zu unterdrücken:

xmlns:tools="http://schemas.android.com/tools"  (usually inserted automatically)
tools:ignore="contentDescription"

Beispiel:

<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="https://stackoverflow.com/questions/8500544/@drawable/icon" />

  • Falsch – das Hinzufügen von tools:ignore=”contentDescription” zu RelativeLayout führte zu einem Kompilierungsfehler “Attribute is missing the Android namespace prefix”

    – G. Kh.

    18. November 2013 um 7:48 Uhr

  • Dies ist ein Eclipse-Problem. Bereinigen Sie einfach Ihr Projekt. Und stellen Sie sicher: xmlns:tools=”schemas.android.com/tools“ ist auch dabei!

    – Gunnar Bernstein

    18. November 2013 um 15:09 Uhr


Benutzer-Avatar
Christus

Ich empfehle Ihnen, die contentDescription hinzuzufügen.

android:contentDescription="@string/contentDescriptionXxxx"

aber seien wir realistisch. Die meisten Leute pflegen nicht wörtlich für die Zugänglichkeit. Still, man kann mit wenig aufwand etwas umsetzen, was menschen mit behinderung hilft.

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

.

Das Wichtigste, was der blinde Benutzer wissen muss, ist “Wo ist die Schaltfläche, auf die ich klicken muss, um fortzufahren?”

Verwenden Sie contentDescriptionAction für alles, was anklickbar ist.

use contentDescriptionContent für Bild mit Informationen (graph, textAsImage, …)

Verwenden Sie contentDescriptionUserContent für alle vom Benutzer bereitgestellten Inhalte.

Verwenden Sie contentDescriptionUseless für den Rest.

Da es sich nur um eine Warnung handelt, können Sie diese unterdrücken. Gehen Sie zum grafischen Layout Ihres XML und tun Sie dies:

  1. Klicken Sie auf die rote Schaltfläche in der rechten oberen Ecke

    Geben Sie hier die Bildbeschreibung ein

  2. Wählen Sie „Problemtyp deaktivieren“ (z. B.)

    Geben Sie hier die Bildbeschreibung ein

  • Richtig, du kann Unterdrücken Sie es, aber Sie sollten wahrscheinlich den Rat der ausgewählten Antwort befolgen, um der Benutzer willen, die sich auf die von Android bereitgestellten Eingabehilfen verlassen.

    – Kyle Falconer

    25. März 2013 um 20:59 Uhr


  • Das ist es!!! das habe ich gesucht. Diese Antwort und die Antwort von @Gunnar Bernstein haben mich erwischt.

    – Eisenblüte

    23. April 2015 um 13:08 Uhr

Benutzer-Avatar
GianhTran

Gehe zu Gradle Datei (Modul-App), fügen Sie den Codeblock unten hinzu

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

Keine Warnung mehr! Viel Spaß beim Codieren

  • Richtig, du kann Unterdrücken Sie es, aber Sie sollten wahrscheinlich den Rat der ausgewählten Antwort befolgen, um der Benutzer willen, die sich auf die von Android bereitgestellten Eingabehilfen verlassen.

    – Kyle Falconer

    25. März 2013 um 20:59 Uhr


  • Das ist es!!! das habe ich gesucht. Diese Antwort und die Antwort von @Gunnar Bernstein haben mich erwischt.

    – Eisenblüte

    23. April 2015 um 13:08 Uhr

Benutzer-Avatar
Alexander Bernat

Wenn Sie diese Warnung elegant unterdrücken möchten (weil Sie sicher sind, dass die Barrierefreiheit für diese bestimmte ImageView nicht erforderlich ist), können Sie das spezielle Attribut verwenden:

android:importantForAccessibility="no"

1337100cookie-checkAndroid Lint contentDescription-Warnung

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy