Advertisement
  1. Web Design
  2. Accessibility

Suggerimenti sull'accessibilità per gli sviluppatori di temi per WordPress

Scroll to top
Read Time: 11 min

Italian (Italiano) translation by Cinzia Sgariglia (you can also view the original English article)

In un precedente articolo abbiamo parlato perché l'accessibilità è importante, in termini di business, SEO, usabilità e anche per la legge. In questo articolo spiegherò come creare temi WordPress accessibili, anche se le stesse idee si applicano a qualsiasi piattaforma.

Una panoramica sull'accessibilità e il Web Design inclusivo

Non c'è modo di coprire tutte le possibili buone pratiche in questo articolo, ma le basi restano vere per ogni sito Web. Userò un paio di risorse come la spina dorsale di questo articolo:

Copriremo i seguenti suggerimenti:

  1. Utilizzare HTML semantico
  2. Struttura con gli elementi di struttura HTML5 
  3. Rendere la gerarchia delle intestazioni chiara
  4. Navigare la pagina utilizzando tecnologia assistiva
  5. Considerare la navigazione da tastiera e gli stili di focalizzazione
  6. Controllare il contrasto di colore
  7. Ricordare gli Skip Link
  8. Evitare collegamenti testuali ripetitivi

1. Utilizzare HTML semantico

Non posso sottolineare abbastanza l'importanza dell'HTML semantico: è il fondamento del vostro sito Web accessibile. Léonie Watson spiega perfettamente quello che significa semantica  nel suo articolo capire la semantica:

"La semantica HTML è quindi importante in due modi: otteniamo una comprensione coerente della struttura dei contenuti e del comportamento nativo, e otteniamo una comprensione comune del significato e dello scopo del contenuto. La cosa migliore di tutti, è che otteniamo queste cose gratuitamente ogni volta che usiamo HTML come auspicato".

Quando scriviamo gli elementi HTML non dovremmo solo pensare a come sono progettati, o come appaiono. Dovremmo anche pensare a come funzionano...

  • ... con la tastiera.
  • ... quando cliccati o inseriti in schede.
  • .. con l'API di accessibilità e le tecnologie assistive (AT) come
    - i lettori di schermo
    - i software di ingrandimento dello schermo
    - i software di riconoscimento vocale
    - i caschetti con puntatore stilo
  • ... con tutti i diversi browser e dispositivi.

Un esempio molto comune è l'utilizzo di <a>, <button>, e <div>. Useremo questi per illustrare quello che intendo.

Quando utilizzare <a>

Usate <a> (un tag di ancoraggio) quando create un collegamento a un'altra pagina, file, posta elettronica o un ancoraggio sulla stessa pagina.

  • Un buon esempio: <a href="https://developer.mozilla.org/">Mozilla</a>
  • Un buon esempio: <a href="#back-to-top">Torna a inizio pagina</a>.
  • Un cattivo esempio: <a href="#" class="menu-toggle-button">Menu</a>. Questo dovrebbe essere <button>.

Nota: dietro le quinte l'API dell'accessibilità fornisce informazioni per le tecnologie assistive su ogni elemento nome, ruolo e stato.

Ecco un link di esempio, costruire un Web Inclusivo: perché questioni di accessibilità sono importanti, con come lo vede un visualizzatore di accessibilità:

Accessibility Viewer displays link name role state and other informationAccessibility Viewer displays link name role state and other informationAccessibility Viewer displays link name role state and other information
Il Visualizzatore di accessibilità visualizza il nome del link, il ruolo, lo stato e altre informazioni

In pratica questo significa che i lettori di schermo e altri AT riconoscono il punto di ancoraggio e possono annunciare il ruolo e il nome dell'elemento. Ad esempio: "Link, costruire un Web Inclusivo: perché è importante l'accessibilità".

Inoltre possono navigare nella pagina usando solo i link:

List of page links in the VoiceoverList of page links in the VoiceoverList of page links in the Voiceover
Elenco di collegamenti alle pagine nel Voiceover

Quando utilizzare <button>

Utilizzare <button> quando è necessario attivare un'azione, come l'apertura di un menu. Questo video di Rob Dodson spiega perché questa situazione richiede <button> invece di <div>.

Per riassumere, l'elemento <button> ha già incorporati tutti i vantaggi seguenti:

  • Il focus della tastiera nativo.
  • Ruolo nativo di button, che aiuta gli utenti AT a capire che è un elemento interattivo.
  • Può essere innescato con Invio o Spazio senza aggiungere alcun JavaScript supplementare.
  • Può utilizzare l'attributo disabled, per quando il pulsante non dovrebbe essere più interattivo.

Suggerimento: In Chrome 64 c'è un riquadro Accessibilità che vi mostra la posizione di un elemento selezionato nell'albero dell'accessibilità, nonché i suoi attributi ARIA e le proprietà calcolate.

