2015-10-01 10 views
7

Mentre si consiglia di utilizzare l'attributo title sull'elemento <abbr />, ciò non ha alcun effetto sugli screen reader (almeno non su chromevox).<abbr /> -Elemento: attributo aria-etichetta o titolo

<abbr title="as soon as possible">ASAP</abbr>

La cosa che funziona è ovviamente aria-label esempio:

<abbr aria-label="as soon as possible">ASAP</abbr>

Quindi, al fine di essere sia semanticamente corrent e screen reader compatibile ho bisogno di segnare entrambi:

<abbr aria-label="as soon as possible" title="as soon as possible">ASAP</abbr>

che sembra un t di un hack. perché chromevox non legge l'attributo title?

+1

Che suona come un bug in ChromeVox, ad essere onesti. –

+0

cosa fanno gli altri lettori di schermo? – loominade

risposta

8

In breve: nonostante una delle raccomandazioni WCAG, abbr non è una soluzione perfetta per spiegare il significato di un'abbreviazione per tutti, dovrebbe essere usato aria-label quando si desidera annunciare la pronuncia della sigla.

Gli screen reader non devono leggere l'attributo title in quanto non è destinato a sostituire lo aria-label. Vedere anche gli avvisi W3: http://www.w3.org/TR/html/dom.html#attr-title

Basandosi sul attributo titolo è attualmente scoraggiato molti programmi utente non espongono l'attributo in modo accessibile come richiesto dalla presente specifica (ad esempio da un dispositivo di puntamento, come un mouse perché compaia un suggerimento, che esclude gli utenti solo per tastiera e gli utenti solo touch, come chiunque abbia un telefono o tablet moderno).

ho mai incoraggiare l'uso del tag abbr per due motivi:

  • non è un elemento attivabile quindi non si può navigare attraverso di essa con la tastiera per vedere il significato della sigla . Se intendi fornire un'alternativa pronunciabile, lo aria-label è sicuramente quello di cui hai bisogno.

Per esempio, quando sigla è parte del linguaggio, si ha bisogno di spiegarlo, ma si può dare un'alternativa discorso:

Director: <span aria-label="Mister">Mr</span> Smith

  • I non vedenti capisci le abbreviazioni proprio come la maggior parte di noi,

Per esempio, la seguente frase è qualcosa di persone non vedenti possono capire perfettamente:

John Smith della NATO è stato arrestato dall'FBI.

e il successivo è di gran lunga meno comprensibile

John Smith dell'Organizzazione del Trattato del Nord Atlantico è stato arrestato dalla Federal Bureau of Investigation.

Come abbr viene utilizzato per acronimi e abbreviazioni si dovrebbe utilizzare la proprietà CSS speak:spell-out di annunciare che un elemento deve essere scritto-out. È possibile utilizzare il tag abbr per indicare semanticamente che si tratta di un'abbreviazione o di un acronimo, ma che non avrà alcun effetto sull'accessibilità globale.


Se considera che l'abbreviazione ha bisogno di una spiegazione (destinato a tutti e non solo per le persone non vedenti), allora si dovrebbe dare questa spiegazione con parole piene senza richiedere all'utente di mouseover l'abbreviazione di vedere una piccola tooltip.

Bad esempio, quando sigla non aiuta la leggibilità:

<abbr title="Doctor">Dr.</abbr> Smith is located on Lincoln <abbr title="Drive">Dr.</abbr>

Buon esempio (semplice è meglio):

dottore Smith si trova sulla Lincoln Drive

WCAG promuovere molti metodi diversi utilizzando abbr tag:

+1

Il problema con chromevox che non annuncia il contenuto dell'attributo ttitle potrebbe essere dovuto a un ruolo non corretto esposto per l'elemento abbr in chrome: bug archiviato https://code.google.com/p/chromium/issues/detail?id=538537 In caso contrario concordate con la vostra valutazione, la mia discussione generale sull'attributo del titolo potrebbe essere di interesse https://www.paciellogroup.com/blog/2013/01/using-the-html-title-attribute-updated/ –

+0

Sì, gli utenti ciechi comprendono le abbreviazioni ma gli screenmaster li leggono/li pronunciano erroneamente. Suppongo che un caso valido sia per il titolo che per l'etichetta aria siano presenti '' SQL '' – loominade

+0

@ user3351393 Non credo quell'aria-label dovrebbe essere usata per mettere una parola inesistente come la stessa parola potrebbe essere usata da un terminale braille per esempio. – Adam

1

Mi dispiace per aggiungere un'altra risposta totalmente diversa, ma penso che entrambe le risposte non dovrebbe essere uniti:

Poiché ChromeVox è opensource, ho una seconda e ora una risposta tecnica alla tua domanda. http://src.chromium.org/svn/trunk/src/chrome/browser/resources/chromeos/chromevox/common/dom_util.js

Per ogni elemento (e non v'è alcuna eccezione per abbreviazioni) ChromeVox fallback all'attributo title se non v'è alcun contenuto di testo nel nodo (node.textContent.length==0)

Ecco l'ordine di precedenza definito nella codice:

  • Contenuto di testo se si tratta di un nodo di testo.
  • Aria-labelledby
  • aria-label
  • alt (per le immagini)
  • titolo (solo se non v'è alcun contenuto testuale)
  • etichetta (per un controllo)
  • segnaposto (per un elemento di input)
  • chiamate ricorsive ai bambini

ora, è una specie di una situazione buggy

  1. Questo esempio, a mio parere, si legge in modo corretto "BBC":

<abbr title="British Broadcasting Corporation">BBC</abbr>

  1. Questo annuncia " British Broadcasting Corporation ": che è un corretto fallback per un markup non valido

<abbr title="British Broadcasting Corporation"></abbr>

  1. Ma questo non legge nulla, perché la lunghezza del testo nodo non è nullo

<abbr title="British Broadcasting Corporation"> </abbr>

Se siamo in pt l'ultimo bug, non è un perfetto, ma abbastanza coerente attuazione del Text Alternative Computation

  • [F. Altrimenti, guarda nella sottostruttura]
  • G. Altrimenti, se il nodo corrente è un nodo Testo, restituisce il suo contenuto testuale.
  • H. Altrimenti, se il nodo corrente ha un attributo tooltip, restituire il suo valore.

Si noti che secondo il documento si fa riferimento in un commento di cui sopra, l'attributo title, se presente, deve ora essere utilizzato da parte di api l'accessibilità al posto del contenuto del testo: (http://rawgit.com/w3c/aria/master/html-aam/html-aam.html#text-level-elements-not-listed-elsewhere). Non sono sicuro che sia una buona cosa dato che l'attributo title era in precedenza ed è ancora defined as the following dal W3.

Il titolo attributo rappresenta le informazioni di consulenza per l'elemento, come ad esempio sarebbe opportuno per un tooltip

Problemi correlati