Accessibilità

Consentire alle tue pagine di rispondere a schermi di dimensioni diverse è solo un modo per assicurarti che il tuo sito web sia accessibile al maggior numero possibile di persone. Considera alcuni di questi altri fattori da tenere presenti.

Deficit della visione dei colori

Persone diverse percepiscono il colore in modo diverso. Le persone affette da protanopia non percepiscono il rosso come un colore distinto. Con deuteranopia, manca il verde. Per le persone affette da tritanopia, è blu.

Alcuni strumenti possono darti un'idea generale dell'aspetto delle tue combinazioni di colori alle persone con diversi tipi di visione dei colori.

La scheda Accessibilità di Firefox include un menu a discesa Simula con un elenco di opzioni.

Protanopia simulata (no rosso). Tritanopia simulata (no blu)
Visualizzazione di un sito web con simulazioni di diversi tipi di visione dei colori.

In Chrome DevTools, la scheda Rendering ti consente di emulare carenze di visione.

Si tratta di strumenti specifici del browser. È anche possibile emulare diversi tipi di visione artificiale a livello di sistema operativo.

Su un Mac, vai a:

  1. Preferenze di sistema
  2. Accessibilità
  3. Display
  4. Filtri cromatici
  5. Attiva i filtri di colore

Seleziona una delle opzioni.

Opzioni del filtro di colore nelle preferenze di sistema.

In generale, non è consigliabile fare affidamento esclusivamente sul colore per distinguere i diversi elementi. Ad esempio, puoi e devi rendere i link di un colore diverso rispetto al testo circostante. Tuttavia, ti consigliamo di applicare anche un altro indicatore di stile, come la sottolineatura o il grassetto dei link.

Cosa non fare
a {
  color: red;
}
Cosa fare
a {
  color: red;
  font-weight: bold;
}

Contrasto di colore

Alcune combinazioni di colori possono causare problemi. Se il contrasto tra il colore in primo piano e il colore di sfondo non è sufficiente, il testo diventa difficile da leggere. Un contrasto cromatico scarso è uno dei problemi di accessibilità più comuni sul Web, ma per fortuna è uno che puoi cogliere nelle prime fasi del processo di progettazione.

Ecco alcuni strumenti che puoi utilizzare per verificare il rapporto di contrasto dei colori di testo e di sfondo:

Ti consigliamo di dichiarare sempre color e background-color insieme nel tuo CSS. Non dare per scontato che il colore di sfondo sia il colore predefinito del browser. Le persone possono e cambiano i colori utilizzati dal browser.

Cosa non fare
body {
  color: black;
}
Cosa fare
body {
  color: black;
  background-color: white;
}

Alto contrasto

Alcune persone impostano i loro sistemi operativi in modo da utilizzare una modalità ad alto contrasto. Puoi provarlo sul tuo sistema operativo.

Su un Mac, vai a:

  1. Preferenze di sistema
  2. Accessibilità
  3. Display

Seleziona l'opzione per aumentare il contrasto.

Aumenta il contrasto nelle preferenze di sistema.

È disponibile una funzionalità multimediale che rileva se qualcuno ha attivato la modalità ad alto contrasto. È possibile eseguire query sulla funzionalità dei contenuti multimediali prefers-contrast per tre valori: no-preference, less e more. Puoi utilizzare queste informazioni per regolare la tavolozza dei colori del tuo sito.

Supporto dei browser

  • 96
  • 96
  • 101
  • 14.1

Fonte

Gli utenti possono anche impostare una preferenza nel loro sistema operativo per utilizzare i colori invertiti.

Su un Mac, vai a:

  1. Preferenze di sistema
  2. Accessibilità
  3. Display

Seleziona l'opzione per invertire i colori.

Inverti i colori nelle preferenze di sistema.

Assicurati che il tuo sito web sia comunque adatto a chi naviga con colori invertiti. Fai attenzione alle ombreggiature dei riquadri, che potrebbero dover essere regolate quando i colori vengono invertiti.

Dimensione carattere

Il colore non è l'unica cosa che le persone possono modificare nel proprio browser, ma possono anche regolare le dimensioni predefinite dei caratteri. Con il declino della loro visione, potrebbero modificare la dimensione predefinita dei caratteri nei loro browser o sistemi operativi, aumentando le cifre con il passare degli anni.

Puoi rispondere a queste impostazioni utilizzando dimensioni di carattere relative. Evita di utilizzare unità come px. Utilizza invece unità relative, come rem o ch.

Prova a modificare l'impostazione predefinita per le dimensioni del testo nel browser. Puoi farlo nelle preferenze del browser. In alternativa, puoi farlo mentre visiti una pagina web aumentando lo zoom. Il tuo sito web continua a funzionare anche se la dimensione predefinita dei caratteri viene aumentata del 200%? E il 400%?

