Test di tecnologie per la disabilità

Questo modulo è incentrato sull'utilizzo di tecnologie per la disabilità (TA) per i test di accessibilità. Una persona con disabilità può utilizzare le tecnologie assistive per aumentare, mantenere o migliorare le capacità di svolgere un'attività.

Nel mondo digitale, le tecnologie assistive possono essere:

  • Tecnologia assente o di base: bacchette per la testa e la bocca, ingranditori portatili, dispositivi con pulsanti grandi
  • Tecnologia avanzata: dispositivi ad attivazione vocale, dispositivi di tracciamento oculare, tastiere e mouse adattivi
  • Hardware: pulsanti di commutazione, tastiere ergonomiche, dispositivo braille con aggiornamento automatico
  • Software: programmi di sintesi vocale, sottotitoli in tempo reale, screen reader

Ti consigliamo di utilizzare più tipi di AT nel tuo flusso di lavoro di test complessivo.

Nozioni di base sui test con screen reader

In questo modulo ci concentriamo su una delle tecnologie assistive digitali più diffuse: gli screen reader. Uno screen reader è un software che legge il codice sottostante di un sito web o di un'app. Quindi, converte queste informazioni in output vocale o braille per l'utente.

Gli screen reader sono essenziali per le persone cieche e sordo-cieche, ma possono essere utili anche per le persone con problemi di vista, disturbi della lettura e disabilità cognitive.

Compatibilità del browser

Sono disponibili diverse opzioni di screen reader. Gli screen reader più diffusi sono JAWS, NVDA e VoiceOver per computer e VoiceOver e Talkback per dispositivi mobili.

A seconda del sistema operativo (OS), del browser preferito e del dispositivo che utilizzi, uno screen reader potrebbe distinguersi come l'opzione migliore. La maggior parte degli screen reader sono progettati per hardware e browser web specifici. Quando utilizzi un lettore di schermo con un browser per cui non è stato calibrato, potresti riscontrare più "bug" o comportamenti imprevisti. Gli screen reader funzionano meglio se utilizzati nelle seguenti combinazioni.

Screen reader Sistema operativo Compatibilità del browser
Job Access With Speech (JAWS) Windows Chrome, Firefox, Edge
Non-Visual Desktop Access (NVDA) Windows Chrome e Firefox
Narratore Windows Edge
VoiceOver macOS Safari
Orca Linux Firefox
TalkBack Android Chrome e Firefox
VoiceOver (per dispositivi mobili) iOS Safari
ChromeVox ChromeOS Chrome

Comandi dello screen reader

Una volta configurato correttamente il software di screen reader per il computer o il dispositivo mobile, consulta la documentazione dello screen reader (collegata nella tabella precedente) ed esegui alcuni comandi essenziali dello screen reader per familiarizzare con la tecnologia. Se hai già utilizzato uno screen reader, ti consigliamo di provarne uno nuovo.

Quando utilizzi uno screen reader per i test di accessibilità, il tuo obiettivo è rilevare problemi nel codice che interferiscono con l'utilizzo del tuo sito web o della tua app, non emulare l'esperienza di un utente di screen reader. Pertanto, con un po' di conoscenze di base, alcuni comandi dello screen reader e un po' (o molto) di pratica, puoi fare molto.

Se vuoi comprendere meglio l'esperienza utente delle persone che utilizzano screen reader e altre tecnologie assistive, puoi collaborare con molte organizzazioni e privati per ottenere queste preziose informazioni. Ricorda che l'utilizzo di un AT per testare il codice in base a un insieme di regole e chiedere agli utenti informazioni sulla loro esperienza spesso produce risultati diversi. Entrambi sono aspetti importanti per creare prodotti completamente inclusivi.

Comandi principali per gli screen reader per computer

Elemento NVDA (Windows) VoiceOver (macOS)
Tasti di comando generali Inserisci Controllo+Opzione
Interrompi audio Controllo Controllo
Leggi successivo/precedente o Controllo+Opzione+ o
Inizia a leggere Inserisci Ctrl+Opzione+A
Elenco elementi/Rotore NVDA + F7 Control+Opzione+U
Punti di riferimento D Control+Opzione+U
Headings H Controllo+Opzione+Comando+H
Link K Controllo+Opzione+Comando+L
Controlli modulo V Controllo+Opzione+Comando+J
Tabelle T Controllo+OpzioneComando+T
All'interno delle tabelle Inserisci Alt + Controllo+Opzione+

Comandi principali per gli screen reader mobile