Accessibility pane in Chrome showing button element informationAccessibility pane in Chrome showing button element informationAccessibility pane in Chrome showing button element information
Il riquadro Accessibilità in Chrome che visualizza le informazioni dell'elemento pulsante

Quando utilizzare <div>

Usate <div> quando è necessario un elemento per scopi di stile. Naturalmente, prima controllate se ci sono elementi HTML nativi che lo farebbero meglio. Per esempio <article>, <nav>, <p>, <blockquote>, <figure>, <table>, o <ul>.

Leggete di più su Collegamenti, pulsanti, submit e div di Adrian Roselli.

Nella sezione successiva, daremo un sguardo agli elementi di struttura HTML5 e a cosa il markup semantico assomiglia.

2. Strutturare con gli elementi di struttura HTML5

Molti elementi di HTML5 definiscono ruoli di riferimento ARIA come impostazione predefinita. Questi identificano sezioni di una pagina e aiutano gli utenti AT a navigarli ognuno. Per questo motivo tutto il contenuto dovrebbe essere all'interno di elementi semanticamente significativi in modo che non sia perso da parte dell'utente.

Questi sono gli elementi di riferimento più comuni:

Elemento di HTML5
Ruolo di riferimento predefinito
<header>
banner
<nav>
navigazione
<main>
principale
<aside>
complementare
<footer>
Informazioni di contenuto

Nota: i browser meno recenti e le combinazioni AT non necessariamente riconoscono gli elementi HTML5 e li mappano per i ruoli di riferimento corretti. In questi casi è possibile aggiungere i ruoli manualmente come questo: <header role="banner">.

Per ulteriori informazioni controllate il markup di esempio sulla pagina del manuale di WordPress sui punti di riferimento ARIA e la pagina di esempi dei punti di riferimento ARIA.

3. Rendere la gerarchia delle intestazioni chiara

Avete letto un articolo molto lungo senza intestazioni? Vi è sembrato difficile da leggere? Per me sicuramente. Le intestazioni aiutano gli utenti ad analizzare e comprendere rapidamente il contenuto della pagina. Allo stesso tempo le intestazioni danno agli utenti AT un modo per navigare il contenuto e definire la struttura della pagina.

Gli approcci variano, ma la mia raccomandazione è la stessa di quella descritta nella struttura delle intestazioni nello sviluppo dei temi:

  • Utilizzare un solo unico H1 per pagina. Per la maggior parte dei temi, questo sarebbe il post, la pagina, o il titolo di archivio.
  • Utilizzare da H2 ad H6 per dividere le sezioni della pagina, come le aree dei widget.
  • Non saltare i livelli delle intestazioni perché che può essere fonte di confusione quando si naviga il contenuto utilizzando le intestazioni. Ciò significa che dopo arriva H2 c'è H3, non H4.

Nota: gli utenti possono rompere la gerarchia dell'intestazione quando immettono i propri contenuti utilizzando H1 o saltano i livelli delle intestazioni. Gli consiglio di orientarsi alla nostra documentazione su come utilizzare le intestazioni nel contenuto.

Utilizzo questi strumenti per il controllo della struttura delle intestazioni:

4. Navigare la pagina utilizzando la tecnologia assistiva

Finora abbiamo menzionato diversi modi per navigare la pagina: utilizzando collegamenti, intestazioni o punti di riferimento. E lo stesso vale per altri elementi HTML semantici come elenchi, tabelle o immagini.

Gli utenti di tecnologie assistive possono anche navigare utilizzando questi elementi. Ecco un breve video che illustra l'utilizzo del lettore di schermo Voiceover, qualcosa con cui sicuramente dovreste verificare il vostro tema:

Leggete di più sull'uso di Voiceover o date un'occhiata a questo articolo simile sull'uso di NVDA.

5. Considerare la navigazione da tastiera e gli stili di focus 

Regola numero uno: non rimuovere gli stili di contorno utilizzando: focus {outline: none;}!

Ci sono un sacco di utenti che dipendono dalla tastiera e non possono utilizzare un mouse. Per gli utenti di tastiera è fondamentale avere stili di fuoco visivo su tutti gli elementi interattivi: i collegamenti, i campi modulo, i pulsanti e così via. In altre parole, gli utenti devono essere in grado di visualizzare quali elementi interattivi hanno lo stato attivo corrente durante la navigazione della pagina. I controlli da tastiera più comuni per la navigazione sono Tab, Maiusc + Tab, Invio, Spazio e i tasti freccia.

Nota: gli stili di messa a fuoco predefiniti dal browser non sono sempre la soluzione più accessibile — gli stili di struttura personalizzati sono a volte meglio.

Nota inoltre: a volte gli stili di contorno non sono il migliore approccio di progettazione perché non rispettano il raggio di confine di un elemento. Una soluzione consiste nell'utilizzare invece box-shadow, ma... stili di messa a fuoco dovrebbero funzionare in tutti gli scenari, come nella modalità contrasto elevato di Windows che rimuove gli stili box-shadow.

