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