Elemento TalkBack (Android) VoiceOver (iOS)
Esplora Trascina un dito sullo schermo. Trascina un dito sullo schermo.
Selezionare o attivare Tocca due volte Tocca due volte
Spostare verso l'alto o verso il basso Scorri verso l'alto o il basso con due dita Scorri verso l'alto o verso il basso con tre dita
Cambiare pagina Scorri verso sinistra o destra con due dita Scorri verso sinistra o destra con tre dita
Successivo/Precedente Scorri verso sinistra o destra con un dito Scorri verso sinistra o destra con un dito

Demo di test dello screen reader

Per testare la demo, abbiamo utilizzato Safari su un laptop con macOS e abbiamo acquisito l'audio. Puoi seguire questi passaggi utilizzando qualsiasi screen reader, ma il modo in cui potresti riscontrare alcuni errori potrebbe essere diverso da quello descritto in questo modulo.

Passaggio 1

Visita la CodePen aggiornata, a cui sono stati applicati tutti gli aggiornamenti di accessibilità automatici e manuali.

Visualizzalo in modalità di debug per procedere con i test successivi. Questo è importante perché rimuove il <iframe> che circonda la pagina web demo, che potrebbe interferire con alcuni strumenti di test. Scopri di più sulla modalità di debug di CodePen.

Passaggio 2

Attiva lo screen reader che preferisci e vai alla pagina demo. Ti consigliamo di scorrere l'intera pagina dall'alto verso il basso prima di concentrarti su problemi specifici.

Abbiamo registrato il nostro screen reader per ogni problema, prima e dopo l'applicazione delle correzioni alla demo. Ti invitiamo a provare la demo con il tuo screen reader.

Problema 1: struttura dei contenuti

Titoli e punti di riferimento sono uno dei modi principali in cui le persone navigano utilizzando gli screen reader. Se questi elementi non sono presenti, l'utente di screen reader deve leggere l'intera pagina per comprendere il contesto. L'operazione può richiedere molto tempo e causare frustrazione.

Se provi a navigare in base a uno dei due elementi nella demo, scoprirai rapidamente che non esistono.

  • Esempio di punto di riferimento: <div class="main">...</div>
  • Esempio di intestazione: <p class="h1">Join the Club</p>

Se hai aggiornato tutto correttamente, non dovrebbero esserci modifiche visive, ma l'esperienza con lo screen reader sarà notevolmente migliorata.

Ascolta lo screen reader che naviga in questo problema.
Risolviamo il problema.

Alcuni elementi inaccessibili non possono essere osservati semplicemente guardando il sito. Potresti ricordare l'importanza dei livelli di intestazione e dell'HTML semantico dal modulo Struttura dei contenuti. Un contenuto potrebbe sembrare un'intestazione, ma in realtà è racchiuso in un <div> stilizzato.

Per risolvere il problema relativo alle intestazioni e ai punti di riferimento, devi prima identificare ogni elemento che deve essere contrassegnato come tale e aggiornare l'HTML correlato. Assicurati di aggiornare anche il CSS correlato.

  • Esempio di punto di riferimento: <main>...</main>
  • Esempio di intestazione: <h1>Join the Club</h1>

Se hai aggiornato tutto correttamente, non dovrebbero esserci modifiche visive, ma l'esperienza con lo screen reader sarà notevolmente migliorata.

Ora che abbiamo corretto la struttura dei contenuti, ascolta di nuovo lo screen reader navigare nella demo.

È importante fornire agli utenti di screen reader informazioni sullo scopo di un link e se il link li reindirizza a una nuova posizione al di fuori del sito web o dell'app.

Nella nostra demo, abbiamo corretto la maggior parte dei link quando abbiamo aggiornato il testo alternativo dell'immagine attiva, ma ci sono alcuni link aggiuntivi sulle varie malattie rare che potrebbero trarre vantaggio da un contesto aggiuntivo, soprattutto perché reindirizzano a una nuova posizione.

<a href="https://rarediseases.org/rare-diseases/maple-syrup-urine-disease">
  Maple syrup urine disease (MSUD)
</a>
Ascolta lo screen reader che naviga in questo problema.
Risolviamo il problema.

Per risolvere il problema per gli utenti di screen reader, aggiorniamo il codice per aggiungere ulteriori informazioni, senza influire sull'elemento visivo. In alternativa, per aiutare un numero ancora maggiore di persone, come quelle con disturbi cognitivi e di lettura, potremmo scegliere di aggiungere un testo visivo aggiuntivo.

Esistono molti pattern diversi che possiamo prendere in considerazione per aggiungere informazioni aggiuntive sui link. In base al nostro ambiente che supporta una sola lingua, un'etichetta ARIA è un'opzione semplice in questa situazione. Potresti notare che l'etichetta ARIA sostituisce il testo del link originale, quindi assicurati di includere queste informazioni nell'aggiornamento.

