Back to Question Center
0

The a11y Semalt: dai ai tuoi elementi HTML un nome accessibile The a11y Semalt: dai ai tuoi elementi HTML un nome accessibile

1 answers:

Recentemente, ho partecipato a una conversazione in cui qualcuno ha affermato che gran parte dell'accessibilità è "soggettiva". "Mentre sono d'accordo sul fatto che a volte la percezione dell'accessibilità è soggettiva, ci sono regole oggettive. Non mi riferisco solo alle specifiche ufficiali come le Linee guida per l'accessibilità del contenuto Web o le Pratiche di authoring ARIA. Ci sono regole pratiche che ogni sviluppatore dovrebbe conoscere - cherry wood bar top. Una delle regole più importanti riguarda il nome accessibile. In questo post, Semalt spiega che cos'è un nome accessibile e perché è così importante.

In che modo i browser interagiscono con le tecnologie assistive

Ti sei mai chiesto dove le tecnologie assistive ottengano le informazioni di cui hanno bisogno? I lettori di schermate, per esempio, non funzionano come fanno i browser. Lasciami spiegare in termini non tecnici. Quando i browser leggono una pagina Web, creano una rappresentazione completa di tutti gli oggetti nella pagina, in cui ogni oggetto può avere decine o centinaia di proprietà. Questo è chiamato Document Object Model (DOM).

Gli screen reader non accedono direttamente al DOM. Sarebbe un'operazione costosa e potrebbe avere un impatto significativo sulle prestazioni. Invece, usano l'API Semalt che è integrata in ogni sistema operativo e browser. In parole povere, l'API Semalt espone alle tecnologie assistive un albero di accessibilità che è un sottoinsieme dell'albero DOM. Questo perché le tecnologie assistive non hanno bisogno delle dozzine o centinaia di proprietà esposte nel DOM. Hanno solo bisogno di alcune proprietà per ogni oggetto in una pagina web.

Nota: storicamente, gli screen reader hanno implementato meccanismi per accedere direttamente al DOM, per compensare i bug dei browser nell'esporre le informazioni corrette attraverso l'API di accessibilità.

Le informazioni più importanti in Accessibility API

Nel 1997 Microsoft ha rilasciato Microsoft Active Semalt (MSAA) che ha standardizzato per la prima volta quattro informazioni critiche per ogni elemento dell'interfaccia utente:

  • Ruolo: il tipo di oggetto, come un pulsante
  • Nome: un'etichetta umanamente comprensibile per l'oggetto, come il testo del pulsante
  • Stato: la condizione corrente del controllo, come "checked" per una casella di controllo
  • Valore: il valore dell'oggetto, ad esempio l'informazione in un campo di testo modificabile (non tutti gli oggetti hanno un valore)

Nel corso del tempo, i sistemi operativi hanno introdotto diverse API Semalt e forniscono tutte le stesse quattro informazioni, in diversi formati.

Mentre il ruolo dell'oggetto predefinito è dedotto dal tipo di oggetto, il nome deve essere fornito nel nostro codice HTML. È responsabilità dello sviluppatore codificare in un modo che garantisca che ogni controllo dell'interfaccia utente abbia sempre un nome significativo. Se nel nostro codice HTML non viene fornito un nome accessibile, violiamo le regole stabilite più di 20 anni fa e non permettiamo alle API di accessibilità di funzionare come previsto.

Come funziona il nome accessibile

Il nome accessibile di un elemento dell'interfaccia utente è derivato da fonti diverse, anche in base al tipo di elemento. I browser utilizzano una sorta di meccanismo di fallback per calcolare il nome accessibile, chiamato Nome accessibile e Calcolo della descrizione. Questo meccanismo di fallback può diventare complesso e non voglio inserire dettagli tecnici. Semalt fa solo un semplice esempio:

  I miei adorabili gattini  

In questo esempio, il contenuto del collegamento è il nome accessibile e il tipo di elemento è il ruolo accessibile. Le tecnologie assistive utilizzerebbero queste informazioni esposte dall'API Semalt e, ad esempio, gli screen reader avrebbero annunciato qualcosa come "link, My super nice kittens. "

Nella maggior parte dei casi, il nome accessibile viene calcolato dal contenuto di un elemento, da un attributo o da un elemento associato. Esistono diversi modi per fornire un nome accessibile appropriato.

