Testare l'accessibilità dell'app

I test di accessibilità ti consentono di sperimentare la tua app dal punto di vista dell'utente e di trovare problemi di usabilità che potrebbero sfuggirti. I test di accessibilità possono individuare opportunità per rendere la tua app più potente e versatile per tutti gli utenti, inclusi quelli con disabilità.

Per ottenere risultati ottimali, utilizza tutti gli approcci descritti in questo documento:

  • Test manuale: interagisci con la tua app utilizzando i servizi di accessibilità di Android.
  • Test con strumenti di analisi: usa gli strumenti per scoprire opportunità per migliorare l'accessibilità della tua app.
  • Test automatici: attiva i test di accessibilità in Espresso e Robolectric.
  • Test con gli utenti:ricevi feedback dagli utenti che interagiscono con la tua app.

Test manuali

I test manuali ti mettono nei panni dell'utente. Gli oggetti Android AccessibilityService cambiano il modo in cui i contenuti dell'app vengono presentati all'utente e il modo in cui l'utente interagisce con i contenuti. Interagendo con la tua app utilizzando i servizi di accessibilità, puoi sperimentare l'app proprio come fanno gli utenti.

TalkBack

TalkBack è lo screen reader integrato di Android. Quando TalkBack è attivo, gli utenti possono interagire con il dispositivo Android senza vedere lo schermo. Gli utenti con disabilità visiva potrebbero utilizzare TalkBack per utilizzare la tua app.

Attivare TalkBack

  1. Apri l'app Impostazioni del dispositivo.
  2. Vai ad Accessibilità e seleziona TalkBack.
  3. Nella parte superiore della schermata di TalkBack, premi On/Off per attivarlo.
  4. Nella finestra di dialogo di conferma, seleziona OK per confermare le autorizzazioni.

Esplorare l'app con TalkBack

Una volta attivato TalkBack, esistono due modi comuni per navigare:

  • Navigazione lineare: scorri rapidamente verso destra o verso sinistra per spostarti tra gli elementi sullo schermo in sequenza. Tocca due volte un punto qualsiasi per selezionare l'elemento corrente della schermata.
  • Esplora toccando:trascina il dito sullo schermo per ascoltare l'elemento toccato. Tocca due volte un punto qualsiasi per selezionare l'elemento corrente.

Per esplorare la tua app con TalkBack, svolgi i seguenti passaggi:

  1. Apri l'app.
  2. Fai scorrere ogni elemento in sequenza.
  3. Durante la navigazione, cerca i seguenti problemi:

    • La funzione di lettura vocale per ogni elemento trasmette i relativi contenuti o scopi in modo appropriato? Scopri come scrivere etichette significative. * Gli annunci sono brevi o sono inutilmente dettagliati?
    • Riesci a completare facilmente i flussi di lavoro principali?
    • Riesci a raggiungere ogni elemento scorrendo?
    • Se vengono visualizzati avvisi o altri messaggi temporanei, vengono letti ad alta voce?

Per ulteriori informazioni e suggerimenti, consulta la documentazione per l'utente di TalkBack.

(Facoltativo) Impostazioni sviluppatore TalkBack

Le impostazioni sviluppatore TalkBack ti consentono di testare più facilmente la tua app con TalkBack.

Per visualizzare o modificare le impostazioni sviluppatore, completa i seguenti passaggi:

  1. Apri l'app Impostazioni del dispositivo.
  2. Vai ad Accessibilità e seleziona TalkBack.
  3. Seleziona Impostazioni > Impostazioni avanzate > Impostazioni sviluppatore:

    1. Livello di uscita: seleziona VERBOSE.
    2. Visualizza output vocale: attiva questa impostazione per visualizzare l'output vocale di TalkBack sullo schermo.

Switch Access

Switch Access consente agli utenti di interagire con i dispositivi Android utilizzando un sensore anziché il touchscreen. Esistono diversi tipi di switch: dispositivi di tecnologie per la disabilità come quelli venduti da AbleNet, linking Devices, RJ Cooper o Tecla*, tasti di tastiera esterni o pulsanti. Questo servizio può essere utile per gli utenti con disabilità motorie.