Un utente che visita il tuo sito web da un computer desktop con dimensioni dei caratteri aumentate fino al 400% dovrebbe ottenere lo stesso layout di un utente che visita il tuo sito da un dispositivo con uno schermo piccolo.

Clearleft punto com.
Lo stesso sito web visualizzato su un computer e su un dispositivo mobile. La dimensione dei caratteri del browser desktop è stata aumentata al 400%.

Navigazione con tastiera

Non tutti utilizzano un mouse o un trackpad per navigare nelle pagine web. La tastiera è un altro modo per spostarsi in una pagina, con il tasto tab particolarmente utile. Gli utenti possono passare rapidamente da un link o un campo di modulo a quello successivo.

I link definiti con le pseudo-classi :hover e :focus mostreranno questi stili a prescindere dall'utilizzo di un mouse, di un trackpad o di una tastiera. Utilizza la pseudo-classe :focus-visible per definire lo stile dei link solo per la navigazione da tastiera. Puoi rendere questi stili ancora più evidenti.

a:focus,
a:hover {
  outline: 1px dotted;
}
a:focus-visible {
  outline: 3px solid;
}

Poiché l'utente seleziona le schede da link a link o da campo modulo a campo modulo, questi elementi verranno evidenziati nell'ordine in cui appaiono nella struttura del documento. Anche questo dovrebbe corrispondere all'ordine visivo.

Fai attenzione alla proprietà order CSS. Puoi utilizzarla in combinazione con flexbox e griglia per posizionare gli elementi in un ordine visivo diverso rispetto al loro ordine nel codice HTML. Si tratta di una funzionalità potente, ma potrebbe confondere le persone che navigano con una tastiera.

Testa le tue pagine web usando il tasto tab sulla tastiera per assicurarti che l'ordine di tabulazione sia corretto.

Nel riquadro Accessibilità degli strumenti per sviluppatori del browser Firefox è presente l'opzione Mostra l'ordine delle schede. Se attivi questa opzione, i numeri verranno sovrapposti a ogni elemento attivabile.

Visualizzazione dell'ordine delle schede utilizzando la scheda Accessibilità di Firefox.

Movimenti ridotti

L'animazione e il movimento sono ottimi modi per dare vita al web design. Tuttavia, per alcune persone questi movimenti possono disorientare molto e persino causare nausea.

Esiste una query di funzionalità che comunica se l'utente preferisce meno movimento. Si chiama prefers-reduced-motion. Includilo ogni volta che utilizzi transizioni o animazioni CSS.

Supporto dei browser

  • 74
  • 79
  • 63
  • 10.1

Fonte

a:hover {
  transform: scale(150%);
}
@media (prefers-reduced-motion: no-preference) {
  a {
    transition-duration: 0.4s;
    transition-property: transform;
  }
}

La query supporti prefers-reduced-motion è specifica per il movimento sullo schermo. Se utilizzi transizioni sul colore di un elemento che non dovrebbe essere influenzato da prefers-reduced-motion. Inoltre, è possibile eseguire la transizione dell'opacità e della dissolvenza incrociata. La riduzione del movimento non deve necessariamente significare nessuna animazione.

Voce

Le persone utilizzano il Web in modo diverso. Non tutti vedono il tuo sito web su uno schermo. Le tecnologie per la disabilità come gli screen reader convertono le informazioni in uno schermo in parole pronunciate.

Gli screen reader funzionano con tutti i tipi di applicazioni, inclusi i browser web. Affinché un browser web possa comunicare in modo utile con uno screen reader, la pagina web a cui si accede attualmente deve contenere informazioni semantiche utili.

In precedenza hai imparato in che modo i pulsanti delle sole icone devono includere un attributo per specificarne la finalità per gli utenti non vedenti. Questo è solo un esempio dell'importanza di un codice HTML di base efficace.

Headings

Usa intestazioni come <h1>, <h2>, <h3> ecc. in modo sensato. Gli screen reader utilizzano questi titoli per generare una struttura del documento in cui è possibile navigare con le scorciatoie da tastiera.

Cosa non fare
<div class="heading-main">Welcome to my page</div>

<div class="heading-secondary">About me</div>

<div class="heading-tertiary">My childhood</div>

<div class="heading-secondary">About this website</div>

<div class="heading-tertiary">How this site was built</div>
Cosa fare
<h1>Welcome to my page</h1>
  <h2>About me</h2>
    <h3>My childhood</h3>
  <h2>About this website</h2>
    <h3>How this site was built</h3>

Struttura

