Comment les équipes de développement peuvent rendre les images accessibles sous Android

Devanshu Chandra

By Devanshu Chandra

August 23, 2022

Comment rendre les images accessibles sous Android 01

Rendre les images accessibles dans les applications iOS est un processus relativement simple : il suffit de fournir une description du contenu de l'image, et c'est tout. Sous Android, en revanche, l'attribut « description du contenu » associe une description textuelle à un contrôle, à un ImageView ou à d'autres objets pouvant recevoir le focus qui, sans cela, n'auraient aucun contenu. Il existe une grande ambiguïté quant à la décision de rendre ou non une image accessible à un utilisateur de TalkBack.

Afin de dissiper une partie de la confusion qui entoure l'accessibilité des images, nous allons répondre aux questions suivantes :

  • Pourquoi les images sous Android doivent-elles comporter une description du contenu ?
  • Quand dois-je fournir une description du contenu d'une image ?
  • Dans quels cas ne dois-je PAS fournir de description du contenu d'une image ?
  • Comment rédiger des descriptions de contenu pour les vues d'images au format XML ?
  • Comment rédiger des descriptions de contenu pour les éléments d'image modulaires ?

Pourquoi les images sous Android doivent-elles comporter des descriptions de contenu ?

Le service d'accessibilité Android considère que les images dépourvues de description de contenu ne sont pas importantes pour l'accessibilité ; par conséquent, il n'est pas possible de les sélectionner à l'aide de TalkBack. Sans description de contenu, les utilisateurs de TalkBack passent à côté d'informations précieuses que ces images pourraient leur apporter.

Avant d'entrer davantage dans les détails, voyons d'abord comment les images sous Android peuvent être classées à des fins d'accessibilité :

  • Des images qui fournissent des informations
  • Images décoratives qui se trouvent généralement à côté d'un autre élément de l'interface utilisateur

Quand dois-je fournir une description du contenu d'une image sous Android ?

Une description du contenu est indispensable pour les images qui fournissent des informations (par exemple, des images interactives, informatives, etc.). Par exemple, dans la capture d'écran ci-dessous, l'image située en haut présente des informations importantes qui doivent être transmises à l'utilisateur de TalkBack. Dans de tels cas, il est très important de fournir une description du contenu de l'image.

Capture d'écran de l'émulateur Android affichant une image avec le logo de la conférence « axe-con », les dates de la conférence en haut et des exemples de boutons sous l'image.

Dans quels cas ne dois-je PAS fournir de description du contenu d'une image sous Android ?

Pour les images décoratives qui se trouvent généralement à côté d'un autre élément de l'interface utilisateur, il n'est pas nécessaire de fournir une description du contenu.

Prenons par exemple une liste d'éléments disposés les uns sous les autres, chaque élément de la liste comportant un texte suivi d'une image en forme de chevron. Dans ce cas, le texte précédant l'image fait office d'étiquette. L'image en forme de chevron n'apporte aucune information supplémentaire.

De plus, il est préférable de veiller à ce que chaque élément de la liste regroupe à la fois le texte et l'image, afin que chaque élément de la liste puisse être sélectionné individuellement, comme le montre la capture d'écran ci-dessous. Cela permet de créer une association visuelle pour les utilisateurs malvoyants et évite aux utilisateurs non voyants d'avoir à gérer des informations redondantes.

Remarque : on pourrait faire valoir que le linter d'Android Studio signale que l'image située à côté de l'élément devrait comporter une description de contenu ; toutefois, dans le cas d'une liste où le texte et l'image seront regroupés lorsque TalkBack se positionnera sur l'élément, il n'est pas nécessaire de fournir une description de contenu pour l'image décorative.

Capture d'écran d'un élément Android présentant quatre boutons en haut et une liste de cinq éléments, sur laquelle TalkBack a sélectionné le premier élément de la liste.

Comment rédiger des descriptions de contenu pour les vues d'images au format XML ?

Dans les vues de type XML, l'ajout de descriptions de contenu est assez simple :

<androidx.appcompat.widget.AppCompatImageView
   android:id="@+id/img_1"
   android:layout_width="140dp"
   android:layout_height="wrap_content"
   app:layout_constraintStart_toStartOf="parent"
   app:layout_constraintEnd_toStartOf="@+id/txt_1"
   android:contentDescription="@string/image_content_description"
   android:src="@drawable/circle_outline"
   app:layout_constraintTop_toTopOf="parent"
   app:layout_constraintBottom_toBottomOf="parent"
   />

On peut également le faire en Kotlin :

val img = findViewById<AppCompatImageView>(R.id.img_1)

img.contentDescription = "Purple Circle"

