Ce guide fournit les bonnes pratiques en matière d'accessibilité sur Android TV et des recommandations pour les applications natives et non natives.
Pourquoi l'accessibilité est-elle importante pour mon application TV ?
Les déficiences visuelles sont fréquentes chez les personnes qui regardent la télévision. Selon l'Organisation mondiale de la santé (OMS), on estime que 2,2 milliards de personnes dans le monde souffrent d'une déficience visuelle. Aux États-Unis, 32 millions d'Américains âgés de 18 ans et plus ont subi une perte de vision importante, selon l'enquête nationale sur la santé de 2018. En Europe, les estimations de l'Union européenne des aveugles (UEA) font état de 30 millions de personnes aveugles et malvoyantes.
Plus important encore, les utilisateurs souffrant d'une déficience visuelle apprécient les contenus multimédias autant que leurs pairs voyants. Une étude de 2017 commandée par Comcast a montré que 96 % des utilisateurs aveugles ou malvoyants regardent régulièrement la télévision, dont 81 % plus d'une heure par jour. Cependant, 65 % des utilisateurs ont également déclaré avoir rencontré des problèmes pour trouver des programmes TV. Dans une étude menée en 2020 au Royaume-Uni, 80 % des personnes en situation de handicap ont déclaré avoir rencontré des problèmes d'accessibilité avec les services de streaming vidéo à la demande.
Bien que les technologies d'assistance puissent aider les utilisateurs malvoyants, il est important de prendre en charge l'accessibilité dans les parcours de découverte de contenu pour les applications TV. Par exemple, veillez tout particulièrement à fournir des instructions de navigation et à étiqueter correctement les éléments. Assurez-vous également que les applications TV fonctionnent correctement avec les fonctionnalités d'accessibilité telles que TalkBack. Ces étapes peuvent améliorer considérablement l'expérience des utilisateurs malvoyants.
La première étape pour améliorer l'accessibilité est la sensibilisation. Ce guide peut vous aider, vous et votre équipe, à identifier les problèmes d'accessibilité de votre application TV.
Ressources d'accessibilité Android
Pour en savoir plus sur l'accessibilité sur Android, consultez nos ressources de développement pour l'accessibilité.
Mise à l'échelle du texte
Les applications Android TV doivent respecter la préférence de l'utilisateur concernant la mise à l'échelle du texte en prenant en charge différentes densités de pixels.
Veillez tout particulièrement à :
- Utilisez
wrap_content
pour les dimensions dans les composants d'UI. - Assurez-vous que les mises en page réorganisent les composants lorsque leurs dimensions changent en fonction de l'échelle du texte.
- Assurez-vous que les composants tiennent toujours sur l'écran avec des échelles de texte plus grandes.
- N'utilisez pas d'unités de taille de texte sp pour les composants non flexibles.
Vérifiez la valeur de
FONT_SCALE
pour l'ajustement dans les vues personnalisées :// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
Vous pouvez modifier l'échelle du texte à l'aide de la commande suivante :
adb shell settings put system font_scale 1.2f
Sur Android 12 et versions ultérieures, les utilisateurs peuvent modifier la mise à l'échelle du texte dans les paramètres de l'appareil.
Dispositions de clavier
Dans Android 13 (niveau d'API 33) et versions ultérieures, vous pouvez utiliser getKeyCodeForKeyLocation()
pour rechercher les codes de touches pour les emplacements de touches attendus.
Cela peut être nécessaire si l'utilisateur a remappé certains emplacements de touches ou s'il utilise un clavier dont la disposition n'est pas standard.
Audiodescription
Dans Android 13 (niveau d'API 33) et versions ultérieures, une nouvelle préférence d'accessibilité à l'échelle du système permet aux utilisateurs d'activer les descriptions audio dans toutes les applications. Les applications Android TV peuvent vérifier la préférence de l'utilisateur en l'interrogeant avec isAudioDescriptionRequested()
.
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (am.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
Les applications Android TV peuvent surveiller les modifications apportées aux préférences d'un utilisateur en ajoutant un écouteur à AccessibilityManager
:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }