web-dev-qa-db-fra.com

Android Lint contentDescription Warning

Je reçois un avertissement en tant que "[Accessibilité] Attribut contentDescription manquant sur l'image" pour imageview. tout en utilisant la charpie Android

Qu'est-ce que ça veut dire?

124
Santhosh Shettigar

Résolution de cet avertissement en définissant l'attribut Android:contentDescription pour mon ImageView

Android:contentDescription="@string/desc"

La prise en charge de Android Lint dans ADT 16 émet cet avertissement pour garantir que les widgets d’image fournissent une description contentDescription.

Ceci définit un texte décrivant brièvement le contenu de la vue. Cette propriété est principalement utilisée pour l'accessibilité. Certaines vues n’ayant pas de représentation textuelle, cet attribut peut être utilisé pour en fournir une. 

Les widgets non textuels tels que ImageViews et ImageButtons doivent utiliser l'attribut contentDescription pour spécifier une description textuelle du widget, de sorte que les lecteurs d'écran et les autres outils d'accessibilité puissent décrire correctement l'interface utilisateur.

165
Santhosh Shettigar

La désactivation des avertissements de peluche vous causera facilement des ennuis plus tard. Vous feriez mieux de spécifier contentDescription pour toutes vos ImageViews. Si vous n'avez pas besoin de description, utilisez simplement:

Android:contentDescription="@null"
48
Dane White

Une autre option consiste à supprimer l'avertissement individuellement:

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

Exemple: 

<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="@drawable/icon" />
37
Gunnar Bernstein

Je vous recommande d'ajouter le contentDescription.

Android:contentDescription="@string/contentDescriptionXxxx"

mais soyons réalistes. La plupart des gens ne maintiennent pas littéralement l'accessibilité . Pourtant, avec peu d'effort, vous pouvez mettre en œuvre quelque chose pour aider les personnes handicapées.} _

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

.

La chose la plus importante que l’aveugle doit savoir est "Où est le bouton sur lequel je dois cliquer pour continuer"

Utilisez contentDescriptionAction pour tout ce qui est cliquable.

utiliser contentDescriptionContent pour une image avec des informations (graphique, textAsImage, ...)

utilisez contentDescriptionUserContent pour tout le contenu fourni par l'utilisateur.

utilisez contentDescriptionUseless pour tout le reste. _

21
Christ

Puisqu'il ne s'agit que d'un avertissement, vous pouvez le supprimer. Accédez à la présentation graphique de votre XML et procédez comme suit:

  1. Cliquez sur le bouton rouge en haut à droite

    enter image description here

  2. Sélectionnez "Désactiver le type de problème" (par exemple)

    enter image description here

12
Sergio Carneiro

ContentDescription nécessaire pour l'accessibilité Android . Notamment pour la fonction de lecteur d'écran . Si vous ne supportez pas l'accessibilité Android, vous pouvez l'ignorer avec la configuration Lint .

Donc, créez simplement lint.xml.

<?xml version="1.0" encoding="UTF-8"?>
<lint>

    <issue id="ContentDescription" severity="ignore" />

</lint>

Et placez-le dans le dossier app.

enter image description here

1
Yvgen

Les widgets non textuels ont besoin d'une description du contenu pour décrire textuellement l'image afin que les lecteurs d'écran puissent décrire l'interface utilisateur. Vous pouvez ignorer la propriété xmlns:tools="http://schemas.Android.com/tools"
tools:ignore="contentDescription"
ou définir la propriété Android:contentDescription="your description".

1
Fokou Franklin

Allez dans le fichier Gradle (application du module), ajoutez le bloc de code ci-dessous.

Android {
    ... 
    lintOptions {
        disable 'ContentDescription'
    }
    ...
}

Plus d'avertissement! codage heureux

0
GianhTran

Puisque j'ai besoin que ImageView ajoute une icône juste pour des raisons esthétiques, j'ai ajouté tools:ignore="ContentDescription" dans chaque ImageView que j'avais dans mon fichier xml.

Je ne reçois plus aucun message d'erreur

0
MikNik

Pour les éléments graphiques purement décoratifs, définissez leurs attributs XML respectifs pour Android: contentDescription sur "@null". 

Si votre application ne prend en charge que les appareils fonctionnant sous Android 4.1 (API de niveau 16) ou supérieur, vous pouvez plutôt définir les attributs XML de ces éléments pour Android: importantForAccessibility sur "no".

0
AnhSang