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 déficiences visuelles ne sont pas rares parmi la population qui regarde la télévision. Selon l'Organisation mondiale de la Santé (OMS), on estime que 2,2 milliards de personnes dans le monde souffrent de 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 la National Health Interview Survey de 2018. En Europe, les estimations font état de 30 millions de 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 pairs non voyants. Une enquête de 2017 commandée par Comcast a révélé que 96% des utilisateurs aveugles ou malvoyants regardent régulièrement la télévision, et 81% regardent la télévision plus d'une heure par jour. Cependant, 65% d'entre elles ont également déclaré avoir rencontré des problèmes pour rechercher ce qu'ils regardaient à la télévision. De plus, une enquête de 2020 au Royaume-Uni montre que 80% des personnes handicapées ont déclaré avoir rencontré des problèmes d'accessibilité avec les services de streaming de vidéo à la demande.

Bien que les technologies d'assistance puissent aider les utilisateurs ayant une déficience visuelle, il est important de favoriser l'accessibilité lors des parcours de découverte de contenu pour les applications TV. Par exemple, veillez à fournir des conseils de navigation et à attribuer correctement des libellés aux éléments, et assurez-vous que les applications TV fonctionnent bien avec les fonctionnalités d'accessibilité telles que TalkBack. Ces mesures peuvent considérablement améliorer 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 de l'accessibilité.

Mise à l'échelle du texte

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

Faites particulièrement attention aux points suivants:

  • Utilisez wrap_content pour les dimensions dans les composants d'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 s'affichent toujours à l'écran sur de plus grandes échelles de texte.
  • 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 affichages personnalisés:

    // 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 du clavier

Sous Android 13 (niveau d'API 33) ou version ultérieure, vous pouvez utiliser getKeyCodeForKeyLocation() pour rechercher les emplacements clés attendus dans les codes de clavier. 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 classique.

Audiodescription

Sous Android 13 (niveau d'API 33) ou version ultérieure, une nouvelle préférence d'accessibilité au niveau 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 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 quand les préférences d'un utilisateur changent 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);
}