Libellés de contenu

Les utilisateurs de services d'accessibilité comme les lecteurs d'écran comptent sur les libellés de contenu pour comprendre la signification des éléments d'une interface.

Dans certains cas, par exemple lorsque l'information est transmise sous forme graphique dans un élément, les libellés de contenu peuvent fournir une description textuelle du sens ou de l'action associés à l'élément.

Si les éléments d'une interface utilisateur ne fournissent pas de libellé de contenu, il peut être difficile pour certains utilisateurs de comprendre les informations qui leur sont présentées ou d'interagir avec l'interface.

Implémentation

View

Lorsque certains types de Views sont utilisés dans une interface, ils doivent fournir des libellés de contenu qui décrivent le rôle ou l'action associé aux Views concernées.

Fournir des libellés de contenu

android:contentDescription

Lorsque vous utilisez une ImageView, un ImageButton, une CheckBox ou d'autres Views pour transmettre des informations sous forme graphique, précisez un attribut android:contentDescription afin de fournir un libellé de contenu pour la View concernée.

Un libellé de contenu dépend parfois d'informations disponibles uniquement lors de l'exécution et la signification d'une View peut changer au fil du temps. Par exemple, un bouton "Lecture" peut devenir un bouton "Pause" pendant la lecture de la musique. Dans ces cas, utilisez View#setContentDescription(CharSequence contentDescription) pour que le libellé de contenu soit mis à jour au moment voulu.

En règle générale, lorsqu'un service d'accessibilité décrit un ViewGroup, il réunit les libellés de contenu de ses Views enfants. Pour éviter cela et indiquer que vous souhaitez fournir votre propre description pour cet élément et ses Views enfants non sélectionnables, définissez une contentDescription dans le ViewGroup. Vous devrez peut-être inclure les libellés de contenu provenant des Views enfants dans une contentDescription lorsque celle-ci est définie dans un ViewGroup.

android:hint

Pour les EditTexts ou les TextViews modifiables, utilisez un attribut android:hint pour indiquer le rôle du champ de texte. Vous ne devez pas utiliser d'attribut android:contentDescription comme libellé de contenu pour des Views modifiables.

android:labelFor

Utilisez un attribut android:labelFor pour indiquer qu'une View doit servir de libellé de contenu pour une autre View.

Cas ne nécessitant pas de libellé de contenu

Dans certains cas, vous ne devez pas fournir de libellés de contenu de façon spécifique :

  • Les textes rendus dans TextView (ou dans l'une de ses sous-classes) bénéficient automatiquement de services d'accessibilité. Des libellés de contenu supplémentaires sont généralement inutiles dans ce cas.
  • Les images décoratives ou les images ne comportant pas d'informations pertinentes sous forme graphique ne nécessitent pas de libellés de contenu. Dans de tels cas, définissez un attribut android:contentDescription avec la valeur "@null" ou un attribut android:importantForAccessibility avec la valeur "no".

Pour en savoir plus, découvrez comment implémenter des libellés de contenu dans la formation des développeurs Android et les guides consacrés aux API.

Compose

Lorsque certains types de composables sont utilisés dans une interface, ils doivent contenir des libellés de contenu qui décrivent le rôle ou l'action associés à ces composables.

Fournir des libellés de contenu

Descriptions de contenu

Afin de fournir un libellé de contenu pour une Image, une Icon ou un autre composable de niveau inférieur transmettant des informations sous forme graphique, définissez la description de contenu.

  • Un libellé de contenu peut dépendre d'informations d'exécution et la signification du composable peut changer. Par exemple, un bouton "Lecture" peut devenir un bouton "Pause" pendant la lecture de la musique.

Paramètre "label"

Certains composables, comme TextField, acceptent un paramètre label facultatif. Lorsque label est défini, l'élément affiche le composable transmis à ce paramètre. Le composable ne peut pas être décrit à l'aide des services d'accessibilité.

Cas ne nécessitant pas de libellé de contenu

Dans certains cas, vous ne devez pas ajouter de libellés de contenu :

  • Les textes rendus dans Text ou d'autres composables contenant Text bénéficient automatiquement de services d'accessibilité.
  • Les images décoratives ou les images ne comportant pas d'informations pertinentes sous forme graphique.
    • Dans de tels cas, définissez le paramètre contentDescription ou la propriété Modifier.semantics#contentDescription avec la valeur null ou appelez Modifier#clearAndSetSemantics.

Conception

Lors de la conception d'une interface utilisateur, prenez le temps de réfléchir à la façon dont le contenu représenté graphiquement doit être libellé pour les utilisateurs de services d'accessibilité. Les libellés de contenu doivent respecter les principes suivants :

  • Être concis et décrire clairement la signification ou l'action associées à l'élément
  • Ne pas comporter le type ou l'état de l'élément
  • Décrire l'action associée à l'élément plutôt que ce qu'il représente graphiquement si l'élément permet d'effectuer une action
  • Ne pas donner d'instructions à l'utilisateur concernant la façon dont il doit interagir avec l'élément

Pour en savoir plus, consultez les consignes d'accessibilité Material Design relatives au texte.

Tests

Pour vérifier manuellement qu'il ne manque pas de libellés de contenu dans l'interface utilisateur d'une application :

  1. Activez TalkBack.
  2. Ouvrez l'application.
  3. Utilisez des gestes de navigation linéaire pour passer d'un élément au suivant sur l'écran.
  4. Si TalkBack sélectionne un élément sans en donner de description claire, ou le décrit comme "sans libellé", l'élément concerné ne possède probablement pas de libellé de contenu.

Les outils de test automatisés d'Android peuvent détecter les libellés de contenu manquants. Nous vous conseillons d'utiliser l'application Accessibility Scanner pour Android pour tester manuellement votre application sur un appareil. Vous pouvez effectuer des tests automatisés en activant la vérification de l'accessibilité dans Espresso et Robolectric.

Recherche
Effacer la recherche
Fermer le champ de recherche
Applications Google
Menu principal
6856016302732619497
true
Rechercher dans le centre d'aide
true
true
true
true
true
717068
false
false
false
false