Best practice di accessibilità per Android TV

Questa guida fornisce le best practice per l'accessibilità su Android TV e fornisce consigli per app sia native che non native.

Perché l'accessibilità è importante per la mia app TV?

Le disabilità visive non sono rari nella popolazione che guarda la TV. Si stima che 2,2 miliardi di persone a livello mondiale ha una disabilità visiva, secondo all'Organizzazione Mondiale della Sanità (OMS). Negli Stati Uniti, 32 milioni di americani dai 18 anni in su hanno subito una significativa perdita della vista, secondo il 2018 National Health Interview Survey. In Europa, le stime punto a 30 milioni cieche e ipovedenti, secondo l'Unione Europea cieca (EBU).

Soprattutto, gli utenti con disabilità visive possono usufruire dei contenuti multimediali tanto quanto i loro coetanei normodotati. Un sondaggio del 2017 commissionato da Comcast ha dimostrato che il 96% degli utenti ciechi o ipovedenti guarda regolarmente TV: l'81% guarda più di un'ora al giorno. Tuttavia, il 65% ha segnalato anche problemi con la ricerca di contenuti in TV. Inoltre, in un sondaggio del 2020 nella Regno Unito, L'80% delle persone con disabilità ha dichiarato di aver riscontrato problemi di accessibilità con i video servizi di streaming on demand.

Sebbene le tecnologie per la disabilità possano e aiutino gli utenti ipovedenti, è importante supportare l'accessibilità nei percorsi di scoperta dei contenuti per le app TV. Ad esempio, presta particolare attenzione alle indicazioni di navigazione e etichettare correttamente gli elementi e garantire che le app TV funzionino correttamente con le funzioni di accessibilità come TalkBack. Questi passaggi possono migliorare notevolmente l'esperienza degli utenti con disabilità visiva.

Il primo passo per migliorare l'accessibilità è la consapevolezza. Questa guida può aiutarti per aiutare te e il tuo team a scoprire i problemi di accessibilità della tua app TV.

Risorse per l'accessibilità Android

Per ulteriori informazioni sull'accessibilità su Android, consulta le nostre risorse per lo sviluppo dell'accessibilità.

Ridimensionamento testo

Le app per Android TV devono rispettare le preferenze dell'utente per il ridimensionamento del testo supportando densità di pixel diverse.

Presta particolare attenzione a:

  • Utilizza wrap_content per le dimensioni nei componenti dell'interfaccia utente.
  • Assicurati che i layout riordinano i componenti man mano che le loro dimensioni cambiano in base alla scala del testo.
  • Assicurati che i componenti si adattino comunque allo schermo a scale di testo più grandi.
  • Non utilizzare unità di dimensione del testo sp per i componenti che non sono flessibili.
  • Verifica il valore di FONT_SCALE per eventuali aggiustamenti nelle visualizzazioni personalizzate:

    // Checking font scale with Context
    val scale = resources.configuration.fontScale
    Log.d(TAG, "Text scale is: " + scale)
    

La scala del testo può essere modificata con il seguente comando:

adb shell settings put system font_scale 1.2f

Su Android 12 e versioni successive, gli utenti possono modificare il ridimensionamento del testo dal dispositivo impostazioni.

Layout tastiera

In Android 13 (livello API 33) e versioni successive, puoi utilizzare getKeyCodeForKeyLocation() per cercare i codici a chiave per le posizioni delle chiavi previste. Questa operazione potrebbe essere necessaria se l'utente ha rimappato alcune posizioni chiave o se utilizza una tastiera con un layout non standard.

Descrizione audio

In Android 13 (livello API 33) e versioni successive, una nuova preferenza di accessibilità a livello di sistema consente agli utenti di attivare le descrizioni audio in tutte le app. Le app per Android TV possono verificare le preferenze dell'utente eseguendo una query 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
}

Le app per Android TV possono monitorare quando le preferenze di un utente cambiano tramite aggiungendo un listener a 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);
}