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).

Ma soprattutto, gli utenti con disabilità visiva apprezzano i contenuti multimediali tanto quanto i loro coetanei. 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 che hanno problemi con la ricerca di ciò che c'è 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 aiutare gli utenti ipovedenti, è importante per 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 Android TV devono rispettare la preferenza dell'utente per il ridimensionamento del testo supportando diverse densità di pixel.

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() a cercare i codici chiave le località chiave previste. Questa operazione potrebbe essere necessaria se l'utente ha rimappato alcune posizioni chiave o se utilizzi una tastiera che non ha un layout tipico.

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 cambia la preferenza di un utente 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);
}