Bonnes pratiques d'accessibilité pour Android TV

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. Selon l'Organisation mondiale de la Santé (OMS), environ 2,2 milliards de personnes dans le monde souffrent d'un trouble de la vue, selon. 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, l'Union européenne des aveugles (UEA) estime à 30 millions le nombre de personnes aveugles et malvoyantes .

Plus important encore, les utilisateurs malvoyants apprécient les contenus multimédias autant que les personnes voyantes. Une enquête menée en 2017 par Comcast a révélé que 96 % des utilisateurs aveugles ou malvoyants regardent régulièrement la télévision, et que 81 % d'entre eux la regardent plus d'une heure par jour. Cependant, 65 % d'entre eux ont également déclaré avoir des difficultés à trouver ce qui est diffusé à la télévision. En 2020, une enquête menée au Royaume-Uni, a révélé que 80 % des personnes handicapées avaient 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 à fournir des instructions de navigation et à étiqueter correctement les éléments, et assurez-vous 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 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_content pour les dimensions dans les composants d'UI ;
  • vous assurer que les mises en page réorganisent les composants lorsque leurs dimensions changent en fonction de l'échelle du texte ;
  • vous assurer que les composants tiennent toujours à l'écran avec des échelles de texte plus grandes ;
  • 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_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)
    

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 modifications des 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);
}