Questa guida fornisce le best practice per l'accessibilità su Android TV e consigli per le app native e non native.
Perché l'accessibilità è importante per la mia app TV?
I problemi di vista non sono rari nella popolazione che guarda la TV. Secondo l'Organizzazione Mondiale della Sanità (OMS), si stima che 2,2 miliardi di persone in tutto il mondo abbiano problemi di vista, Negli Stati Uniti, 32 milioni di americani di età pari o superiore a 18 anni hanno subito una perdita della vista significativa, secondo il National Health Interview Survey del 2018. In Europa, secondo l'Unione Europea dei Ciechi (EBU), si stimano 30 milioni di persone cieche e ipovedenti.
Ancora più importante, gli utenti con problemi di vista apprezzano i contenuti multimediali tanto quanto i loro coetanei con vista normale. Un sondaggio del 2017 commissionato da Comcast ha dimostrato che il 96% degli utenti ciechi o ipovedenti guarda regolarmente la TV, con l'81% che la guarda per più di un'ora al giorno. Tuttavia, il 65% ha anche segnalato di aver riscontrato problemi nella ricerca dei programmi TV. In un sondaggio del 2020 nel Regno Unito, l'80% delle persone con disabilità ha dichiarato di aver riscontrato problemi di accessibilità con i servizi di streaming video on demand.
Sebbene le tecnologie assistive possano aiutare gli utenti ipovedenti, è importante supportare l'accessibilità nei percorsi di scoperta dei contenuti per le app TV. Ad esempio, presta particolare attenzione a fornire indicazioni per la navigazione e a etichettare correttamente gli elementi, nonché ad assicurarti che le app TV funzionino correttamente con le funzionalità di accessibilità come TalkBack. Questi passaggi possono migliorare notevolmente l'esperienza degli utenti con problemi di vista.
Il primo passo verso il miglioramento dell'accessibilità è la consapevolezza. Questa guida può aiutare te e il tuo team a scoprire i problemi di accessibilità della tua app TV.
Risorse per l'accessibilità di Android
Per saperne di più 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:
- Utilizzare
wrap_contentper le dimensioni nei componenti dell'interfaccia utente. - Assicurarti che i layout riorganizzino i componenti man mano che le loro dimensioni cambiano a seconda della scala del testo.
- Assicurarsi che i componenti si adattino ancora allo schermo con scale di testo più grandi.
- Non utilizzare unità di dimensioni del testo sp per i componenti non flessibili.
Controllare il valore di
FONT_SCALEper la regolazione 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 dalle impostazioni del dispositivo.
Layout tastiera
In Android 13 (livello API 33) e versioni successive, puoi utilizzare
getKeyCodeForKeyLocation()
per
cercare i codici chiave per le
posizioni chiave 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 Android TV possono
controllare la preferenza dell'utente eseguendo una query con
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 Android TV possono monitorare le modifiche alle preferenze 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); }