* Google non promuove queste aziende o i loro prodotti.

Attiva Switch Access

Un modo per configurare Switch Access è tramite due sensori. Un sensore è indicato come "Avanti" e sposta lo stato attivo sullo schermo, mentre un secondo opzione "Seleziona" seleziona l'elemento attivo. Questo metodo con due sensori è una coppia che può essere utilizzata da una qualsiasi coppia di chiavi hardware.

Per configurare Switch Access usando il tasto Abbassa il volume come sensore "Avanti" e il tasto Alza il volume come sensore "Seleziona", svolgi i seguenti passaggi:

  1. Assicurati che TalkBack sia disattivato.
  2. Apri l'app Impostazioni del dispositivo.
  3. Vai ad Accessibilità e seleziona Switch Access, quindi seleziona Impostazioni.
  4. Nella schermata Preferenze Switch Access, assicurati che l'opzione Scansione automatica sia disattivata.
  5. Utilizza il tasto Abbassa il volume come sensore "Avanti":

    1. Tocca Assegna tasti per la scansione > Avanti.
    2. Quando si apre la finestra di dialogo, premi il tasto Abbassa il volume. La finestra di dialogo mostra KEYCODE_VOLUME_DOWN.
    3. Tocca OK per confermare e uscire dalla finestra di dialogo.
  6. Utilizza il tasto Alza il volume come sensore "Seleziona":

    1. Tocca Seleziona.
    2. Quando si apre la finestra di dialogo, premi il tasto Alza il volume. La finestra di dialogo mostra KEYCODE_VOLUME_UP.
    3. Tocca OK per confermare e uscire dalla finestra di dialogo.
  7. Torna alle preferenze Switch Access toccando il pulsante Indietro.

  8. (Facoltativo) Se utilizzi TalkBack 5.1 o versioni successive, puoi selezionare Funzione di lettura vocale per attivare la funzione di lettura vocale.

  9. Torna alla schermata principale di Switch Access toccando il pulsante Indietro.

  10. Nella parte superiore della schermata Switch Access, premi On/Off per attivare Switch Access.

  11. Nella finestra di dialogo di conferma, seleziona OK per confermare le autorizzazioni.

Esplorare l'app usando Switch Access

Per esplorare la tua app con Switch Access, svolgi i seguenti passaggi:

  1. Apri l'app.
  2. Avvia la scansione premendo il tasto "Avanti" (il tasto Abbassa il volume).
  3. Continua a premere "Successivo" fino ad arrivare all'elemento che vuoi selezionare.
  4. Seleziona l'elemento evidenziato premendo il tasto "Seleziona" (il pulsante Alza il volume).
  5. Durante la navigazione, cerca i seguenti problemi:

    • Riesci a completare facilmente i flussi di lavoro principali?
    • Se hai input di testo o di altro tipo, puoi aggiungere e modificare facilmente i contenuti?
    • Gli elementi sono evidenziati solo se puoi eseguire un'azione con essi?
    • Ogni elemento è evidenziato una sola volta?
    • Le funzionalità disponibili tramite i gesti touchscreen sono disponibili anche come controlli selezionabili o azioni personalizzate in Switch Access?
    • Se utilizzi TalkBack 5.1 o versioni successive e hai attivato la funzione di lettura vocale, la funzione di lettura vocale per ogni elemento trasmette i contenuti o lo scopo in modo appropriato? Scopri come scrivere etichette significative.

(Facoltativo) Utilizza la selezione del gruppo per visualizzare tutti gli elementi scansionabili

La selezione del gruppo è un metodo di navigazione di Switch Access che ti consente di visualizzare contemporaneamente tutti gli elementi scansionabili. Questa opzione consente di controllare rapidamente se gli elementi corretti sullo schermo sono evidenziati.

