Libellés de contenu

Arrière-plan

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.

Mise en œuvre

Lorsque certains types d'éléments View sont utilisés dans une interface, ils doivent fournir des libellés de contenu qui décrivent les objets ou actions associés aux éléments View concernés.

Proposer des libellés de contenu

android:contentDescription

Lorsque vous utilisez des éléments ImageView, ImageButton, CheckBox ou d'autres éléments View pour transmettre des informations sous forme graphique, précisez un attribut android:contentDescription pour ajouter un libellé de contenu à l'élément View concerné.

Un libellé de contenu dépend parfois d'informations disponibles uniquement lors de l'exécution et la signification d'un élément 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 élément ViewGroup, il réunit les libellés de contenus de son élément enfant Views. Pour éviter cela et indiquer que vous souhaitez fournir votre propre description pour cet élément et ses éléments enfants Views non sélectionnables, définissez une contentDescription dans le ViewGroup. Vous devrez peut-être inclure les libellés de contenus provenant des éléments enfants View dans une contentDescription lorsque celle-ci est définie dans le ViewGroup .

android:hint

Pour les éléments EditTexts ou les TextViews modifiables, utilisez un attribut android:hint pour indiquer le rôle du champ de texte. N'utilisez pas d'élément android:contentDescription en guise de libellé de contenu pour des éléments View modifiables.

android:labelFor

Utilisez un attribut android:labelFor pour indiquer qu'un élément View doit se comporter comme un libellé de contenu pour un autre élément View.

Cas ne nécessitant pas de libellé de contenu

Dans certains cas, les libellés de contenu ne doivent pas être fournis de façon spécifique :

  • Les textes rendus dans la classe TextView (ou dans l'une de ses sous-classes) bénéficient automatiquement de services d'accessibilité. Les libellés de contenus supplémentaires sont généralement inutiles dans ce cas.
  • Les images décoratives ou les images ne comportant pas d'informations pertinentes ne nécessitent pas de libellés de contenus. 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 mettre en œuvre des libellés de contenu dans la formation des développeurs Android et les guides consacrés aux API.

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 d'un élément doivent respecter les principes suivants :

  • Être concis et décrire clairement la signification ou l'action associée à 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.

Test

Pour vérifier manuellement que l'interface utilisateur d'une application ne comporte pas de libellés de contenu manquants, procédez comme suit :

  1. Activez TalkBack.
  2. Ouvrez l'application.
  3. Utilisez des gestes de navigation linéaires 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 tests 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 la recherche
Applications Google
Menu principal
Rechercher dans le centre d'aide
true
717068
false