it-swarm.com.de

"Fehlendes contentDescription-Attribut im Bild" in XML

Ich bekomme eine Warnung zu [Accessibility] Fehlendes contentDescription-Attribut in image in Eclipse. Diese Warnung wird in Zeile 5 (Deklaration von ImageView) im folgenden XML-Code angezeigt.

Dies macht keinen Fehler beim Erstellen und Ausführen meiner Anwendung. Aber ich möchte wirklich wissen, warum ich diese Warnung bekomme.

Dies ist meine XML-Datei:

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

Bitte helfen Sie mir dabei und vielen Dank für Ihre Lektüre.

192
PhatHV

Folgen Sie diesem Link zur Lösung:Android Lint contentBeschreibungswarnung

Diese Warnung wurde durch Setzen des Attributs Android: contentDescription Behoben. für meine ImageView

Android: contentDescription = "@ string/desc"

Die Unterstützung von Android Lint in ADT 16 gibt diese Warnung aus, um sicherzustellen, dass Bild-Widgets bieten eine contentBeschreibung

Dies definiert einen Text, der den Inhalt der Ansicht kurz beschreibt. Diese Eigenschaft wird hauptsächlich für die Zugänglichkeit verwendet. Da einige Ansichten nicht eine Textdarstellung haben, kann dieses Attribut zur Bereitstellung von .__ verwendet werden. eine solche.

Nicht-textuelle Widgets wie ImageViews und ImageButtons sollten die .__ verwenden. contentDescription-Attribut zum Angeben einer Textbeschreibung des Widget, so dass Bildschirmlesegeräte und andere Eingabehilfetools Beschreiben Sie die Benutzeroberfläche ausreichend.

Dieser Link zur Erklärung:Barrierefreiheit, Auswirkungen und Entwicklungsressourcen

Viele Android-Benutzer haben Behinderungen, die eine Interaktion erfordern mit ihren Android-Geräten auf unterschiedliche Weise. Dazu gehören Benutzer, die haben visuelle, körperliche oder altersbedingte Behinderungen, die sie verhindern vom vollständigen Sehen oder Verwenden eines Touchscreens.

Android bietet Eingabehilfefunktionen und -dienste, um diese zu unterstützen Benutzer navigieren leichter auf ihren Geräten, einschließlich Text-zu-Sprache, haptisches Feedback, Trackball- und D-Pad-Navigation, die ihre Erfahrung. Android-Anwendungsentwickler können diese Vorteile nutzen Dienste, um ihre Anwendungen besser zugänglich zu machen und auch aufzubauen ihre eigenen Zugänglichkeitsdienste.

Dieses Handbuch soll Ihnen den Zugriff auf Ihre App ermöglichen:Verbessern Sie den Zugriff auf Apps

Sicherzustellen, dass Ihre Anwendung für alle Benutzer zugänglich ist, ist relativ Einfach, besonders wenn Sie die vom Framework bereitgestellte Benutzeroberfläche verwenden Komponenten. Wenn Sie diese Standardkomponenten nur für Ihr .__ verwenden. Anwendung, es sind nur wenige Schritte erforderlich, um sicherzustellen, dass Ihre Anwendung ist zugänglich:

  1. Beschriften Sie Ihr ImageButton, ImageView, EditText, CheckBox und anderer Benutzer Schnittstellensteuerelemente mit dem Attribut Android: contentDescription.

  2. Machen Sie alle Benutzeroberflächenelemente mit einem Richtungscode .__ zugänglich. Controller, wie ein Trackball oder D-Pad.

  3. Testen Sie Ihre Anwendung, indem Sie Eingabehilfedienste wie TalkBack .__ aktivieren. und Erkunden durch Berührung, Versuchen Sie, Ihre Anwendung nur mit Richtungssteuerungen zu verwenden.

252
PhatHV

Fügen Sie Android:contentDescription="@string/description" (statisch oder dynamisch) zu ImageView hinzu. Bitte ignorieren oder filtern Sie die Nachricht nicht, da dies für Menschen hilfreich ist, die alternative Eingabemethoden verwenden, da sie behindert sind (wie TalkBack, Tecla Access Shield usw.).

64
Jeroen

Aktualisierte:

Wie in den Kommentaren darauf hingewiesen, bedeutet das Festlegen der Beschreibung auf null, dass das Bild rein dekorativ ist und von Bildschirmlesern wie TalkBack als das verstanden wird.

Alte Antwort, ich unterstütze diese Antwort nicht mehr:

Für alle, die nach der Warnung suchen:

Ich denke nicht, dass Android:contentDescription="@null" die beste Lösung ist.

Ich benutze tools:ignore="ContentDescription" das soll sein. 

Stellen Sie sicher, dass Sie xmlns:tools="http://schemas.Android.com/tools" in Ihr Stammlayout aufnehmen.

31
Sotti

Die Warnung ist in der Tat ärgerlich und in vielen (den meisten!) Fällen ist für verschiedene dekorative Bildansichten kein Inhalt erforderlich. Der radikalste Weg, das Problem zu lösen, besteht darin, Lint mitzuteilen, diese Überprüfung zu ignorieren. Wechseln Sie in Eclipse in den Voreinstellungen zu "Android/Lint Error Checking", suchen Sie nach "contentDescription" (in der Gruppe "Eingabehilfen") und ändern Sie "Schweregrad:" in "Ignorieren".

9
AlexR

Wenn Sie sich überhaupt nicht interessieren, tun Sie dies:

    Android:contentDescription="@null"

Obwohl ich die akzeptierten Lösungen empfehlen würde, ist dies ein Hack: D

9
alap

Hinzufügen 

tools:ignore="ContentDescription"

zu deinem Bild. Stellen Sie sicher, dass Sie xmlns:tools="http://schemas.Android.com/tools" . in Ihrem Stammlayout haben.

7
Mwongera

In der Zukunft ist die beste Lösung für grafische Elemente, die rein dekorativ sind, zu verwenden:

Android:importantForAccessibility="no"

Dies ist sinnvoll, wenn Sie mindestens 16 SDK-Versionen installiert haben, da Geräte mit niedrigeren Versionen dieses Attribut ignorieren.

Wenn Sie ältere Versionen nicht unterstützen, sollten Sie Folgendes verwenden (wie bereits auf andere hingewiesen wurde):

Android:contentDescription="@null"

Quelle: https://developer.Android.com/guide/topics/ui/accessibility/apps#label-elements

0
arekolek