Per attivare la selezione del gruppo, completa i seguenti passaggi:

  1. Apri l'app Impostazioni del dispositivo.
  2. Vai ad Accessibilità e seleziona Switch Access, quindi seleziona Impostazioni.
  3. Nella schermata Preferenze Switch Access, assicurati che l'opzione Scansione automatica sia disattivata.
  4. Seleziona Metodo di scansione > Selezione del gruppo.
  5. Tocca Assegna i sensori per la scansione.
  6. Assicurati che il testo sotto Sensore per la selezione del gruppo 1 e Sensore per la selezione del gruppo 2 mostri che a ognuno è assegnato un sensore. Se segui i passaggi descritti in questo documento per attivare Switch Access, i pulsanti del volume sono già assegnati.

Per esplorare la tua app con Switch Access utilizzando la selezione del gruppo, svolgi i seguenti passaggi:

  1. Premi il tasto "Seleziona" (il pulsante Alza il volume) per evidenziare tutti gli elementi su cui è possibile intervenire nella schermata corrente. Cerca i seguenti problemi:

    • Sono evidenziati solo gli elementi interattivi?
    • Tutti gli elementi interattivi sono evidenziati?
    • La densità degli elementi evidenziati ha senso?
  2. Passa a un'altra schermata per cancellare l'evidenziazione.

Per scoprire di più su come gli utenti possono navigare con la selezione dei gruppi, consulta la sezione Suggerimenti per l'utilizzo di Switch Access.

Voice Access

Voice Access consente agli utenti di controllare un dispositivo Android con comandi vocali. Voice Access è disponibile sui dispositivi con Android 5.0 (livello API 21) e versioni successive. Per testare la tua app con Voice Access, scopri come iniziare a utilizzare Voice Access.

Test con strumenti di analisi

Gli strumenti di analisi possono scoprire opportunità di miglioramento dell'accessibilità che potrebbero non essere disponibili con i test manuali.

Controllo UI di composizione

Attiva la modalità di controllo dell'interfaccia utente di Compose in un'anteprima di Compose per consentire ad Android Studio di controllare automaticamente la UI di Compose per rilevare eventuali problemi di accessibilità. Android Studio verifica che l'interfaccia utente funzioni su schermi di diverse dimensioni evidenziando problemi come testo esteso su schermi di grandi dimensioni o basso contrasto di colore nel riquadro dei problemi.

Fai clic sul pulsante Modalità di controllo dell'UI di composizione per attivare il controllo.
Modalità di controllo dell'UI di composizione attivata con i dettagli nel riquadro dei problemi.

Accessibility Scanner

L'app Accessibility Scanner scansiona lo schermo e suggerisce modi per migliorare l'accessibilità della tua app. Accessibility Scanner utilizza il framework di test di accessibilità e fornisce suggerimenti specifici dopo aver esaminato le etichette dei contenuti, gli elementi cliccabili, il contrasto e altro ancora.

Il framework di test di accessibilità Android è integrato in Android Studio per aiutarti a individuare i problemi di accessibilità nei tuoi layout. Per aprire il riquadro, fai clic sul pulsante del report sugli errori ! nell'Editor di layout.

Demo di Accessibility Scanner Figura 1. Demo di Accessibility Scanner.

Per saperne di più, consulta le seguenti risorse:

Report pre-lancio su Google Play

Se distribuisci la tua app su Google Play, hai accesso a un report pre-lancio relativo alla tua app. Google Play genera questo report poco dopo aver caricato un'app su un canale di rilascio utilizzando Google Play Console. Il report pre-lancio, disponibile anche in Google Play Console, mostra i risultati dei test eseguiti da Google Play sulla tua app.

In particolare, Google Play esegue test di accessibilità utilizzando il framework dei test di accessibilità. I risultati di questi test vengono visualizzati in una tabella nella scheda Accessibilità del report pre-lancio della tua app.

La tabella organizza le opportunità di miglioramento nelle seguenti categorie:

