Bonnes pratiques d'accessibilité pour Android TV

Ce guide présente les bonnes pratiques 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 vision ne sont pas rares chez les personnes qui regardent la télévision. Selon l'Organisation mondiale de la Santé (OMS), 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 connu une perte de vision importante, d'après l'enquête National Health Interview Survey 2018. En Europe, les estimations à 30 millions les personnes aveugles et malvoyantes, selon l'Union européenne aveugle (UER).

Plus important encore, les utilisateurs malvoyants apprécient les contenus multimédias. tout autant que leurs homologues entièrement voyants. Enquête 2017 commandée par Comcast a montré que 96% des utilisateurs aveugles ou malvoyants regardent régulièrement à la télévision : 81% des utilisateurs regardent du contenu plus d'une heure par jour. Toutefois, 65% d'entre eux des problèmes pour rechercher ce qui est à la télévision. Dans une enquête 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 de vidéos à la demande.

Si les technologies d'assistance peuvent aider les utilisateurs souffrant de déficiences visuelles, elles sont est essentiel pour assurer l'accessibilité lors de la découverte de contenus dans les applications TV. Par exemple, accordez une attention particulière aux conseils de navigation et étiqueter correctement les éléments et s'assurer que les applis TV fonctionnent bien en termes d'accessibilité des fonctionnalités comme TalkBack. Vous pourrez ainsi 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 pour le développement de l'accessibilité.

Mise à l'échelle du texte

Les applications Android TV doivent respecter les préférences de l'utilisateur concernant la mise à l'échelle du texte en acceptant différentes densités de pixels.

Portez une attention particulière aux points suivants :

  • Utilisez wrap_content pour les dimensions dans les composants de l'interface utilisateur.
  • Assurez-vous que les mises en page réorganisent les composants à mesure que leurs dimensions changent en fonction de l'échelle du texte.
  • Assurez-vous que les composants tiennent toujours à l'écran sur des échelles de texte plus grandes.
  • N'utilisez pas d'unités de taille de texte en sp pour les composants qui ne sont pas flexibles.
  • Vérifiez la valeur de FONT_SCALE pour l'ajuster 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 ou version ultérieure, les utilisateurs peuvent modifier la mise à l'échelle du texte à partir de l'appareil. paramètres.

Dispositions du clavier

Sur Android 13 (niveau d'API 33) ou version ultérieure, vous pouvez utiliser getKeyCodeForKeyLocation() à rechercher les codes de clavier pour les emplacements clés attendus. Cela peut être nécessaire si l'utilisateur a remappé certains emplacements clés ou s'ils utilisent un clavier dont la disposition n'est pas classique.

Audiodescription

Sous Android 13 (niveau d'API 33) ou version ultérieure, une nouvelle préférence d'accessibilité à l'échelle du système permet aux utilisateurs d'activer l'audiodescription dans toutes les applications. Les applications Android TV peuvent vérifier les préférences 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 si les préférences d'un utilisateur changent en 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);
}