Sto creando a website for a reading service for the blind and visually impaired e sto usando JavaScript (con jQuery) per stampare alcune cose in alcune pagine dopo che la pagina è stata caricata.Lettori di schermo e Javascript
Lo screen reader legge il contenuto stampato sulla pagina con jquery dopo che la pagina è stata caricata?
Da this page - "Generalmente, [screen reader] accedono al DOM (Document Object Model) e utilizzano le API del browser (Application Programming Interfaces) per ottenere le informazioni di cui hanno bisogno."
e sappiamo che jQuery è una libreria di manipolazione DOM.
Quindi la domanda diventa .. gli screen reader prendono una copia dell'intero DOM e quindi la analizzano e la leggono? O leggono il DOM, lo stesso su cui lavora jQuery?
Ecco un esempio di una delle pagine su cui uso JavaScript. Usa una funzione che determina quale programma abbiamo trasmesso via etere e poi stampa il nome del programma e un link per ascoltarlo.
<div id="now-playing-div"></div>
<script>
// invoke the audio-reader javascript library
$(document).ready(function() {
var callback = nowPlaying; // catalog, schedule, podcasts, archive or nowPlaying
var selector = '#now-playing-div';
makeAudioReaderPage(callback, selector);
});
</script>
Quindi, come si può vedere, se il lettore di schermo non legge quello che i JavaScript/jQuery stampe al # ora-playing-div allora leggerà niente. Quindi, abbiamo iniziato a ricevere alcune e-mail di ascoltatori confusi che si chiedevano cosa fosse successo al collegamento Now Playing.
Quindi questa mattina ho aggiunto questo:
<div id='no-js'>Please enable JavaScript to receive this content.</div>
<script>
$(document).ready(function() {
$('#no-js').toggle();
});
</script>
Ma se il problema non è che ha bisogno di JavaScript per essere abilitato (a recent survey shows che il 99% degli utenti di screen reader hanno permesso JavaScript), allora il problema non è risolto e reso ancora peggiore perché ora l'utente dello screen reader potrebbe pensare che JavaScript non sia abilitato.
Cosa fare ??
Dovresti controllare con uno specifico fornitore di screen reader, non c'è modo di rispondere a questo - loro ** DEVONO ** interrogare il live dom, e quindi vedi eventuali cambiamenti, ma se uno specifico interroga una volta e memorizza le cache, allora probabilmente non dovrebbe essere usato. Le pagine "statiche" non esistono più, e lavorare su una copia immediatamente morta/inutile/obsoleta di una pagina è estremamente inutile/stupido –
C'è un buon modo per testare inizialmente questo - installa [NVDA] (http://www.nvaccess.org/), uno screen reader gratuito per Windows. Se sei su un Mac, prova VoiceOver. Puoi anche scaricare ed eseguire una prova di [JAWS] (http://www.freedomscientific.com/Downloads/JAWS). Ottieni una [panoramica video di NVDA] (https://www.youtube.com/watch?v=Vx1vSd5uYS8) o [scorciatoie da tastiera per tutti] (https://www.paciellogroup.com/blog/2015/01/basic screen-lettori-comandi-per-accessibilità test /). Successivamente, esplorare [ARIA live regions] (https://www.paciellogroup.com/blog/2014/03/screen-reader-support-aria-live-regions/). – aardrian