Dimensioni dei touch target
Elementi interattivi dell'app che hanno un'area attivabile, o dimensioni del touch target, inferiori a quanto consigliato.
Basso contrasto
Casi in cui la coppia di colori utilizzata per un elemento di testo e lo sfondo dietro l'elemento ha un rapporto di contrasto dei colori inferiore a quello consigliato.
Etichettatura dei contenuti
Elementi dell'interfaccia utente privi di etichetta che descrive lo scopo degli elementi.
Implementazione
Attributi assegnati agli elementi dell'interfaccia utente che rendono più difficile per i servizi di accessibilità del sistema interpretare correttamente gli elementi. Alcuni esempi includono la definizione di una descrizione per un'etichetta View modificabile e l'utilizzo di un ordine di attraversamento degli elementi che non corrisponda alla disposizione logica degli elementi.

Seguendo la tabella, il report pre-lancio mostra le istantanee della tua app. Questi snapshot rappresentano le principali opportunità per migliorare l'accessibilità della tua app in ogni categoria. Seleziona uno screenshot per visualizzare ulteriori dettagli, tra cui un miglioramento suggerito e un elenco più completo di punti della tua app in cui puoi applicare lo stesso miglioramento.

La figura 2 mostra un esempio della tabella che viene visualizzata nella scheda Accessibilità di un report pre-lancio in Google Play. La figura include anche uno degli snapshot dell'app, a indicare che le dimensioni del pulsante Avanti sono inferiori a quelle consigliate.

Un'immagine che mostra il report Accessibilità pre-lancio
Figura 2. Esempio di tabella di riepilogo (a sinistra) e screenshot (a destra) dalla scheda Accessibilità di un report pre-lancio.

Visualizzatore Automator UI

Lo strumento uiautomatorviewer offre una pratica GUI per scansionare e analizzare i componenti dell'interfaccia utente attualmente visualizzati su un dispositivo Android. Puoi utilizzare UI Automator per ispezionare la gerarchia del layout e visualizzare le proprietà dei componenti dell'interfaccia utente visibili in primo piano del dispositivo. Queste informazioni consentono di creare test più granulari, ad esempio creando un selettore di UI che corrisponda a una specifica proprietà visibile. Lo strumento si trova nella directory tools dell'SDK Android.

Nei test di accessibilità, questo strumento è utile per eseguire il debug dei problemi rilevati utilizzando altri metodi di test. Ad esempio, se i test manuali rivelano che una vista non ha il testo pronunciabile che richiede o che una vista è attiva quando non deve, puoi utilizzare lo strumento per individuare l'origine del problema.

Per saperne di più su UI Automator Viewer, consulta Scrivere test automatici con UI Automator.

Pelucchi

Android Studio mostra avvisi lint per vari problemi di accessibilità e fornisce link alle posizioni pertinenti nel codice sorgente. Nell'esempio seguente, a un'immagine manca un attributo contentDescription. La mancanza della descrizione dei contenuti genera il seguente messaggio:

[Accessibility] Missing 'contentDescription' attribute on image

La figura 3 mostra un esempio di come viene visualizzato questo messaggio in Android Studio:

Un'immagine che mostra Android Studio che segnala una descrizione dei contenuti mancante in alcune immagini.
Figura 3. Messaggio in Android Studio che mostra l'attributo contentDescription mancante.

Test automatici

La piattaforma Android supporta diversi framework di test, ad esempio Espresso, che consente di creare ed eseguire test automatici per valutare l'accessibilità della tua app.

espresso

Espresso è una libreria di test Android progettata per rendere i test dell'interfaccia utente facili e veloci. Ti consente di interagire con i componenti dell'interfaccia utente durante il test nella tua app e dichiarare che si verificano determinati comportamenti o che sono soddisfatte determinate condizioni.

Per una panoramica video sui test di accessibilità con Espresso, guarda il seguente video dal minuto 31:54 al minuto 34:19: Inclusive design and testing: Making your app more access - Google I/O 2016.

Questa sezione descrive come eseguire i controlli di accessibilità utilizzando Espresso.

Abilita i controlli

