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?
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.
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"
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" />
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. _
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:
Cliquez sur le bouton rouge en haut à droite
Sélectionnez "Désactiver le type de problème" (par exemple)
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
.
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"
ou définir la propriété
tools:ignore="contentDescription"Android:contentDescription="your description"
.
Allez dans le fichier Gradle
(application du module), ajoutez le bloc de code ci-dessous.
Android {
...
lintOptions {
disable 'ContentDescription'
}
...
}
Plus d'avertissement! codage heureux
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
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".