<a href="https://rarediseases.org/rare-diseases/maple-syrup-urine-disease"
  aria-label="Learn more about Maple syrup urine disease on the Rare Diseases website.">
  Maple syrup urine disease (MSUD)
</a>
Ora che abbiamo corretto il contesto del link, ascolta lo screen reader navigare di nuovo nella demo.

Problema 3: immagine decorativa

Nel nostro modulo di test automatizzato, Lighthouse non è riuscito a rilevare l'SVG incorporato che funge da immagine di copertina principale nella nostra pagina demo. Tuttavia, lo screen reader lo trova e lo annuncia come "immagine" senza ulteriori informazioni. Questo vale anche senza aggiungere esplicitamente l'attributo role="img" all'SVG.

<div class="section-right">
  <svg>...</svg>
</div>
Ascolta lo screen reader che naviga in questo problema.
Risolviamo il problema.

Per risolvere il problema, dobbiamo prima decidere se l'immagine è informativa o decorativa. In base a questa decisione, dobbiamo aggiungere il testo alternativo dell'immagine appropriato (immagine informativa) o nascondere l'immagine agli utenti di screen reader (decorativa).

Abbiamo valutato i vantaggi e gli svantaggi del modo migliore per classificare l'immagine e abbiamo deciso che è decorativa, il che significa che vogliamo aggiungere o modificare il codice per nascondere l'immagine. Un metodo rapido consiste nell'aggiungere un role="presentation" direttamente all'immagine SVG. In questo modo, lo screen reader salta l'immagine e non la elenca nel gruppo di immagini.

<div class="section-right">
  <svg role="presentation">...</svg>
</div>
Ora che abbiamo corretto l'immagine decorativa, ascolta lo screen reader navigare nella demo.

Problema 4: decorazione dei punti elenco

Potresti aver notato che lo screen reader legge l'immagine dell'elenco puntato CSS nella sezione dedicata alle malattie rare. Sebbene questa immagine non sia la stessa di quella di cui abbiamo parlato nel modulo Immagini, deve comunque essere modificata perché interrompe il flusso dei contenuti e potrebbe distrarre o confondere un utente di screen reader.

<p class="bullet">...</p>
Ascolta lo screen reader che naviga in questo problema.
Risolviamo il problema.

Come nell'esempio di immagine decorativa discusso in precedenza, puoi aggiungere un role="presentation" all'HTML con la classe elenco puntato per nasconderlo allo screen reader. Allo stesso modo, andrebbe bene un role="none". Assicurati solo di non utilizzare aria-hidden: true, altrimenti nasconderai tutte le informazioni del paragrafo agli utenti di screen reader.

<p class="bullet" role="none">...</p>

Problema 5: campo modulo

Nel modulo Moduli abbiamo appreso che tutti i campi del modulo devono avere anche un'etichetta visiva e programmatica. Questa etichetta deve rimanere sempre visibile.

Nella nostra demo mancano sia un'etichetta visiva che una programmatica nel campo email di iscrizione alla newsletter. Esiste un elemento segnaposto di testo, ma questo non sostituisce l'etichetta perché non è visivamente persistente e non è completamente compatibile con tutti gli screen reader.

<form>
  <div class="form-group">
    <input type="email" placeholder="Enter your e-mail address" required>
    <button type="submit">Subscribe</button>
  </div>
</form>
Ascolta lo screen reader che naviga in questo problema.
Risolviamo il problema.

Per risolvere il problema, sostituisci il segnaposto di testo con un elemento etichetta simile. L'elemento etichetta è collegato in modo programmatico al campo del modulo e il movimento è stato aggiunto con JavaScript per mantenere l'etichetta visibile anche quando vengono aggiunti contenuti al campo.

<form>
  <div class="form-group">
    <input type="email" required id="youremail" name="youremail" type="text">
    <label for="youremail">Enter your e-mail address</label>
    <button type="submit" aria-label="Subscribe to our newsletter">Subscribe</button>
  </div>
</form>
Ora che abbiamo corretto il modulo, ascolta lo screen reader navigare nella demo.

Conclusione

Complimenti! Hai completato tutti i test per questa demo. Puoi esaminare tutte queste modifiche nel Codepen aggiornato per questa demo.

Ora puoi utilizzare ciò che hai imparato per esaminare l'accessibilità dei tuoi siti web e delle tue app.

L'obiettivo di tutti questi test di accessibilità è risolvere il maggior numero possibile di problemi che un utente potrebbe potenzialmente incontrare. Tuttavia, ciò non significa che il tuo sito web o la tua app siano perfettamente accessibili una volta terminato. Per ottenere i risultati migliori, progetta il tuo sito web o la tua app con l'accessibilità durante tutto il processo e incorpora questi test con gli altri test pre-lancio.