accessibilitá del web 2.0: un caso di studio

annuncio pubblicitario
UNIVERSITÀ DEGLI STUDI DI URBINO CARLO BO
Facoltà di Scienze e Tecnologie
Corso di Laurea in Informatica Applicata
Tesi di Laurea
ACCESSIBILITÁ DEL WEB 2.0:
UN CASO DI STUDIO
Relatore:
Chiar.mo Prof. Alessandro Bogliolo
Candidato:
Tommaso Battazzi
Correlatore:
Dott. Andrea Vivalda
Anno Accademico 2008-2009
A mio nonno Cristoforo
ii
Indice
1 Introduzione
1.1
1.2
Contesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Organizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Tipologie di utenti
2.1
2.2
2.3
2.4
2.5
Utente normodotato . . . . . . . .
2.1.1 Personal Computer . . . . .
2.1.2 Dispositivi mobili . . . . . .
2.1.3 Lettori di e-book . . . . . .
2.1.4 Web TV . . . . . . . . . . .
2.1.5 L'inaccessibilitá del web . .
Utente con disabilitá visive . . . .
2.2.1 Tipologie di disabilitá visive
2.2.2 Tecnologie assistive . . . . .
2.2.3 Esempi di inaccessibilitá . .
Utente con disabilitá uditive . . . .
Utente con disabilitá motorie . . .
Utente con disabilitá cognitive . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
3
4
4
4
11
14
15
15
16
16
18
23
26
27
28
3 Accessibilitá del web
31
4 Linguaggi del web
40
5 ClaimStudentID
47
3.1
3.2
3.3
4.1
4.2
4.3
5.1
5.2
5.3
5.4
Denizione di accessibilitá . . . . . . . . . . . . . . . . . . . . .
Linee guida del W3C . . . . . . . . . . . . . . . . . . . . . . . .
Normative nazionali . . . . . . . . . . . . . . . . . . . . . . . .
XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
People services . . . . . . .
Content aggregation services
Meta-search services . . . .
Struttura dell'home page . .
.
.
.
.
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
34
40
44
45
48
49
50
50
6 Implementazione
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
Codice table-less . . . . . . . . . . . .
Pulizia e standardizzazione del codice .
6.2.1 Form . . . . . . . . . . . . . . .
6.2.2 Tabelle . . . . . . . . . . . . .
6.2.3 Immagini . . . . . . . . . . . .
6.2.4 Linguaggi esterni . . . . . . . .
6.2.5 Ulteriori accorgimenti . . . . .
Style switcher . . . . . . . . . . . . . .
Template multipli . . . . . . . . . . . .
6.4.1 low-vision . . . . . . . . . . . .
6.4.2 accessible . . . . . . . . . . . .
6.4.3 pda-screen . . . . . . . . . . . .
6.4.4 form . . . . . . . . . . . . . . .
Fogli di stile alternativi . . . . . . . .
6.5.1 print . . . . . . . . . . . . . . .
6.5.2 handheld . . . . . . . . . . . .
6.5.3 aural . . . . . . . . . . . . . . .
Skip navigation . . . . . . . . . . . . .
Mappa del sito . . . . . . . . . . . . .
Favicon . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
52
52
56
56
59
60
61
62
63
65
66
67
68
68
69
70
71
72
73
76
76
Bibliograa
77
Ringraziamenti
85
iv
Elenco delle gure
2.1
2.2
Il Box Model secondo le direttive del W3C . . . . . . . . . . . .
Il Box Model secondo il motore di rendering Trident di IE . . .
6
7
3.1
3.2
Loghi di certicazione del W3C . . . . . . . . . . . . . . . . . .
Loghi di certicazione WAI-WCAG 1.0 . . . . . . . . . . . . . .
32
34
5.1
Struttura logica dell'home page di ClaimStudentID . . . . . . .
51
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
6.18
6.19
6.20
6.21
6.22
6.23
6.24
6.25
6.26
Home page di ClaimStudentID con layout denito da tabelle .
Home page di ClaimStudentID con layout table-less . . . . . .
Home page personale con layout denito da tabelle . . . . . .
Codice HTML non Table-less . . . . . . . . . . . . . . . . . .
Statement CSS per la creazione del menu a tabs . . . . . . . .
Codice HTML Table-less . . . . . . . . . . . . . . . . . . . . .
Home page personale con layout table-less . . . . . . . . . . .
Form: Utilizzo dell'attributo onkeypress . . . . . . . . . . . .
Form: Associazione etichetta-campo di input . . . . . . . . .
Form: Proprietá CSS outline . . . . . . . . . . . . . . . . .
Tabelle: Utilizzo corretto degli elementi HTML . . . . . . . .
Immagini: Attributo HTML alt . . . . . . . . . . . . . . . .
Linguaggi esterni: Tag HTML <noscript> . . . . . . . . . . .
Linguaggi esterni: Codice di verica dei Cookie . . . . . . . .
Style switcher: Impostazione dello stile . . . . . . . . . . . . .
Style switcher: Tag HTML <select> per la scelta dello stile .
Style switcher: Scelta dello stile . . . . . . . . . . . . . . . . .
Style switcher: File esterno . . . . . . . . . . . . . . . . . . .
Contrasti su sfondo nero . . . . . . . . . . . . . . . . . . . . .
Contrasti su sfondo bianco . . . . . . . . . . . . . . . . . . . .
Template multipli: @-regola CSS @import . . . . . . . . . .
Template multipli: Risoluzione di un bug . . . . . . . . . . .
Fogli di stile alternativi: Dichiarazione in base al canale . . .
Fogli di stile alternativi: Dichiarazione CSS per la stampa . .
Fogli di stile alternativi: Proprietá CSS display . . . . . . .
Fogli di stile alternativi: Proprietá CSS content . . . . . . .
53
54
54
55
56
57
57
58
58
59
60
61
62
62
64
64
65
65
66
67
68
68
69
70
70
71
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6.27
6.28
6.29
6.30
6.31
6.32
Fogli di stile alternativi: Dichiarazione CSS per handheld . . .
Fogli di stile alternativi: Dichiarazione CSS per dispositivi aurali
Struttura tipo di un sito web . . . . . . . . . . . . . . . . . . .
Skip Navigation: Implementazione menu per dispositivi aurali .
Skip Navigation: Struttura dell'home page di ClaimStudentID .
Favicon: Dichiarazione favicon . . . . . . . . . . . . . . . . . .
vi
71
72
74
74
75
76
Capitolo 1
Introduzione
1.1 Contesto
Da quando nacque, nel 1969, Internet ha subito diverse trasformazioni e cambiamenti che lo hanno portato ad essere quello che noi tutti oggi conosciamo;
inizialmente nacque con lo scopo di collegare tra loro centri militari americani permettendone il coordinamento tramite computer. Questo almeno no
al 1980 quando vennero deniti i due protocolli base per Internet: il TCP e
l'IPche diedero il via al processo di nascita del web. L'evoluzione della rete
proseguí con la denizione da parte del CERN dell'HTML (1991), ovvero di un
linguaggio di markup ipertestuale con la capacitá di denire strutturalmente
e gracamente delle pagine web. Questa evoluzione determinó la necessitá di
avere strumenti in grado di leggere ed interpretare tale linguaggio, per cui nel
1993 nacque anche il primo browser per la navigazione in Internet (Mosaic).
Fino ai primi anni 2000 Internet continuó ad espandersi quasi esclusivamente come un raccoglitore di informazioni di qualunque genere, nché non
raggiunse un punto critico riguardante gli standard di linguaggio tale da richiedere un intervento. La criticitá riguardava soprattutto il linguaggio HTML che
non garantiva omogeneitá di interpretazione, di visualizzazione e soprattutto
non deniva in maniera rigida la propria sintassi. La prima cosa da fare era
dunque quella di denire degli standard di linguaggio da dover rispettare per
poter nalmente uniformare le informazioni presenti in rete. Questo passaggio
portó alla nascita nel 2000 da parte del W3C (World Wide Web Consortium)
dell'XHTML, cioè di un linguaggio di markup in grado di associare alcune
proprietá dell'XML con le caratteristiche dell'HTML; il le XHTML è di fatto
una pagina HTML scritta in conformitá con lo standard XML. Il linguaggio
richiede un uso piú restrittivo dei tag HTML, prevedendo una separazione tra
la struttura della pagina (scritta in XHTML) e il layout graco (impostato dai
fogli di stile a cascata, i CSS o Cascading Style Sheets).
Negli ultimi anni si è poi sviluppato quello che è stato denito come web 2.0.
1.1 Contesto
2
Con questo termine si tende ad indicare l'insieme di tutte quelle applicazioni online che permettono uno spiccato livello di interazione sito-utente (blog,
forum, chat, sistemi quali Wikipedia, Youtube, Facebook, Myspace, Gmail,
ecc.). Anche le conoscenze richieste nell'interazione con la rete sono cambiate;
infatti se prima del web 2.0 la costruzione di un sito personale richiedeva la
padronanza di elementi di HTML e di programmazione, oggi con i blog chiunque è in grado di pubblicare i propri contenuti, dotandoli anche di veste graca
accattivante, senza possedere alcuna particolare preparazione tecnica. Anche
le community web erano nella stragrande maggioranza dei casi costituite da
esperti informatici, mentre oggi la situazione è completamente ribaltata. A farla da padroni sui blog sono scrittori, giornalisti, artisti o comunque chiunque
voglia condividere una qualsiasi informazione, anche se con una preparazione
informatica non particolarmente elevata.
Lo sviluppo del web non si è peró limitato all'interazione con l'utente ma
si è anche evoluto verso nuovi canali comunicativi e verso nuovi utenti; ora
l'utente non è piú soltanto colui che utilizza un classico home PC, ma anche
chi utilizza altri tipi di dispositivi come palmari, cellulari o tecnologie assistive.
Adesso è possibile navigare nel web anche per l'utente non normodotato attraverso l'utilizzo di particolari tecnologie assistive, siano queste vocali, visive o di
altro genere. Il propagarsi della losoa dell'open source ha fatto poi in modo
che potessero proliferare anche diversi browser per la navigazione sul web, sia
che questa avvenga su PC, su altri canali (come i telefoni cellulari) oppure su
altri dispositivi assistivi hardware (come ad esempio sistemi di output tattile)
mediante particolari software ad hoc come i voice browser. Le diverse modalitá
di accesso al web, di interpretazione dei diversi browser e di tipologie di utenti
hanno peró portato alla necessitá di denire delle norme in ambito di accessibilitá e delle direttive facenti riferimento agli standard internazionali deniti dal
W3C come l'XML, l'XHTML o i CSS. A livello internazionale lo stesso World
Wide Web Consortium (W3C) ha denito un ampio range di raccomandazioni per rendere i contenuti piú accessibili anche a persone con diversi tipi di
disabilitá come, per esempio, la cecitá, l'ipovisione, la sorditá o le limitazioni
cognitive o di movimento. Ogni nazione ha avuto poi la possibilitá di denire
delle proprie regole sull'accessibilitá del web. Nel caso dell'Italia la normativa
in vigore è la legge Stanca (num. 4/2004), la quale denisce come accessibilitá
la capacitá dei sistemi informatici di erogare servizi e fornire informazioni fruibili, senza discriminazioni, anche da parte di coloro che a causa di disabilitá
necessitano di tecnologie assistive o congurazioni particolari. In questa legge
sono di fatto deniti ben 22 requisiti che un'applicazione web deve soddisfare
per essere considerata accessibile da tale normativa. In realtá alcuni di questi
requisiti vengono soddisfatti da una buona scrittura di codice XHTML.
1.2 Organizzazione
3
1.2 Organizzazione
Lo scopo di questa tesi è l'applicazione dei principi dell'accessibilitá ad un'applicazione web 2.0 sviluppata all'Universitá degli Studi di Urbino: ClaimStudentID [1].
In particolare nel secondo capitolo verranno evidenziati i diversi canali comunicativi utilizzabili per accedere al web, le tipologie di utenti che possono
utilizzarli, le diverse disabilitá che possono limitare agli utenti stessi l'utilizzo
del web, ed i principali browser utilizzati nei diversi canali. Verranno inoltre
illustrati alcuni esempi di dicoltá nella navigazione in una pagina HTML
per un utente adoperante tecnologie assistive; in particolare verrá illustrato un
esempio riguardante un dispositivo di screen reader.
Nel terzo capitolo verranno invece illustrati il concetto di accessibilitá e le
relative normative internazionali (indette dal W3C) e nazionali (legge Stanca
num. 4/2004).
Nel quarto capitolo verranno poi introdotti i CSS (Cascading Style Sheet),
cioè i fogli di stile applicabili alla pagina web aventi il compito di separare il contenuto della pagina dalla sua presentazione, attraverso l'implementazione della
sola presentazione tramite particolari regole di visualizzazione degli elementi
ipertestuali. Nello stesso capitolo verrá altresí trattato anche il linguaggio
XHTML e ci sará una breve panoramica sul linguaggio PHP.
Nel quinto capitolo verrá invece introdotto il caso di studio di ClaimStudentID per il quale si è sviluppato il progetto a cui questa tesi è applicata.
Nel sesto ed ultimo capitolo saranno mostrati alcuni dettagli implementativi relativi al caso di studio proposto. Tra queste alcune soluzioni di codice
richieste dagli standard internazionali ed altre create ad hoc per facilitare ed
alleggerire la navigazione nell'applicazione ad alcune tipologie di utenti.
Capitolo 2
Tipologie di utenti
Esistono diverse tipologie di utenti che accedono ogni giorno ad Internet per
vari motivi che possono abbracciare diversi campi: lavoro, svago, necessitá,
educazione, eccetera. Ogni tipologia di utente puó utilizzare diversi canali,
software o dispositivi per eettuare l'accesso alla rete, ma anche incontrare
diversi casi di inaccessibilitá per ognuno di questi. In questo capitolo verrá effettuata una panoramica su diverse tipologie di utente, in particolare verranno
esaminati i seguenti utenti:
1. Normodotati (classici)
2. Con disabilitá visive
3. Con disabilitá uditive
4. Con disabilitá di movimento
5. Con disabilitá cognitive e dell'apprendimento
2.1 Utente normodotato
Per utente normodotato si intende l'utente senza nessuna particolare disabilitá
che possa comprometterne la navigazione nel web; si tratta di fatto dell'utente
tipo. Questa tipologia di utente puó utilizzare un'ampia varietá di canali per
accedere ad Internet, per ognuno dei quali esistono diversi software. L'utente
normodotato non è comunque esente da esempi di inaccessibilitá poiché questa
non è una prerogativa esclusiva del disabile. Di seguito verranno in breve
illustrati i vari canali ed i corrispettivi software, con anche qualche esempio di
inaccessibilitá.
2.1.1
Personal Computer
Il Personal Computer, spesso noto con l'acronimo PC, è ormai un dispositivo
indispensabile e presente in tutte le famiglie. Questa tipologia di computer (la
2.1 Utente normodotato
5
piú classica e conosciuta) si distingue per il suo orientamento general purpose
(non destinato a scopi specici) e dal suo essere monoutente (utilizzabile da
un solo utente alla volta). Quando si parla di PC si tiene automaticamente
conto sia dei computer desktop (quelli ssi, da scrivania), sia dei computer
portatili. Fino a qualche anno fa tutti i computer (o quasi) adottavano gli stessi
programmi e, soprattutto, condividevano lo stesso sistema operativo; oggi non
è piú cosí, infatti si sono sviluppati e diusi diversi sistemi. Il predominio del
mercato dei sistemi operativi è ancora saldamente nelle mani di Microsoft con
il suo prodotto, ma stanno guadagnando sempre maggiori quote i vari Mac OS,
Linux, Solaris ed altri.
Con la nascita del web si sono inevitabilmente sviluppati anche i linguaggi utili per creare contenuti adatti ad esso: l'HTML. Successivamente con la
diusione di Internet nel mondo, non solo i PC sono diventati sempre piú
indispensabili, ma anche le applicazioni utili ad interpretare l'HTML ed alla
navigazione in rete: i browser. Questi applicativi hanno il compito di interpretare il linguaggio HTML e di renderizzarlo attraverso un motore di rendering,
motore dierente da browser a browser. In principio il primo a nascere è stato
un progetto guida di nome WorldWideWeb, anche se il primo vero browser a
diondersi è stato Mosaic, seguito a breve da Netscape Navigator; questi due
browser sono stati ben presto surclassati da Microsoft e da Internet Explorer.
Il regno del browser di casa Microsoft ha durato decenni, ed è rimasto tale no
all'alba del 2009 quando, per la prima volta, la sua diusione è scesa al di sotto
di quella di un suo diretto concorrente: Mozilla Firefox. Firefox non è peró
l'unico browser in ascesa, insieme ad esso infatti sono presenti numerosissimi
browser, ognuno con delle caratteristiche particolari. Di seguito verrá mostrata
una panoramica dei piú diusi e dei piú interessanti browser presenti.
Netscape Navigator
Netscape Navigator [2] fu il primo web browser graco di successo della storia
dell'informatica. Dalla versione 8 questo browser ha deciso di cambiare il
proprio nome in Netscape Browser; nome peró non destinato a fare la storia o
a durare, in quanto non sono previste nuove versioni successive alla numero 9,
l'ultima per questo pezzo di storia del web. Dal primo marzo 2008 la societá
che ne detiene i diritti ha dichiarato la ne del progetto Netscape.
Windows Internet Explorer
Nasce nel 1995 su Windows '95 con il nome di Microsoft Internet Explorer, ma
piú di recente è stato rinominato in Windows Internet Explorer [3]. Dalla sua
nascita è sempre stato il browser piú diuso ed utilizzato al mondo, o almeno
lo è stato no all'alba del 2009 quando, per la prima volta, è stato superato
dal rivale Firefox. Negli ultimi due anni infatti Internet Explorer ha perso
2.1 Utente normodotato
6
una percentuale di diusione di quasi 14 punti percentuali, mentre Firefox (ma
non solo) ha costantemente continuato ad aumentare la propria quota.
Il calo della percentuale di utilizzo di Internet Explorer (IE) è dovuto sia
al fatto che questo è disponibile solo per ambienti Windows (che a loro volta
stanno anch'essi perdendo quote percentuali, anche se in maniera molto piú
ridotta), sia alla sua staticitá (dicoltá di personalizzazione del prodotto da
parte dell'utente) e sia ai diversi errori di interpretazione che questo browser
presenta anche nei confronti di speciche uciali internazionali. Un esempio ecclatante è l'errata interpretazione da parte di Internet Explorer 5 del
box model [4] dei CSS (standard uciale del W3C), ed in particolare delle
proprietá width ed height, che determinano rispettivamente la larghezza e
l'altezza di un blocco. IE interpreta queste due dimensioni del box in modo
che includano anche i bordi ed il padding (lo spazio presente tra il bordo ed
il contenuto del box); queste ultime due caratteristiche, secondo le speciche
uciali, dovrebbero peró essere denite in maniera autonoma e non dovrebbero essere parte (soprattutto il padding) delle dimensioni del box (gure 2.1 e
2.2).
Figura 2.1: Il Box Model secondo le direttive del W3C
Questa non uniformitá di interpretazione del box model causa una dierenza di visualizzazione dei blocchi tra diversi browser, in particolare tra IE (e
derivati) e gli altri.
L'interpretazione del box model non è peró l'unico problema che uno sviluppatore si trova ad incontrare durante la creazione di una pagina web per
via delle dierenze soprattutto di IE; altri problemi possono vericarsi anche
dal mancato supporto a determinate tecnologie (come gli X-Forms) o da un
supporto piú scarso verso altre (DOM o CSS). Uno sviluppatore, per poter uniformare l'aspetto di una pagina web in tutti i browser, è costretto ad adottare
trucchetti non sempre leciti e previsti dagli standard del web o dalle speciche
di determinati linguaggi. Dalla versione 6 peró Internet Explorer fornisce agli
sviluppatori una caratteristica capace di facilitare la creazione di una pagina
web e la sua uniformitá: i commenti condizionali. Questi commenti sono di
2.1 Utente normodotato
7
Figura 2.2: Il Box Model secondo il motore di rendering Trident di IE
fatto delle istruzioni messe all'interno di un normale commento (X)HTML,
istruzioni che vengono ignorate dalla totalitá degli altri browser, e che sono
interpretate unicamente da IE. Questo marchingegno permette agli sviluppatori di poter correggere determinati errori di IE, uniformando cosí la sua
visualizzazione a quella degli altri browser graci, denendo all'interno di tali
commenti le istruzioni di stile apposite per questo browser.
A dierenza di un classico commento (X)HTML (determinato dai tag <!- e
->), i commenti condizionali sono deniti da speciali tag ( <!-(if IE)>
e <!(endif)->) e se al loro interno viene denito un foglio di stile creato ad
hoc per IE, questo sovrascriverá le istruzioni di stile denite precedentemente
e valide per tutti gli altri browser.
Mozilla Firefox
Mozilla Firefox [5] è un web browser open source multipiattaforma prodotto da
Mozilla Foundation. Attualmente è il browser piú usato in assoluto, in quanto
ha superato per la prima volta Internet Explorer nel Gennaio 2009. Il suo
primo nome fu Phoenix (fenice, in inglese), che fu adottato per simboleggiare la
rinascita dalle ceneri di Netscape; dopo diverse vicissitudini, anche giudiziarie,
il nome cambió prima in Firebird ed inne in Firefox.
Uno dei suoi punti di forza è il fatto di essere un'applicazione multipiattaforma,
è infatti disponibile per sistemi GNU/Linux, Microsoft Windows, Mac OS X,
OS/2 e Solaris. L'Open source garantisce a Firefox un'elevata compatibilitá
con diversi prodotti di vario genere (come per esempio gli antivirus) e fornisce
all'utente un'elevato grado di adabilitá e di personalizzazione.
Apple Safari
Safari [6] è il browser web sviluppato da Apple Inc. per il sistema operativo
Mac OS X sul quale è fornito di default dalla versione 10.3. Per renderizzare
2.1 Utente normodotato
8
le pagine HTML, Safari utilizza il framework WebKit, fornito con il sistema
operativo. Anche il nuovo nato in casa Apple, l'iPhone utilizza questo browser.
Il codice del motore di rendering è basato sul motore KHTML utilizzato dal
browser open source Konqueror, il che implica che il codice del motore di rendering HTML è rilasciato sotto licenza GNU Lesser General Public License. I
miglioramenti nel codice di KHTML introdotti dagli ingegneri di Apple vengono restituiti alla comunitá di KDE di modo che possano essere integrati nel
progetto originario.
Opera
Opera [7] è un browser web (prodotto da Opera Software) multipiattaforma,
è infatti disponibile, tra gli altri, per i sistemi operativi Windows, Macintosh
e Linux. È il quarto browser piú utilizzato dopo Internet Explorer, Mozilla
Firefox e Apple Safari.
Opera possiede, a dierenza degli altri browser, un sistema di riconoscimento
vocale e di sintesi vocale integrato. Per quanto riguarda la prima funzione, i
comandi vanno pronunciati dopo aver premuto un apposito pulsante, preceduti
dalla parola chiave Opera (per evitare di lanciare comandi involontari). Per
quanto riguarda la funzione di sintesi (disponibile solo in lingua inglese), è possibile far pronunciare a Opera il testo selezionato (tramite pulsante o comando
vocale), con voce maschile o femminile.
Il browser Opera è inoltre capace di emulare i browser testuali (per esempio
Lynx); questa funzione puó essere molto utile quando si richiede il caricamento
rapido di una pagina, oppure per eseguire un testing piú completo per i siti in
costruzione.
Inne Opera implementa anche una serie di gesti per il mouse (mouse gesture), attuabili con una combinazione di click e trascinamenti del puntatore, che
rendono superuo l'utilizzo delle barre degli strumenti e dei menu.
Konqueror
Konqueror [8] è un software che possiede sia le funzioni di browser web, sia
quelle di visualizzatore di documenti. È integrato nell'ambiente desktop KDE
disponibile per piattaforme GNU/Linux e altri sistemi di tipo Unix.
SeaMonkey
SeaMonkey [10] non è un semplice browser web, ma una vera e propria suite
per la navigazione su Internet. SeaMonkey è parzialmente basato sul codice
di Firefox e Thunderbird, e unisce le caratteristiche di un browser per la navigazione in internet, le funzioni di un gestore di posta elettronica, un editor
HTML e un client IRC1 .
1
Internet Relay Chat
2.1 Utente normodotato
9
Google Chrome
Chrome [11] è l'ultimo nato nel campo dei browser (almeno tra quelli piú noti)
ed è un software open source basato su WebKit e sviluppato da Google. La
prima distribuzione di tipo beta, disponibile inizialmente solo per la piattaforma Windows, è iniziata il 2 settembre 2008 ed è stata disponibile da subito in
ben 43 lingue.
Gli obiettivi principali di questo progetto sono rivolti ad un miglioramento
in sicurezza, velocitá e stabilitá rispetto ai browser esistenti. Riguardo alla
stabilitá Chrome presenta una novitá assoluta nel mondo dei browser: il task
manager; questa funzione permette all'utente di controllare in tempo reale le
informazioni sui siti in uso (utilizzo di banda, memoria e CPU), consentendone
anche la terminazione. Un'altra innovazione volta ad evitare che schede o
plug-in possano interferire tra loro o le une con le altre, riguarda l'esecuzione
separata di ognuna di queste; questo permette di aumentare ulteriormente la
stabilitá del browser di casa Google.
Anche l'interfaccia graca è piuttosto semplice e rivoluzionaria rispetto agli
standard precedentemente esistenti.
Browser derivati
Camino [12] è un browser web open source nato per sistemi Mac OS X basato
su Mozilla. Camino non comprende servizi di e-mail o di newsgroup (tipici dei
progetti Mozilla) ma implementa unicamente le funzioni di browser tramite
l'utilizzo del motore di rendering di Mozilla: Gecko. Camino ha la particolaritá
di essere molto leggero, stabile e veloce.
Nell'home page del proprio sito web, Camino viene cosí descritto: Camino
combina la maestosa esperienza visuale e comportamentale che caratterizza la
losoa di Macintosh con le potenti capacitá di navigazione sul Web del motore
di rendering Gecko. L'idea di base del progetto Camino è quella di avere un
browser capace di prendere il meglio da Firefox (dal quale prende il motore) e
dai sistemi Mac (dal quale eredita la carrozzeria). Nonostante le sue qualitá,
Camino possiede peró una quota di mercato praticamente insignicante.
Flock [13] è un browser multipiattaforma (per sistemi Windows, Mac OS
X e Linux) basato su Mozilla Firefox. Ai suoi creatori piace denirlo come
browser sociale per via dell'integrazione di servizi Internet come blog, condivisione di dati (Flick, YouTube, ecc.), aggregazione di news e servizi di social
bookmarking (Del.icio.us, Digg, ecc.).
K-Meleon [14] è un browser molto leggero e anch'esso basato su Gecko,
il motore di rendering di Mozilla. K-Meleon è stato creato facendo particolare
attenzione alla velocitá del programma, piuttosto che alla graca, (leggerissima
ed essenziale). La leggerezza e la velocitá di K-Meleon dipendono fondamentalmente dal fatto che, per l'interfaccia, utilizza le librerie di sistema. K-Meleon
2.1 Utente normodotato
10
è particolarmente indicato per PC vecchi o con risorse limitate, proprio per via
dei suoi bassi tempi di risposta e per il suo bassissimo consumo di risorse.
Avant Browser [15] è un web browser sviluppato da Avant Force e basato sul motore di rendering Trident di Internet Explorer (del quale è richiesta
l'installazione). È facile da utilizzare, versatile, stabile e rappresenta l'apripista tecnologico di Explorer. Molte diverse funzionalitá aggiuntive ora presenti
anche su Explorer (dalla versione 7) erano giá state implementate da Avant;
tra queste la navigazione contemporanea su piú siti, la navigazione a schede,
il blocco delle nestre pop-up, la cancellazione periodica della cache e della history o la possibilitá di eseguire ricerche integrate utilizzando Yahoo e
Google.
Orca Browser [16] è l'ultimo nato in casa Avant Force. Condivide con
il proprio fratello Avant, la graca pulita e leggera, ma dierisce da questo
nel motore di rendering, Orca infatti è implementato su Gecko di Firefox 3
anziché su Trident di IE. È un browser molto veloce (anche piú di Opera) ed
user-friendly. Anch'esso, come Avant, presenta diverse funzionalitá aggiuntive
rispetto a Firefox, come il blocco per la pubblicitá, le mouse gestures, l'autocompletamento dei campi di testo o le opzioni disponibili in interfaccia graca
(in Firefox sono presenti in interfaccia testuale digitando nella barra degli indirizzi about:cong); Orca è peró sprovvisto dei supporti agli add-on di Firefox
3. Una ulteriore innovazione è la possibilitá di salvare online congurazione,
preferiti, RSS e passwords, in modo da poter accedere a questi dati anche da
un altro computer con Orca Browser installato.
Slim Browser [17] è invece considerato un browser a portata di accessibilitá. Il suo motore si basa su quello di Internet Explorer ma presenta
numerose funzioni in piú rispetto al proprio progenitore. Tra le caratteristiche piú innovative proposte da questo browser (rispetto ad Explorer 7) ci sono
l'implementazione dello Zoom, delle funzioni di traduzione linguistica, la possibilitá di eettuare bloccaggi di pop-up, ltraggi di siti web e di svolgere aliasing
sugli indirizzi http.
Porzioni di mercato dei diversi browser in Europa
Il mondo dei browser è sempre in continua evoluzione, cosí come la loro popolaritá e la loro diusione tra gli utenti nel mondo. La tabella 2.1 mostra
l'evoluzione della quota di mercato negli ultimi 2 anni (da Gennaio 2007 a
Gennaio 2009) [18]. È evidente come il colosso di Microsoft, Internet Explorer,
ha sempre e continuamente perso quote di mercato in favore di altri browser
(soprattutto Mozilla Firefox) che invece hanno progressivamente conquistato
percentuali sempre maggiori. Da Gennaio 2009, per la prima volta, Firefox supera Explorer e diventa il nuovo browser piú utilizzato nel mondo, nonostante
l'uscita della nuova versione (IE 8) del vecchio primatista.
2.1 Utente normodotato
Internet Explorer 8
Internet Explorer 7
Internet Explorer 6
Internet Explorer 5
Internet Explorer
Mozilla Firefox
Mozilla
Apple Safari
Opera
Google Chrome
altro
11
Gen '07
Ott '07
Gen '08
Ott '08
Gen '09
58,6%
31,0%
1,5%
1,7%
1,5%
5,7%
56,7%
36,0%
1,3%
1,7%
1,6%
2,7%
54,7%
36,4%
1,3%
1,9%
1,4%
4,3%
47,1%
44,0%
0,4%
2,8%
2,2%
3,0%
0,5%
44,9%
45,5%
3,0%
2,3%
3,9%
0,4%
13,3%
42,3%
3,0%
20,7%
34,5%
1,5%
21,2%
32,0%
1,5%
26,9%
20,2%
-
0,6%
25,7%
18,6%
-
Tabella 2.1: Porzioni di mercato dei diversi browser in Europa
Supporto agli standard dei principali browser
Secondo un accurato studio comparativo svolto da David Hammond (Web browser standards support summary [19]), il supporto di Internet Explorer 7 alle
speciche CSS 2.1, che sono la versione aggiornata, anche se non ancora uciale, dello standard CSS2, è solo del 56%, (con solo cinque punti percentuali di
miglioramento rispetto alla sua versione numero 6), mentre Firefox 2 e Opera
9 presentano un supporto di gran lunga superiore, rispettivamente 91% e 94%.
Ugualmente carente è il supporto di Explorer 7 alle speciche DOM (51%),
contro una percentuale vicina all'80% dei browser concorrenti. Leggermente
migliore è la situazione per il supporto ai linguaggi del web HTML/XHTML,
che per Internet Explorer 6 e 7 è del 73%, contro il 90% di Firefox e l'85% di
Opera.
Buono invece il supporto per JavaScript sia per Internet Explorer 7 (99%),
sia per gli altri due browser valutati in questa ricerca (100%).
2.1.2
Dispositivi mobili
Con i progressi della telefonia mobile, negli ultimi anni si è avuta una vera
e propria esplosione nell'evoluzione di questi dispositivi che possono essere
suddivisi in quattro categorie principali: telefoni cellulari, computer palmari
(o PDA, personal digital assistant), smartphones e Ultra Mobile PC (UMPC).
Telefono cellulare
Il telefono cellulare [20] è ormai una realtá consolidata nelle vita quotidiana
di ogni persona; questo altro non è che un apparecchio radio trasmittentericevente per la comunicazione in radiotelefonia, collegato alla rete telefonica di
terra tramite centrali di smistamento (stazioni radio base, in inglese BTS, Base
2.1 Utente normodotato
12
Transceiver Station), molto spesso dotate di tre o piú celle che deniscono l'area
di copertura del segnale, nella quale possono connettersi diversi apparecchi
mobili.
Giá da qualche anno i telefoni cellulari hanno la possibilitá di connettersi ad Internet e di usufruire di servizi online. Un telefonino peró è piuttosto
dierente rispetto ad un home PC, soprattutto nelle dimensioni dello schermo
(solitamente di 176 x 220 pixel) e quindi nella risoluzione. Una pagina web
realmente accessibile deve essere visualizzabile ed adattabile a queste risoluzioni minori, prediligendo la dimensione verticale rispetto a quella orizzontale.
Il progettista di siti web, se vuole creare un'applicazione in grado di essere
fruibile anche dai telefoni cellulari, deve perció tenere conto, come prima cosa,
della dierenza di risoluzione, magari creando fogli di stile appositi.
Alcuni grandi quotidiani italiani, hanno predisposto giá da tempo versioni
ad hoc dei loro siti web, adatte ad essere navigate con dispositivi mobili. Tuttavia non è sempre necessario predisporre una versione del sito dierente da
quella standard per soddisfare le esigenze di chi si collega tramite un cellulare,
anche se è sempre buona norma considerare tutti i casi possibili e realizzare
una versione apposita. Un buon accorgimento per creare una pagina web adattabile anche ai telefonini è quello di adottare una linea di progettazione che
utilizzi un'impaginazione semplice ed organizzata con unitá di misura relative
e proporzionali.
Esistono peró anche dei browser per telefoni cellulari (per esempio Opera Mini,
Fennec, eccetera) che sono in grado di adattare da soli, e con ottimi risultati, qualsiasi contenuto di una pagina web alla larghezza dello schermo di un
cellulare.
Palmare
Un palmare [20] (spesso indicato in lingua inglese con l'acronimo PDA, Personal Digital Assistant, o con l'ormai consueto termine palmtop) è un computer
di dimensioni ridotte, tali da poter essere portato sul palmo di una mano, dotato di uno schermo sensibile al tocco (o Touch Screen).
Inizialmente i palmari sono nati come semplici agende alettroniche dotate di
poche funzioni basilari (calendario, calcolatrice, agenda, notes, rubrica), per
poi evolversi (l'azienda che ne diede il via fu la Apple) no ad arrivare ai complessi apparecchi ricchi di funzioni dei giorni nostri. Oggi questi mini-computer
dispongono delle stesse funzioni (al limite in maniera semplicata) degli home
PC, compreso un sistema operativo. Nei palmtop non esiste un leader assoluto
per la distribuzione dei sistemi operativi e per questo ce ne sono di diverse
tipologie. Di seguito sono elencati in breve i piú diusi sistemi operativi per
palmare:
• Palm OS [23]: questa piattaforma (introdotta nel 1996) ha di fatto denito il trend e le aspettative per i palmari, ed ha portato gli stessi palmari
all'evoluzione da semplici agende elettroniche in veri e propri computer.
2.1 Utente normodotato
13
• BlackBerry di Research In Motion [24]: è un tipo di PDA wireless introdotto nel 1999 che permette di scaricare dalla propria casella di posta
elettronica, la gestione della propria agenda, di scrivere messaggi SMS e
permette eettuare chiamate verso i propri contatti.
• Mobile Linux (MLI) [25]: è il sistema operativo creato da Linux Foundation.
• Symbian (giá EPOC) [26]: è un sistema operativo aperto per PDA,
adottato da varie aziende come standard.
• Windows Mobile [27]: è il sistema operativo di Microsoft, simile al piú
celebre Windows, per personal computer e portatili.
Lo schermo di un palmare ha in genere una risoluzione di 240x320 pixel, con
un'area di pagina quasi doppia rispetto a quella visualizzata da un cellulare. La
navigazione con un palmare è potenzialmente piú comoda e piú soddisfacente
per l'utente in quanto, per esempio, le operazioni di input vengono eettuate
con uno stilo, che consente un maggior controllo ed una maggior semplicitá nelle
scelte rispetto ai tasti di un cellulare. Nonostante le dierenze (soprattutto
di risoluzione), solitamente viene associato ai palmari lo stesso foglio di stile
creato per i cellulari; nel palmtop saranno poi il sistema operativo ed il browser
a modellare la pagina, magari riadattandola alle dimensioni dello schermo,
quindi di fatto ingrandendola.
Smartphone
Uno smartphone [20] è un dispositivo portatile che abbina funzionalitá di
gestione di dati personali e di telefono. Puó derivare dall'evoluzione di un
PDA a cui si aggiungono funzioni di telefono (per questo detti anche PDAPhones) o viceversa. Oggi gli smartphone adottano un'ampia gamma di connessioni (GSM, GPRS, EDGE, UMTS, HSDPA, Bluetooth e Wi-Fi) per le
comunicazioni con altri dispositivi.
UMPC
Quando si parla di UMPC (acronimo di Ultra Mobile PC) [20] vengono intesi
alcuni particolari computer ultra portatili di dimensioni a metá strada tra
quelle di un palmare e quelle di un subnotebook.
Il primo dispositivo UMPC (Origami) nasce per opera di Microsoft nel 2006.
Generalmente gli UMPC utilizzano prevalentemente schermi touchscreen come
dispositivo di input (un po' come nei sistemi palmari), anche se negli ultimi
tempi questi sono anche provvisti di tastiera scorrevole qwerty estraibile dal
corpo del dispositivo, per un piú semplice inserimento del testo (es. scrittura
di una e-mail).
2.1 Utente normodotato
14
Browser per dispositivi mobili
A dierenza degli home PC, nei dispositivi mobili esistono diversi browser
capaci di contendersi il mercato. I piú conosciuti sono sicuramente quelli di
casa Opera, ovvero il giá citato Opera Mini [28], pensato per i cellulari, e suo
fratello maggiore Opera Mobile [29], orientato verso i palmari.
Uno dei principali avversari di Opera Mobile è sicuramente Access NetFront [30], capace di supportare ecacemente Java, Flash, SMIL, SVG, XHTML,
CSS, JavaScript 1.5, DOM 1 e 2: in pratica tutti i principali linguaggi standard
per il Web. Questo permette inoltre di bloccare i pop-up, di aprire piú nestre
contemporaneamente ed è compatibile con i formati RSS e Atom.
Altri browser per dispositivi mobili sono Minimo (prodotto dal progetto
Mozilla) [31] e ThunderHawk (di Bitstream) [32]; quest'ultimo è un browser
implementato tramite Java che punta sulla capacitá di rappresentare le pagine
web nel modo piú confortevole per l'utente, soprattutto grazie alle funzioni di
ingrandimento.
Il progetto Mozilla non si è peró limitato al solo Minimo, infatti è recentemente nato (Ottobre 2008) l'ultimo glio di casa Mozilla: Fennec [33].
Il piccolo Firefox non è rivolto unicamente all'utente di dispositivi mobili,
ma è anche disponibile per i sistemi operativi classici quali Windows, Mac e
Linux. Le principali caratteristiche sono il supporto al touchscreen, il blocco
dei pop-up, il password manager, la gestione di tabelle e barra degli indirizzi
simile a quella di Firefox e l'addattamento della pagina alle dimensioni dello
schermo.
2.1.3
Lettori di e-book
Un altro dispositivo mobile, di nuova concezione, è il lettore di libri elettronici,
o e-book reader [20]. Questi dispositivi non sono ancora molto diusi ma
potrebbero, in ottica futura, essere anche presi in considerazione da chi crea
applicazioni web accessibili.
Gli e-book reader sono stati pensati per permettere la lettura di libri elettronici, siano questi in formato pdf, doc, txt o altri, ma possono in realtá anche
ricevere documenti HTML (convertiti attraverso un appostito software). I lettori di e-book utilizzano monitor a soli quattro toni di grigio, per questo un sito
web, per essere utilizzabile da questi dispositivi, deve poter mantenere i propri
contenuti ben leggibili anche nelle particolari condizioni oerte dal dispositivo
in questione (schermo ridotto e gradazioni di grigio).
La mancata (per ora) diusione di questi dispositivi puó essere principalmente dovuta a due fattori: le dicoltá tecnologiche e l'ostilitá delle case
editrici, le quali temono che possa rivericarsi lo stesso processo avvenuto per
la musica in formato mp3.
2.1 Utente normodotato
2.1.4
15
Web TV
Alcuni grandi produttori di elettronica di consumo hanno giá da tempo in
listino apparecchi chiamati Web TV Receiver [20], costituiti da un ricevitore,
una tastiera e un telecomando, che, in combinazione con un comune televisore,
permettono l'accesso al Web e alla posta elettronica tramite lo schermo TV,
utilizzato come monitor.
Dal punto di vista dell'accessibilitá, la Web TV crea non pochi problemi
allo sviluppatore; infatti il browser di Microsoft integrato in molti di questi
sistemi (MSN TV Viewer), ha una risoluzione ssa di 544x372 pixel, forzata
dalle caratteristiche degli apparecchi televisivi che usano il segnale NTSC (PAL
in Europa). Questa è una risoluzione che corrisponde, in termini di area, a poco
piú di un quarto di quella attualmente piú utilizzata su computer desktop e
portatili (1024x768 pixel). In questo spazio molto ridotto è inoltre impossibile
utilizzare lo scorrimento orizzontale; il che porta di conseguenza alla necessitá
di linearizzare i siti web con una dimensione orizzontale maggiore di 544 pixel,
cioè far scorrere verso il basso, invece che verso destra, i contenuti eccedenti
orizzontalmente. Quando la linearizzazione non è possibile, i contenuti vengono
addirittura troncati.
A causa della scarsa densitá in pixel dei televisori e della notevole distanza a
cui di solito è seduto l'utente, MSN TV Viewer si riserva di ingrandire notevolmente i caratteri per favorirne una maggiore leggibilitá; questo ingrandimento
provoca peró un ulteriore allungamento delle pagine web, che niscono cosí
con l'occupare numerose schermate consecutive. Nella Web TV lo scorrimento
verticale è fatto esclusivamente a colpi di pulsanti di telecomando (poiché non
esiste il mouse), con un'azione ripetitiva che diventa facilmente noiosa. Non
sono disponibili, inne, i comuni plug-in, quali il Flash e il Reader di Adobe.
2.1.5
L'inaccessibilitá del web
L'inaccessibilitá non è una prerogativa ed un'esclusiva delle persone disabili;
infatti un comune utente normodotato potrebbe avere dicoltá nel visualizzare
o nel navigare in un sito web. Questo perché, come si è visto in questo capitolo,
esistono diversi canali comunicativi ed ancora piú software o tool per accedere
da questi al web. Ogni browser, per esempio, utilizza un proprio motore di
rendering che interpreta in modo dierente dagli altri alcuni tag o alcune regole
tipiche del web. Puó quindi succedere che un utente di un determinato browser
riesca a visualizzare la pagina web a cui è interessato senza problemi, mentre
un altro potrebbe non avere lo stesso privilegio. Non è detto che un sito
Internet sia visualizzato nello stesso modo sia da Mozilla Firefox che da Internet
Explorer (solo per nominare i piú diusi), infatti, come si è visto, quest'ultimo
interpreta erroneamente alcune direttive (per esempio) del box model dei CSS.
Un altro caso di inaccessibilitá puó presentarsi quando un utente cerca di
accedere da dispositivo mobile ad un'applicazione web pensata e creata per
2.2 Utente con disabilitá visive
16
un normale desktop PC; in questo caso la navigazione sarebbe tutt'altro che
garantita. L'unico metodo per garantire pari opportunitá di visualizzare lo
stesso sito a canali dierenti è quello di creare dei fogli di stile appositi per i
dispositivi mobili (questa parte verrá trattata ed approfondita nel paragrafo
6.5.2).
Un ultimo esempio di inaccessibilitá è la continua richiesta da parte di
qualche applicazione di plug-in mancanti all'utente. In questo caso questo
sará costretto a scaricare ed installare sul proprio PC i pacchetti software
necessari per la completa visualizzazione della pagina, spesso senza che questi
siano rmati o autenticati. A volte poi l'installazione dei plug-in potrebbe
anche fallire, precludendo al visitatore la visualizzazione dell'intero contenuto
della pagina o di una parte di essa.
2.2 Utente con disabilitá visive
Un utente con disabilitá alla vista è un utente al quale vengono preclusi i
contenuti visivi provenienti da molti dispositivi di output (come monitor o
stampante) e quindi spesso molti contenuti delle pagine web. Dal lato pratico
esistono peró molte soluzioni hardware o software che vengono incontro a questa categoria di utenza; sono inoltre presenti anche diversi accorgimenti che
un progettista del web puó osservare per migliorare l'accessibilitá della pagina
web da pubblicare, soprattutto per gli utenti con disabilitá alla vista.
Per venire in aiuto agli utenti con disabilitá visive sono state progettate
diverse tecnologie assistive, utili soprattutto per i non vedenti, oggi in uso; tali
tecnologie verranno trattate in questo paragrafo.
2.2.1
Tipologie di disabilitá visive
Esistono diverse disabilitá associate alla vista; di seguito verranno in breve
illustrate tre di queste: daltonismo, ipovisione e cecitá.
Daltonismo
Associare il daltonismo alle disabilitá visive forse è un po' eccessivo, ma questo
puó comunque portare alcuni imbarazzi e dicoltá all'utenza che ne sore.
Con il termine daltonismo si indica comunemente una forma di cecitá a uno
o a tutti i colori, determinata da diversi fattori: alterazioni ereditarie dei fotorecettori o coni (le piú diuse); danneggiamento della retina, del nervo ottico
o di determinate aree della corteccia cerebrale in seguito ad un trauma. Quando il daltonismo è dovuto al danneggiamento della corteccia celebrale, questo
puó manifestarsi solo in una parte del campo visivo. Non tutte le forme di
daltonismo sono denitive, soprattutto quelle non ereditarie. Geneticamente
2.2 Utente con disabilitá visive
17
questa malattia ai fotoricettori colpisce soprattutto gli uomini poiché è trasmessa dal cromosoma X; per questo motivo l'8% della popolazione maschile
è daltonica contro lo 0,4% di quella femminile.
I colori piú inclini al daltonismo sono il rosso ed il verde, per cui è bene
limitare l'uso di questi nelle pagine web. Non sono ancora note cure per le varie
forme di daltonismo, ma esistono diversi software appositamente dedicati a
coloro che sorono di daltonismo, cosí come esistono anche delle lenti correttive
per daltonici.
Ipovisione
A dierenza del daltonismo, l'ipovisone [34] è senza dubbio una disabilitá visiva. L'ipovisione è un'alterazione dell'apparato visivo umano che ha come
risultato un'acutezza visiva molto ridotta, la quale puó avere notevoli conseguenze sulla vita quotidiana. Questa disabilitá puó essere causata da vari
fattori (siano essi congeniti o acquisiti). Il termine ipovisione è molto vario
ed indica diversi disturbi della vista molto diversi fra loro; disturbi che vanno
dalla visione sfocata, alla restrizione del campo visivo (come se si guardasse
attraverso un tubo) no alla comparsa di macchie scure. Spesso l'ipovisione
grave rappresenta un passaggio verso la cecitá, parziale o totale.
Esistono fondamentalmente cinque tipi di ipovisione [20]:
•
scotoma centrale:
•
ambliopia:
•
perdita della visione periferica:
è la perdita di funzionalitá della macula lutea, cioè
di quella piccola area posta nella zona centrale della retina, dalla quale
dipende la massima acuitá visiva. Chi sore di scotoma centrale non puó
vedere ssando dritto gli oggetti, ma deve imparare a guardare di lato,
sopra o sotto. Deve usare cioè la visione periferica, la quale (interessando
una zona della retina con minore capacitá di vedere i dettagli e i colori)
porta a un degrado e a un rimpicciolimento dell'immagine osservata:
ecco dunque la necessitá di forti ingrandimenti del testo, nel tentativo di
compensare il problema.
è una forte riduzione della sensibilitá centrale della retina,
senza riduzione del campo visivo e senza evidenti lesioni organiche dell'occhio. Dipende da vizi della visione non corretti (miopia o ipermetropia
gravi) o da malattie degenerative come il diabete.
è causata per lo piú da glaucoma
cronico o da retinite pigmentosa e consiste in una visione limitata alla
zona centrale della retina. Nella lettura, e quindi nell'uso del computer,
chi è aetto da questo tipo di ipovisione puó leggere solo poche lettere
per volta, meno anche della lunghezza di una singola parola. Ció rende
la lettura molto lenta e faticosa. Nella navigazione sul Web, la perdita
del contesto (no al punto di perdere il segno nel passaggio da una riga
alla successiva) è una conseguenza molto comune. La limitazione della
2.2 Utente con disabilitá visive
18
zona visiva alla zona centrale non permette all'utente aetto da questo
tipo di ipovisione di visualizzare per intero la pagina, per cui è molto
importante prevedere degli accorgimenti in fase di progettazione della
pagina web, volti ad evitare (per quanto possibile) la comparsa della
barra di scorrimento orizzontale.
•
nistagmo anomalo:
•
decit paracentrali:
è l'incapacitá di controllare il movimento degli
occhi. Chi è aetto da nistagmo anomalo non è in grado di leggere
muovendo solo gli occhi, deve perció imparare a leggere muovendo la
testa invece degli occhi, cercando allo stesso tempo di tenere lo sguardo
il piú possibile sso nella posizione in cui il nistagmo è meno fastidioso.
è presente quando la zona della macula intorno
alla fovea2 presenta un'edema (un accumulo di liquidi nel tessuto) che
rende molto bassa l'acuitá visiva paracentrale, cioè nella zona della macula esterna alla fovea; sono invece discretamente conservate la visione
centrale e quella periferica. Chi sore di decit paracentrali, ha dicoltá
di lettura dovute al fatto di poter leggere solo poche lettere contigue alla
volta ad ogni ssazione dello sguardo.
Cecitá
La cecitá è sicuramente la disabilitá visiva piú grave, ed è la condizione a
causa della quale è impossibile avere una percezione ottico-visiva. Puó essere
congenita oppure derivata da aezioni all'apparato visivo o da traumi. Coloro
che sono aetti da questa, che è considerata una vera e propria malattia, (e che
sono quindi completamente o quasi completamente privi della vista) vengono
chiamati non vedenti o ciechi. A dierenza dei daltonici e degli ipovedenti, i
non vedenti hanno assolutamente precluso l'output visivo, in qualsiasi forma.
2.2.2
Tecnologie assistive
Gli utenti del web con delle disabilitá visive temporanee o denitive accedono
allo stesso principalmente utilizzando l'home PC ed i dispositivi mobili. Poiché
tali canali sono stati giá spiegati per gli utenti normodotati, in questo capitolo
verranno mostrate solo le tecnologie hardware e software capaci di aiutare
l'utente con disabilitá visive; lo stesso discorso è valido anche per le altre
disabilitá.
Ovviamente questa particolare categoria di utente non puó utilizzare il
rendering graco a monitor e necessita quindi di diversi strumenti che siano
ad output vocale e/o tattile. Altrettanto ovvia è l'impossibilitá di utilizzare
il mouse come strumento di puntamento; viene perció richiesto all'utente di
individuare con la tastiera l'oggetto sul quale spostare il focus. In particolare
di seguito verranno illustrate le seguenti tecnologie assistive: Screen reader,
2
piccola porzione della retina nella quale è massima l'acuitá visiva
2.2 Utente con disabilitá visive
19
Browser testuali, Voice Browser, Screen magnication, Display e stampanti
Braille, Tecnologie assistive per dispositivi mobili.
Screen Reader
Uno screen reader, o lettore di schermo, è un software capace di tradurre i
contenuti presenti sul monitor di un computer in una forma dierente da quella
graca, solitamente vocale, con le parole pronunciate da una voce sintetica,
ma puó anche restituire un output sotto forma tattile, se i contenuti vengono
tradotti in testo Braille inviato ad un dispositivo apposito. Grazie a questa
sua capacitá, lo screen reader è la via di accesso privilegiata dai non vedenti,
non solo ai contenuti del Web, ma all'uso del computer in generale.
La traduzione del contenuto visivo di una pagina web da parte di uno screen
reader presenta una grandissima dierenza rispetto alla visione standard: l'accesso alle informazioni non avviene in parallelo ma in maniera sequenziale.
Esistono due diverse modalitá di accesso ai contenuti di una pagina:
•
Accesso parallelo: è la modalitá standard di accesso alle informazioni
prevista per gli utenti vedenti. Utilizza il monitor come canale di output
per visualizzare le informazioni richieste dall'utente. Con l'accesso parallelo l'utente è in grado di percepire istantaneamente l'organizzazione
della pagina o dell'applicazione, e di focalizzare l'attenzione in brevissimo
tempo sull'argomento ricercato.
•
Accesso sequenziale:
è la modalitá di accesso utilizzata dagli utenti
non vedenti. Questo tipo di accesso alle informazioni avviene principalmente attraverso dispositivi vocali capaci di leggere i contenuti presenti
nella pagina web all'utente impossibilitato a farlo. L'accesso sequenziale
prevede che la pagina web vanga letta riga per riga, partendo dalla prima in alto no all'ultima in fondo; questo procedimento non permette
perció all'utente di avere una conoscenza completa della stuttura della
pagina nché la lettura della stessa non sia terminata. Inoltre l'utente
con l'accesso sequenziale, prima di accedere ai contenuti desiderati, deve
necessariamente ascoltare tutto il contenuto precedente della pagina. È
evidente come l'accesso sequenziale sia notevolmente piú lungo nei tempi
di lettura e di accesso alle informazioni, piú faticoso e scomodo.
Gli screen reader utilizzano necessariamente l'accesso sequenziale per permettere all'utente di usufruire delle informazioni alle quali è interessato; questa
tecnologia assistiva peró ore all'utente non vedente anche diverse funzioni che
permettono di attivare vere e proprie scorciatoie, come la possibilitá di saltare da un link all'altro o da un paragrafo all'altro, oppure la possibilitá di
esplorare selettivamente le tabelle.
Altre scorciatoie software sono a discrezione del progettista del web che puó
ulteriormente facilitare la navigazione nei siti agli screen reader con soluzioni
come la skip navigation (paragrafo 6.6).
2.2 Utente con disabilitá visive
20
Lo screen reader piú noto ed utilizzato è sicuramente JAWS (di Freedom
Scientic) [35], il quale ore all'utente una vasta gamma di scorciatoie da
tastiera capaci di coprire molte delle esigenze di esplorazione dei contenuti e
di esecuzione dei comandi. Sono peró due i limiti principali di JAWS, uno è
certamente quello di essere un prodotto monopiattaforma (distribuito solo per
i sistemi operativi Microsoft Windows), l'altro è senza dubbio il prezzo della
licenza d'uso (che puó costare anche alcune migliaia di euro).
Uno dei principali antagonisti di JAWS è Window-Eyes (di GW Micro)
[36] che supporta ecacemente sia Internet Explorer che Mozilla Firefox, ma
anche le principali applicazioni del pacchetto Oce. Anche per Windows-Eyes
la licenza d'uso non è gratuita; in questo caso peró l'azienda produttrice, attraverso il proprio sito web, da la possibilitá di scaricare e provare una versione
demo di questo screen-reader.
Un altro screen reader per sistemi operativi Windows (ma gratuito ed open
source) è NVDA (Non Visual Desktop Access, accesso non visuale al desktop ) [37]. Una delle principali innovazioni di NVDA è quella di rendere il
software completamente indipendente dalle funzioni della scheda graca, dai
suoi driver e perció dalle modalitá di visualizzazione impostate nel sistema;
questo permette un uso immediato dello screen reader.
Esistono peró anche screen reader sviluppati per sistemi operativi dierenti
da Windows, uno di questi è Orca [38]. Orca è gratuito, Open Source, essibile, estensibile, potente ed è preinstallato di default in numerose distribuzioni
di Linux basate sulla piattaforma GNOME (tra cui Ubuntu). Questo screen
reader, a dierenza dei precednti, non ore solo funzioni di lettura dello schermo, ma fornisce anche una gamma completa di ausili per l'accessibilitá, che
comprende, oltre alle funzioni tipiche di uno screen reader, anche l'ingranditore
di schermo ed il supporto per il Braille. La politica dell'open source ha fatto
in modo che Orca sia integrabile con browser come Firefox, con programmi di
posta elettronica come Thunderbird e con applicazioni di produttivitá come
OpenOce.
Browser testuali
I browser testuali rappresentano per il web la pietra miliare dello sviluppo,
questi infatti sono stati i primi programmi specici per la navigazione nel web.
Esistono ancora ai giorni d'oggi diversi browser testuali sopravissuti all'avvento, iniziato nel 1993, dei browser graci (il primo, dalla quale si sono poi evoluti
tutti gli altri è stato Mosaic). Oggi queste applicazioni sono inserite, anche se
un po' impropriamente, tra le tecnologie assistive poiché vengono utilizzate
principalmente da utenti con disabilitá alla vista e perché da sole coprono buona parte delle nalitá dell'accessibilitá. Per far sí che un sito sia accessibile
anche dai browser testuali è importante mantenere la gerarchia degli oggetti
della pagina da renderizzare ed associare sempre un signicato alternativo ad
elementi graci (anche per quelli non indispensabili).
2.2 Utente con disabilitá visive
21
Un browser testuale interagisce con l'utente principalmente attraverso l'uso
della tastiera ed elimina automaticamente tutti gli elementi graci presenti
in un documento web, mostrando all'utente solo i testi o le descrizioni testuali
alternative (di elementi graci e multimediali) in esso contenuti.
Il primo browser testuale (precedente al 1993), nonché il piú noto, è certamente Lynx [39] che è un prodotto multipiattaforma (Unix, Linux, DOS,
Windows e Macintosh).
Il principale antagonista è molto piú recente di Lynx (1999) ed è quasi un
suo ominimo: Links [40]. A dierenza di Lynx, questo browser, presenta anche
delle caratteristiche tipiche dei browser visuali, infatti riesce a mantenere in
un ambiente puramente testuale, per esempio, la suddivisione delle tabelle in
righe e colonne. Anche Links è multipiattaforma ed è disponibile per Linux,
OS/2, Windows, BeOS e FreeBSD.
Esistono peró anche browser testuali pensati apposta per l'accessibilitá,
uno di questi è WebbIE [41], il quale è capace di riprodurre una pagina web
sia in modalitá solo testo sia in modalitá graca, utilizzando per quest'ultima
funzione il motore di rendering di Internet Explorer (Trident). Questo browser
puó essere utilizzato da tutte le categorie di disabili alla vista poiché presenta,
in modalitá graca, anche una funzione d'ingrandimento dei contenuti, utile
per gli ipovedenti (anche se questa funzione fa aumentare la larghezza proporzionalmente con l'altezza, portandosi inevitabilmente la fastidiosissima barra
di scorrimento orizzontale). Per i non vedenti WebbIE è un compagno ottimale
per uno screen reader poiché linearizza i contenuti suddividendoli per categorie
strutturali: link, titoli, tabelle, elenchi, caselle di input ecc.
Altri browser puramente testuali sono w3m [42], Emacs-w3m (una versione di w3m per Emacs), Elinks [43] (un'evoluzione di Links in grado di riprodurre frame e tabelle), Alynx [44] (versione di Lynx per computer Amiga)
e Netrik [45] (nato da un progetto collaborativo di SourceForge.net). Non solo
i browser testuali sono in grado di linearizzare i contenuti del web, ma esistono
anche alcuni browser graci che dispongono di questa funzione, uno di questi
è Opera, il quale permette di scegliere se visualizzare o meno le immagini.
Voice Browser
Il voice browser, come un browser tradizionale, utilizza le combinazioni tra
il linguaggio (X)HTML e la tastiera o il mouse, per permettere all'utente di
interrogare il Web. Le pagine web che di piú si adattano a questa tecnologia
sono quelle scritte in VoiceXML3 . I Voice browser presentano all'utente le informazioni oralmente utilizzando dei le audio pre-registrati oppure particolari
software text-to-speech che renderizzano le informazioni sotto forma di audio;
l'interazione utente-web puó avvenire attraverso tastiera o mediante comandi
3
acronimo di Voice eXensible Markup Language, rappresenta lo standard W3C, in formato
XML, per la creazione di dialoghi interattivi tra una persona e un computer
2.2 Utente con disabilitá visive
22
vocali, utilizzabili tramite il microfono del computer, o di un telefono Voip o
di un cellulare.
Screen magnication
Quella dello screen magnigication [20] è una tecnologia assistiva indicata soprattutto agli ipovedenti, in grado di ingrandire (anche secondo diverse modalitá) in tutto o in parte i contenuti del monitor. I principali ingranditori di
schermo dispongono anche di funzioni di lettura vocale, che possono essere utilizzate in combinazione con la funzione principale di magnication per rendere
ancor piú agevole e sicura la navigazione nel web o l'utilizzo del PC.
Esistono diversi ingranditori di schermo, i piú noti sono ZoomText [46],
MAGic di Freedom Scientic (la stessa di JAWS) [47], Lunar di Dolphin [48]
e suo fratello maggiore LunarPlus [49]. Tutti (tranne Lunar) possono essere
installati in associazione ad un lettore di schermo, cosí da poterne aumentare le
funzionalitá. Anche il sistema operativo Windows contiene di default un tool
di magniers che il sistema operativo ore tra le opzioni di accesso facilitato.
Display e stampanti Braille
Il Braille è la forma di scrittura a rilievo pensata per i non vedenti, generalmente
composta da 6 punti che, a seconda della combinazione, formano i caratteri
di un documento. Un utente non vedente attraverso il linguaggio Braille puó
leggere un testo attraverso i polpastrelli anziché la vista.
La tecnologia assistiva che puó essere utilizzata da un non vedente per la
navigazione attraverso il computer consiste in una tavoletta costituita da una
riga di 40 o 80 celle Braille, fatta ognuna da otto (invece che da sei) punti a rilievo, chiamata Display Braille [20]. I due punti in piú possono essere
impostati per comunicare all'utente le formattazioni adottate sul testo come
il grassetto, il corsivo, il sottolineato o altro. Questo dispositivo utilizza un
meccanismo piezoelettrico che fa automaticamente alzare ed abbassare continuamente i punti, riproducendo sulla barra i contenuti presenti sul monitor,
come le lettere alfabetiche, la punteggiatura e, nei dispositivi piú sosticati,
anche elementi graci della pagina come i bordi. Le barre Braille non sono
solamente dispositivi di output tattile (attraverso i punti a rilievo), ma spesso
fungono anche da dispositivo di input e sono dotati di diversi tasti funzione
che possono attivare delle scorciatoie per una navigazione rapida della pagina.
I display Braille sono solitamente utilizzati in coppia con gli screen reader,
ma sono sostanzialmente molto meno diusi di questi principalmente per due
fattori: non tutti i non vedenti sono capaci di leggere il Braille ed il costo
elevato di questi dispositivi (anche diverse migliaia di Euro).
Un altra tecnologia assistiva per utenti non vedenti, simile alla precedente, è
la stampante Braille che è di fatto lo strumento piú avanzato per produrre materiale in Braille. Un testo scritto al computer puó essere facilmente stampato
2.2 Utente con disabilitá visive
23
in Braille utilizzando degli appositi programmi di traduzione e formattazione.
Anche le stampanti Braille si dierenziano in varie tipologie in base a delle
caratteristiche come la velocitá di stampa, la quantitá del materiale che sono
in grado di stampare e la possibilitá di produrre stampe ad interpunto, cioè su
entambi i lati della pagina.
Tecnologie assistive per dispositivi mobili
Gli utenti con disabilitá alla vista possono utilizzare anche i dispositivi mobili,
i quali non brillano certo per accessibilitá. Esistono peró diversi strumenti
software capaci di aiutare l'utente con problemi gravi alla vista. Una soluzione
software a tutto tondo è certamente la Suite di Accessibilitá di Nuance che è
composta da due applicativi: Talks e Zooms [50]. Il primo è uno screen reader
in grado di aiutare l'utente nelle operazioni presenti in un cellulare di ultima
generazione, operazioni che possono andare dalla scrittura di un SMS, alla
lettura del nominativo della chiamata in entrata. Il secondo, Zooms, di fatto
consiste in un ingranditore di schermo, capace di ingrandire porzioni (anche
selezionabili dall'utente) di contenuti della pagina. Questa suite di software
non è peró ancora disponibile ed installabile su tutti i dispositivi mobili.
Talks non è l'unico lettore di schermo per dispositivi mobili, infatti ne
esistono anche altri, uno di questi è Mobile Speak (di Code Factory) [51],
disponibile per diversi sistemi operativi (Symbian e Windows Mobile), un altro è invece VoiceSuite [52], progettato unicamente per il sistema operativo
Microsoft Windows Mobile.
2.2.3
Esempi di inaccessibilitá
Di seguito verranno descritti tre esempi di inaccessibilitá del web rispetto a
persone con disabilitá visive.
La struttura della pagina e lo screen reader
Nei paragra precedenti è stato spiegato come uno screen reader abbia la necessitá di linearizzare il contenuto di una pagina. Anché un lettore di schermo
sia pienamente funzionale e la navigazione leggera e veloce, un'applicazione
web deve essere progettata utilizzando correttamente gli elementi (X)HTML
secondo il loro valore semantico, adottando meccanismi che possano permettere
di saltare gruppi di link ed utilizzando altri accorgimenti che possano favorire
l'accessibilitá.
Quando un'applicazione web viene creata senza tener conto di queste caratteristiche fondamentali, l'utilizzo di uno screen reader puó risultare problematico o quantomeno laborioso. A questo proposito, su un sito web italiano indirizzato all'accessibilitá [21] è stata pubblicata una dimostrazione di inaccessibilitá
di una pagina web di un noto quotidiano italiano. L'esperimento eettuato è
stato sviluppato sull'articolo del 28 Settembre 2006, intitolato Telecom, Prodi
2.2 Utente con disabilitá visive
24
alla Camera. Bagarre dell'opposizione attraverso uno screen-reader JAWS,
calcolando quante volte la voce sintetica nomini la parola chiave link, seguita
dal testo del collegamento e quanto duri la lettura completa della pagina; La
dimostrazione ha dato i seguenti risultati:
• 74 voci link lette prima di arrivare all'articolo;
• 3 minuti esatti occorsi alla sintesi vocale per leggere tutto ció che precede
il testo dell'articolo;
• 9 minuti e 30 secondi il tempo necessario alla lettura completa della
pagina.
Per la lettura dello stesso articolo, una persona vedente di media cultura
impiega poco piú di qualche istate per identicare l'inizio del testo (contro gli
otre 3 minuti di JAWS) e poco piú di due minuti e mezzo per leggere a mente
il testo dell'intero articolo (contro 9 minuti e mezzo). È molto semplice notare
le numerose dicoltá che un utente non vedente puó riscontrare per la lettura
di una pagina web non realizzata a dovere in materia di accessibilitá, rispetto
ad un utente in grado di utilizzare la vista.
Le tabelle
Uno degli ostacoli piú dicili da arontare per uno screen reader è quello
di leggere ed interpretare una tabella [53]; questi non tiene conto della sua
composizione in righe e colonne, ma solo ed esclusivamente delle prime, da
quelle della prima riga, no a quelle dell'ultima, ognuna visualizzata su una
riga separata. Come risultato l'utente si ritrova una serie di elementi posti
in verticale, uno sotto l'altro che sono la rapresentazione delle colonne di una
tabella. Per rendere meglio l'idea, è mostrato un piccolo esempio (tabella
2.2) di una tabella a tre colonne contenenti ognuna rispettivamente il nome, il
cognome e la professione di una persona.
Nome Cognome Professione
Mario
Marco
Rossi
Verdi
Studente
Studente
Tabella 2.2: Esempio di tabella
Questa tabella viene visualizzata da uno screen reader nel seguente modo:
tabella con 3 colonne e 3 righe
Nome
Cognome
Professione
2.2 Utente con disabilitá visive
25
Mario
Rossi
Studente
Marco
Verdi
Studente
fine tabella
In questo modo gli utenti con disabilitá visive non riescono ad associare
alcuna corrispondenza fra righe e colonne. Finché le dimensioni della tabella
sono ridotte non si pone nessun particolare problema, ma con una mole crescente di dati, le dicoltá di comprensione aumentano e diventa inevitabile che
si venga a creare una certa confusione fra gli elementi della tabella, nendo
per non comprenderne il contenuto.
La soluzione viene dalla tecnologia CSS e da un uso scrupoloso di XHTML,
che, se abbinati assieme, permettono di ridurre molti ostacoli inerenti alla lettura delle tabelle da parte di tecnologie assistive, aggirandoli o addirittura
evitandoli; purtoppo peró solo poche applicazioni web adottano gli accorgimenti necessari. Attraverso XHTML ogni riga o colonna puó avere associato
uno scope (cioè un ruolo), oppure ogni cella della tabella puó far riferimento
alla propria intestazione. In questo modo le celle della tabella sono logicamente
associate tra loro, e questo permette una maggior semplicitá di comprensione
nella lettura della tabella stessa. Attraverso i CSS è inoltre possibile impostare
(per esempio) ogni quante letture di riga ripetere una lettura dell'intestazione,
accorgimento che risulta molto utile con tabelle di dimensioni non trascurabili.
I CAPTCHA
Dietro al dicile nome di CAPTCHA4 [22] si nasconde uno dei piú clamorosi
casi di inaccessibilitá. Un CAPTCHA non è altro che un semplice sistema di
verica automatica che viene solitamente inserito nelle pagine web nelle quali
si richiede ad un utente di immettere i propri dati personali al ne di iscriversi al servizio. Questi sistemi sono composti da un'immagine bitmap e da
un campo di testo da riempire correttamente; l'immagine contiene solitamente una o piú parole disturbate da tracciati apparentemente messi a caso, ma
in realtá disposti ad arte. L'utente per confermare l'iscrizione deve necessariamente riconoscere il testo nascosto nell'immagine e scriverlo correttamente
nell'apposito spazio. Con questo sistema si cerca di impedire l'iscrizione al servizio a robot che mirano a carpire dati privati o a riempire i siti di pubblicitá
indesiderata, poiché si presume che solamente un utente umano possa riuscire
a distinguere correttamente la parola nascosta.
4
acronimo di Completely Automated Public Turing Test to Tell Computers and Humans
Apart
2.3 Utente con disabilitá uditive
26
È piuttosto evidente come un sistema del genere, basato sulla lettura di
un'immagine graca, sia del tutto inadatto per persone con disabilitá della vista. In pratica quello che viene fuori da questo sistema è un messaggio del tipo
o vedi o non puoi iscriverti, che è del tutto discriminante. Un utente ipovedente o non vedente, quando è presente un CAPTCHA, deve necessariamente
chiedere aiuto ad una persona vedente per poter completare l'operazione in
atto.
Negli ultimi tempi molte applicazioni web sembrano essersi accorte di questo problema ed oggi fortunatamente esistono diverse soluzioni. In alcuni casi
all'utente viene data la possibilitá di ricaricare l'immagine con una combinazione di colori dierente; il che è del tutto irrilevante ed inutile per un non
vedente, ma puó essere di aiuto ad un utente ipovedente o ad un daltonico.
Esistono peró anche delle soluzioni decisamente piú valide del cambio di colore,
come quella di associare all'immagine un le audio da ascoltare contenente la
parola nascosta. Un altro metodo è quello di spezzettare il codice CAPTCHA
con diversi commenti HTML contenenti cifre in grado di confondere i meccanismi di iscrizione automatica, ma non le tecnologie assistive come gli screen
reader; ovviamente questo metodo esula dall'uso di immagini bitmap. Il metodo piú semplice e forse piú ecace è quello di richiedere all'utente il risultato
di una semplice espressione numerica inserita nel corpo della pagina e non in
un'immagine bitmap. In tutti questi casi lo screen reader permetterebbe all'utente non vedente di aggirare il problema dei CAPTCHA e di completare
l'operazione in corso.
2.3 Utente con disabilitá uditive
La disabilitá uditiva coincide con la piú grave malattia dell'orecchio: la sorditá;
questa consiste nella perdita parziale o totale dell'udito e puó presentarsi alla
nascita o in seguito ad un trauma. Le persone aette da questa malattia (circa
il 2 % della popolazione in Italia [54]) utilizzano normalmente il linguaggio
italiano dei segni (LIS) che è a tutti gli eetti una vera e propria lingua.
Questa categoria di utenti non necessita di nessuna particolare tecnologia
assistiva hardware, ha peró precluso l'uso di output sonori che, nel limite del
possibile, devono essere tradotti in forma testuale da appositi sistemi software.
Esistono sostanzialmente due categorie di ausili software: sistemi di sottotitolatura automatica e sistemi di traduzione del parlato. Gli ausili del primo tipo
eseguono automaticamente l'attivitá di sottotitolatura, avendo cura di farla in
modo sincrono al usso dell'audio, che viene invece escluso. Il secondo tipo di
sistema software è decisamente piú complesso e richiede applicazioni multifunzionali sul modello di iCommunicator [55], un software in grado di tradurre
in tempo reale il parlato in testo scritto o in ALS (lingua americana dei segni),
grazie a complesse funzioni di riconoscimento vocale.
Anche per gli apparecchi mobili esistono dei sistemi ausiliari per questa
2.4 Utente con disabilitá motorie
27
categoria di utenti; uno di questi è RNID Mobile Textphone [56] che è
software in grado di trasformare un telefono cellulare in un testofonino, cioè
in un telefono per utenti sordi, capace di trasformare il testo scritto da tastiera,
in parole pronunciate da una voce sintetica, e le parole pronunciate dall'interlocutore, in testo visualizzato sul monitor del telefonino. Questo software non
è peró disponibile per molti dispositivi mobili, ma solo per un numero esiguo
di modelli.
2.4 Utente con disabilitá motorie
Questa categoria di utenti racchiude un assortito insieme di persone aette
da dierenti patologie dell'apparato motorio come la paralisi cerebrale, la tetraplegia, il morbo di Alzheimer, la sclerosi laterale amiotroca, la distroa
muscolare, la sindrome del tunnel carpale, o tremori di varia origine e natura. Questi utenti hanno preclusi quasi tutti i sistemi di input tradizionali, in
particolare non possono utilizzare (o possono farlo molto limitatamente) né
sistemi di puntamento (come mouse o trackball), né la tastiera; nei casi piú
gravi, l'utente ha la possibilitá di muovere solamente gli occhi.
Anché gli utenti con queste disabilitá possano realmente interagire con il
web, le applicazioni in questione devono assolutamente essere indipendenti dal
device utilizzato; l'applicazione deve perció essere raggiungibile e deve essere
in grado di interagire sia con il mouse, sia con la tastiera, che con qualunque
altro dispositivo necessario.
Per venire incontro a chi possiede disabilitá motorie, sono state pensate e
realizzate diverse soluzioni hardware e software ad hoc. Per quanto riguarda
le teconologie hardware, queste consistono in tastiere, mouse e trackball speciali, in schermi tattili (touch screen), in sensori di vario tipo oppure in sistemi
di puntamento a testa o guidati dal movimento delle labbra. Una tecnologia assistiva molto complessa si basa su un sistema di puntamento a testa, il
quale utilizza una telecamera montata sulla cornice del monitor per tracciare
i micromovimenti di un punto preciso della testa dell'utente preso come target; tali micromovimenti vengono poi tradotti in spostamenti del cursore sullo
schermo. Come giá accennato, spesso non sono sucienti i soli sistemi hardware, ma questi necessitano di ulteriori soluzioni software. Tra i software piú
conosciuti ed utilizzati, vi sono gli ausili per i mouse e per le tastiere virtuali
come MagicCursor 2000 [57]. Questo software permette di simulare tutte
le funzioni di un mouse semplicemente attraverso lo spostamento del cursore
e mediante delle temporizzazioni predenite. Lo spostamento del cursore puó
avvenire attraverso dei sistemi hardware come il puntatore a testa, mentre la
temporizzazione determina l'azione da eettuare in base a quanto tempo il
cursore rimane fermo su una zona attiva (come un pulsante o un menu) dello
schermo. Ovviamente MagicCursor permette sia di impostare i tempi abbinati
alle varie funzioni, sia di eseguire tutte le diverse funzioni associate al mouse.
2.5 Utente con disabilitá cognitive
28
2.5 Utente con disabilitá cognitive
Le disabilitá cognitive sono le piú dicili da denire poiché sono molte e possiedono molte varianti; queste possono essere dovute a disabilitá siche o psichiche
di un determinato individuo. Le disabilitá cognitive possono essere dovute a
varie cause:
• malattie come meningite o tumore;
• questioni genetiche come la sindrome di Down, la demenza o l'autismo;
• patologie come il morbo di Alzheimer, l'ictus celebrale, la dislessia, la
sclerosi multipla, i disturbi dell'attenzione o l'iperattivitá;
• danni celebrali dovuti ad un incidente
• altre cause come i problemi all'apprendimento, la perdita di memoria,
l'incapacitá di leggere, l'eccessiva tendenza a distrarsi, i disturbi dell'orientamento e la dicoltá nel seguire un discorso logico.
Dal punto di vista software, le tecnologie assistive usate per compensare i
decit cognitivi si basano fondamentalmente su tre principi:
• la lettura vocale dei contenuti testuali, associata all'evidenziazione delle
parole di volta in volta lette e, nei programmi piú sosticati, la possibilitá
di impartire comandi vocali;
• la predizione della parola o della frase che l'utente sta scrivendo;
• l'associazione di immagini a testi e comandi, allo scopo di favorire la
comprensione e l'interazione da parte dell'utente.
Per quanto riguarda le tecnologie assistive hardware presenti per questi
utenti, ne esistono diverse: computer portatili e palmari specializzati nel fornire una serie di segnali acustici e visivi, che servono per ricordare scadenze e
procedure all'utente che sore di perdite di memoria; dispositivi dotati di interfacce tattili basate su simboli graci, che sfruttano il potere evocativo delle
immagini per aiutare l'utente a comprendere concetti e comandi; funzioni di
sintesi vocale.
Per aiutare questa tipologia di utenti nella navigazione sul Web esistono
diversi prodotti software creati ad hoc, uno è ReadingBar 2 (di ReadPlease)
[58] che consiste in un plug-in per Internet Explorer che consente la lettura
vocale e l'evidenziazione di ogni parola durante la sua lettura. Gracamente
consiste in una serie di pulsanti (posti generalmente sotto la barra degli indirizzi
del browser), ognuno dei quali è associato ad una diversa funzione. Tra le
funzioni disponibili, c'è l'avanzamento veloce tra i contenuti, la possibilitá di
selezionare parte del testo e di farlo leggere in un'interfaccia apposita attivabile
anche come nestra pop-up, la possibilitá di salvare i contenuti come testo
2.5 Utente con disabilitá cognitive
29
semplice o come le audio in formato MP3 per riascoltarli successivamente, la
possibilitá di ingrandire il testo, per rendere piú semplice l'individuazione delle
parole sottolineate durante la lettura vocale.
Un altro ausilio per decit cognitivi è Dragon Naturally Speaking (di
Nuance) [59], che è un software molto sosticato e potente, che abbina alle
funzioni di lettura vocale e di evidenziazione dei testi, la gestione della scrittura
con l'interazione col computer per mezzo di comandi vocali. La navigazione
sul web puó avvenire anche senza aver la necessitá di utilizzare né il mouse né
la tastiera. Questo software è inoltre in grado di riconoscere i moduli contenuti
in una pagina web, di rilevarne tutti i componenti (menu di selezione, caselle
radio, campi di immissione testo, pulsanti di invio, eccetera) e di evidenziarli,
ciascuno con un diverso numero identicativo, attraverso il quale, mediante
appositi comandi vocali, l'utente ha la possibilitá di selezionare ogni singolo
campo e di svolgere in esso le operazioni appropriate.
Per quanto riguarda lo sviluppo di contenuti web, è necessario premettere
che ad oggi risulta impossibile fornire contenuti fruibili da tutti gli utenti con
disabilitá cognitive, in quanto alcune sono talmente gravi da non consentire
la comprensione neppure di contenuti chiari e semplici. L'uso delle immagini
puó, per esempio, risultare utile per alcune categorie di disabilitá cognitive e
portare confusione e problemi nell'apprendimento per altre. Uno dei maggiori
problemi legati alle disabilitá cognitive è la dicoltá nell'apprendimento, in
particolar modo per quanto riguarda la dislessia.
Per questo è necessario utilizzare un linguaggio chiaro e semplice, che consentirebbe una maggior comprensione dei contenuti ad un numero maggiore di utenti. Per ottenere testi chiari e semplici è necessario seguire 4 must
imperativi:
• utilizzare parole non ambigue, per aiutare le persone a comprendere i
testi;
• utilizzare parole semplici, in modo che possano essere riconosciute da
utenti con il livello minimo di formazione. Per questo è buona norma
sostituire le parole complesse con altre piú semplici, capaci di esprimere
lo stesso signicato;
• evitare terminologie che non possano essere comprese da tutti, come termini gergali o frasi in altre lingue. Nel caso questo sia necessario, è
bene fornire una traduzione o un glossario informativo, magari attraverso RDF5 , strutturato in modo da poter aggiungere alle pagine glossari e
informazioni di supporto;
• usare regole grammaticali semplici come, per esempio la forma attiva dei
verbi anziché la passiva.
5
acronimo di Resource Description Framework, un nuovo protocollo sviluppato dal W3C
2.5 Utente con disabilitá cognitive
30
Non esistono peró ad oggi strumenti di valutazione e di test che possano vericare se un determinato sito web sia piú o meno accessibile ad utenti
con disabilitá cognitive. Dal punto di vista degli sviluppatori, realizzare siti
web accessibili a questa tipologia di utenti signica soprattutto seguire questi
quattro must e sviluppare attentamente l'organizzazione dei contenuti.
Capitolo 3
Accessibilitá del web
3.1 Denizione di accessibilitá
Il web è denito accessibile quando è in grado di dare alle persone disabili la
possibilitá di percepire, comprendere, navigare, interagire, ed esprimere il proprio contributo. Quando si parla di accessibilitá del web vengono considerati
tutti i tipi di disabilitá, sia che si parli di disabilitá dovute alla vista, all'udito,
siche, della parola, cognitive o neurologiche; nella casistica sono ricomprese
anche le persone piú anziane che spesso sono in possesso di limiti dovuti all'etá. Esistono oggi molti siti e software che rappresentano o implementano delle
vere e proprie barriere rispetto ai disabili e rendono a questi dicile, se non
impossibile, utilizzare il web. Fortunatamente peró sono disponibili diversi siti,
software o hardware creati ad hoc per utenti disabili.
L'accessibilitá del web è un aspetto molto importante nel quotidiano in
quanto ormai Internet contiene elementi riferibili agli ambienti educativi, allo
sviluppo, al government, al commerciale ed a molto altro. Il web deve essere
reso il piú possibile accessibile per poter fornire a tutti gli utenti pari accessi e
pari opportunitá sia che questi siano utenti normodotati oppure no, in modo
da poter dare a tutti la stessa possibilitá di partecipazione nella societá. L'accessibilitá del web deve essere valida indipendentemente dal sistema operativo,
dagli strumenti di navigazione, dalle impostazioni del browser e a prescindere
dalla velocitá di connessione di cui l'utente dispone.
Per essere accessibile un sito deve necessariamente soddisfare almeno la
raccomandazione XHTML 1.0 del W3C; in questo caso tale consorzio rilascia
e permette di inserire nell'applicazione web il logo mostrato in gura 3.1. Se
anche la parte riguardante i fogli di stile (CSS) viene soddisfatta secondo gli
standard deniti in proposito dal W3C, viene rilasciato dallo stesso consorzio
un analogo logo certicatore.
3.2 Linee guida del W3C
32
Figura 3.1: Loghi di certicazione del W3C
3.2 Linee guida del W3C
Il W3C Consortium propone, attraverso il WAI1 [60], delle linee guida da seguire per poter rendere il web piú accessibile: queste sono le WCAG [61]. Le
linee guida sull'accessibilitá dei contenuti web (WCAG, Web Content Accessibility Guidelines) coprono un ampio range di raccomandazioni per rendere i
contenuti web piú accessibili. Seguendo queste linee guida si possono rendere
i contenuti accessibili ad un'ampia fascia di persone con disabilitá, compresi
i non vedenti, gli ipovedenti, i non udenti, coloro con disabilitá dell'apprendimento, con limitazioni cognitive o di movimento, con dicoltá di linguaggio,
o con combinazioni di queste. Utilizzando le linee guida tracciate dal W3C
Consortium si possono anche rendere i contenuti web piú usabili per gli utenti
in generale. Le WCAG 2.0 sono state pubblicate di recente (3 Novembre 2008)
e sono un'evoluzione della versione 1.0 (a cui fanno riferimento) pubblicata dal
W3C nel Maggio 1999.
Di seguito sono elencate le direttive WCAG 2.0:
1.
Percezione:
le informazioni e l'interfaccia utente devono essere presentabili all'utente nella maniera in cui questi puó percepirle.
(a)
Testo alternativo : fornire del testo alternativo per ogni contenuto
non testuale cosí da poter essere trasformato in altra forma rispetto
alle necessitá dell'utente come large-print, braille, parlato, simboli
o linguaggio semplice;
Media temporali : fornire alternative per i media basati sul tempo;
(c) Adattabilitá : creare un contenuto che puó essere visualizzato in
(b)
diversi modi (per esempio un layout piú semplice) senza perdere
informazioni o parti strutturali;
(d)
2.
1
Distinguibilitá : rendere semplice per gli utenti la visione e l'ascolto
dei contenuti separando il primo piano dallo sfondo.
Operabilitá:
la navigazione e i componenti dell'interfaccia graca devono essere operabili.
(a)
Accessibilitá da tastiera : rendere tutte le funzionalitá eseguibili
(b)
Tempistica : fornire all'utente tempo a sucienza per leggere e uti-
anche da tastiera.
lizzare il contenuto.
Web Accessibility Initiative
3.2 Linee guida del W3C
3.
33
(c)
Attacchi : non progettare il contenuto in modo che causi degli at-
(d)
Navigabilitá : fornire un modo per aiutare la navigabilitá dell'utente,
tacchi all'utente. Fanno parte di questo tipo di attacchi scritte o
immagini composte da luci in movimento oppure oggetti lampeggianti che potrebbero scatenare delle crisi ad utenti che sorono per
esempio di epilessia fotosensibile.
per ricercare contenuti e per determinare la posizione dell'utente nel
web.
Comprensibilitá: le informazioni e le operazioni dell'interfaccia graca
devono essere comprensibili.
Leggibilitá : rendere il contenuto testuale leggibile e comprensibile.
(b) Prevedibilitá : rendere la visualizzazione ed il funzionamento delle
(a)
pagine web prevedibili e coerenti.
(c)
4.
Assistenza per gli input : aiutare l'utente ad evitare e a corregge-
re gli errori, riducendo per quanto possibile il numero degli errori
irreversibili.
Robustezza:
il contenuto deve essere sucientemente robusto in modo
da poter essere interpretato con adabilitá da una grande varietá di user
agent, incluse le tecnologie assistive.
(a)
Compatibilitá : massimizzare la compatibilitá con gli user agent
presenti e con quelli futuri, comprese le tecnologie assistive.
Le WCAG 2.0 si applicano a tutte le tecnologie Web; questo garantisce che
il Web si mantenga aperto alle persone con disabilitá anche se si introducono
continuamente nuove tecnologie. Le WCAG 2.0 rappresentano il risultato di un
grandissimo lavoro collaborativo, e la loro forma nale è largamente supportata
dalle aziende, dalle organizzazioni di disabili, dalla ricerca e dai governi. Questo
equilibrio è essenziale anché le WCAG 2.0 si pongano come uno standard
internazionalmente condiviso per l'accessibilitá del Web.
Queste direttive sono ancora piuttosto recenti e non dispongono degli strumenti necessari per la validazione, per questo, per eettuare una verica di
accessibilitá, ci si deve riferire ancora alla prima versione: le WCAG 1.0.
L' Appendice A della versione 1.0 è interamente dedicata alla validazione,
ed esprime una raccomandazione generale rivolta agli autori di pagine web:
Vericate l'accessibilitá per mezzo di strumenti automatici e della revisione
umana. I metodi automatici sono in genere rapidi e convenienti ma non possono identicare tutti i problemi di accessibilitá. La revisione umana puó aiutare
a garantire la chiarezza del linguaggio e la semplicitá della navigazione .
Quando un sito web soddisfa tutti i requisiti delle direttiva WCAG 1.0, gli
autori possono esporre, sulle pagine vericate del sito, degli appositi bollini
3.3 Normative nazionali
34
di conformitá alle WCAG 1.0. Esistono 3 livelli di accessibilitá [62]: Level A,
Double A e Triple A, come mostrati in gura 3.2.
Figura 3.2: Loghi di certicazione WAI-WCAG 1.0
Nella creazione di un sito web accessibile, il primo livello deve essere sempre
soddisfatto, non soddisfarlo renderebbe i relativi contenuti del tutto inaccessibili per alcune categorie di utenti; il secondo livello dovrebbe essere soddisfatto
per non rendere dicoltoso l'accesso ai contenuti per alcune categorie di utenti; il terzo livello puó essere soddisfatto e la sua mancata applicazione puó, al
piú, rendere meno facili da utilizzare, ma non inaccessibili, i contenuti.
3.3 Normative nazionali
In ambito nazionale la legge in vigore in Italia è la Legge Stanca num. 4/2004
[63] pubblicata nella Gazzetta Uciale il 13 Gennaio 2004. Tale legge denisce all'articolo 2 l'accessibilitá come la capacitá dei sistemi informatici, nelle
forme e nei limiti consentiti dalle conoscenze tecnologiche, di erogare servizi e
fornire informazioni fruibili, senza discriminazioni, anche da parte di coloro che
a causa di disabilitá necessitano di tecnologie assistive o congurazioni particolari; denisce inoltre le tecnologie assistive come gli strumenti e le soluzioni
tecniche, hardware e software, che permettono alla persona disabile, superando o riducendo le condizioni di svantaggio, di accedere alle informazioni e ai
servizi erogati dai sistemi informatici. Sono due gli obiettivi e le nalitá che
la Legge Stanca si pregge (articolo 1):
1. La
Repubblica riconosce e tutela il diritto di ogni persona ad accedere a
tutte le fonti di informazione e ai relativi servizi, ivi compresi quelli che
si articolano attraverso gli strumenti informatici e telematici .
2. È tutelato e garantito,
in particolare, il diritto di accesso ai servizi informatici e telematici della pubblica amministrazione e ai servizi di pubblica
utilitá da parte delle persone disabili, in ottemperanza al principio di
uguaglianza ai sensi dell'articolo 3 della Costituzione .
I soggetti erogatori che, ai sensi dell'articolo 3 della legge, sono obbligati
ad applicare dette norme sono le pubbliche amministrazioni, gli enti pubblici
economici, le aziende private concessionarie di servizi pubblici, le aziende municipalizzate regionali, gli enti di assistenza e di riabilitazione pubblici, le aziende
di trasporto e di telecomunicazione a prevalente partecipazione di capitale pubblico e le aziende appaltatrici di servizi informatici. Sarebbe opportuno che
3.3 Normative nazionali
35
anche altre categorie di soggetti, come privati o aziende private applicassero i
contenuti tecnici deniti in tale legge.
Praticamente la legge Stanca denisce 22 requisiti [64] di accessibilitá per
i siti Internet:
Realizzare le pagine e gli oggetti al loro interno utilizzando
tecnologie denite da grammatiche formali pubblicate, nelle versioni piú
recenti disponibili quando sono supportate dai programmi utente. Utilizzare elementi ed attributi in modo conforme alle speciche, rispettandone
l'aspetto semantico.
1. Enunciato:
In particolare, per i linguaggi a marcatori HTML (HypertText Markup
Language) e XHTML (eXtensible HyperText Markup Language):
(a) Per tutti i siti di nuova realizzazione, utilizzare almeno la versione
4.01 dell'HTML o preferibilmente la versione 1.0 dell'XHTML, in
ogni caso con DTD (Document Type Denition - Denizione del
Tipo di Documento) di tipo Strict;
(b) Per i siti esistenti, in sede di prima applicazione, nel caso in cui
non sia possibile ottemperare al punto a) è consentito utilizzare la
versione dei linguaggi sopra indicati con DTD Transitional, ma con
le seguenti avvertenze:
i. evitare di utilizzare, all'interno del linguaggio a marcatori con il
quale la pagina è realizzata, elementi ed attributi per denirne
le caratteristiche presentazionali (per esempio, caratteristiche
dei caratteri del testo, colori del testo stesso e dello sfondo,
ecc.), ricorrendo invece ai Fogli di Stile CSS (Cascading Style
Sheets) per ottenere lo stesso eetto graco;
ii. evitare la generazione di nuove nestre; ove ció non fosse possibile, avvisare esplicitamente l'utente del cambiamento del focus;
iii. pianicare la transizione dell'intero sito alla versione con DTD
Strict del linguaggio utilizzato. Il piano di transizione va presentato alla Presidenza del Consiglio dei Ministri - Dipartimento per l'Innovazione e le Tecnologie da parte del responsabile
della accessibilitá informatica (Art. 9 Regolamento).
2. Enunciato: Non è consentito l'uso dei frame nella realizzazione di nuovi
siti.
In sede di prima applicazione, per i siti esistenti giá realizzati con frame,
è consentito l'uso di HTML 4.01 o XHTML 1.0 con DTD frameset, ma
con le seguenti avvertenze:
(a) evitare di utilizzare, all'interno del linguaggio a marcatori con il
quale la pagina è realizzata, elementi ed attributi per denirne le
3.3 Normative nazionali
36
caratteristiche presentazionali (per esempio, caratteristiche dei caratteri, del testo, colori del testo stesso e dello sfondo, ecc.), ricorrendo invece ai Fogli di Stile CSS (Cascading Style Sheets) per
ottenere lo stesso eetto graco;
(b) fare in modo che ogni frame abbia un titolo signicativo per facilitarne l'identicazione e la navigazione. Se necessario, descrivere
anche lo scopo dei frame e la loro relazione;
(c) pianicare la transizione a XHTML almeno nella versione 1.0 con
DTD Strict dell'intero sito. Il piano di transizione va presentato
alla Presidenza del Consiglio dei Ministri - Dipartimento per l'Innovazione e le Tecnologie da parte del responsabile della accessibilitá
informatica (Art. 9 Regolamento).
Fornire una alternativa testuale equivalente per ogni oggetto
non di testo presente in una pagina e garantire che quando il contenuto non testuale di un oggetto cambia dinamicamente vengano aggiornati
anche i relativi contenuti equivalenti predisposti. L'alternativa testuale equivalente di un oggetto non testuale deve essere commisurata alla
funzione esercitata dall'oggetto originale nello specico contesto.
3. Enunciato:
Garantire che tutti gli elementi informativi e tutte le funzionalitá siano disponibili anche in assenza del particolare colore utilizzato
per presentarli nella pagina.
4. Enunciato:
Evitare oggetti e scritte lampeggianti o in movimento le cui
frequenze di intermittenza possano provocare disturbi da epilessia fotosensibile, disturbi della concentrazione o che possano causare il malfunzionamento delle tecnologie assistive utilizzate.
5. Enunciato:
Qualora esigenze informative richiedano comunque il loro utilizzo, avvisare l'utente del possibile rischio prima di presentarli e predisporre metodi
che consentano di evitare tali elementi.
Garantire che siano sempre distinguibili il contenuto informativo (foreground) e lo sfondo (background), ricorrendo a un suciente
contrasto (nel caso del testo) o a dierenti livelli sonori (in caso di parlato con sottofondo musicale).
6. Enunciato:
Un testo in forma di immagine in genere è da evitare ma, se non è
possibile farne a meno, deve essere realizzato con gli stessi criteri di
distinguibilitá indicati in precedenza.
Utilizzare mappe immagine sensibili di tipo lato client piuttosto che lato server, eccetto nel caso in cui le zone sensibili non possano
essere denite con una delle forme geometriche predenite indicate nella
DTD adottata.
7. Enunciato:
3.3 Normative nazionali
37
Se vengono utilizzate mappe immagine lato server, fornire i collegamenti di testo alternativi necessari per poter ottenere tutte
le informazioni o i servizi raggiungibili interagendo direttamente con la
mappa.
8. Enunciato:
Per le tabelle dati usare gli elementi (marcatori) e gli attributi
previsti dalla DTD adottata per descrivere i contenuti e identicare le
intestazioni di righe e colonne.
9. Enunciato:
Per le tabelle dati usare gli elementi (marcatori) e gli attributi
previsti nella DTD adottata per associare le celle di dati e le celle di
intestazione che hanno due o piú livelli logici di intestazione di righe o
colonne.
10. Enunciato:
Usare i fogli di stile per controllare la presentazione dei contenuti e organizzare le pagine in modo che possano essere lette anche
quando i fogli di stile siano disabilitati o non supportati.
11. Enunciato:
La presentazione e i contenuti testuali di una pagina devono potersi adattare alle dimensioni della nestra del browser utilizzata
dall'utente senza sovrapposizione degli oggetti presenti o perdita di informazioni tali da rendere incomprensibile il contenuto, anche in caso di ridimensionamento, ingrandimento o riduzione dell'area di visualizzazione
e/o dei caratteri rispetto ai valori predeniti di tali parametri.
12. Enunciato:
13. Enunciato:
Qualora si utilizzino le tabelle a scopo di impaginazione:
(a) garantire che il contenuto della tabella sia comprensibile anche quando questa viene letta in modo linearizzato;
(b) utilizzare gli elementi e gli attributi di una tabella rispettandone il
valore semantico denito nella specica del linguaggio a marcatori
utilizzato.
Nei moduli (form), associare in maniera esplicita le etichette ai rispettivi controlli, posizionandole in modo che per chi utilizza le
tecnologie assistive la compilazione dei campi sia agevolata.
14. Enunciato:
Garantire che le pagine siano utilizzabili quando script, applet, o altri oggetti di programmazione sono disabilitati oppure non supportati.
15. Enunciato:
Se questo non è possibile:
(a) fornire una spiegazione della funzionalitá svolta;
(b) garantire una alternativa testuale equivalente in modo analogo a
quanto indicato nel requisito n. 3
3.3 Normative nazionali
38
Garantire che i gestori di eventi che attivano script, applet
oppure altri oggetti di programmazione o che possiedono una propria
specica interfaccia, siano indipendenti da uno specico dispositivo di
input.
16. Enunciato:
Garantire che le funzionalitá e le informazioni veicolate per
mezzo di oggetti di programmazione, oggetti che utilizzino tecnologie non
denite da grammatiche formali pubblicate, script e applet siano direttamente accessibili.
17. Enunciato:
Qualora un lmato o una presentazione multimediale siano
indispensabili per la completezza dell'informazione fornita o del servizio erogato, predisporre una alternativa testuale equivalente sincronizzata
in forma di sotto-titolazione e/o di descrizione vocale, oppure predisporre un riassunto o una semplice etichetta per ciascun elemento video o
multimediale, tenendo conto del livello di importanza e delle dicoltá di
realizzazione nel caso di presentazioni in tempo reale.
18. Enunciato:
Rendere chiara la destinazione di ciascun collegamento ipertestuale (link) con testi signicativi anche se letti indipendentemente dal
proprio contesto oppure associare ai collegamenti testi alternativi che possiedano analoghe caratteristiche esplicative. Prevedere meccanismi che
consentano di evitare la lettura ripetitiva di sequenze di collegamenti
comuni a piú pagine.
19. Enunciato:
Se per la fruizione del servizio erogato in una pagina è previsto un intervallo di tempo predenito entro il quale eseguire determinate
azioni, è necessario avvisare esplicitamente l'utente, indicando il tempo massimo utile e fornendo eventuali alternative per fruire del servizio
stesso.
20. Enunciato:
I collegamenti presenti in una pagina devono essere selezionabili e attivabili tramite comandi da tastiera, tecnologia in emulazione
di tastiera o tramite sistemi di puntamento diversi dal mouse.
21. Enunciato:
Per facilitare la selezione e l'attivazione dei collegamenti con queste tecnologie assistive è anche necessario garantire che:
(a) la distanza verticale di liste di link e la spaziatura orizzontale tra
link consecutivi sia di almeno 1 em;
(b) le distanze orizzontale e verticale tra i pulsanti di un modulo (form)
sia di almeno 1 em;
(c) le dimensioni dei pulsanti in un modulo (form) siano tali da rendere chiaramente leggibile l'etichetta in essi contenuta, per esempio
utilizzando opportunamente il margine tra l'etichetta e i bordi del
pulsante.
3.3 Normative nazionali
39
In sede di prima applicazione, per i siti esistenti, in ogni
pagina che non possa essere ricondotta al rispetto dei presenti requisiti,
fornire un collegamento a una pagina che li rispetti, contenga informazioni e funzionalitá equivalenti e sia aggiornata con la stessa frequenza
della pagina originale, evitando la creazione di pagine di solo testo.
22. Enunciato:
Il collegamento alla pagina accessibile deve essere proposto in modo
evidente all'inizio della pagina non accessibile.
Capitolo 4
Linguaggi del web
Come si è giá accennato, l'accessibilitá del web ruota intorno agli standard
deniti dal W3C, in particolare a 3 linguaggi: l'XML, l'HTML e i CSS. Di seguito verranno brevemente introdotti il linguaggio XHTML, che come vedremo
è un'evoluzione dell'HTML verso l'XML, i fogli di stile (i CSS) e verrá brevemente introdotto il linguaggio PHP che, a dierenza dei precedenti due, non
è uno standard del W3C, ma è indispensabile per il funzionamento di molte
applicazioni web.
4.1 XHTML
Prima della nascita dell'XHTML si faceva tutto con HTML: layout, stile, contenuto erano un tutt'uno ed erano implementati proprio da questo linguaggio.
In seguito è stato ritenuto piú funzionale separare il contenuto dalla presentazione e dalla logica di programmazione per poter avere progetti piú gestibili,
informazioni piú facili da ritrovare e siti piú accessibili e trasportabili su altri sistemi. La forza del nuovo linguaggio che veniva a nascere stava proprio
nell'integrazione dei singoli elementi.
Il 26 gennaio del 2000 il World Wide Web Consortium (W3C) rilasciava la
prima specica del linguaggio di markup destinato a sostituire l'HTML: nasceva cosí l'XHTML. In realtá la nuova specica di tale linguaggio occupava una
sola pagina poichè non deniva nuovi tag, elementi, o nient'altro di rivoluzionario rispetto all'HTML 4.0 che andava a sostituire. Questo fu comunque un
passo decisivo e fondamentale. L'elemento chiave é la X che dierenzia i due
nomi, poiché questa sta per EXTENSIBLE; cioè la stessa X su cui si fonda
un concetto fondamentale per la comunicazione digitale: l'XML (Extensible
Markup Language). Finiva cosí il tempo dell'anarchia nel web, cioè il tempo
del codice sporco ma basta che funzioni e degli elementi proprietari imposti.
In maniera piú semplicistica si potrebbe ricondurre il tutto ad una semplice
espressione:
XHTML = HTML + XML
4.1 XHTML
41
Dalla quale si puó facilmente vedere come l'XHTML sia la riformulazione
di HTML come applicazione XML. Anziché sfornare una nuova versione del
linguaggio HTML (la 5.0), il Consortium ha eseguito una vera e propria ridenizione: niente nuovi tag, attributi o metodi (rimasti essenzialmente quelli
di HTML 4.0). In pratica: il vocabolario è rimasto uguale, ma sono cambiate le regole sintattiche. In questo modo venivano soddisfatte due esigenze
fondamentali:
1. portare HTML nella famiglia XML con i beneci che ció comporta in
termini di estensibilitá e rigore sintattico.
2. mantenere la compatibilitá con i software che supportano HTML 4.0.
La versione 1.0 di XHTML è stata pubblicata il 26 gennaio 2000 e seguita
da una versione rivista dell'ottobre 2001. Questa è stata basata sulle tre DTD
giá denite per questo linguaggio:
• DTD Strict
• DTD Transitional
• DTD Frameset
Esiste poi anche una versione ridotta (l'XHTML Basic) specicamente
pensata per dispositivi mobili (PDA, cellulari), contenente solo gli elementi
che si adattano a questi dispositivi (esclude, ad esempio, i frames che non
hanno ovviamente senso in tale contesto) e destinata a sostituire WML come
linguaggio di base per le applicazioni WAP. La versione 1.1 di XHTML, basata
sulla DTD Strict della versione 1.0, rappresenta la prima formulazione pratica
del concetto di modularitá. In questa visione, gli elementi fondamentali (in
pratica l'insieme di tag che deniscono la struttura di un documento) sono
raggruppati in una serie di moduli indipendenti che possono essere implementati o esclusi secondo le necessitá. Secondo il W3C, la versione 1.1, è la base
della futura estensione di XHTML con altri set di linguaggi o moduli, anche
personalizzati.
Sono diversi i vantaggi derivati dall'utilizzo di XHTML; eccone alcuni:
1.
Codice pulito e ben strutturato : Il passaggio ad XHTML puó essere visto
come un ritorno alle origini. HTML è nato come linguaggio per denire
la struttura di un documento; senza aver nulla a che vedere con la presentazione. Tuttavia l'HTML è stato impiegato a svolgere compiti per
cui non era stato pensato ed addirittura manipolato nella forma. Il
caso delle tabelle è macroscopico: sono nate per la presentazione di dati
tabulari ma sono state impiegate come l'unico mezzo per costruire il layout della pagina. Altro esempio: quando fu sentita la necessitá di gestire
la tipograa dei documenti, venne introdotto il tag <font> con i relativi
attributi. La conseguenza si riveló essere quella di avere pagine cariche
4.1 XHTML
42
di elementi inutili, piú pesanti, dicili da modicare. La responsabilitá
principale per questo uso improprio di HTML non è da attribuire agli
sviluppatori poiché la tecnologia preposta a tale scopo (CSS1 denita nel
1996 dal W3C) non era ancora supportata dai browser, infatti ha iniziato
ad esserlo solo dal 2000-2001. Con XHTML, almeno nella sua versione
Strict, si torna ad un linguaggio che denisce solo la struttura. Risultato:
codice piú pulito, piú logico e piú gestibile.
2.
Portabilitá : La portabilitá è la capacitá/possibilitá di un documento di
essere visualizzato ed implementato ecacemente su diversi sistemi: PC,
PDA, cellulari WAP/GPRS, Web-TV, eccetera. Ora, se si pensa alle
limitazioni in termini di memoria, ampiezza dello schermo e usabilitá di
un terminale mobile, si capirá perché è importante un linguaggio essenziale, centrato sulla struttura del documento e privo di elementi inutili.
È essenziale avere una pagina ben impostata, nella quale sono ben deniti gli elementi: un titolo, un'intestazione, un paragrafo, una lista per
scandire gli argomenti. La piattaforma WAP 2 e tutta l'evoluzione dei
servizi mobili si fonderanno sull'integrazione tra XHTML e CSS, con il
supporto delle necessarie tecnologie sul lato server, come dichiarato dal
Wap Forum.
3.
Estensibilitá : Dal momento che XHTML ha ereditato anche l'estensibi-
4.
Accessibilitá : I documenti scritti in XHTML e validati sono naturalmen-
litá da XML è facilissimo incorporare in un documento parti scritte in
uno dei tanti linguaggi della famiglia XML; come per esempio formule
matematiche complesse dichiarando il namespace relativo al linguaggio
MathML (inserendo nella pagina i tag specici di quest'ultimo). I frutti
di questo approccio, che è il piú semplice dei tanti possibili, sono ancora
lontani dalla maturitá. L'implementazione da parte dei browser è infatti
carente, ma non mancano esempi funzionanti e di grande potenza. Esiste
infatti (di recente denizione) anche l'XForms, un linguaggio capace di
estendere in maniera impressionante l'uso dei classici form di HTML.
te piú accessibili di quelli scritti in HTML. Da una parte la validazione richiede l'uso obbligatorio di funzionalitá come il testo alternativo
per le immagini; dall'altra, una pagina che evita elementi non standard,
ben denita nella struttura è di gran lunga meglio gestibile da browser
alternativi come quelli vocali o testuali.
Un documento XHTML deve essere convalidato rispetto ad una delle tre
DTD XHTML del W3C; questo puó essere valido e ben formato (due concetti
fondamentali derivati da XML). Un documento si dice ben formato quando
rispetta le regole della sintassi XML, presenta cioè un elemento radice, un
corretto annidamento degli elementi, una chiusura obbligatoria dei tag vuoti,
eccetera. Si dice che un documento è valido quando usa correttamente un
4.1 XHTML
43
linguaggio e tutti gli elementi specici e consentiti. Queste regole vengono stabilite nella DTD (Document Type Denition), la quale ha il compito di identicare gli elementi (tag) consentiti, cosa questi signicano e come devono essere
trattati (ad esempio, stabilisce quali sono gli attributi possibili per ciascun
elemento). In un documento XHTML la DTD deve essere obbligatoriamente
specicata all'inizio.
Anché una pagina web sia conforme alle speciche del W3C, e dunque
validabile, è necessario, che questa dia esito positivo alla verica tramite il
parser SGML (che ne verica la correttezza semantica e sintattica); in questo
caso la pagina si dice conforme (in base alla DTD specicata) alla specica
HTML 4.1 [65] e XHTML 1.1 [66] e puó essere etichettata da un'apposita
immagine che ne garantisce la validitá (come giá visto nel paragrafo 3.1).
Il web non accenna a rallentare e continua ad evolversi, di conseguenza
anche i linguaggi si evolvono e nascono nuove versioni e nuovi standard; stanno infatti nascendo due nuove versioni di HTML e di XHTML: HTML 5 e
XHTML 2.0 [67]. Si inizia a parlare di XHTML 2.0 giá dal 5 Agosto 2002
con il primo Working Draft del W3C in proposito [68], il quale è stato seguito
ad altri Working Draft uciali, no all'ultimo in ordine temporale, quello del
26 Luglio 2006 [69]. Nonostante i diversi Working Draft questo linguaggio ad
oggi non è ancora utilizzato, i tempi tuttavia stanno maturando e l'avvento
di questa versione si sta sempre piú avvicinando, nonostante lo scetticismo
di molti che lo vedono come inadatto per il web. XHTML 2.0 porta diverse
innovazioni ed è stato pensato per sfruttare a pieno le potenzialitá della modularitá (attraverso il meccanismo dei nameframes e con nuovi standard W3C,
per esempio XForms e XFrames) e per essere focalizzato sempre di piú sulla
struttura e sempre meno sulla presentazione. Innovazioni importanti saranno
date dall'inserimento di elementi come <section> (elemento contenitore capace di denire delle gerarchie), <ln> (che permetterá la creazione di liste
di navigazioni), <separator/> (un separatore strutturale che permetterá di
abbandonare il separatore presentazionale <br/>), dall'inserimento degli attributi href e src per tutti gli elementi (il che renderá obsoleto l'elemento
<a>) e dall'eliminazione del tag <img> per le immagini (che sará sostituito
da un uso piú completo di <object>).
L'HTML 5 [70] rappresenta una transizione verso l'XHTML 2.0, tanto che
viene spesso denominato come X/HTML 5. Questo linguaggio si pregge
principalmente due scopi:
• Creare uno standard web meno rigido, piú essibile e piú compatibile rispetto al codice XHTML 2 per permettere la visualizzazione delle pagine
anche con la presenza di minimi errori nel codice
• Inserire il parsing dell'errore, facendo cosí in modo che gli errori presenti
nelle pagine web vengano corretti in ugual modo dai browser.
4.2 CSS
44
L'innovazione regina di HTML 5 è l'introduzione di nuovi elementi di blocco che permettono di creare in modo semplice ed immediato la struttura di
una pagina; questi nuovi elementi (<header>, <nav>, <section>, <article>,
<aside> e <footer>) hanno il compito di specializzare l'elemento di blocco
generico di denizione (<div>) in base al ruolo che devono avere nella pagina. Altre innovazioni sono date dall'inserimento dell'elemento <dialog> (il
quale rappresenta una conversazione e contiene gli elementi <dt> e <dd> che
identicano rispettivamente chi parla e cosa dice) e da <gure> con il suo elemento glio <legend> (i quali permetteranno di inserire delle didascalie alle
immagini). Rispetto ad XHTML 2.0 X/HTML 5, in futuro, potrá piú presumibilmente essere scelto da chi avrá necessitá di massima compatibilitá, anche
con le versioni precedenti di HTML.
4.2 CSS
Soprattutto con la nascita dell'XHTML, la logica di impaginazione del layout è
stata trasferita dal codice HTML ai fogli di stile (CSS), i contenuti separati dalla loro presentazione graca e l'elasticitá delle interfacce e la ridimensionabilitá
dei testi garantiti a qualunque livello di pagina. Dietro al semplice acronimo
CSS (Cascading Style Sheets - Fogli di stile a cascata) [71] si nasconde uno dei
fondamentali linguaggi standard del W3C. La sua storia cammina su binari
paralleli rispetto a quelli di HTML, di cui vuole essere l'ideale complemento.
Da sempre infatti, nelle intenzioni del Consortium, l'HTML avrebbe dovuto
essere visto semplicemente come un linguaggio strutturale, alieno a qualunque
scopo attinente la presentazione di un documento; in realtá a questo si è giunti
solo con l'XHTML. Il compito dei CSS è sintetizzabile in sole 5 parole: separare
il contenuto dalla presentazione.
Come la X per l'XHTML, l'innovazione di questa proposta è la parola
chiave Cascading che indica che è prevista ed incoraggiata la presenza di
fogli di stile multipli, che agiscono uno dopo l'altro, in cascata, per indicare
le caratteristiche tipograche e di layout di un documento HTML. La prima
specica uciale di CSS (CSS1) [72] risale al dicembre del 1996, mentre è del
maggio 1998 la seconda versione: CSS2 [73]. Quest'ultima non portó nessun
stravolgimento, ma molte aggiunte rispetto alla prima come nuove proprietá,
valori di proprietá e denizioni per stili non canonici come quelli rivolti alla
stampa o alla denizione di contenuti audio. È attualmente allo stato di Working Draft la nuova specica CSS3 [74]. Grazie ai CSS è possibile controllare
tutto ció che riguarda il layout della pagina, dal colore ai font, dall'interlinea alle decorazioni, dell'indentatura alla giusticazione del testo. Grazie all'avvento
dei CSS è possibile astrarsi completamente dal codice sorgente della pagina ed
impostarne la struttura senza doversi appoggiare all'uso di tabelle che appesantirebbero la pagina rendendola anche piú inaccessibile.
4.3 PHP
45
Sintatticamente un foglio di stile è composto da 4 elementi:
•
Proprietá, cioè una caratteristica di stile assegnabile ad un elemento
(CSS1 prevede 53 proprietá diverse, mentre CSS2 121). Sono per esempio
proprietá font-family e margin.
•
Statement, cioè l'indicazione di una proprietá CSS secondo la sintassi:
proprietá: valore:.
•
Selettore, cioè la specicazione di un elemento o di una classe di elementi
dell'albero (X)HTML al ne di associarvi delle caratteristiche CSS. I
selettori possono essere di tipo (per esempio body), di classe (E.bar o
E#bar), di prossimitá (E F, E>F o E + F), di attributi (E[foo] o
E[foo=bar]), di pseudo-classi (per esempio E:rst-child) e di pseudoelementi (E:rst-line)1 .
•
Regola, cioè un blocco di statement associati ad un elemento attraverso
l'uso di un selettore. Segue la sintassi selettore { statement; }, dove per
ogni selettore possono essere deniti piú statement elencati in sequenza.
•
@Regole, cioè 5 meta-indicazioni per la specica di ambiti o meta-regole
del foglio di stile: @import, @media, @font-face, @charset, @page.
Il funzionamento dei CSS si basa tutto sul Box model poiché la visualizzazione di un documento avviene identicando lo spazio di visualizzazione di
ciascun elemento. Ogni elemento è denito da una scatola (box) all'interno
della quale si trova il contenuto. Le scatole sono in relazione le une rispetto alle altre e posseggono diverse proprietá che ne deniscono la posizione, la
visualizzazione o gli elementi decorativi. Come è giá stato accennato nel Capitolo 2 la presentazione e la visualizzazione degli elementi di blocco (i box del
Box model) puó creare dei problemi, poiché alcuni browser (Internet Explorer
e derivati) interpretano male tale modello creando dierenze sostanziali rispetto ad altri software di navigazione. È perció buona norma, nella creazione
di una pagina web, testare la stessa su diversi browser oppure applicare degli
accorgimenti graci che possano aggirare questo problema.
4.3 PHP
Il PHP (il cui acronimo ricorsivo sta per Hypertext PreProcessor) è un linguaggio di scripting interpretato, con licenza open source e parzialmente libera. Originariamente è stato concepito per realizzare pagine web dinamiche, ma
attualmente è utilizzato principalmente per sviluppare applicazioni web lato
server; puó anche essere usato per scrivere script a linea di comando o applicazioni stand-alone con interfaccia graca. PHP nasce nel 1994 per opera di
1
Negli esempi si sono usati i valori E, F, foo e bar solo a scopo illustrativo, infatti
tali valori sono senza senso in (X)HTML/CSS
4.3 PHP
46
Rasmus Lerdorf, ma solamente dal 1998 comincia a diventare talmente maturo
da poter competere con ASP (un altro linguaggio lato server sviluppato da Microsoft) e da essere usato su larga scala. Attualmente PHP ha raggiunto la sua
quinta versione, la quale è stata sviluppata da un team di programmatori che
comprende ancora Lerdorf, il suo creatore. La popolaritá del linguaggio PHP
è in costante crescita grazie alla sua essibilitá; questa è data anche dal fatto
che PHP riprende per molti versi la sintassi del C e del Perl. È un linguaggio
a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma della
programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori
fra bit e la gestione di stringhe come array, permettono in alcuni casi di agire
a basso livello; tuttavia è fondamentalmente un linguaggio di alto livello, caratteristica questa raorzata dall'esistenza delle sue moltissime API. PHP è in
grado di interfacciarsi ad innumerevoli database, tra tutti MySQL e Oracle, di
supportare numerose tecnologie, tra cui XML, SOAP, IMAP e FTP, di integrarsi con altri linguaggi/piattaforme quali Java e .NET. L'interazione di PHP
è forte soprattutto con Apache (del quale fornisce un'API specica), e con il
database MySQL (per il quale possiede numerosissime API).
Capitolo 5
ClaimStudentID
Web-based
tool for students' on-line identity management and web 2.0 content
aggregation .
Questa è la descrizione di ClaimStudentID [1] fornita dal suo autore. Piú
dettagliatamente ClaimStudentID è un tool web 2.0 di aggregazione di contenuti rilasciato dall'Universitá degli Studi di Urbino e rappresenta di fatto una
learning community dedicata agli studenti. Ogni utente ha la possibilitá di
associare alla propria identitá, certicata dall'Universitá, un prolo personale
e, soprattutto, una serie di collegamenti a contenuti Web 2.0 dei quali sono
autori e che sono presenti in rete. Il sistema consente poi ad utenti esterni
di eettuare ricerche su questi contenuti tramite le API1 messe a disposizione
dalle risorse Web sulle quali questi sono stati creati (Flickr e Google).
Spesso i tool di aggregazione di contenuti sono in grado di fornire una
identitá personale unica ad un utente, ma non sono altrettanto in grado di certicarla e quindi di garantire la reale identitá di una persona. ClaimStudentID,
al contrario, è in grado di poter certicare l'identitá di un suo utente poiché
sfrutta il fatto che l'Universitá di Urbino sia una istituzione e ne utilizza il
sistema informativo. Ogni studente per potersi creare un prolo deve necessariamente utilizzare l'username e la password forniti dall'Universitá al momento
dell'immatricolazione e memorizzati nell'IDMS2 . Poiché l'identitá dell'utente
è garantita e certicata, è possibile associare ad essa dei contenuti: da questa
premessa nasce ClaimStudentID.
Questa applicazione prevede:
• La verica dell'identitá di uno studente per certicare i suoi contenuti
personali
• La possibilitá per gli studenti di aggregare i propri contenuti associandoli
alla propria identitá certicata
1
2
Application Programming Interface, Interfaccia di Programmazione di un'Applicazione
IDentity Management System
5.1 People services
48
• La nascita di una community degli studenti dell'Universitá di Urbino
come conseguenza di questo servizio
• L'opportunitá da parte di un utente esterno di ricercare e visualizzare i
proli pubblici dei membri della community, di cercare i contenuti presenti nel servizio oppure quelli derivanti da una meta-ricerca basata sui
link aggregati dagli studenti
• Una crescita spontanea di conoscenza e di informazioni derivate dai
contenuti condivisi.
ClaimStudentID fornisce diversi servizi, ed in base a questi puó essere suddiviso in 3 parti: la prima si occupa dei servizi oerti agli utenti (People
services ), la seconda dell'aggregazione e condivisione dei contenuti (Content
aggregation services ) e la terza delle meta ricerche (Meta-search services ).
5.1 People services
I servizi oerti all'utente sono quelli di management del prolo e dell'identitá
personale. Come si è giá visto, ClaimStudentID è in grado di certicare l'identitá di una persona, ma non puó comunque prendersi la responsabilitá di
certicare anche delle informazioni personali inserite dall'utente. In particolare
l'Universitá si preoccupa di validare i dati personali giá presenti nell'IDMS e
non quelli inseriti dall'utente o dal sistema (tabella 5.1).
Dato
Fiscal code
Name
Surname
Role
Degree Program
Degree program visibility
Course year
Course year visibility
E-mail address
Presentation
Picture le
Curriculum Vitae le
Creation date
Latest update date
Sorgente
IDMS
IDMS
IDMS
Inserimento
Inserimento
Inserimento
Inserimento
Inserimento
Inserimento
Inserimento
Inserimento
Inserimento
Sistema
Sistema
Validazione Universitá
Si
Si
Si
No
No
No
No
No
No
No
No
No
N.A.
N.A.
Tabella 5.1: Certicazione e validazione dei dati in ClaimStudentID
Fanno parte dei servizi all'utente le seguenti operazioni:
5.2 Content aggregation services
49
• Login e autenticazione (solo se l'utente ha giá un prolo oppure se possiede le credenziali istituzionali)
• Creazione di un proprio prolo personale (solo utenti autenticati)
• Editing del proprio prolo (solo utenti autenticati)
• Visualizzazione del proprio prolo (solo utenti autenticati)
• Meta-ricerca sulle persone secondo nome, cognome o corso di laurea e
visualizzazione del prolo
• Meta-ricerca sulle persone che hanno condiviso un determinato contenuto interno all'applicazione ricercabile secondo stringa testuale o tags e
visualizzazione del prolo pubblico
• Visualizzazione dei proli degli ultimi utenti che ne hanno apportato
delle modiche (Latest updates )
5.2 Content aggregation services
Questa parte di ClaimStudentID riguarda l'aggregazione e la condivisione dei
contenuti e rappresenta il vero cuore di questa applicazione web 2.0. L'utente
loggato ha la possibilitá di creare link a contenuti secondo due tipologie: bookmarks e linked contents ; i primi consistono in un semplice segnalibro ad un
sito web di cui l'utente non è autore, i secondi rappresentano invece dei link
a contenuti di cui l'utente è autore e ne rivendica la paternitá. Attraverso i
linked contents è possibile linkare 4 dierenti tipologie di contenuto:
•
Websites : cioè un generico sito web creato dall'utente
•
Contents in websites : cioè un contenuto, o un gruppo di contenuti, creati
dallo studente e pubblicati su un generico sito web 2.0, tool o risorsa
•
Blogs : cioè un blog creato dallo studente
•
Flickr contents : cioè un contenuto, o un gruppo di contenuti, creati dallo
studente e pubblicati su Flickr
Tutti e 4 i tipi di contenuto condividono le stesse caratteristiche (titolo,
dati, descrizione, tags, eccetera) e possono, a discrezione dell'autore, essere o
meno visibili o ricercabili.
In questa parte di ClaimStudentID vengono forniti i seguenti servizi allo
studente:
• Creazione e editing di un nuovo bookmark (solo utenti autenticati)
• Eliminazione di un bookmark inserito (solo utenti autenticati)
5.3 Meta-search services
50
• Visualizzazione di un bookmark
• Riordino della lista di bookmark personali (solo utenti autenticati)
• Creazione e editing di un linked content (solo utenti autenticati)
• Eliminazione di un linked content (solo utenti autenticati)
• Visualizzazione di un linked content
• Riordino della lista di linked content personali (solo utenti autenticati)
• Meta-ricerca sui contenuti condivisi interni all'applicazione individuabili
secondo stringa testuale o tags e visualizzazione di questi.
5.3 Meta-search services
Se il primo passo è l'identicazione dell'utente, il secondo la condivisione dei
contenuti, allora il terzo deve necessariamente riguardare le meta-ricerche ai
contenuti esterni presenti in ClaimStudentID. Nelle precedenti due parti si sono
viste due tipologie di ricerche (in base all'autore ed interna a ClaimStudentID),
entrambe utilizzavano il motore di ricerca interno; i servizi di meta-ricerca invece si appoggiano sui motori di ricerca esterni di Flickr o Google, attraverso
l'utilizzo delle rispettive API e vengono attivati quando è selezionato il radiobutton Content on the Web .
La meta-ricerca consiste nella ricerca e nella visualizzazione di contenuti condivisi esterni, pubblicati nel web, individuabili secondo una stringa testuale o
attraverso tag specici in base alla provenienza (Flickr o Google), ed avviene in
due fasi distinte. Nella prima fase avviene l'interazione con l'utente e la ricerca
sui tag locali interni a ClaimStudentID; il risultato restituito è il numero dei
linked contents (gli unici considerati nelle ricerche esterne a ClaimStudentID)
che soddisfano i criteri scelti. Allo studente viene mostrato il numero dei risultati trovati e, solo a questo punto (se il valore è maggiore di zero), l'utente ha
la possibilitá di proseguire alla seconda fase e visualizzare i contenuti ricercati.
La seconda fase riguarda i motori di ricerca esterni, ai quali vengono passati i
dati necessari attraverso le API. Se il contenuto è del tipo website, content in
website o blog, vengono utilizzate le API di ricerca di Google, altrimenti quelle
di Flickr.
5.4 Struttura dell'home page
L'home page di ClaimStudentID ore la maggior parte dei servizi giá espressi,
ai quali va aggiunta la possibilitá di personalizzare l'aspetto graco dell'intera
applicazione attraverso il meccanismo dello style switcher (che sará trattato
nel capitolo 6.3). Come si puó vedere in gura 5.1, l'home page è composta
5.4 Struttura dell'home page
51
logicamente da 6 box, tutti utilizzabili da un utente generico non registrato o
loggato.
Figura 5.1: Struttura logica dell'home page di ClaimStudentID
L'area di intestazione sembrerebbe essere la piú banale e semplice, ma nasconde (nel vero signicato della parola) diverse funzionalitá; essa comprende,
oltre al titolo graco della pagina, anche il titolo testuale per la stampa ed il
menu di skip navigation (che sará trattato nel capitolo 6.6).
Il menu di ricerca consiste in 3 radio-button disposti sopra al box di ricerca e permette di scegliere se ricercare un utente, un contenuto interno o un
contenuto esterno.
Il box di ricerca è composto da 3 sezioni, ognuna delle quali permette di
specicare dei criteri di ricerca per le persone, i contenuti interni e per quelli
esterni a ClaimStudentID.
Il box di personalizzazione fornisce all'utente generico (non è necessario il
login o possedere un prolo su ClaimStudentID) la possibilitá di personalizzare
l'aspetto graco dell'intera applicazione ed è composto da un menu a tendina
che permette di scegliere una soluzione estetica tra una lista a disposizione.
Il box di login è composto da due form e permette il riconoscimento dell'utente registrato ed il suo ingresso ai servizi riservati.
Il box ultimi aggiornamenti visualizza gli ultimi 3 utenti che abbiano apportato delle modiche al proprio prolo.
Capitolo 6
Implementazione
La prima versione di ClaimStudentID badava soprattutto alla funzionalitá e
non si preggeva obiettivi graci o di accessibilitá, infatti l'intera applicazione
si reggeva unicamente sull'utilizzo di tabelle sia per il lato pratico che per quello
puramente estetico e presentazionale. Di seguito sono spiegate le soluzioni ed i
cambiamenti adottati a modica della prima versione di ClaimStudentID, per
giungere alla versione recente, piú improntata verso gli standard, l'accessibilitá
e la semplicitá del codice.
6.1 Codice table-less
Avere una pagina HTML con una struttura table-less [75] è importante per
diversi aspetti: semplicitá, leggerezza, funzionalitá e accessibilitá. Una pagina
che basa la sua struttura sull'utilizzo di tabelle (per posizionare gli elementi
graci o testuali) ha un codice molto piú complesso e molto meno leggibile di
una pagina che rimanda questo compito ai fogli di stile; questo porta inevitabilmente ad una maggior pesantezza del codice e della pagina, caratteristica che
inuisce anche sui tempi di caricamento della pagina stessa (piú alti) e quindi
sulle prestazioni. Una pagina web realizzata senza l'utilizzo di tabelle per la
denizione della struttura è inoltre piú funzionale ed accessibile in quanto permette una miglior (e piú semplice) interazione con l'utente (grazie al miglior
sfruttamento della tecnologia CSS) ed un maggior supporto alle tecnologie assistive. Ad esempio uno screen reader (lettura seriale della pagina) ha molte
meno dicoltá rispetto a quante ne avrebbe in caso di pagine tabellari (come
visto nel paragrafo 2.2.3.2).
Un'altra caratteristica importante a favore delle pagine table-less è la possibilitá di cambiarle nell'aspetto modicando solamente un le (il foglio di stile);
altrimenti in molti casi potrebbe servire una totale ri-scrittura di tutte le pagine. L'esempio piú eclatante in ClaimStudentID, sotto l'aspetto dell'accessibilitá, è senza dubbio l'home page, che ha richiesto una sua completa ricostruzione
in quanto era originariamente basata sull'uso di tabelle, righe e colonne che
6.1 Codice table-less
53
sono state sostituite con dei box (scatole). La sostituzione ha permesso anche
una miglior leggibilitá del codice in quanto riordinato concettualmente all'interno del box stesso (delimitato dai tag HTML <div> e </div> e denito
attraverso l'utilizzo dei CSS). Nelle gure 6.1 e 6.2 è mostrata l'home page di
ClaimStudentID (index.php), rispettivamente prima e dopo la restaurazione a
table-less (nella nuova versione rispetto alla vecchia c'è da segnalare in piú la
presenza del box di personalizzazione).
Figura 6.1: Home page di ClaimStudentID con layout denito da tabelle
Poiché la struttura dell'home page di ClaimStudentID è piuttosto complessa, si è preferito prendere in esame un altro esempio eclatante (con un codice
piú semplice da visualizzare), cioè l'home page personale di un utente registrato (indierente se pubblica o privata viste le esigue dierenze grache tra le
due). Questa pagina ha la particolaritá di avere un layout che ricordi molto
una tabella ed utilizza un menu di navigazione a tabs (o meglio crea un menu
che le simula). In gura 6.3 è mostrato uno screen-shot della pagina personale
pubblica in versione tabellare, mentre il relativo codice (riguardante solo il
menu a tabs tabellare) è visibile in gura 6.4.
Come si puó vedere in gura 6.4, l'implementazione della navigazione a
tabs risulta essere piuttosto lunga e dicile da leggere, sia per via della non
standardizzazione del codice, sia per la sua struttura a tabella; per renderla
table-less è necessario sfruttare al massimo le potenzialitá dei CSS.
La realizzazione del table-less tabs menu, è stata eettuata considerando
ogni elemento del menu come un elemento di una lista non ordinata la quale
è stata poi visualizzata senza nessuno stile di lista (ad esempio senza i classici
6.1 Codice table-less
54
Figura 6.2: Home page di ClaimStudentID con layout table-less
Figura 6.3: Home page personale con layout denito da tabelle
pallini) ed inline, cioè su un'unica la anziché in maniera verticale come consuetudine. Il resto è puro e semplice linguaggio CSS che si occupa di bordi,
6.1 Codice table-less
55
<table width="750" border="0" align="center"
cellpadding="2" cellspacing="0" bordercolor="#000066">
<tr>
<td width="250" height ="26" bgcolor="#000066"
style="border: thin solid #000066">
<div align="center" class="Stile2 Stile13">Profile</div>
</td>
<td width="250" bgcolor="#00CCFF" class="Stile3"
style="border: thin solid #000066">
<div align="center" class="Stile12">
<a href="pub_user_bmarks.php?id_user=<?php
echo $_GET['id_user']; ?>&
name=<?php echo $row_users['name']; ?>&
surname=<?php echo $row_users['surname']; ?>"
class="Stile3">Bookmarks</a></div>
</td>
<td width="250" bgcolor="#00CCFF" class="Stile3"
style="border: thin solid #000066">
<div align="center" class="Stile12">
<a href="pub_user_lcontents.php?id_user=<?php
echo $_GET['id_user']; ?>&
name=<?php echo $row_users['name']; ?>&
surname=<?php echo $row_users['surname']; ?>"
class="Stile3">Linked Contents </a></div>
</td>
</tr>
<!--codice HTML non trascritto del restante contenuto della pagina-->
</table>
Figura 6.4: Codice HTML non Table-less
colori, testo e box; cioè di tutte cose ordinarie sulle quali non vale la pensa soffermarsi. In gura 6.5 sono mostrati i due statement fondamentali per creare
il tabs-menu con i CSS per il layout table-less, ed in gura 6.6 il codice HTML
del menu table-less (il quale, rispetto alla versione tabellare, presenta in piú
anche il link alla tab attiva).
In ClaimStudentID sono presenti due pagine contenenti una tabella; questa
ha peró lo scopo di visualizzare i dati dell'utente e non di denire una struttura, svolge cioè il ruolo che una tabella dovrebbe eettivamente avere: quello
di organizzare i dati. La struttura della pagina invece è sempre organizzata
tramite box deniti dai tag <div> e </div> ed è notevolmente piú leggera,
breve, semplice e chiara. Nella resa a table-less di una pagina scompaiono
da essa anche tutte le nozioni presentazionali come colori e dimensioni che
vengono gestite del foglio di stile.
Quello mostrato in gura 6.7 è uno screen-shot della pagina dopo la sua
revisione: resa a table-less e standardizzazione (questa parte sará argomento
del prossimo paragrafo).
6.2 Pulizia e standardizzazione del codice
56
div#navigation ul {
list-style-type: none;
margin: 0;
padding: 0;
white-space: nowrap;
}
div#navigation li {
display: inline;
margin: 0;
padding:0;
}
Figura 6.5: Statement CSS per la creazione del menu a tabs
6.2 Pulizia e standardizzazione del codice
Un codice table-less è certamente piú pulito, standardizzato e accessibile di
uno tabellare, ma non lo è in maniera assoluta; questo infatti necessita di
un'ulteriore revisione (revisione priva di senso in pagine tabellari in quanto
ormai inconcepibili). Un codice è standardizzato quando soddisfa le speciche
di una delle tre DTD HTML/XHTML (in questo caso la Transitional). La
cosa piú banale è quella di rispettare semantica e sintassi del linguaggio:
• Tutti i tag aperti devono essere chiusi.
• Deve essere mantenuto l'ordine di dichiarazione, cioè se un elemento tra
i suoi tag di apertura e chiusura ne contiene un altro, quest'ultimo deve
necessariamente essere chiuso prima del suo genitore.
• Devono essere rispettati i ruoli dei vari elementi, cioè un elemento blocco
non puó (per esempio) essere inserito in un elemento inline.
• Gli attributi deniti per gli elementi devono appartenere allo stesso e
devono essere evitati (per quanto possibile) attributi di presentazione
quali width o size.
Anché il codice sia conforme alla DTD specicata (in questo caso la DTD
Transitional XHTML 1.0) devono essere considerate diverse richieste di standardizzazione e (per quanto possibile) soddisfatte.
Nello specico (dopo aver reso la pagina table-less) sono stati arontati i
seguenti accorgimenti.
6.2.1
Form
I form di input costituiscono l'elemento centrale e fondamentale di ClaimStudentID. Per aumentare il livello di accessibilitá del sito è stato necessario inserire un attributo alternativo (rispetto al classico attributo da mouse onclick)
6.2 Pulizia e standardizzazione del codice
57
<div id="navigation">
<ul>
<li id="activelink"><a href="pub_user_home.php?id_user=<?php
echo $_GET['id_user']; ?>&
name=<?php echo $row_users['name']; ?>&
surname=<?php echo $row_users['surname']; ?>">Profile</a>
</li>
<li><a href="pub_user_bmarks.php?id_user=<?php
echo $_GET['id_user']; ?>&
name=<?php echo $row_users['name']; ?>&
surname=<?php echo $row_users['surname']; ?>">Bookmarks</a>
</li>
<li><a href="pub_user_lcontents.php?id_user=<?php
echo $_GET['id_user']; ?>&
name=<?php echo $row_users['name']; ?>&
surname=<?php echo $row_users['surname']; ?>">Linked Contents</a>
</li>
</ul>
</div>
Figura 6.6: Codice HTML Table-less
Figura 6.7: Home page personale con layout table-less
per poter consentire anche un accesso tramite tastiera (onkeypress). Questo
attributo consente agli utenti impossibilitati nell'utilizzo del mouse di accedere
ai campi dei form tramite l'utilizzo della tastiera e si rivela molto utile soprattutto per input di selezione come radiobutton o checkbox. In gura 6.8 viene
mostrato il codice HTML del form di radiobutton con la quale l'utente sceglie
le modalitá di meta-ricerca in ClaimStudentID.
6.2 Pulizia e standardizzazione del codice
58
<input type="radio" name="src_type" id="src_type_people"
value="people" checked="checked"
onclick="eval(enable_content_src(0))"
onkeypress="eval(enable_content_src(0))" tabindex="4" />
<label for="src_type_people">People</label><br class="pda"/>
<input type="radio" name="src_type" id="src_type_inside"
value="inside" onclick="eval(enable_content_src(1))"
onkeypress="eval(enable_content_src(1))"
<?php if ($_GET['src_type'] == 'inside')
echo "checked=\"checked\""; ?> tabindex="5"/>
<label for="src_type_inside">Content inside ClaimStudentID</label>
<br class="pda"/>
<input type="radio" name="src_type" id="src_type_web" value="web"
onclick="eval(enable_content_src(2))"
onkeypress="eval(enable_content_src(2))"
<?php if ($_GET['src_type'] == 'web')
echo "checked=\"checked\""; ?> tabindex="6"/>
<label for="src_type_web">Content on the Web</label>
Figura 6.8: Form: Utilizzo dell'attributo onkeypress
All'interno del tag <input> sono presenti gli attributi relativi alle azioni
di interazione con l'utente, di click del mouse (onclick) e di pressione di tasti
della tastiera (onkeypress).
Molto importante per l'accessibilitá, soprattutto per i dispositivi vocali,
è associare il form di input (denito in questo caso dal tag <input>) con la
propria etichetta (denita tra i tag <label> e </label>) tramite l'attributo
for; anché ci sia associazione tra i due elementi, il valore dell'attributo for
deve coincidere con il valore dell'attributo id del form. Una volta denita
l'associazione logica, questa garantisce sia una miglior comprensione che una
maggior semplicitá e permette l'accesso al campo di un form anche solo attraverso un'interazione con l'etichetta corrispondente (per esempio una messa
a focus). In gura 6.9 è mostrato come esempio un campo dell'home page di
ClaimStudentID (quello nel quale si richiede il nome dell'utente da ricercare).
<label for="name">Name </label>
<input name="name" type="text" id="name" tabindex="7"
size="15" maxlength="30" value="<?php echo $_GET['name']; ?>"/>
Figura 6.9: Form: Associazione etichetta-campo di input
Un ulteriore accorgimento apportato a ClaimStudentID volto ad aiutare
la navigazione (esclusi utenti non vedenti) è l'evidenziazione di un campo del
form che avviene quando il focus si sposta su esso. In poche parole quando
l'utente immette i propri dati oppure i contenuti da ricercare, il campo del form
col quale interagisce si evidenzia circondandosi di un box quadrato dai bordi
6.2 Pulizia e standardizzazione del codice
59
colorati. Il codice HTML in gura 6.10 appartiene al foglio di stile di default
(default.css), nel quale la linea esterna viene colorata di arancio (#F90).
input: focus { outline: 2px solid #f90;}
Figura 6.10: Form: Proprietá CSS outline
Quest'ultimo accorgimento non viene in realtá richiesto per la standardizzazione del codice o per aumentare l'accessibilitá del sito, ma è sembrato opportuno inserirlo per fornire un ulteriore aiuto, anche se non è peró supportato
da Internet Explorer che semplicemente lo ignora.
Un ultimo accorgimento utile ad aumentare l'accessibilitá dei form è l'utilizzo di <eldset>. Questo comando HTML permette di ragguppare, non
solo logicamente, diversi elementi di un form correlati tra loro. Raggruppare
assieme i controlli correlati facilita la comprensione del loro scopo ed agevola la navigazione tra essi tramite tastiera (tasto Tab). Assieme al comando
<eldset> deve sempre essere presente il tag <legend>, il quale permette di
assegnare una didascalia ad un eldset, cosa di non trascurabile importanza
quando questo è presentato in maniera non visuale. Nei browser visuali, <eldset> e <legend> sono visualizzati come un bordo continuo interrotto dal testo
specicato da <legend>, testo solitamente posizionato sul bordo in alto a sinistra. A dierenza dei browser visuali, gli screen reader non si comportano in
maniera omogenea, l'implementazione dipende infatti anche da che browser si
stia utilizzando. Ad esempio Jaws si comporta dierentemente in base alla modalitá utilizzata: se si è in modalitá browse, il testo specicato da <legend>
viene immediatamente pronunciato e non viene fornita alcuna indicazione di
associazione ai controlli correlati; se si è invece in modalitá form, il testo di
<legend> viene pronunciato prima di ciascuna etichetta associata ad un campo di input presente nel eldset. L'adozione di <eldset> e <legend> rende
piú semplice la compilazione di form da parte di un gran numero di utenti con
disabilitá; il loro utilizzo non è stato peró implementato in ClaimStudentID,
ma vista la semplicitá delle pagine presenti, questa assenza non risulta troppo
pesante.
6.2.2
Tabelle
Come giá trattato nel paragrafo 2.2.3.2 le tabelle costituiscono un grosso ostacolo per l'accessibilitá. Per ridurre le dicoltá di navigazione, soprattutto per
utenti che utilizzano tecnologie vocali, è molto importante standardizzare le
tabelle seguendo le direttive imposte dalla DTD utilizzata. In primo luogo nella dichiarazione della tabella (ovvero nel suo tag iniziale) deve assolutamente
essere presente l'attributo summary che permette di descrivere il ruolo della
tabella stessa. La descrizione del ruolo di un oggetto (in questo caso una tabella, ma lo stesso discorso è valido anche per le etichette delle form) rientra nel
concetto di separare la struttura e la logica dalla presentazione: le prime due
6.2 Pulizia e standardizzazione del codice
60
sono esclusive dell'XHTML, mentre l'ultima dei CSS. L'associazione logica degli elementi e dei propri ruoli rientra nel progetto XHTML e permette anche
una maggior essibilitá della pagina web verso qualunque tecnologia. Un altro
elemento importante e molto spesso trascurato è <caption>, il quale permette
di inserire ed associare un titolo alla tabella. Il concetto di ruolo è molto forte
soprattutto nelle tabelle ed a questo proposito è richiesta la presenza di celle
di intestazione; queste sono le celle che deniscono i campi (solitamente sono
disposte in alto alla tabella, in questo caso deniscono il ruolo della colonna
che intestano) e sono usualmente visualizzate in grassetto (a meno di una loro
ridenizione nei CSS). In gura 6.11 è mostrato un esempio relativo ad una
tabella nella quale sono trattati tutti i temi trattati in questo paragrafo.
<table summary="about this user">
<caption>User's information</caption>
<tr class="hidden"><th>Queries</th><th>Results</th></tr>
<tr><td class="fields">Name:</td><td class="results">
<?php echo $row_users['name']; ?></td></tr>
<tr><td class="fields">Surname:</td><td class="results">
<?php echo $row_users['surname']; ?></td></tr>
<tr><td class="fields">Role:*</td><td class="results">
<?php echo $row_users['role']; ?></td></tr>
<!--parte di codice non trascritta-->
</table>
Figura 6.11: Tabelle: Utilizzo corretto degli elementi HTML
Per tabelle molto voluminose è necessario poi denire il ruolo (tramite
l'attributo scope) e/o l'associazione delle celle in relazione alla propria intestazione. Nel caso di ClaimStudentID non si è ritenuto necessario applicare
anche queste direttive poiché nel sito sono presenti solamente 2 tabelle (nelle pagine pub_user_home.php e auth_user_home.php rispettivamente dei
proli pubblici e privati di un utente) di modestissime dimensioni; non si è perció ritenuto opportuno appesantire il codice della pagina per assegnare degli
scope o delle associazioni superue.
6.2.3
Immagini
Le immagini rappresentano un concetto chiave per l'accessibilitá in quanto sono
ovviamente accessibili solo ad utenti vedenti (o al massimo agli ipovedenti) e
per questo potrebbero anche essere denite come un media discriminante.
L'accessibilitá deve essere una caratteristica valida sempre e per qualunque
media o elemento, non possono quindi essere escluse le immagini; per questo la
DTD di XHTML prevede l'obbligatorietá dell'attributo alt per gli elementi
immagine. Questo attributo serve per poter associare all'immagine un testo
alternativo da visualizzare nel caso l'immagine non sia disponibile (per esempio
nei browser testuali) o da leggere in caso di dispositivi vocali.
6.2 Pulizia e standardizzazione del codice
61
<img class="image" src="<?php if ($row_users['pic_file'] != '')
echo "pic_files/".$row_users['id_user'].".jpg";
else echo "pic_files/blank.jpg"; ?>" alt="user's pic" />
Figura 6.12: Immagini: Attributo HTML alt
Nell'esempio di gura 6.12, riguardante l'immagine personale che ogni utente iscritto puó caricare (relativo alla pagina del prolo pubblico di un utente,
ma sarebbe lo stesso nel caso del prolo privato), l'attributo alt specica
semplicemente che si tratta dell'avatar dell'utente visualizzato; immagine che
viene ricercata ed inserita dal codice PHP direttamente dal database in base
all'utente proprietario.
Per quanto riguarda l'accessibilitá, l'XHTML prevede un ulteriore attributo
non obbligatorio, a dierenza di alt, denominato longdesc, con il quale è possibile associare all'immagine una pagina web (.html) contenente la descrizione
dettagliata specica dell'immagine stessa. Questa descrizione permetterebbe
anche alle persone non vedenti di percepire il contenuto dell'immagine contenuta in una pagina web. L'attributo longdesc non è stato peró implementato
in ClaimStudentID in quanto l'applicazione in sé è del tutto sprovvista di immagini che possono solamente essere caricate come contenuti esterni (grazie
alla collaborazione con Flickr) e dunque non appartenenti all'applicazione.
6.2.4
Linguaggi esterni
Una pagina HTML/XHTML o PHP non è sempre composta unicamente da
questi linguaggi, infatti spesso si fa riferimento ad un terzo linguaggio; nel
caso di ClaimStudentID si tratta di Javascript. Il codice PHP deve essere
inserito all'interno di uno speciale tag dedicato, ed una pagina contenente tale codice deve necessariamente avere l'estensione .php; il codice Javascript va
inserito all'interno del tag <script> con l'attributo type impostato come
text/javascript e non implica nessun cambiamento di estensione alla pagina
HTML. La caratteristica principale di javascript è quella di essere un linguaggio interpretato; il codice infatti non viene compilato bensí esiste un interprete
(lato client, incluso nel browser) che esegue riga per riga, a tempo di esecuzione, quanto trascritto nello script. La DTD XHTML specica che ogni qual
volta si utilizza il tag <script> deve essere presente anche il tag <noscript>.
Questo tag permette di fornire un'alternativa nel caso il linguaggio di scripting, dichiarato in <script>, non sia abilitato; all'interno di esso infatti vanno
dichiarate le istruzioni alternative da eseguire. Nel caso di ClaimStudentID il
tag <noscript> viene utilizzato per visualizzare un messaggio di errore che avvisi l'utente della necessitá di avere il codice javascript abilitato per utilizzare
l'applicazione e tutte le sue funzionalitá.
Nell'esempio di gura 6.13, relativo al box di personalizzazione, in caso
di mancata abilitazione del codice javascript, attraverso il tag <noscript> il
6.2 Pulizia e standardizzazione del codice
62
<noscript><br/><span class="errors">
JavaScript language must be enabled!
</span></noscript>
Figura 6.13: Linguaggi esterni: Tag HTML <noscript>
sistema stamperá semplicemente un messaggio di errore che indica all'utente
la necessitá di avere tale linguaggio abilitato.
Nonostante non si tratti di un ulteriore linguaggio, un procedimento analogo è stato adottato anche per l'utilizzo dei cookie; infatti l'utente viene avvisato
di un'eventuale non abilitazione a questi se necessario tramite un messaggio
di errore simile al precedente. I cookie sono utili a ClaimStudentID per la
personalizzazione da parte dell'utente del layout graco impostabile grazie al
meccanismo dello style-switcher che verrá spiegato nel paragrafo 6.3.
<script type="text/JavaScript">
if (!navigator.cookieEnabled) {
document.write("Cookies must be enabled!");
}
</script>
Figura 6.14: Linguaggi esterni: Codice di verica dei Cookie
Questi controlli (Figura 6.14) sono molto importanti per garantire la robustezza del codice, cioè la sua piena funzionalitá anche in qualunque situazione
non standard che si possa venire a creare. In realtá il W3C sconsiglia l'utilizzo di linguaggi esterni all'HTML/XHTML o PHP (come lo javascript),
ma nel caso di ClaimStudentID questo linguaggio è necessario per il corretto
funzionamento dell'applicazione.
6.2.5
Ulteriori accorgimenti
Oltre ai precedenti, esistono anche altri accorgimenti da adottare anché il
codice sia autenticabile; tra questi il piú banale è l'attributo lang per il tag
radice della pagina (<html>). Come è facilmente intuibile tale attributo obbligatorio permette di denire la lingua utilizzata nel sito web (nel caso di
ClaimStudentID l'inglese, denominato con en) in modo da fornire un valido
supporto su quale lingua utilizzare alle tecnologie vocali. Un altro accorgimento richiesto per l'accessibilitá è quello di evitare, per i link ipertestuali, i
target esterni (_blank o _new), cioè evitare di far aprire nuove nestre
(o schede nei browser piú recenti) nell'interazione dell'utente con un link. Un
target esterno per un link porta ad un'inevitabile spostamento del focus sulla
nuova pagina con tutti i problemi di accessibilitá (soprattutto per gli screen
reader) derivanti dall'apertura di una nuova pagina. Purtroppo questo accorgimento non puó essere sempre applicabile in ClaimStudentID; questo non è
6.3 Style switcher
63
utilizzabile quando i contenuti caricati da un utente fanno riferimento a servizi esterni (Google o Flickr) e quando un visitatore desidera accedere a tali
servizi. In questo caso il visitatore deve necessariamente essere reindirizzato
verso il contenuto attraverso un nuovo target poiché, in caso contrario, questi
si vedrebbe catapultato fuori da ClaimStudentID e potrebbe addirittura (in
alcuni casi) perdere la possibilitá di ritornarci senza dover ri-eettuare l'intero
percorso che lo ha portato a visualizzare il contenuto.
6.3 Style switcher
Nonostante non sia raccomandato dagli organi uciali del web, quello dello Style Switcher [76] è un accorgimento solitamente molto apprezzato da un
utente ospite (anche se raramente implementato). Letteralmente signica modicatore di stile, permette all'utente di potersi scegliere un proprio template
graco (tra una serie a disposizione) e non è dicile da implementare.
Per implementare uno style switcher il sito web deve essere creato in maniera adeguata, cioè deve essere interamente basato su un codice HTML (senza
l'uso di tabelle) privo degli attributi presentazionali vecchio stile come width
o height. Dovrebbe preferibilmente esserci un unico foglio di stile totalmente dedicato per la stampa e valido per tutte le pagine del sito. Nel caso di
ClaimStudentID queste caratteristiche necessarie sono soddisfatte e sono state
trattate nei paragra precedenti o verranno trattate nei successivi.
Si è deciso di implementare lo style switcher lato server tramite l'utilizzo
di PHP e lo sfruttamento come principio di funzionamento dei cookie. I cookie
sono dei piccoli le di testo che memorizzano dei dati sul computer dell'utente;
in questo caso memorizzano il foglio di stile preferito, cosí da poter mantenere
questa informazione durante l'intera sessione di navigazione tra le pagine del
sito e le visite successive. I cookie vengono peró visti come pericolo da molti
software o user agent, e per questo spesso all'utente viene consigliato di disabilitarli. È dunque opportuno avvisare l'utente della necessitá di avere i cookie
abilitati per poter sfruttare lo style switcher e per poter quindi personalizzare,
a proprio piacimento, la graca del sito.
Uno style switcher lato server si compone sostanzialmente di due porzioni
di codice distinte:
1. Caricamento dello stile preferito dall'utente attraverso i cookie.
2. Pagina di scrittura del cookie e di redirect sulla pagina chiamante per
mostrare il nuovo stile scelto.
La prima è incorporata in ogni pagina necessaria insieme ai contenuti, la
seconda riguarda la memorizzazione del cookie e conserva solamente l'informazione sul nome del le CSS (estensione esclusa) corrispondente al foglio di stile
scelto dall'utente. Ovviamente, è anche necessario predisporre nelle pagine che
fanno uso dello style switcher i link per consentire il cambio di stile.
6.3 Style switcher
64
Per implementare lo style switcher con PHP è necessario inserire nell'intestazione della pagina web (head) che lo utilizza, il codice di gura 6.15.
<?if(isset($_COOKIE["style"]))
{
$style=$_COOKIE["style"];
print("<link rel=\"stylesheet\" type=\"text/css\"
href=\"$style.css\"\n");
}
else
print("<link rel=\"stylesheet\" type=\"text/css\"
href=\"default.css\"\n");
?>
Figura 6.15: Style switcher: Impostazione dello stile
Il codice di gura 6.15 permette di impostare uno stile alla pagina secondo
il seguente criterio: se l'utente ha eettuato una scelta, questa determina lo
stile della pagina, altrimenti viene settato lo stile di default.
Nel caso di ClaimStudentID si è deciso di implementare la parte di personalizzazione del template graco solo nell'home page, ma questa potrebbe
benissimo essere implementata in ogni pagina contenente il codice mostrato in
gura 6.15 all'interno dell'intestazione. Per far interagire l'utente e permettergli di scegliere un template, si è deciso di utilizzare un form di selezione
(di tipo select) funzionante con il codice di gura 6.16 da disporre nel corpo
(body) della pagina web.
<select onchange="location = value;">
<option value="setstyle.php?style=stile_css">Stile</option>
...
</select>
Figura 6.16: Style switcher: Tag HTML <select> per la scelta dello stile
L'attributo onchange permette di ricaricare in tempo reale la pagina web
(da subito dopo aver eettuato la scelta) passando il valore di value dell'opzione di scelta selezionata dall'utente al codice PHP presente in un le esterno
(setstyle.php) specicato prima di ?. In sostanza l'attributo inviato al le
esterno (quello specicato dopo style=) non è altro che il nome del foglio di
stile da utilizzare senza l'estensione .css.
Il codice inserito nell'home page di ClaimStudentID è mostrato in gura 6.17.
Come giá accennato, esiste un le esterno (setstyle.php) costruito come
mostrato in gura 6.18.
Il le setstyle.php ha il compito di scrivere il cookie e di ridirezionare il
browser sulla pagina che l'ha invocato. Quest'ultima, avendo nella sezione head
le istruzioni di caricamento del cookie e del relativo foglio di stile, provvede
a sostituire il valore passatogli da setstyle.php impostandolo come nome del
foglio di stile da considerare nel ricaricamento della pagina. Il passaggio è
6.4 Template multipli
65
<form name="template" action="">
<label for="css">Select your personal template</label>
<select name="css" id="css" onchange="location = value;">
<option value="">---Select one item---</option>
<option value="setstyle.php?style=default">Default</option>
<option value="setstyle.php?style=blog">Blog's style</option>
<option value="setstyle.php?style=butterfly">Butterfly</option>
<option value="setstyle.php?style=claim">Claim</option>
<option value="setstyle.php?style=digit">Digit</option>
<option value="setstyle.php?style=nature">Natural</option>
<option value="setstyle.php?style=urbino">Urbino</option>
<option value="setstyle.php?style=low_vision1">
Users with low vision 1</option>
<option value="setstyle.php?style=low_vision2">
Users with low vision 2</option>
<option value="setstyle.php?style=accessible">
Accessible</option>
<option value="setstyle.php?style=pda_screen">
for Handheld</option>
</select>
</form>
Figura 6.17: Style switcher: Scelta dello stile
<?php
setcookie("style", $_GET["style"], time()+31536000);
header("Location:".$HTTP_SERVER_VARS["HTTP_REFERER"]);
?>
Figura 6.18: Style switcher: File esterno
decisamente veloce, praticamente quanto un semplice reload della pagina, e il
nuovo CSS avrá eetto da subito, essendo memorizzato anche per le successive
visite.
6.4 Template multipli
Grazie allo style switcher l'utente visitatore ha la possibilitá di scegliere il template graco che piú lo aggrada. Ma come fare per realizzare diverse soluzioni
grache anche molto diverse tra loro?
Per realizzare i layout si sono utilizzati diversi CSS indipendenti l'uno dall'altro, selezionabili, come giá visto, attraverso un form. Ogni foglio di stile
si occupa di ridenire i vari box che compongono la pagina, il loro posizionamento, le vari immagini che compongono la veste graca del template, i link
e la formattazione del testo. Per quanto riguarda la personalizzazione delle
immagini (come quelle di logo e sfondo) bisogna tenere conto dell'impossibilitá
di poter caricare nella pagina immagini diverse per template diversi, quindi si
è ricorso ad un piccolo stratagemma: ogni immagine del template graco viene
6.4 Template multipli
66
caricata dal CSS e viene gestita come uno sfondo (cosa logica per lo sfondo
della pagina, un po' meno per il logo). Questo meccanismo permette di inserire
perció un logo personale ad ogni layout gestendolo come sfondo di un box di
dimensioni pressate proporzionali a quelle dell'immagine.
Tramite lo style switcher, oltre ai numerosi template puramente estetici
(default.css, blog.css, buttery.css, claim.css, digit.css, nature.css, urbino.css),
è possibile accedere anche ad altri quattro piú funzionali: low_vision1.css,
low_vision2.css, accessible.css, pda_screen.css; non è invece selezionabile, in
quanto nascosto il foglio di stile form.css.
6.4.1
low-vision
Questi due fogli di stile sono stati studiati per essere visualizzati a video da
persone ipovedenti, per cui dispongono di diverse soluzioni pensate apposta per
tale categoria di utenti [77]. Le persone con una qualche disabilitá agli occhi
utilizzano in genere basse risoluzioni video (640x480), per questo è buona norma creare siti web che vi si adattino; in particolare questi due CSS impostano
la larghezza della pagina a 630px, dimensione che permette di evitare l'apparizione delle fastidiose barre di scorrimento orizzontali (ancor piú fastidiose per
gli ipovedenti) nella visualizzazione della pagina, che occuperá dunque tutto
lo schermo.
Molto importante è fornire dei contrasti molto elevati in grado di aiutare
soprattutto le persone daltoniche o con dicoltá nel percepire i colori. Sono
generalmente due i colori piú problematici per i daltonici: il rosso ed il verde;
il primo è assolutamente da evitare in ogni caso, mentre il secondo puó essere
usato sia su sfondo nero che su sfondo bianco (con tonalitá opportune). Su
sfondo bianco vanno bene per la scrittura tutti quei colori che di piú si avvicinano al nero, come il nero stesso, il blu scuro, il verde scuro, il marrone
o il viola. Su sfondo nero si ha ovviamente un atteggiamento opposto e si
devono utilizzare soprattutto colori brillanti, che quasi ricordino quelli degli
evidenziatori, come il bianco, il giallo, il verde brillante o un azzurro molto
chiaro.
Figura 6.19: Contrasti su sfondo nero
Nel caso di ClaimStudentID, il foglio di stile low_vision2.css fornisce uno
sfondo di colore nero con contenuti (scritte e bordi) di colore bianco o giallo;
6.4 Template multipli
67
Figura 6.20: Contrasti su sfondo bianco
low_vision1.css invece imposta lo sfondo bianco ed i contenuti neri, blu scuri
o marroni. Anche il logo di ClaimStudentID è stato rivisto per questi due fogli
di stile; infatti i colori di default (arancio e blu) non erano adatti. Su sfondo
nero il logo è diventato a caratteri gialli e bianchi, mentre su sfondo bianco il
marrone si è occupato di sostituire l'arancio.
È peró inutile avere contrasti elevati se l'utente non riesce eettivamente a
leggere i contenuti, perció è bene impostare, non solo i colori, ma anche i tipi
di carattere da usare e le loro dimensioni. Devono essere utilizzati caratteri di
grandi dimensioni, che vadano dai 12 punti (minimo) ai 18. Molto piú elaborata
è invece la situazione del tipo di font da utilizzare; è bene evitare caratteri
troppo sottili (light) o troppo compressi (condensed) come rispettivamente
Matisse ITC (ma anche il classico Courier New) o Impact e prediligere
caratteri lineari, semplici e facilmente leggibili come Arial o Verdana. Per
aiutare ulteriormente la lettura è bene anche evitare di utilizzare il corsivo,
mentre è sempre ben accetto il grassetto.
Poiché non sono molti i colori utilizzabili in una pagina creata per utenti
ipovedenti, è bene non generare confusione al visitatore nascondendo i link,
mischiandoli insieme al testo semplice, ma mantenendone i colori originali (cioè
quelli impostati di default dal browser). Questa combinazione di colori puó
essere un po' penalizzante su sfondo nero, ma in questo modo l'utente ha
la possibilitá di riconoscere immediatamente un link ipertestuale dal normale
testo.
6.4.2
accessible
Questo foglio di stile è il piú semplice in assoluto tra tutti quelli presenti in
ClaimStudentID; infatti si preoccupa unicamente della formattazione del testo
(dimensione, colore, grassetto e allineamento, ma non del font) senza ridenire
nessun box (ad eccezione delle tabs di navigazione presenti nei proli pubblici
e privati degli utenti), garantendo cosí pagine molto semplici e leggere sia nel
codice che nell'aspetto graco.
6.4 Template multipli
6.4.3
68
pda-screen
Questo foglio di stile non è altro che una riproposizione, unicamente a scopo
illustrativo, del CSS creato appositamente per dispositivi PDA che verrá trattato nel paragrafo 6.5.2. L'unica dierenza rispetto a pda.css è la presenza del
box di personalizzazione che permette all'utente di scegliere il proprio layout
graco, box che invece è assente in pda.css.
6.4.4
form
Questo foglio di stile è di fatto nascosto in quanto non raggiungibile o selezionabile da nessuna parte; da solo non avrebbe nessun utilizzo pratico. Il
compito di questo CSS è quello di denire unicamente le informazioni presentazionali riguardanti le dimensioni dei form testuali (come input di tipo
text o le o le textarea). Ogni foglio di stile, creato per essere renderizzato
a video, include tramite la @-regola @import il foglio di stile form.css (gura
6.21).
@import url(form.css);
Figura 6.21: Template multipli: @-regola CSS @import
A dierenza di quanto succede di solito, con questo CSS, a dare problemi
di supporto non è stato Internet Explorer ma bensí Mozilla Firefox; infatti
questo non supporta la denizione delle dimensioni da foglio di stile per il
form di tipo le, dal quale avviene l'upload dei le da parte dell'utente; nel
caso di ClaimStudentID si tratta del curriculum vitae. Per aggirare questo
problema si è fatto in modo che il ridimensionamento del form in questione
venga eettuato tramite l'attributo HTML size impostato attraverso l'uso
del PHP, come mostrato in gura 6.22.
<label for="cv_file">Upload my curriculum vitae</label>
<input name="cv_file" id="cv_file" type="file" tabindex="9"
<?php if ($style=="pda_screen") {echo "size=\"18\"";}
else echo "size=\"50\"";?> onchange="del_cv.checked = 0"/>
Figura 6.22: Template multipli: Risoluzione di un bug
Il codice mostrato in gura 6.22 controlla il foglio di stile utilizzato: se
questo è pda_screen.css la dimensione impostata è 18; negli altri casi è 50.
Questo codice viene interpretato unicamente da Firefox in quanto, non
supportando il CSS per tale form, non ha la possibilitá di sovrascrivere la
dimensione con quella indicata da form.css.
6.5 Fogli di stile alternativi
69
6.5 Fogli di stile alternativi
Nel capitolo 2 si sono introdotti tutti i dispositivi che l'utente puó utilizzare per
accedere al web e si è visto come tali sistemi si dierenziano l'uno dall'altro
sia per le caratteristiche che per il software. Ognuno infatti dispone di una
propria risoluzione, ha una propria dimensione dello schermo (se ce l'ha), delle
proprie caratteristiche di velocitá o di colore; Ogni dispositivo necessita un
trattamento a sé per poter fornire lo stesso servizio. L'XHTML denomina i
dispositivi per il web come media e li suddivide in 9 categorie:
• screen (desktop e laptop)
• handheld (PDA e smartphone)
• print (stampanti)
• braille (browser braille)
• embossed (stampanti braille)
• projection (proiezioni)
• speech o aural (sintetizzatori vocali)
• tty (telescriventi)
• tv (televisioni)
Il programmatore ha la possibilitá di associare un diverso foglio di stile
(CSS) per ogni diverso dispositivo semplicemente inserendo l'attributo media
in una dichiarazione di un foglio di stile esterno. I valori di media sono quelli
delle 9 categorie sopra elencate, al quale va aggiunto il valore all (di default)
che li comprende tutti.
In ClaimStudentID si è deciso di implementare dei fogli di stile per screen,
print, handheld e aural. Il primo in realtá è una raccolta di fogli di stile
selezionabili a scelta dall'utente ed è stato sviluppato attraverso il meccanismo
di style switcher giá spiegato precedentemente.
<link rel="stylesheet" type="text/css" media="screen"
href="style.css" />
Figura 6.23: Fogli di stile alternativi: Dichiarazione in base al canale
La dichiarazione di gura 6.23, che ha il solo scopo dimostrativo e non è
stata realmente implementata in ClaimStudentID, fa in modo che l'interprete
(X)HTML eettui una corrispondenza case-sensitive con l'insieme di tipi di
media sopra deniti, ignorando le voci che non trovano riscontro.
6.5 Fogli di stile alternativi
6.5.1
70
print
Per quanto i contenuti testuali di un sito o blog, siano pensati, progettati e
creati per essere visti sullo schermo, questi possono anche essere stampati. Per
questo motivo è necessario predisporre il sito in modo che risulti corretto nella
visualizzazione anche in caso di stampa. In gura 6.24 la dichiarazione del
foglio di stile per la stampa, utilizzata in ogni pagina di ClaimStudentID.
<link rel="stylesheet" type="text/css" media="print"
href="print.css" />
Figura 6.24: Fogli di stile alternativi: Dichiarazione CSS per la stampa
Il foglio di stile per la stampa (print.css) [78] è stato progettato in modo
che solo le parti signicative vengano visualizzate, che la destinazione di alcuni
link sia visibile anche su carta e che ci sia un risparmio di colori, riducendo
al minimo indispensabile il loro uso.
Per esempio nell'home page stampare il box di personalizzazione o quello
di login è tutt'altro che utile, anzi occupa solamente spazio nella pagina, rischiando cosí di doverne stampare un numero superiore a quanto necessario.
L'esclusione di un determinato elemento dalla stampa avviene semplicemente
dichiarando tale elemento come non visualizzabile attraverso la proprietá CSS
display.
div.right
{
display: none;
}
Figura 6.25: Fogli di stile alternativi: Proprietá CSS display
Nel caso mostrato in gura 6.25 la proprietá viene applicata alla colonna destra dell'home page che non mostrerá in stampa il suo contenuto che
comprende i box di personalizzazione, login e degli ultimi utenti che hanno
aggiornato il prolo. Questo è solo uno dei tanti utilizzi della proprietá display
per la stampa (e non solo).
Su carta ovviamente non è possibile interagire con un link ipertestuale ma
è possibile, grazie ai CSS, stampare la destinazione di tale link. Questa caratteristica dei fogli di stile non è esclusiva della stampa, ma è un accorgimento
che, al di fuori di essa, troverebbe poche applicazioni, anzi appesantirebbe
gravosamente la visualizzazione dell'intera pagina. In ClaimStudentID si è
deciso di visualizzare il percorso del link nella stampa esclusivamente per i
contenuti inseriti dagli utenti, in quanto questi rappresentano il vero fulcro
dell'applicazione (e si pensa anche il motivo della stampa). In gura 6.26 viene mostrato un utilizzo di tale caratteristica in ClaimStudentID (print.css) che
viene semplicemente implementata in una linea di codice.
Nel primo caso si è deciso di visualizzare il percorso del link mostrandolo
6.5 Fogli di stile alternativi
71
div.box a:link:after, div.box a:visited:after,
div.Searchbox a:link:after, div.Searchbox a:visited:after
{
content:" [" attr(href) "] ";
}
div#navigation a:link:after, div#navigation a:visited:after
{
content: none;
}
Figura 6.26: Fogli di stile alternativi: Proprietá CSS content
dopo il suo titolo (cioè il valore normalmente stampato a video) all'interno
di parentesi quadre, per tutti quei link che abbiano a che fare con i contenuti
inseriti dagli utenti; nel secondo caso si è deciso di lasciare il link alla sua natura
abituale per tutti quei link appartenenti all'applicazione di ClaimStudentID.
Nel progettare il foglio di stile per la stampa si è deciso di non ottimizzare
solo lo spazio (come visto in precedenza) ma anche i colori. Infatti qualsiasi
sia lo stile scelto dall'utente, in caso di stampa, il risultato sará il medesimo:
scritte e linee di colore nero e logo di ClaimStudentID semplicato e stampato con la bicromia blu/arancio. Per fare questo è stato suciente ridenire i
colori di testo e linee di nero, e visualizzare il titolo ClaimStudentID, presente in ogni pagina (ma in esse nascosto tramite il valore CSS hidden),
sostituendolo all'immagine visualizzata a schermo corrispondente al template
scelto dall'utente.
6.5.2
handheld
Il foglio di stile per dispositivi PDA (pda.css) è molto importante visto l'attuale
espansione del web verso il mobile, ma solo pochissimi siti lo implementano;
questa scarsa applicazione fa in modo che ci siano pochi strumenti e pochi
esempi che possono aiutare lo sviluppatore. In gura 6.27 la dichiarazione del
foglio di stile per i PDA utilizzato in ogni pagina per ClaimStudentID.
<link rel="stylesheet" type="text/css" media="handheld"
href="pda.css" />
Figura 6.27: Fogli di stile alternativi: Dichiarazione CSS per handheld
Per creare questo foglio di stile infatti si è preso spunto dal sito di Mozilla Foundation (in particolare dalla parte riguardante SeaMonkey 1.1.11 [9])
che implementa il CSS per handheld; da esso si è presa principalmente l'idea dell'impaginazione verticale e la dimensione del corpo delle pagine web.
Per i dispositivi PDA la larghezza dello schermo deve essere, al piú, di 220
pixel, quindi si è deciso di impostare 218 px come valore massimo. Questa
dimensione ridotta preclude ovviamente qualsiasi impaginazione degli oggetti
6.5 Fogli di stile alternativi
72
in maniera allineata o orizzontale; si è costretti infatti a disporre i contenuti
verticalmente ed a impostare un carattere a dimensioni piuttosto ridotte. Per
quanto riguarda i form di interazione, anche per questo foglio di stile dedicato è
stato realizzato un CSS ad hoc (pda_form.css) che ha il compito di impostare
le dimensioni dei form, in base a quelle ridotte di caratteri e larghezza della
pagina, adattandole alle dimensioni dello schermo. Lo stesso pda_form.css
viene utilizzato anche per la versione dimostrativa di pda.css (pda_screen.css)
vista precedentemente. Per quanto riguarda la gestione della dimensione dei
form di tipo le, questa viene rimandata al browser dell'apparecchio mobile in
quanto non è possibile andare ad agire tramite codice PHP, visto che l'utilizzo
di pda.css non è dovuto alla scelta dell'utente ma alla scelta del sistema che
automaticamente lo seleziona quando necessario. In pda.css viene poi preclusa
all'utente la possibilitá di personalizzare il layout graco (non mostrando il
box di personalizzazione) in quanto questo è eettivamente l'unico foglio di
stile implementato per dispositivi mobili.
6.5.3
aural
Il foglio di stile per dispositivi vocali (aural.css) [79] è completamente dierente
da tutti gli altri mostrati o descritti in quanto non si occupa di denire la
presentazione a video della pagina, ma della sua lettura a voce. In gura 6.28
è mostrata la dichiarazione del foglio di stile per dispositivi aurali utilizzato in
ogni pagina di ClaimStudentID.
<link rel="stylesheet" type="text/css" media="aural"
href="aural.css" />
Figura 6.28: Fogli di stile alternativi: Dichiarazione CSS per dispositivi aurali
In questo CSS viene denito il parlato attraverso cambiamenti di tonalitá,
di voce e di volume. Grazie alla proprietá CSS volume è possibile impostare un livello di volume proporzionale all'importanza o alla rilevanza di un
paragrafo, una frase o di una parola. La proprietá voice-family permette di
impostare il tipo di voce (maschile o femminile) che eettua la lettura; in particolare si è deciso di utilizzare una voce maschile per il corpo delle pagine ed
una femminile per i titoli. Le proprietá pause-before e pause-after permettono di impostare delle pause nella lettura, misurabili in millisecondi; queste
sono state utilizzate soprattutto nella lettura dei campi delle tabelle e nel menu a tabs. Ulteriori accorgimenti sono costituiti dall'utilizzo di speak-header
che permette di impostare quante volte leggere le intestazioni delle tabelle (in
ClaimStudentID questa proprietá è stata impostata per leggere le intestazioni
solo all'inizio della tabella, viste le esigue dimensioni di questa), di speakpunctuation e di speak-numeral che permettono di leggere rispettivamente
una parola carattere per carattere ed un numero cifra per cifra (queste due
proprietá sono state utilizzate per la lettura degli indirizzi e-mail).
6.6 Skip navigation
73
Anché l'utente possa sfruttare anche la skip navigation (presentata nel
paragrafo successivo) è stato necessario non ridenire, come nascosta, la classe
hidden per poter cosí permetterne al dispositivo vocale la lettura. È stato
inoltre nascosto il box riguardante la personalizzazione in quanto non avrebbe senso chiedere ad un utente che utilizzi uno screen reader di scegliere la
soluzione graca a sé piú gradita.
6.6 Skip navigation
Questo accorgimento software [80] serve per aumentare l'accessibilitá delle pagine web soprattutto per le persone che navigano utilizzando dispositivi assistivi (screen reader su tutti) per ovviare a disabilitá siche che, altrimenti,
renderebbero loro impossibile l'uso del computer.
Nella maggioranza dei casi le pagine web vengono viste tramite i piú diusi
browser graci e su uno schermo di computer, ma non è sempre cosí. Come
giá trattato ampiamente nel Capitolo 2 esistono software capaci di leggere
vocalmente una pagina web tramite la scheda audio. Per farlo devono prima
compiere una operazione detta linearizzazione, con la quale il contenuto di un
sito web viene tradotto in una sequenza di parole, lette una di seguito all'altra.
Le immagini vengono sostituite con il testo specicato nell'attributo alt; il
testo e le eventuali tabelle sono scomposte e riordinate da sinistra verso destra
riga per riga. Se il sito web non è stato creato seguendo i punti sopra descritti
è facile incontrare problemi di interpretazione dovuti alla mancanza di testo
alternativo alle immagini, da una dicile comprensione di una tabella dati, o
da un'errata linearizzazione dei contenuti se il layout del sito è ottenuto tramite
tabelle.
Anche in assenza di tali problemi (e quindi con una pagina creata il piú
possibile ad hoc per l'accessibilitá), l'utente sará costretto ad ascoltare l'intera
pagina letta da sinistra a destra, riga per riga. In questo modo si rischia
che, prima di giungere ai contenuti del sito, l'utente debba ascoltarsi tutto
il contenuto dell'header (il testo posto in alternativa al logo, la tagline, i link
della navigazione primaria) e poi anche il contenuto dell'eventuale colonna di
sinistra come i link della navigazione secondaria e tutto il resto. L'utente è
cosí obbligato a pazientare e, anche nel caso potesse muoversi nel sito grazie
alle opzioni fornite dal software (saltare tramite la tastiera tra un blocco e
l'altro), dicilmente capirebbe come è organizzato il sito non potendone avere
la visione d'insieme. In gura 6.29 è mostrata l'organizzazione classica di un
sito web.
Il meccanismo di skip navigation tende a favorire il piú possibile la navigazione nel sito web; infatti se l'utente desiderasse leggere immediatamente
il contenuto di una pagina, o eettuare un login potrebbe, grazie a questo
accorgimento, farlo in maniera piuttosto veloce. La skip navigation consiste
6.6 Skip navigation
74
Figura 6.29: Struttura tipo di un sito web
semplicemente nell'inserire dei link-áncora, nascosti all'utente che utilizza il
video, in grado di indirizzare l'utente nella zona della pagina desiderata.
Nel caso specico di ClaimStudentID si è inserito un vero e proprio menu
all'inizio dell'home page. Questo menu è stato dichiarato all'interno di un
box di classe nominata hidden (letteralmente invisibile, nascosto) contenente
oltre ai link-áncora anche il titolo del sito che sarebbe altrimenti inaccessibile
alla lettura, in quanto i loghi normalmente visualizzati, costituiti unicamente
da sfondi, sono sprovvisti di testo alternativo. In gura 6.30 è mostrato il
codice del menu nascosto leggibile dalle tecnologie assistive vocali.
<div class="hidden">
<h1>
<span class="orange">C</span>laim
<span class="orange">S</span>tudent
<span class="orange">ID</span>
</h1>
<p>
<a name="NavMenu" id="NavMenu">Start menu</a>
<a href="#SearchForm" title="Execute a search">Search</a>
<a href="#Users" title="Login for registered users">
Registered Users</a>
<a href="#Updates" title="View the latest updates users">
Lastest Updates</a>
</p>
</div>
Figura 6.30: Skip Navigation: Implementazione menu per dispositivi aurali
6.6 Skip navigation
75
Si è deciso di non linkare l'area del box contenente la form di personalizzazione dei template in quanto non avrebbe avuto senso linkare un qualcosa di
assolutamente inadeguato e inutilizzabile ai non vedenti. Oltre ai link-áncora,
nel menu è anche presente un'áncora-destinazione che puó essere facilmente
raggiunta dall'utente al termine della lettura del contenuto di un blocco, per
far ritorno al menu principale. Ogni link è fornito di titolo esplicativo del percorso da intraprendere per aiutare ulteriormente la scelta. In questo modo un
utente non vedente che volesse direttamente loggarsi senza dover prima leggersi
tutti i contenuti per la ricerca, puó farlo semplicemente selezionando l'áncora
corrispettiva al login.
Figura 6.31: Skip Navigation: Struttura dell'home page di ClaimStudentID
Nell'immagine 6.31, dell'home page di default di ClaimStudentID, sono
stati inseriti in rosso i link del menu nascosto (visibile dagli screen reader),
mentre i # rossi rappresentano le destinazioni di tali link, le frecce il collegamento tra link e destinazione e i simboli @ verdi indicano i punti dalla
quale è possibile ritornare al menu. Poiché le destinazioni sono sempre inserite
all'interno del box da raggiungere, l'áncora è fornita di testo specicante il
titolo del blocco.
L'utilizzo della skip navigation è possibile sia per dispositivi di lettura
capaci di interpretare i CSS sia per dispositivi che non li supportano; per i primi
infatti viene utilizzato il foglio di stile per apparecchi aurali (aural.css) che
mostra il menu di skip navigation e nasconde la parte di personalizzazione
6.7 Mappa del sito
76
tramite il valore CSS hidden, mentre i secondi ignorano completamente i CSS
(e dunque anche l'hidden specicato nel foglio di stile per il video) e mostrano
senza problemi il menu di skip navigation.
Il foglio di stile aural.css di fatto inverte i ruoli denendo visibile la classe
nominata come hidden e nascondendo quella nominata come template.
6.7 Mappa del sito
Creare una mappa del sito è molto utile durante lo sviluppo del sito stesso,
ma anche per rendere piú facile agli utenti l'orientamento tra i contenuti del
sito, specialmente quando questi sono molti e suddivisi in molteplici sezioni e
categorie. In ClaimStudentID la mappa del sito (map.php) è stata realizzata
con uno specico script PHP che permette di creare la mappa in automatico
senza che il programmatore si debba preoccupare di aggiornarla all'aggiunta o
alla rimozione di nuove pagine o le. Lo script (che va inserito nella cartella
principale del sito) permette di escludere dalla mappa alcuni le o cartelle
che il programmatore vuole non mostrare ai visitatori per svariati motivi. La
decisione di non mostrare un le o cartella potrebbe essere necessaria in caso
di contenuti privati, di cartelle di sistema utili al programmatore ma estranee
all'applicazione o in caso di aree protette.
6.8 Favicon
Una favicon non è altro che un'immagine di piccole dimensioni (dai 16x16 pixel
ai 32x32 pixel a seconda dei browser) che viene visualizzata nella barra degli
indirizzi a anco del percorso del sito web. Per poter inserire la favicon è
necessario inserire in ogni pagina (all'interno di <head>) la dichiarazione di
gura 6.32.
<link rel="shortcut icon" href="images/icon.jpg"/>
Figura 6.32: Favicon: Dichiarazione favicon
La favicon non è ovviamente richiesta dagli organi uciali del web, ma il
suo utilizzo fornisce uno spessore al primo impatto con il sito e garantisce una
maggior distinguibilitá dagli altri applicativi web, soprattutto per le ricerche
nei preferiti.
Bibliograa
[1] A. Vivalda, ClaimStudentID, tesi di laurea in Informatica Applicata,
Universitá degli Studi di Urbino, 2008
[2] AOL, The Netscape Archive,
browser.netscape.com/,
visitato il 13 Maggio 2009
[3] Microsoft, Internet Explorer,
www.microsoft.com/italy/windows/products/winfamily/ie/default.mspx,
visitato il 5 Marzo 2009
[4] ConStile, Il box model di IE5/Win,
www.constile.org/tutorial/IE5_box_model/,
visitato il 20 Ottobre 2008
[5] Mozilla Europe, Firefox, il browser web,
www.mozilla-europe.org/it/,
visitato il 5 Marzo 2009
[6] Apple, Safari,
www.apple.com/it/safari/,
visitato il 5 Marzo 2009
[7] Opera Software, Opera browser, fastest & safer internet!,
www.opera.com/,
visitato il 5 Marzo 2009
[8] Konqueror, Konqueror, Web browser, le manager and more ...,
www.konqueror.org/,
visitato il 5 Marzo 2009
[9] Mozilla, The Seamonkey Project,
www.seamonkey-project.org/,
visitato l'1 Settembre 2008
[10] Mozilla, The Seamonkey Project,
www.seamonkey-project.org/,
visitato il 14 Maggio 2009
Bibliograa
78
[11] Google, Google Chrome,
www.google.com/chrome/,
visitato il 5 Marzo 2009
[12] Mozilla, Camino, Mozilla Power, Mac Style,
caminobrowser.org/,
visitato il 5 Marzo 2009
[13] Flock Company, Flock Browser, The social web browser,
www.ock.com/,
visitato il 5 Marzo 2009
[14] K-Meleon, K-Meleon,
kmeleon.sourceforge.net/,
visitato il 5 Marzo 2009
[15] Avant Force, Avant Browser,
www.avantbrowser.com/,
visitato il 14 Maggio 2009
[16] Avant Force, Orca Browser,
www.orcabrowser.com/,
visitato il 14 Maggio 2009
[17] Flash Peak, SlimBrowser - Best free internet browser, web browser software!,
www.ashpeak.com/sbrowser/,
visitato il 5 Marzo 2009
[18] W3Schools, Browser Statistics,
www.w3schools.com/browsers/browsers_stats.asp,
visitato il 25 Febbraio 2009
[19] Webdevout, Web Browser Standards Support Summary,
www.webdevout.net/browser-support-summary,
visitato il 5 Marzo 2009
[20] Michele Diodati, Accessibilitá guida completa,
accessibile.diodati.org/agc/cap02.html,
visitato il 15 Dicembre 2008
[21] Michele Diodati, Accessibilitá guida completa,
www.diodati.org/agc/cap02.html#screenreaders,
visitato il 15 Dicembre 2008
[22] Michele Diodati, Accessibilitá guida completa,
accessibile.diodati.org/agc/cap01.html#nonaccedi,
visitato il 9 Gennaio 2009
Bibliograa
79
[23] Palm Inc., La vostra destinazione per Palmari, Mobile Managers, Smartphones, Accessori e Software,
www.palm.com/it/it/,
visitato il 3 Febbraio 2009
[24] Research In Motion, Blackberry - Smartphone,
it.blackberry.com/,
visitato il 3 Febbraio 2009
[25] Linux Foundation, Linux Mobile,
www.linuxfoundation.org/en/Mobile_Linux,
visitato il 3 Febbraio 2009
[26] Symbian Foundation, Symbian Foundation,
www.symbian.org/index.php,
visitato il 3 Febbraio 2009
[27] Microsoft, Micorsoft Windows Mobile,
www.microsoft.com/windowsmobile/it-it/default.mspx,
visitato il 3 Febbraio 2009
[28] Opera Software, Opera Mini - The most popular mobile phone browser
in the world,
www.opera.com/mini/,
visitato il 30 Gennaio 2009
[29] Opera Software, Opera Mobile - Inspiration comes in small packages,
www.opera.com/mobile/,
visitato il 30 Gennaio 2009
[30] Access Co., Advanced Software Solutions for Mobile and Beyond PC NetFront Browser,
www.access-company.com/home.html,
visitato il 30 Gennaio 2009
[31] Mozilla Foundation, Minimo project page,
www-archive.mozilla.org/projects/minimo/,
visitato il 30 Gennaio 2009
[32] Bitstream, Mobile web browser for mobile internet,
www.bitstream.com/wireless/index.html,
visitato il 30 Gennaio 2009
[33] Mozilla, Fennec,
wiki.mozilla.org/Fennec,
visitato il 20 Novembre 2008
Bibliograa
80
[34] Oculista.it, Oculista.it,
www.oculista.it/site/ipovisione.asp,
visitato il 15 Novembre 2008
[35] Freedom Scientic, Products for the Visually Impaired,
www.freedomscientic.com/products/fs/jaws-product-page.asp,
visitato il 26 maggio 2009
[36] GW Micro, Window-Eyes,
www.gwmicro.com/Window-Eyes/,
visitato il 26 maggio 2009
[37] Nvda, Screen reader open source per non vedenti,
www.nvda.it/,
visitato il 26 maggio 2009
[38] Gnome, Orca,
projects.gnome.org/orca/,
visitato il 26 maggio 2009
[39] Lynx, Lynx source distribution directory,
lynx.isc.org/,
visitato il 10 aprile 2009
[40] Links, Links home page,
www.jikos.cz/mikulas/links/,
visitato il 10 aprile 2009
[41] WebbIE, WebbIE, the free web browser for blind people with little or
no sight,
www.webbie.org.uk/,
visitato il 10 aprile 2009
[42] Sourceforge, W3M Homepage,
w3m.sourceforge.net/,
visitato il 10 aprile 2009
[43] E-Links, Full-Featured Text WWW Browser,
elinks.or.cz/,
visitato il 10 aprile 2009
[44] Alynx, The Alynx Homepage,
www.molgen.mpg.de/ alynx/,
visitato il 10 aprile 2009
[45] Sourceforge, Netrik,
netrik.sourceforge.net//?intro.html,
visitato il 10 aprile 2009
Bibliograa
81
[46] uSoft, Zoomtext 9,
www.zoomtext.de/ita/,
visitato il 26 maggio 2009
[47] Freedom Scientic, MAGic Screen Magnication Software,
www.freedomscientic.com/products/lv/magic-bl-product-page.asp,
visitato il 15 aprile 2009
[48] Dolphin, Lunar - Screen magnier,
www.yourdolphin.com/productdetail.asp?id=3,
visitato il 15 aprile 2009
[49] Dolphin, LunarPlus - Screen magnier with speech,
www.yourdolphin.com/productdetail.asp?id=4,
visitato il 15 aprile 2009
[50] Nuance, Nuance Talks,
www.nuance.com/talks/,
visitato il 15 aprile 2009
[51] Code Factory, Code Factory: Products,
www.codefactory.es/en/products.asp?id=283,
visitato il 16 aprile 2009
[52] Cavazza - Polo Informatico Nazionale, Cavazza 2000 - Polo Informatico
Nazionale,
www.cavazza.it/cavazza2000/voicesuite.html,
visitato il 16 aprile 2009
[53] Web per tutti, Modalitá e problematiche di navigazione delle pagine
web,
www.webxtutti.it/gcmodalita.htm
visitato il 4 Gennaio 2009
[54] Disabilitá in cifre, Stima del numero di disabili,
www.disabilitaincifre.it/prehome/tipologie_disabilita.asp,
visitato il 12 Maggio 2009
[55] iCommunicator, iCommunicator 5,
www.icommunicator.com/,
visitato il 26 maggio 2009
[56] RNID Technology, Mobile Textphone,
www.ictrnid.org.uk/9210txt.html,
visitato il 26 maggio 2009
[57] Madente Inc., Magic Cursor 2000 V2.3,
www.madentec.com/products/magic-cursor.php,
visitato il 26 maggio 2009
Bibliograa
82
[58] ReadPlease, ReadingBar - Text-to-speech software that lets your computer talk,
www.readplease.com/english/readingbar.php,
visitato il 26 maggio 2009
[59] Nuance, Dragon Naturally Speaking 10,
italy.nuance.com/naturallyspeaking/,
visitato il 26 maggio 2009
[60] W3C - WAI, Web Accessibility Initiative (WAI),
hwww.w3.org/WAI/,
visitato il 15 Gennaio 2009
[61] W3C - WAI, Web Content Accessibility Guidelines (WCAG) 2.0,
www.w3.org/TR/WCAG20/,
visitato il 20 Dicembre 2008
[62] W3C - WAI, W3C Web Content Accessibility Guidelines 1.0 Conformance Logos,
www.w3.org/WAI/WCAG1-Conformance.html.en,
visitato il 20 Maggio 2009
[63] Giustizia.it, Legge 9 Gennaio 2004, n. 4,
www.giustizia.it/cassazione/leggi/l4_04.html,
visitato il 10 Settembre 2008
[64] PubbliAccesso, Studio sulle linee guida per la verica dell'accessibilitá
- Requisiti per verica tecnica,
www.pubbliaccesso.gov.it/biblioteca/documentazione/studio_lineeguida
/3_requisiti_tecnica.htm,
visitato il 10 Settembre 2008
[65] W3C, HTML 4.01 Specication,
www.w3.org/TR/html401/,
visitato il 12 Febbraio 2009
[66] W3C, XHTML 1.1 - Module-based XHTML,
www.w3.org/TR/xhtml11/,
visitato il 12 Febbraio 2009
[67] Laboratorio di Accessibilitá e Usabilitá, Xhtml 2 e Html 5,
lau.csi.it/realizzare/accessibilita/codice_html/xhtml2/xhtml2.shtml,
visitato il 29 maggio 2009
[68] W3C, XHTML 2.0,
www.w3.org/TR/2002/WD-xhtml2-20020805/,
visitato il 12 Febbraio 2009
Bibliograa
83
[69] W3C, XHTML 2.0,
www.w3.org/TR/xhtml2/,
visitato il 12 Febbraio 2009
[70] W3C, HTML 5,
dev.w3.org/html5/spec/Overview.html,
visitato il 1 Giugno 2009
[71] W3C, Cascading Style Sheets,
www.w3.org/Style/CSS/,
visitato il 18 Maggio 2009
[72] W3C, Cascading Style Sheets, level 1,
www.w3.org/TR/CSS1/,
visitato il 18 Maggio 2009
[73] W3C, Cascading Style Sheets Level 2 Revision 1 Specication,
www.w3.org/TR/CSS21/,
visitato il 18 Maggio 2009
[74] W3C, CSS: Current Work,
www.w3.org/Style/CSS/current-work,
visitato il 18 Maggio 2009
[75] .ConStile, CSS e tabelle a confronto,
www.constile.org/tutorial/css_vs_table/index.html,
visitato il 2 Dicembre 2008
[76] Html.it, Style Switcher per tutti,
webdesign.html.it/articoli/leggi/371/style-switcher-per-tutti/,
visitato il 3 Settembre 2008
[77] Html.it, Ipovedenti: strumenti specici,
webdesign.html.it/guide/lezione/1520/ipovedenti-strumenti-specici/,
visitato il 4 Dicembre 2008
[78] Daniele Rollo, Non dimenticare i fogli di stile per la stampa,
www.danielerollo.com/mediaprint-non-dimenticare-i-fogli-di-stile-per-lastampa/,
visitato il 7 Dicembre 2008
[79] W3C, Aural style sheets,
www.w3.org/TR/CSS2/aural.html,
visitato il 5 Dicembre 2008
[80] I Use it, usabilitá e accessibilitá del web,Skip navigation: in nome dell'accessibilitá,
www.i-use.it/articoli/xhtml/5/,
visitato il 17 Settembre 2008
Ringraziamenti
Non sono particolarmente bravo con le parole, ma non posso esimermi dal
ringraziare chiunque abbia vissuto con me questa pagina importante della mia
vita.
Dal punto di vista della tesi intendo ringraziare il Prof. Alessandro Bogliolo
per le ore che ha dedicato a questo lavoro, per l'enorme disponibilitá mostratami e per avermi indirizzato verso questo caso di studio cosí interessante e
stimolante. Vorrei inoltre ringraziare Andrea Vivalda per la sua disponibilitá,
per avermi fornito dati e consigli indispensabili per la realizzazione della tesi e
per avermi permesso di utilizzare e citare il proprio lavoro di laurea.
Un ringraziamento speciale va sicuramente a tutta la mia famiglia, soprattutto a mio padre, mia madre e a mia sorella, per i sacrici fatti e per il
supporto che mi è stato dato in questi anni.
Vorrei inoltre ringraziare indistintamente tutti i miei amici, sia quelli che
hanno condiviso con me le esperienze universitarie, condite da esami, progetti
di gruppo e da diverse dicoltá, sia quelli che mi hanno accompagnato nei
momenti passati ad Urbino, ma anche e soprattutto tutti gli amici della vita
di tutti i giorni, senza i quali non saprei proprio stare. Ho deciso di non fare
nessun nome proprio per non rischiare di escludere davvero nessuno, ma un
sincero grazie va davvero a tutti.
Scarica