Comment rédiger des descriptions de contenu pour les « Image Composables » ?

Jetpack Compose propose des API très simples pour définir une description du contenu d'une image. Pour les composables de type image, vous pouvez fournir directement la description du contenu via l'API du composable image, comme le montre l'extrait de code ci-dessous.

Image(
      painterResource(id = R.drawable.ic_axe_con),
      contentDescription = "Axe Con, Créer des expériences accessibles",
      modifier = Modifier.constrainAs(image) {
        top.linkTo(parent.top)
        start.linkTo(parent.start)
        end.linkTo(parent.end)
     }
  )

Informations en double

Veillez tout particulièrement, lorsque vous ajoutez des descriptions de contenu, à ce qu'elles soient concises et uniques. Si la description d'une image reprend le texte qui l'accompagne, cela peut prêter à confusion pour l'utilisateur de TalkBack.

Par exemple, dans la capture d'écran ci-dessous, nous pouvons définir la description du contenu de l'image comme « Cercle violet » plutôt que simplement « cercle ». La description « Cercle violet » décrit l'aspect du cercle dessiné à l'écran et fournit ainsi des informations plus précises à l'utilisateur de TalkBack.

Capture d'écran de l'émulateur Android sur laquelle un cercle violet est dessiné avant le texte « Circle »

Conclusion

Sous Android, il est facile de rendre les images accessibles aux utilisateurs de TalkBack en utilisant l'attribut « content-description » ou l'API. Il est toutefois très important de bien comprendre quand les utiliser.

Voici quelques derniers rappels :

  • Lorsque des images sont utilisées à des fins décoratives ou qu'un texte sert de légende à l'image, il est recommandé de les encapsuler.
  • Il convient d'ajouter des descriptions de contenu aux images qui fournissent des informations utiles à l'utilisateur.
  • Évitez de fournir des informations redondantes à l'utilisateur de TalkBack afin d'éviter toute confusion. Il est recommandé d'éviter d'utiliser des mots tels que « image » ou « photo » lors de la rédaction des descriptions de contenu pour les images ; il suffit en effet de décrire simplement les informations que l'image transmet à un utilisateur voyant.
  • La description dynamique du contenu des images doit être fournie via les API impératives Android et les API Compose.

N'oubliez pas que l'outil de vérification Lint d'Android Studio peut afficher un avertissement pour tout élément `ImageView` ne comportant pas de description de contenu ; c'est donc à vous de déterminer s'il est nécessaire d'en créer une.

Enfin, n’oubliez pas que l’utilisation de TalkBack pour tester votre application reste le meilleur moyen de vérifier si vous avez correctement utilisé les descriptions de contenu.

Devanshu Chandra

Devanshu Chandra

Devanshu Chandra est développeur Android depuis 2016 et travaille chez Deque depuis 2020. Il s'intéresse vivement à la formation d'une nouvelle génération de développeurs du monde entier à l'accessibilité mobile sur Android ; selon les besoins, il anime des sessions en ligne pour enseigner l'accessibilité. Il est intervenu lors de l'axe-con 2021 et a donné des conférences dans de nombreux établissements scolaires. Devanshu est un fervent défenseur de l’automatisation et a aidé de nombreuses organisations à atteindre leurs objectifs en la matière. C’est un fan inconditionnel des Red Wings et il rêve de voir les Lions remporter un jour le Super Bowl.

Recevez les articles de blog directement dans votre boîte mail

Pas de bavardages inutiles, mais des informations concrètes sur l'accessibilité, fournies par des experts qualifiés.

Vous acceptez que Deque , utilise et partage des informations conformément à Dequedéclaration de confidentialité. Vous pouvez modifier votre consentement à tout moment en nous contactant.

En savoir plus sur ce sujet

Comment résoudre les problèmes courants liés à l'accessibilité sur iOS

Jennifer Dailey
September 15, 2022 By Jennifer Korth

iOS propose gratuitement de nombreuses fonctionnalités d'accessibilité, ce qui constitue un excellent point de départ pour rendre une application mobile accessible. Malheureusement, l'accessibilité est un sujet plus complexe…

Lire l'article
Comment résoudre les problèmes courants d'accessibilité sous iOS 01

Créer des applications Android accessibles avec Jetpack Compose : exemples en temps réel

Devanshu Chandra
June 30, 2022 By Devanshu Chandra

Dans la première partie de cette série d'articles consacrée au développement d'applications Android accessibles avec Jetpack Compose, nous avons découvert comment les services d'accessibilité fonctionnent avec Jetpack Compose et…

Lire l'article
Jetpack Compose, partie 2, n° 01