Puoi attivare e configurare i test di accessibilità utilizzando la classe AccessibilityChecks:

Kotlin

import androidx.test.espresso.accessibility.AccessibilityChecks

@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
    init {
        AccessibilityChecks.enable()
    }
}

Java

import androidx.test.espresso.accessibility.AccessibilityChecks;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
    @BeforeClass
    public void enableAccessibilityChecks() {
        AccessibilityChecks.enable();
    }
}

Per impostazione predefinita, i controlli vengono eseguiti quando esegui un'azione di visualizzazione definita in ViewActions. Ogni controllo include la vista in cui viene eseguita l'azione e tutte le viste discendenti. Puoi valutare l'intera gerarchia di visualizzazioni di una schermata durante ogni controllo passando true a setRunChecksFromRootView(), come mostrato nel seguente snippet di codice:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Elimina sottoinsiemi di risultati

Dopo che Espresso ha eseguito i controlli di accessibilità sulla tua app, potresti trovare diverse opportunità per migliorare l'accessibilità della tua app che non puoi risolvere immediatamente. Per evitare che i test del Espresso non vadano a buon fine a causa di questi risultati, puoi ignorarli temporaneamente. Il framework di test di accessibilità (ATF) fornisce questa funzionalità utilizzando il metodo setSuppressingResultMatcher(), che indica a Espresso di eliminare tutti i risultati che soddisfano l'espressione di corrispondenza specificata.

Quando apporti modifiche alla tua app che riguardano un aspetto dell'accessibilità, è vantaggioso per Espresso mostrare risultati per il maggior numero possibile di altri aspetti dell'accessibilità. Per questo motivo, è preferibile eliminare solo le opportunità di miglioramento specifiche e note.

Quando elimini temporaneamente i risultati dei test di accessibilità che prevedi di risolvere in seguito, è importante non eliminare accidentalmente risultati simili. Per questo motivo, utilizza i matcher con ambito restrittivo. Per farlo, scegli un matcher in modo che Espresso sopprima un determinato risultato solo se soddisfa ciascuno dei seguenti controlli di accessibilità:

  1. Controlli di accessibilità di un certo tipo, ad esempio quelli che verificano le dimensioni dei touch target.
  2. Controlli di accessibilità che valutano un particolare elemento dell'interfaccia utente, come un pulsante.

Il ATF definisce diversi matcher per aiutarti a definire i risultati da mostrare nei test Espresso. Il seguente esempio elimina i risultati dei controlli relativi al contrasto di colore di un singolo elemento TextView. L'ID dell'elemento è countTV.

Kotlin

AccessibilityChecks.enable().apply {
        setSuppressingResultMatcher(
                allOf(
                    matchesCheck(TextContrastCheck::class.java),
                    matchesViews(withId(R.id.countTV))
                )
        )
}

Java

AccessibilityValidator myChecksValidator =
    AccessibilityChecks.enable()
        .setSuppressingResultMatcher(
            allOf(
                matchesCheck(TextContrastCheck.class),
                matchesViews(withId(R.id.countTV))));

Test con gli utenti

Insieme agli altri metodi di test illustrati in questa guida, i test sugli utenti possono fornire informazioni specifiche e preziose sull'usabilità della tua app.

Per trovare gli utenti che possono testare la tua app, utilizza metodi come i seguenti:

  1. Contatta organizzazioni, college o università locali che offrono formazione per persone con disabilità.
  2. Chiedi alla tua rete sociale. Ci possono essere persone con disabilità che sono disposte ad aiutare.
  3. Chiedi a un servizio di test degli utenti, come usertesting.com, se può testare la tua app e includere utenti con disabilità.
  4. Partecipa a un forum sull'accessibilità, ad esempio Accessibile, e chiedi a volontari di provare la tua app.

Per altri suggerimenti, guarda la sezione dedicata ai test degli utenti del seguente video, dal minuto 31:10 al minuto 44:51: Dietro le quinte: Novità nell'accessibilità Android - Google I/O 2016.