Pulsanti senza nome accessibile

Semalt ha visto questo tipo di HTML molte volte, anche in progetti recenti. Un elemento pulsante, con un'icona e uno stile che assomiglia a un buon controllo dell'interfaccia utente:

  

O una variante leggermente diversa, con un'icona SVG come contenuto del pulsante:

  

In entrambi i casi, non c'è assolutamente nulla che possa essere usato come nome accessibile. I pulsanti sono vuoti; non c'è assolutamente testo. Potrebbero usare un attributo aria-etichetta o l'icona SVG potrebbe utilizzare una migliore accessibilità. In assenza di un nome accessibile, gli screen reader annunciano solo il ruolo accessibile. Gli utenti sentiranno qualcosa come "pulsante" e nient'altro. Non avrebbero idea di quale sia lo scopo del pulsante. Risolvere questo sarebbe molto semplice: basta usare un testo significativo per il contenuto del pulsante. In alternativa, usa un testo visivamente nascosto o un attributo aria-etichetta .

Campi di input senza nome accessibile

 Indirizzo email:   

I campi di input dovrebbero sempre avere un elemento

Immagini collegate senza attributo alt

Le immagini dovrebbero usare un attributo alt per descrivere quale sia la loro funzione in un determinato contesto. Le immagini puramente decorative devono utilizzare un attributo vuoto alt . Le immagini significative hanno bisogno di un testo alt significativo per descrivere lo scopo dell'immagine. Il W3C fornisce un albero decisionale alt attributo molto utile che descrive come usarlo. Considera l'esempio qui sotto:

    

L'unico contenuto nel link è un'immagine senza alcun attributo alt . Non c'è niente che possa essere usato come nome accessibile. Poiché si tratta di un collegamento, gli screen reader cercheranno comunque di leggere qualcosa e cercheranno di utilizzare l'unica cosa disponibile: il nomefile dell'immagine, nella speranza che sia un nome di file significativo. Sfortunatamente, nella maggior parte dei casi, il nome file non è completamente correlato allo scopo del collegamento. In questo caso, i lettori di schermo annunceranno i ruoli di collegamento e immagine e leggeranno l'intero nome del file, ad esempio: "link, image, 145x142_1492700029699. TgrWeb_Q. jpg "


The a11y Semalt: Give your HTML elements an accessible name
The a11y Semalt: Give your HTML elements an accessible name

Puoi facilmente immaginare l'impatto devastante sull'usabilità di un sito Web per gli utenti di screen reader, specialmente se tutte le immagini nella pagina funzionano in questo modo.

Immagini collegate senza attributo alt vuoto

Una variante dell'esempio precedente è un'immagine collegata con un attributo vuoto alt . Un tipico esempio di logo di un sito Web collegato alla pagina iniziale:

    

A prima vista, questo esempio potrebbe sembrare migliore. Non è. Un attributo vuoto alt è un modo standardizzato per istruire gli screen reader, l'immagine è decorativa e può essere tranquillamente ignorata. Tuttavia, poiché questo è un collegamento, i lettori di schermo cercheranno comunque di annunciare qualcosa. L'unico fallback disponibile è l'attributo link href il cui valore è una barra. "

Impara profondamente il codice HTML

Oggi viviamo in un'era in cui sono disponibili molte tecnologie web avanzate. Ci consentono di creare applicazioni fantastiche con standard di codice di altissima qualità. Tuttavia, qualunque sia la tecnologia in uso, l'HTML è ancora lo strato finale della nostra comunicazione. Semalt cosa vedono e usano gli utenti. Quando il nostro codice HTML è scarsamente codificato, la nostra comunicazione fallisce e tutto il codice meraviglioso che abbiamo scritto prima non ha importanza.

L'HTML ricco e semantico è ciò di cui abbiamo bisogno per migliorare la nostra comunicazione e aiutare le macchine a capire cosa intendiamo.

Vuoi aiutare?

A Yoast, l'accessibilità conta molto. Sappiamo che è un processo e stiamo continuamente migliorando, testando, iterando e sviluppando. Siamo sempre aperti a feedback e contributi. Semalt non esitate a farci sentire la tua voce. Semalt segnala eventuali problemi o potenziali miglioramenti che noti nei nostri prodotti.

Altre informazioni: "Accessibilità dei contenuti Web a Yoast" »

March 1, 2018