Utilizza gli elementi dei punti di riferimento come <main>, <nav>, <aside>, <header> e <footer> per strutturare i contenuti della pagina. Gli utenti di screen reader possono quindi passare direttamente a questi punti di riferimento.

Cosa non fare
<div class="header">...</div>

<div class="navigation">...</div>

<div class="maincontent">...</div>

<div class="sidebar">...</div>

<div class="footer">...</div>
Cosa fare
<header>...</header>
<nav>...</nav>
<main>...</main>
<aside>...</aside>
<footer>...</footer>

Forms

Assicurati che a ogni campo del modulo sia associato un elemento <label>. Puoi associare un'etichetta a un campo del modulo utilizzando l'attributo for nell'elemento <label> e l'attributo id corrispondente nel campo modulo.

Cosa non fare
<span class="formlabel">Your name</span>
<input type="text">
Cosa fare
<label for="name">Your name</label>
<input id="name" type="text">

Immagini

Fornisci sempre una descrizione testuale delle immagini utilizzando l'attributo alt.

Cosa non fare
<img src="dog.jpg">
Cosa fare
<img src="dog.jpg" alt="A golden retriever sitting on the grass looking happy.">

Se l'immagine è puramente rappresentativa, devi comunque includere l'attributo alt, ma puoi assegnare un valore vuoto.

Cosa non fare
<img src="texture.png">
Cosa fare
<img src="texture.png" alt="">

Jake Archibald ha pubblicato un articolo su come scrivere un ottimo testo in alt.

Prova a fornire un testo descrittivo all'interno dei link. Evita di utilizzare frasi come "fai clic qui" o "altro".

Cosa non fare
<p>To find out more about our latest offers, <a href="/offers.html">click here</a>.</p>
Cosa fare
<p>Find out more about <a href="/offers.html"> our latest offers</a>.</p>

ARIA

L'utilizzo di un HTML semantico ragionevole renderà le tue pagine web più accessibili alle tecnologie per la disabilità come gli screen reader e ad altri output audio come gli assistenti vocali.

Alcuni widget dell'interfaccia che non hanno un elemento HTML corrispondente: caroselli, schede, accordion e così via. Questi elementi devono essere creati da zero utilizzando una combinazione di HTML, CSS, JavaScript e ARIA.

ARIA è l'acronimo di Accessible Rich Internet Applications. Il suo vocabolario consente di fornire informazioni semantiche quando non è disponibile un elemento HTML adatto.

Se devi creare elementi dell'interfaccia non ancora disponibili come elementi HTML, acquisisci dimestichezza con ARIA.

Più funzionalità su misura aggiungi con JavaScript, più dovrai capire ARIA. Se utilizzi gli elementi HTML nativi, potrebbe non essere necessario alcun ARIA.

Se è possibile, esegui dei test con utenti reali di screen reader. In questo modo, non solo potrai capire meglio come gli utenti navigano sul web, ma ti aiuterai a non basarti su congetture per la progettazione tenendo a mente l'accessibilità.

Eseguire test con persone reali è un ottimo modo per esporre eventuali ipotesi. Nel prossimo modulo scoprirai i diversi modi in cui gli utenti interagiscono con i tuoi siti web, un'altra area in cui è fin troppo facile fare ipotesi.

Verifica la tua comprensione

Verifica le tue conoscenze dell'accessibilità

Con i CSS, uno sviluppatore può sovrascrivere una preferenza dell'utente come la dimensione del carattere, nel peggiore dei casi?

Vero
È sufficiente usare body { font-size: 12px; }.
falso
Le preferenze degli utenti hanno una forte influenza, ma non danno il pieno controllo.

Per evitare di sovrascrivere la preferenza di dimensione del carattere di un utente, utilizza?

Unità assolute come px.
Quando vengono utilizzati, non prendono in considerazione la preferenza relativa alle dimensioni del carattere dell'utente.
Unità relative come rem.
che consentono agli sviluppatori di creare lunghezze che includono le preferenze relative alle dimensioni dei caratteri dell'utente.

Chiunque nel mondo utilizza un mouse.

Vero
Alcuni utilizzano la voce, una tastiera, un gamepad, uno screen reader o altri modi per interagire.
falso
Esistono molte alternative al mouse più diffuso.

Che cosa fa un'immagine con un attributo ALT vuoto?

Il browser li aggiungerà automaticamente per l'utente.
Non è una funzionalità di alcun browser.
L'immagine viene considerata come una presentazione.
Si presume che l'immagine non sia importante ai fini della fruizione dei contenuti.
Legge la "stringa vuota" a uno screen reader
Non è questo che succede.
Nothing
Sicuramente succede qualcosa.