In questa puntata, dal titolo un po' divertente, verrà illustrato come in effetti un utente con disabilità visiva può navigare in internet con uno screen reader; ovviamente, parlando di screen reader si parla di JAWS, per i motivi che sono stati espressi nelle puntate precedenti. Comunque, in effetti, gli altri screen readers, quali Virgo, WindowEyes, Hal, non si discostano dalla filosofia di JAWS, cioè quella della virtualizzazione del testo contenuto nelle pagine web.
Dal 1995 sono state introdotte delle tecniche di navigazione in internet da parte degli sviluppatori di Jaws. Inizialmente esistevano pochissimi comandi per favorire la velocità di lettura di un documento, comandi molto brevi e facili da gestire con pochissimo sforzo di apprendimento anche da parte di utenti che si trovassero a contatto per la prima volta con il web o con manuali scritti in html. Le uniche difficoltà si riscontravano nella lettura di grafici che non fossero stati commentati, ma nulla oltre questo.
Poi, come tutte le cose, anche i linguaggi come html si sono evoluti ed hanno introdotto delle tecniche di scrittura dei documenti più raffinate, come ad esempio le tabelle per inserire dei dati, o i frame per dividere la pagina in più riquadri, introducendo così dei menu di navigazione da un lato ed il contenuto effettivo della pagina dall'altro. Ma la cosa più innovativa, ma anche poco controllabile e poco gestibile, fu l'introduzione di editor visuali che scrivevano le pagine web al posto degli sviluppatori: non era più necessario che un webmaster conoscesse il codice html, ma semplicemente gli bastava imparare ad utilizzare un programma (editor visuale) ad interfaccia grafica che lo aiutasse a scrivere la pagina html; infatti, non doveva far altro che disegnare il layout grafico della pagina, il resto veniva scritto dall'editor. Le tabelle, ad esempio, che erano state introdotte per inserire dei dati, ora venivano molto più spesso utilizzate per formattare la pagina; così facendo, JAWS si trovò nella necessità di doversi adeguare alle nuove direttive del codice html, introducendo ulteriori comandi di navigazione, più complicati da utilizzare per un utente.
Oggi come oggi, le pagine web sono diventate molto più ricche di informazioni, molto più complesse dal punto di vista grafico. Ciò vuol dire che ora non basta più che una pagina possa venir letta come un semplicissimo documento di testo, ma bisogna utilizzare delle scorciatoie per essere più veloci nel reperimento delle informazioni che si intende cercare. Ma vediamo come può avvenire la navigazione effettiva di una pagina.
Si possono definire due modalità di navigazione: elementare e avanzata.
Nel primo caso l'utente non utilizza tutti i comandi che JAWS mette a disposizione,
ma solamente quelli semplici, di uso più frequente, che erano stati
già introdotti all'inizio. Nel secondo caso l'utente è in
grado, attraverso tasti di accesso rapido, di trovare delle scorciatoie,
a volte anche molto potenti, per riuscire a districarsi all'interno di una
pagina molto complessa anche per un utente normodotato.
Questo tipo di navigazione è estremamente semplice da apprendere
e anche molto intuitiva.
Solitamente, quando un utente non vedente vuol leggere un documento di testo,
ad esempio utilizzando il blocco note di windows oppure microsoft word,
non deve far altro che utilizzare le frecce direzionali del computer che
spostano il cursore. Con quelle verticali il cursore si sposterà
su e giù di riga e JAWS leggerà la riga su cui esso è
posizionato; con quelle orizzontali il cursore si posterà a destra
e a sinistra di carattere e JAWS leggerà il carattere su cui esso
è posizionato.
Ebbene, la navigazione elementare avviene esattamente nello stesso modo
della lettura di un documento di testo. L'unica peculiarità è
che JAWS, non appena una pagina viene caricata, inizia a leggere automaticamente
dal titolo, fino alla fine del documento; quindi, un utente che vuole leggere
la pagina con i comandi di lettura deve interrompere la sintesi vocale,
tornare all'inizio del documento e cominciare a scorrere il testo con le
frecce direzionali. Questo, purtroppo, comporta che se nella scrittura del
codice è previsto che il cursore di sistema si posizioni su un dato
elemento della pagina, proprio perché quel tale elemento è
il cuore del documento in questione, l'utente non ne è a conoscenza,
quindi sicuramente impiegherà qualche secondo per raggiungere quella
stessa posizione. Ora, in una pagina molto breve come quella di google è
relativamente semplice raggiungere la casella di testo che viene evidenziata
non appena si entra nella pagina, quindi il problema non si pone neanche;
ma in un documento molto più ricco di informazioni, come ad esempio
la pagina del sito di tele+, le cose sono ben diverse.
Con questo tipo di navigazione, infatti, è complicato avere dei
punti di riferimento per rendere meno difficoltosa, ma soprattutto più
veloce, la consultazione dei documenti. I comandi disponibili non sono molti:
solitamente si utilizzano le frecce per leggere il documento; esiste poi
un comando (insert+F7) che apre una finestra di dialogo che riporta l'elenco
dei link presenti su una pagina; un altro comando (insert+F9) che riporta
l'elenco dei frame presenti su una pagina; un comando molto importante,
che un utente dovrebbe conoscere è control+insert+home; questo comando
posiziona il cursore virtuale sul primo campo di input disponibile: caselle
di testo, pulsanti, caselle di selezione ecc.. Per attivare l'interazione
con questi elementi, occorre premere invio non appena il cursore virtuale
si posiziona su uno di loro.
Questo è tutto ciò che un utente alle prime armi con un computer
deve sapere per poter navigare in internet.
La complessità di questo tipo di navigazione sta nel fatto che per utilizzarla l'utente deve apprendere molti comandi. Questo tipo di navigazione è molto più veloce rispetto a quella elementare; con i comandi a disposizione l'utente può scorrere pagine anche di grosse dimensioni in modo molto più semplice e meno affaticante. Tuttavia, i problemi di accessibilità delle informazioni non si possono dire risolti; diciamo soltanto che se l'utente conosce molti comandi, può comprendere meglio la composizione della pagina; non tanto dal punto di vista grafico, poiché le modalità rimangono le stesse (cioè un documento di testo), quanto dal punto di vista dei contenuti e di come essi sono raggruppati.
Questi comandi veloci sono stati introdotti da poco, perché ci si
è resi conto che le pagine web stanno crescendo sia per dimensioni,
sia per contenuti, sia anche per modalità di interazione con l'utente.
Ora su una pagina si possono trovare, un motore di ricerca, vari moduli
di iscrizione ad eventuali news letter, moduli per effettuare sondaggi magari
su un programma o sulla stessa pagina ed anche piccole tagboard per lasciare
dei messaggi.
Molti organismi discutono sull'accessibilità di tutte queste informazioni,
come ad esempio il più noto che è il W3c. Molti documenti
trattano questo problema; tutt'ora sono in corso vari dibattiti e convegni
per cercare di divenire ad una qualche forma di standardizzazione della
scrittura delle pagine web. Tuttavia, JAWS ha adottato dei sistemi di navigazione
veloce che esulano dalle direttive del W3C, per trovare una soluzione, seppure
tampone, che permettesse agli utenti di accedere anche a quelle informazioni
che di norma risulterebbero non proprio del tutto accessibili; quali ad
esempio i frame, le tabelle ed i filmati macromedia flash.
Ma vediamo ora più da vicino cosa si può fare con i comandi
di navigazione complessa, cercando di descrivere, con esattezza, il comando
e la funzionalità che esso attiva; tutto ciò nella speranza
di far meglio comprendere quali sono le possibilità di questo screen
reader, dando modo di improntare anche una strategia di strutturazione delle
pagine.
Va ricordato che la lettura automatica di una pagina nel momento stesso
in cui viene caricata si deve sempre interrompere; non esiste nessuna opzione
configurabile che permetta di non leggere a partire dall'inizio.
Il comando S, sposta il focus del cursore virtuale sullo stesso elemento
su cui è attualmente posizionato; ciò vuol dire che se ci
si trova su una tabella premendo la S si verrà posizionati o sulla
tabella successiva, oppure su una tabella interna. Stessa cosa se ci si
trova su un link o su un campo di immissione.
Notare che aggiungendo ad ognuno di questi comandi il tasto shift, si torna
indietro all'elemento precedente.
Il comando D, posiziona il focus virtuale sull'elemento più prossimo a quello su cui si è posizionati, ma che sia differente da esso; se per esempio ci si trova su un link di una barra di navigazione, premendo la D si verrà posizionati esattamente dove finiscono i link, magari all'inizio di un paragrafo oppure su un livello di intestazione.
Il comando F posiziona il focus virtuale sul campo di immissione più prossimo a partire dall'elemento su cui si è posizionati; se ad esempio siamo a conoscenza del fatto che su una determinata pagina il motore di ricerca è il primo campo di immissione presente, in qualsiasi punto ci troviamo possiamo premere la F e verremo posizionati direttamente su quel campo. Da notare che a volte, pur non interessando un campo specifico, questo può fungere da riferimento per qualcosa che gli sta vicino.
Il comando H sposta il focus virtuale sul prossimo livello di intestazione a partire dall'elemento selezionato. Se una pagina è costruita dividendo i contenuti in headers, questo può essere d'aiuto alla velocizzazione della ricerca delle informazioni. Da notare che la pressione dei numeri da 1 a 6, posiziona il focus virtuale sui livelli di intestazione da 1 a 6; se ad esempio sappiamo che al livello di intestazione 3 troviamo il form per compilare un modulo, senza bisogno di andarlo a cercare con le frecce basterà premere il numero 3 e il cursore virtuale si posiziona immediatamente lì dove appunto è stato inserito il modulo. Con insert+F6, inoltre, è possibile avere un elenco degli headers disponibili in una pagina; verrà data menzione del numero di livello di header e di ciò che vi è scritto all'interno; si possono conoscere a priori le informazioni che vengono fornite e in che modo servirsene.
Il comando L sposta il focus virtuale al successivo elenco a partire dalla posizione in cui ci si trova. Se, ad esempio, si sta leggendo un manuale e i link che NE attivano la vIsualizzazione dei capitoli sono stati racchiusi in una lista di elenchi puntati, col comando L si può accedere più velocemente a questa lista.
Il comando E sposta il focus virtuale alla fine del blocco su cui si trova attualmente; se ad esempio ci si trova all'interno di una tabella e ci si accorge che non ci interessa leggere ulteriormente le informazioni in essa contenute, grazie a questo comando il focus virtuale si sposterà alla fine della tabella e potremo poi proseguire nella lettura.
Il comando R legge la riga attuale della tabella in cui si trova il cursore virtuale; questo comando è comodo nel momento in cui ci si trova all'interno di una tabella di dati e si vuole conoscere il contenuto di tutta la riga senza doverlo scorrere con le frecce.
Il comando T si sposta alla tabella successiva a partire dalla attuale posizione del cursore virtuale; questo comando è utile quando ad esempio si sa che in una tabella di una determinata pagina è stato inserito un form oppure un elenco di link, oppure ancora un elenco di programmi da scaricare; premendo la T il focus virtuale entrerà all'interno della tabella, permettendo così all'utente di continuare a leggere le voci delle righe e delle colonne.
Il comando U sposta il focus virtuale sul primo link non ancora visitato a partire dalla posizione attuale del focus virtuale; questo comando è utile, ad esempio, quando si sta seguendo un corso o si sta sfogliando un libro. Quando l'utente ha cominciato a leggere i capitoli di questo libro, ci sarà una situazione in cui molti link risulteranno visitati; per saltare direttamente questi links il comando U è utile, poiché sposta il focus sul primo link non visitato, che potrebbe essere il prossimo capitolo da leggere.
Il comando P legge la pagina per paragrafi o blocchi di testo separati
da una riga vuota all'inizio e alla fine della porzione. Questo comando,
permette all'utente di leggere il documento per paragrafi; il testo verrà
letto interamente e JAWS menzionerà i link che vi sono all'interno;
se l'utente ritiene di doverne seguire uno, può premere in successione
il tasto tab per raggiungerli. Se una pagina è strutturata a blocchi,
sarà possibile, per mezzo di questo comando, saltare da un blocco
all'altro, senza così essere costretti a leggere tutto dall'inizio
alla fine.
Un buon esempio è quello del sito del Comune
di Roma. La sua homepage è strutturata in una tabella esterna,
che al suo interno contiene delle tabelle che dividono la pagina in categorie
di servizi. L'utente può premere la lettera P per passare da una
all'altra di queste categorie.
Un altro esempio utile a capire l'importanza del comando P, è sul
sito di SKY
quando si vuole conoscere la programmazione giornaliera di un canale, si
deve accedere al link che attiva la ricerca; tralasciando questa strategia,
supponiamo di essere arrivati alla pagina della programmazione di un canale
qualunque. La suddivisione dei programmi è strutturata in blocchi
di testo separati da righe vuote; ebbene, premendo la lettera P, si conoscerà
l'orario di inizio, la durata, il titolo del programma ed una sua breve
descrizione; tutto questo in automatico. Da notare che, con shift+P, si
può tornare indietro per ascoltare il paragrafo precedente, qualora
si fosse stati distratti nella lettura.
Il comando C legge la colonna della tabella su cui il focus virtuale è posizionato; questo comando è utile se l'utente vuole conoscere l'intestazione cui si riferisce la colonna in questione, qualora, e spesso accade, non riesca a comprendere a cosa faccia capo uno specifico elemento.
Il comando V posiziona il focus virtuale sul primo link visitato a partire dalla posizione in cui ci si trova; se ad esempio si naviga spesso un sito, sarà molto facile che alcuni link risulteranno più gettonati di altri; grazie al comando V, si potrà accedere a questi link senza doverci arrivare leggendo con le frecce verticali tutta la barra di navigazione.
Il comando M sposta il cursore virtuale al frame successivo a partire da quello su cui il cursore è posizionato; da notare che il comando control+numeri da 1 a 0 spostA il cursore sui frame 1-n dove n è il numero totale di frame presenti nella pagina. Se ad esempio una pagina è strutturata in frame, dove il primo è un menu di navigazione e il secondo è la pagina dei contenuti, col comando control+1 si va al menu, col comando control+2 si va ai contenuti; coi comandi M e shift+M ci si sposta avanti e in dietro nei frame della pagina. Un'altra utilità di questo comando può essere spiegata in questo modo: supponiamo che in una pagina vi sia un frame in linea contenente una tagboard con i messaggi degli utenti visitatori della pagina; se l'utente vuole raggiungere questo frame in linea, non dovrà far altro che premere la M e il cursore sarà immediatamente posizionato al suo inizio.
Il comando N posiziona il cursore virtuale sul blocco di testo più prossimo non contenente link; questo comando è utile, quando ci si trova, ad esempio, nella barra di navigazione, o nell'elenco delle news che termina con un link. Infatti, premendo la lettera N, il cursore virtuale si sposterà nella prima riga di testo non contenente dei link; ne vedremo poi usi più svariati.
Il comando Alt + frecce verticali, legge la pagina riga per riga esattamente nel modo in cui le righe sono state scritte dallo sviluppatore web; nella lettura delle righe sono inclusi anche gli eventuali link. Questo comando è utile, specialmente quando si sta leggendo un documento che contenga al suo interno dei link di riferimento, come ad esempio delle note. Leggere questo documento con il solo aiuto delle frecce diventa, a volte, molto estenuante. Allora il comando Alt + frecce diviene molto utile, perché legge le righe intere, anche se queste dovessero contenere più di un link al loro interno.
Il comando control+Alt+frecce orizzontali, legge la tabella colonna per
colonna tenendo conto delle intestazioni; questo è l'unico comando
che riesce a risolvere il problema dell'accessibilità delle tabelle
di dati; esso infatti, vedremo in seguito come, riesce ad individuare l'intestazione
cui fa riferimento una colonna; ne dà menzione all'utente, leggendo
poi il contenuto della colonna in questione.
Il comando tasto avvio+frecce verticali, consente di spostarsi all'interno
della tabella, riga per riga. Se ad esempio si sta leggendo una tagboard
formattata all'interno di una tabella, dove su ogni riga vengono riportati
i messaggi, con questo comando si potrà leggere volta per volta un
messaggio per intero, senza dover sfogliare tutta la tabella, cercando disperatamente
di comprenderne la struttura.
Nonostante vi siano, come abbiamo visto, comandi molto complessi di navigazione,
il webmaster può, attraverso l'html, strutturare la pagina come vuole.
Purtroppo sta all'utente adottare delle strategie per poterla navigare il
più velocemente possibile. Va inoltre sottolineato, che l'html, nonostante
l'intervento del W3C e di molti organismi che dibattono sul problema dell'accessibilità,
non può ancora risolvere tutti i problemi per ogni tipologia di utente
non vedente; ciò avviene perché gli screen readers spesso
non hanno tenuto conto degli standard che sono stati più o meno imposti.
Questi ultimi, riguardano soprattutto il commento descrittivo alle immagini,
l'uso dei sommari nelle tabelle per indicarne il contenuto, la raccomandazione
di non utilizzare i frame nelle pagine.
Tralasciando il commento alle immagini, che ovviamente viene letto dagli
screen reaers, talvolta l'utilizzo dei sommari nelle tabelle può
non essere sufficiente alla comprensione ed alla lettura della tabella da
parte dell'utente che, sempre ammesso che li conosca, deve avvalersi dei
comandi sopraccitati per poterla meglio leggere e decifrare. Inoltre, va
detto a onor del vero, una pagina costruita con frame, può risultare,
sempre ad un utente che conosca bene lo screen reader ed i suoi comandi,
molto più comprensibile di una pagina che contiene solo ed esclusivamente
testo.
Una problematica che, a mio avviso, non è stata presa bene in considerazione,
è la necessità di suddividere la pagina in blocchi: più
l'utente ha punti di riferimento ai quali spostarsi per leggere i contenuti,
che nelle pagine sono svariati, più sarà facile per lui consultare
un sito.
Ovviamente, c'è anche da dire, che un utente che non conosca tutti
i comandi sopra descritti, potrebbe trovarsi in difficoltà a prescindere
dai punti di riferimento intrinseci che la pagina mette a disposizione;
è per questo che si cerca di individuare uno standard che valga un
po' per tutte le persone, sia che esse abbiano o non abbiano difficoltà
ben definite, così da permettere a tutti di poter meglio scegliere
i contenuti che si vogliono leggere.
Uno dei modi più semplici che l'html mette a disposizione, è
l'utilizzo dei link nascosti, o link interni; sono questi dei riferimenti
che posizionano il focus del cursore su una determinata posizione della
pagina; si potrebbe così pensare di creare, all'inizio della pagina,
un menu di link nascosti che l'utente può utilizzare per spostarsi
più velocemente, sulla barra di navigazione, sul motore di ricerca,
sull'elenco delle news e su un'eventuale sezione dedicata ai messaggi dei
visitatori.
Quando si parla, ad esempio, di tagboards o di forum, uno dei problemi maggiori
è nella lettura dei messaggi; cioè dare all'utente la possibilità
di saltare da un messaggio all'altro senza doverseli leggere tutti. In una
lavagna che abbia più di 20 messaggi, ad esempio, potrebbe essere
molto faticoso raggiungere l'ultimo, tenendo conto anche del fatto che non
c'è una lunghezza ben prefissata; in generale viene sempre data la
possibilità di scrivere un messaggio relativamente lungo.
Uno dei metodi che aiuti sia un utente esperto che un utente alle prime armi potrebbe essere l'uso degli indici di tabulazione; dare cioè la possibilità di spostarsi con il tasto tab di messagio in messaggio e con shift+tab di tornare in dietro; in questo modo l'utente avrebbe a disposizione un mezzo per leggere comodamente tutti i messaggi senza troppa fatica e questi potrebbero essere strutturati in un layout grafico anche bello da vedere.
Un utente esperto, dal punto di vista della strategia, è molto più avvantaggiato, sebbene, la prima volta che accede ad un sito, deve comunque leggere la pagina con comandi di navigazione elementare; a meno che non voglia fare delle prove per vedere se questo o quel comando funziona. Tuttavia, esistono delle situazioni in cui l'utente sa a priori i comandi che può eventualmente usare: se ad esempio la pagina è strutturata a headers o a frame, l'utente esperto può già sapere come navigarla.
Vi sono comunque delle situazioni in cui la pagina cambia al suo interno
di struttura; vi possono essere tabelle, headers, frame in linea, form ecc..
D'altronde, l'html non è un vero e proprio linguaggio di programmazione
e, spesso e volentieri, non fornisce agli screen readers modi e metodi per
strutturare le pagine; sta dunque all'utente cercare di individuare quali
siano le migliori soluzioni da adottare per navigare più velocemente.
Un esempio di questo può trovarsi nel sito manuali.net.
Le pagine di questo sito, sono davvero molto piene di informazioni; al loro
interno si trova di tutto. Tuttavia, il contenuto effettivo di un link seguito
all'interno del sito, si trova esattamente dopo la prima tabella. Alla fine
di questa tabella, infatti, vi è il contenuto di una ricerca, dell'attivazione
di un link nella barra di navigazione ecc.. Per raggiungere questa tabella
con i comandi di navigazione elementare, si deve fare un lunghissimo percorso,
attraversando link, testo, moduli ecc...
Una strategia che è risultata, almeno per me, molto veloce è
stata quella di ricordare che i comandi per spostarsi sulle tabelle erano
costituiti dalla lettera T e quelli per raggiungere la fine di un blocco
erano costituiti dalla lettera E. Quindi, se il contenuto si trova alla
fine della prima tabella all'interno della pagina, basta premere in successione
la lettera T e poi la lettera E; in questo modo, da qualsiasi punto della
pagina ci si trovi, è possibile raggiungere il contenuto che si stava
cercando.
Come si può notare, purtroppo, quand'anche una pagina sia stata dichiarata
ineccepibilmente accessibile, se è molto ricca di informazioni, richiederà
comunque uno sforzo da parte di un utente che non conosca tutti i comandi.
Per questo, nell'utilizzo di eventuali link interni, bisognerà descrivere
con esattezza dove questi link portano; non è infatti sufficiente
asserire che il link interno su cui ci si trova riporti come titolo "vai
al contenuto", poiché talvolta, questo contenuto è anch'esso
diviso in varie sezioni. Molto meglio inserire qualche link interno in più,
un po' più esplicativo.
Vedremo in seguito, come poter approntare piccoli test ulteriori di verifica
dell'accessibilità ed usabilità di una pagina; test pensati
per varie tipologie di utenza.
Webxtutti aderisce alla Campagna per l'Accessibilità delle Biblioteche in rete
Campagna AccessibilitàWebxtutti supporta l'iniziativa dell'anno europeo delle persone disabili
E' in linea Web accessibile il sito nato per la promozione, diffusione e applicazione delle guidelines WAI.