XHTML2, HTML5, XML: e l'accessibilità?

(In attesa di HTML 6…) “As the conversation about HTML 5 and XHTML has played out this week, I’ve felt like Regan in The Exorcist, my head snapping around in 360 degree arcs as one great comment cancels out another”.

In giro per il Web ci sono molte discussioni riguardo la scelta del W3C di abbandonare lo sviluppo di XHTML 2 a favore di HTML 5. Molti siti rilanciano la notizia in modo becero, affermando “XHTML è morto”, o cose del genere.

Si può capire la voglia di audience, ma si tratta di un modo di fare informazione davvero sciocco, ignorante. Certo, titolare “XHTML è morto” fa molta più scena di “XHML 2.0 non verrà più sviluppato”. Nel secondo caso, più che lecito pensare e chi se ne frega, meglio così. Nel primo si leggono commenti di lettori ignari che affermano cose come “ma come, io che mi ero studiato XHTML, ora devo tornare a HTML?”. Oppure si trovano i rete strane filastrocche che prendono in giro Zeldman, Meyer, il Wasp e quanti si sono battuti per la diffusione degli standard e di XHTML 1.0. L’invidia è davvero una brutta cosa.

Meglio saperlo: l’XHTML 1.0 che avete utilizzato fino ad oggi, è vivo e vegeto e ci vorranno decenni prima che vada in pensione e HTML5 è ben lontano dal venire.

Non c’è molto da dire, e quello che c’è da dire lo fa molto meglio di me Jeffrey Zeldman nel suo post “In defense of Web Developer“.

Il motivo di questo post è un altro, e riguarda il rapporto fra markup e accessibilità.

XML sul Web sarebbe un problema (ovvero, la possibilità di usare elementi XML personalizzati per descrivere i contenuti delle pagine): se il markup utilizzato non è uno standard e non prevede i necessari attributi (alt, title, scope, ecc.) le tecnologie assistive non sapranno come gestirlo e quello che si otterrà è una lettura sequenziale di elementi senza alcun significato semantico specifico.

Per esempio, non sarà possibile navigare le pagine con Jaws utilizzando il tasto H per individuare i titoli, non sarà possibile individuare le tabelle, le immagini, i link, tutti quegli elementi che se dotati di significato semantico e dei necessari attributi possono essere individuati e gestiti dalle tecnologie assistive.

È abbastanza semplice capirlo: se utilizzo una DTD standard, riconosciuta a livello mondiale come quelle del W3C, esiste un riferimento certo da leggere in MSAA e gestire. Se invece di< h1> il mio titolo di livello principale si chiama <titolone>, è impossibile che una tecnologia possa capire il mio “intento semantico”. Per questo motivo il rispetto della semantica degli elementi delle DTD del W3C è un requisito irrinunciabile per l’accessibilità, molto più della validità del codice o della DTD utilizzata.

È la stessa cosa che accade con i tag dei PDF: per estrarre informazioni semantiche dal documento, è necessario lavorare sulle mappe ruolo e dichiarare esplicitamente che <titolone> ha ruolo di <H1>, e così via.

Ancora oggi l’accessibilità per molti “accessibilisti” sembra essere fatta di formule bizzarre, incantesimi e riti da eseguire nei pleniluni.

Non è così: l’accessibilità è una cosa veramente concreta, funziona soltanto se un computer riesce ad individuare tramite il layer dedicato presente nel sistema operativo gli elementi conosciuti. In Windows questo avviene, fin dal 2000, tramite MSAA. Linux e Mac OS sono rimasti per molto tempo inattivi, ma ora stanno lavorando per risolvere il problema.

In ogni caso, affinché le tecnologie assistive possano funzionare, cosa che mi sembra abbastanza importante per l’accessibilità, è necessario essere in presenza di markup standard i cui elementi siano noti e semanticamente definiti.

Il markup deve essere “designed for all“, oppure non funzionerà niente. Sarà come leggere un txt.