Ce guide présente les bonnes pratiques en matière d'accessibilité sur Android TV et fournit des recommandations pour les applications natives et non natives.
Pourquoi l'accessibilité est-elle importante pour mon application TV ?
Les troubles de la vue sont fréquents chez les téléspectateurs. L'OMS estime que 2,2 milliards de personnes dans le monde souffrent de troubles de la vue, tandis qu'environ 32 millions d'adultes américains souffrent d'une perte de vision importante (enquête nationale sur la santé de 2018). En Europe, l'UER estime que 30 millions de personnes sont concernées.
Les utilisateurs malvoyants apprécient les contenus multimédias autant que les personnes voyantes. Une enquête Comcast 2017 a révélé que 96% des personnes malvoyantes regardent la télévision (81% plus d'une heure par jour). Pourtant, 65% d'entre elles déclarent avoir des difficultés à trouver des contenus. De plus, 80% des personnes handicapées interrogées au Royaume-Uni ont déclaré avoir des problèmes de streaming.
Les technologies d'assistance sont utiles, mais les applications TV doivent être compatibles avec l'accessibilité dans la découverte de contenus. Portez une attention particulière aux instructions de navigation et aux libellés des éléments. Assurez-vous de la compatibilité avec des fonctionnalités telles que TalkBack pour 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 sur l'accessibilité.
Mise à l'échelle du texte
Les applications Android TV doivent respecter les préférences de l'utilisateur en matière de mise à l'échelle du texte en étant compatibles avec différentes densités de pixels.
Veillez tout particulièrement à :
- Utiliser
wrap_contentpour les dimensions dans les composants d'UI. - Veiller à ce que les mises en page réorganisent les composants lorsque leurs dimensions changent en fonction de la mise à l'échelle du texte.
- Veiller à ce que les composants tiennent toujours à l'écran avec des mises à l'échelle de texte plus importantes.
- Ne pas utiliser d'unités de taille de texte sp pour les composants qui ne sont pas flexibles.
Vérifier la valeur de
FONT_SCALEpour l'ajustement dans les vues personnalisées :// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
La mise à l'échelle du texte peut être modifiée à l'aide de la commande suivante :
adb shell settings put system font_scale 1.2f
Sous Android 12 et versions ultérieures, les utilisateurs peuvent modifier la mise à l'échelle du texte à partir des paramètres de l'appareil.
Dispositions de clavier
Sous Android 13 (niveau d'API 33) et versions ultérieures, vous pouvez utiliser
getKeyCodeForKeyLocation()
pour
rechercher les codes de touche 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.
Audio description
Sous 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 audiodescriptions dans toutes les applications. Les applications Android TV
peuvent vérifier les préférences de l'utilisateur en les 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 changements de 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);
}