Cos’è l’HTML dinamico (DHTML)?DHTML è una combinazione di CSS (Fogli di Stile) e di JavaScript. I fogli di stile permettono di posizionare gli oggetti in qualunque punto della pagina, specificandone i valori di altezza, larghezza, le coordinate ed anche la profondità per le diverse sezioni della pagina. COn JavaScript questi parametri possono essere modificati in tempo reale, anche sulla base dell’input dell’utente o sul verificarsi di specifiche condizioni.

I problemi di JavaScript e di DHTML
Il DHTML può risultare non accessibile in presenza di utenti che si avvalgono di strumenti di assistenza alla navigazione. Molti degli attuali screen reader utilizzano Internet Explorer come base per la navigazione sul web, ed esso è in grado di eseguire JavaScript, ma ciò non significa che ogni script risulti accessibile. Se il codice JavaScript richiede l’uso del mouse (come in molti menu DHTML), esso risulterà non accessibile agli utenti di screen reader, e a quelli che si avvalgono di strumenti di supporto fisico. E’ certamente vero che se il codice crea un semplice effetto di rollover, senza fornire alcuna informazione aggiuntiva all’utente (come gli effetti di rollover che enfatizzano alcune immagini), non c’è alcun bisogno di intervenire per modificare l’accessibilità. Ciò che importa è fare attenzione quando si parla di contenuto.

OnChange e OnSelect
Alcuni sviluppatori creano schede in grado di modificarsi o di ridirigere l’utente su un’altra pagina o su un altro elemento della scheda quando un certo oggetto viene selezionato o attivato. Queste funzionalità non richiedono che l’utente faccia clic sul pulsante di Submit, ed il problema è che questo genere di menu non sono accessibili tramite la tastiera. Quando l’utente cerca di “scrollare” l’elenco delle opzioni, il codice JavaScript interpreta questa azione come un evento OnSelect, che invia l’utente in un’altra pagina. Ed è praticamente impossibile navigare i un menu come questo senza usare il mouse, quindi non usare questa funzionalità in JavaScript.

Ridirezione di pagina
Ci sono degli script in JavaScript che ridirigono l’utente su un’altra pagina non appena quella originaria viene caricata. Ciò può essere causa di mancanza di orientamento, e rende più difficile riposizionare il browser sulla pagina originaria, visto che l’utente dovrà fare clic due volte, velocemente, sul pulsante ‘indietro’ del browser. E’ possibile che l’utente resti intrappolato in una pagina, e che non possa abbandonarla se non chiudendo manualment il browser o digitando l’indirizzo di una nuova pagina.

Finestre popup
Gli script JavaScript che aprono più finestre contemporaneamente – per esempio le pubblicità su alcune home pages – possono disorientare l’utente dato che il focus viene trasferito ad una pagina diversa da quella originaria, che per di più non contiene nulla di quanto ci si attendeva. Usate queste finestre sempre con molta cautela, anche nel caso in cui contengano informazioni utili e non fuorvianti.

Spostare il focus
Come con le finestre popup, JavaScript è in grado di spostare il focus sulla pagina web, per esempio selezionando degli elementi in un form senza che l’intervento diretto dell’utente. Anche in questo caso, gli utenti che usano gli screen readers avranno grosse difficoltà ad orientarsi, o quanto meno ad accedere all’intero contenuto della pagina.

Rimozione delle barre
All’atto dell’apertura di una finestra popup con JavaScript, lo sviluppatore ha l’opportunità di non far visualizzare la barra degli strumenti, le barre di scorrimento, la barra di stato, e così via. Ma ciascuno di questo elementi facilita l’accessibilità per specifiche tipologie di disabili. Quindi si dovrebbe essere assai cauti anche nell’eliminare gli strumenti standard previsti dal browser.

Ed ancora, è anche possibile per lo sviluppatore impedire il ridimensionamento della finestra, il che può rappresentare un problema per gli utenti che hanno bisogno di ingrandire lo schermo; essi saranno obbligati a visualizzare il contenuto ingrandito attraverso una piccola finestra, piuttosto che a schermo pieno.