Ecco un bel trucco che utilizza un contorno trasparente per la modalità contrasto elevato di Windows.

1
:focus {
2
   box-shadow: inset 0 0 0 1px #6c7781;
3
4
   /* Only visible in Windows High Contrast mode */
5
   outline: 2px solid transparent;
6
7
}

Potete leggere ulteriori informazioni su questo argomento su Gutenberg PR 5138 e Trac ticket 41286.

D'altra parte la navigazione da tastiera non è solo sugli stili di messa a fuoco. Tutte le azioni devono essere possibili anche con la tastiera.

Un esempio comune è quando un utente non può navigare nelle voci di sottomenu utilizzando il tasto tab o utilizzando i tasti freccia. Lo starter theme Underscores ha una soluzione JavaScript per questo: ogni volta che un link del menu ha il focus o è offuscato, imposta o rimuove la classe .focus dal link del menu. Vedete la funzione toggleFocus.

Un altro esempio è quando la navigazione agisce in modo analogo a una finestra di dialogo modale, come una navigazione a schermo intero. In questi casi è importante impostare correttamente lo stato attivo.

6. Controllare il contrasto dei colori

Vedo ancora molti progetti con basso contrasto. Questo può rende impossibile agli utenti daltonici, agli utenti con problemi di vista o agli utenti che utilizzano monitor di bassa qualità di leggere il contenuto.

Il contrasto tra i colori di sfondo e di primo piano dovrebbe avere un rapporto di contrasto di

Ci sono molti strumenti per controllare il contrasto di colore, come il correttore del rapporto di contrasto.

Troverete ulteriori informazioni in articoli come questo sull'uso dei colori e del contrasto di colore come requisito per temi pronti per l'accessibilità.

7. Ricordare gli Skip Link

Un link "passa al contenuto" permette un modo di saltare oltre tutti gli elementi supplementari prima del contenuto principale e andare dritti al contenuto. Forse vi starete chiedendo perché il riferimento <main> non è sufficiente poiché gli utenti AT possono navigare sul contenuto principale utilizzando i punti di riferimento? Infatti, il target principale degli skip link sono utenti di tastiere, che probabilmente non utilizzano dispositivi AT. Quindi non hanno scorciatoie a <main> o ad altri punti di riferimento.

In ogni caso, gli utenti AT ancora usano gli skip link secondo questo sondaggio sui lettori di schermo:

"È importante notare che mentre l'utilizzo è diminuito tra utenti di lettori di schermo,gli "skip" link ancora forniscono un notevole beneficio per gli altri utenti di tastiera".

Leggete di più su come utilizzare gli skip link nel manuale.

8. Evitare collegamenti testuali ripetitivi

Cercate di evitare collegamenti testuali ripetitivi come "Leggi tutto" o "Impara di più". Per gli utenti con lettori di schermo che navigano usando i collegamenti il risultato può apparire come questo:

List of read more links doesnt help navigatingList of read more links doesnt help navigatingList of read more links doesnt help navigating
Elenco di collegamenti leggi di più non aiutano la navigazione

Il tema Twenty Seventeen ha buoni esempi di come aggiungere il titolo del post nell'estratto:

1
/**

2
* Replaces "[...]" (appended to automatically generated excerpts) with ... and

3
* a 'Continue reading' link.

4
*

5
* @since Twenty Seventeen 1.0

6
*

7
* @param string $link Link to single post/page.

8
* @return string 'Continue reading' link prepended with an ellipsis.

9
*/
10
11
function twentyseventeen_excerpt_more( $link ) {
12
13
    if ( is_admin() ) {
14
        return $link;
15
    }
16
17
    $link = sprintf(
18
        '<p class="link-more"><a href="%1$s" class="more-link">%2$s</a></p>',
19
        esc_url( get_permalink( get_the_ID() ) ),
20
21
        /* translators: %s: Name of current post */
22
23
        sprintf( __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ), get_the_title( get_the_ID() ) )
24
    );
25
26
    return ' &hellip; ' . $link;
27
28
}
29
30
add_filter( 'excerpt_more', 'twentyseventeen_excerpt_more' );

Per i lettori di schermo, il testo del link sarebbe poi letto come "Continua a leggere il titolo del post". Ecco un esempio simile per il contenuto:

1
/* translators: %s: Name of current post */
2
the_content(
3
4
    sprintf(
5
        __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
6
        get_the_title()
7
    )
8
9
);
10

La classe screen-reader-text nasconde visivamente il titolo del post, ma utenti con lettori di schermo possono ancora accedere al testo. Controllate l'ultimo esempio di codice di testo per lettore di schermo nel manuale.

Conclusione

Abbiamo solo toccato la superficie dell'accessibilità nei temi di WordPress, ma speriamo che questo ti farà iniziare. L'HTML semantico e il sapiente uso dei CSS andrà lontano.

Ricordatevi di controllare tutte le linee guida sull'accessibilità per i temi e leggete ulteriori suggerimenti nel manuale di accessibilità.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.