UNIVERSITA' POLITECNICA DELLE MARCHE Facoltà di Ingegneria Corso di laurea in Ingegneria informatica e dell'automazione Valutazione dell'accessibilità dell'interfaccia utente personalizzata per portali sanitari Candidato: Juri Orazi Relatore: Chiar. mo Prof. Aldo Franco Dragoni Anno Accademico 2006/2007 – II Sessione invernale SOMMARIO In questa tesi viene esposto il lavoro svolto durante il tirocinio effettuato presso l’Asur Zona Territoriale n. 7 di Ancona. L’obiettivo è quello di modificare l’interfaccia, già esistente, dell’Assistente Personale (progetto “Arianna”) per adeguarla ai principi dell'accessibilità. L’elaborato è stato suddiviso in cinque capitoli. Il primo capitolo affronta i temi dell'accessibilità e dell’usabilità, per far conoscere cosa si intende con tali termine. In particolare, si vanno a valutare le analogie e le differenze che contraddistinguono queste due materie. Nel secondo capitolo vengono esposte le linee guida divulgate dal W3C (WCAG 1.0 e 2.0), evidenziando le modifiche apportate (e ancora da apportare ) per le WCAG 2.0 prima della stesura definitiva. Nel terzo capitolo viene descritto il progetto dell’Assistente Personale (progetto “Arianna”), che è stato sviluppato per il portale sanitario della ASUR Zona Territoriale n. 7 di Ancona. Vengono presentati gli obiettivi, la struttura e un ipotetico sviluppo futuro. Il quarto capitolo è suddiviso in 2 parti; nella prima di descrive un processo completo per la valutaizone dell'accessibilità di un sito dall'inizio alla fine. Di seguito, dopo aver elencato gli strumenti utilizzati, vengono elencate le modifiche apportate all'Assistente Peronale per far si che rispettino le linee guida WCAG 1.0. Tale parte è stata strutturata suddividendo le modifche a seconda dei punti di controllo coinvolti; per ogni punto di controllo sono enunziate le direttive da seguire e le modifiche effettuate, visibili anche attraverso il relativo screenshot e/o porzioni di codice. Nell'ultimo capitolo vengono esposte alcune considerazioni e pensieri riguardo l'accessibilità e la nuova concezione del web: il Web 2.0 INDICE GENERALE CAPITOLO1 – INTRODUZIONE ALL'ACCESSIBILITA' E USABILITA' NEL WEB.......... 3 1.1 Internet e innovazione: garantire accesso all'uso delle nuove tecnologie.......................... 3 1.2 Cos'è l'accessibilità?........................................................................................................... 4 1.2.1 Definizione................................................................................................................. 4 1.2.2 barriere ideologiche e barriere tecnologiche...............................................................5 1.2.3 tecnologia e disabilità................................................................................................. 7 1.2.4 evoluzione dell'accessibilità......................................................................................10 1.3 Cos'è l'usabilità?............................................................................................................... 11 1.3.1 Definizione............................................................................................................... 11 1.3.2 Fattori di usabilità..................................................................................................... 12 1.3.3 I 10 principi euristici di Nielsen............................................................................... 13 1.3.4 I vantaggi dell'usabilità............................................................................................. 15 1.4 Accessibilità o usabilità? Analogie e differenze.............................................................. 16 1.4.1 analogie: obiettivi parzialmente sovrapposti............................................................ 16 1.4.2 differenze: metodi differenti..................................................................................... 16 1.4.3 tramite un approccio integrato delle due materie un compromesso è possibile....... 18 CAPITOLO 2: LE NORME SULL'ACCESSIBILITA' DEI CONTENUTI W3C WCAG 1.0 E 2.0................................................................................................................................................20 2.1 W3C, WAI e WCAG........................................................................................................20 2.2 le WCAG 1.0.................................................................................................................... 20 2.2.1 organizzazione delle WCAG 1.0: linee guida e priorità...........................................20 2.2.2 la dichiarazione di conformità WCAG 1.0............................................................... 24 2.2.3 linea guida 1: fornire alternative equivalenti per il contenuto audio e visivo.......... 26 2.2.4 linea guida 2: non affidarsi unicamente al colore..................................................... 27 2.2.5 linea guida 3: usare le marcature ed i fogli di stile in modo appropriato ................ 29 2.2.6 linea guida 4: rendere chiaro l'uso del linguaggio naturale ..................................... 30 2.2.7 linea guida 5: creare tabelle che si trasformino in maniera gradevole......................31 2.2.8 linea guida 6: garantire che le pagine che utilizzano tecnologie più recenti si trasformino in maniera gradevole...................................................................................... 32 2.2.9 Linea guida 7: garantire che l'utente possa controllare i cambiamenti del contenuto durante la loro rappresentazione........................................................................................ 34 2.2.10 linea guida 8: garantire l'accessibilità diretta delle interfacce utente incorporate.. 35 2.2.11 linea guida 9: progettare garantendo l'indipendenza dal dispositivo ..................... 35 2.2.12 linea guida 10: usare soluzioni temporanee............................................................36 2.2.13 linea guida 11: usare le tecnologie e le linee guida del W3C................................. 38 2.2.14 linea guida 12: fornire informazioni per il contesto e l'orientamento.....................40 2.2.15 linea guida 13: fornire chiari meccanismi di navigazione...................................... 40 2.2.16 linea guida 14: garantire che i documenti siano chiari e semplici.......................... 41 2.3 uno sguardo al futuro: verso le WCAG 2.0......................................................................42 2.3.1 struttura delle WCAG 2.0 ........................................................................................ 43 2.3.2 principio 1: percepibile ............................................................................................ 46 2.3.3 principio 2: fruibile .................................................................................................. 47 2.3.4 principio 3: comprensibile........................................................................................ 47 2.3.5 principio 4: durevole.................................................................................................48 CAPITOLO 3: PROGETTO “ARIANNA” (ASSISTENTE PERSONALE)........................ 49 3.1 INTRODUZIONE...................................................................................................... 49 3.2 OBIETTIVO E SPECIFICHE DEL PROGETTO.......................................................... 49 3.3 LA STRUTTURA GENERALE..................................................................................... 51 1 3.3.1 IL SOFTBOT...........................................................................................................51 3.3.2 L’INTERFACCIA GRAFICA.................................................................................52 3.4 SVILUPPO FUTURO..................................................................................................... 55 CAPITOLO 4: VALUTAZIONE DELL'ACCESSIBILITA' DEL PROGETTO “ARIANNA” (ASSISTENTE PERSONALE).................................................................................................. 57 4.1 Valutare l'accessibilità di un sito web.............................................................................. 57 4.1.1 Introduzione.............................................................................................................. 57 4.1.2 Revisione preliminare............................................................................................... 58 4.1.3 Valutazione della conformità alle WCAG 1.0..........................................................60 4.1.4 Considerazioni per specifici contesti........................................................................ 65 Valutazione durante il processo di sviluppo...................................................................... 65 Monitoraggio costante....................................................................................................... 65 Valutazione di siti non più aggiornati................................................................................66 Valutazione di pagine web generate dinamicamente.........................................................66 4.2 Applicazione dei criteri di accessibilità al progetto “Arianna”........................................ 67 4.2.1 premessa................................................................................................................... 67 4.2.2 Strumenti utilizzati....................................................................................................68 4.2.3 Esempi di applicazioni dei criteri di accessibilità in “Arianna” .............................. 76 CAPITOLO 5 – SVILUPPI FUTURI : ACCESSIBILTA' E WEB 2.0....................................136 5.1 Introduzione....................................................................................................................136 5.2 caratteristiche principali del web 2.0..............................................................................137 5.2.1 AJAX...................................................................................................................... 137 5.2.2 Contenuto generato dall’utente ..............................................................................137 5.2.3 WCAG 2.0.............................................................................................................. 138 5.3 Possibili scenari futuri.................................................................................................... 138 BIBLIOGRAFIA – SITOGRAFIA...........................................................................................140 2 CAPITOLO1 – INTRODUZIONE ALL'ACCESSIBILITA' E USABILITA' NEL WEB 1.1 Internet e innovazione: garantire accesso all'uso delle nuove tecnologie Le tecnologie per l’innovazione possono fare molto per le persone e rappresentano, di fatto, un’opportunità per l’autonomia. Imparare ad utilizzare le tecnologie informatiche, telematiche, e a convivere con esse all'interno delle case, dei servizi e del territorio urbano significa, specialmente per una persona anziana, poter prolungare i tempi e la qualità delle proprie autonomie. Occorre però dare una direzione a questo processo, partendo dalle condizioni e dall’ottica di chi le usa; ciò richiede il superamento da parte della popolazione della barriera di carattere motivazionale verso ciò che è nuovo e sconosciuto ed un approccio facilitato ai codici in modo tale che questi ultimi entrino nella pratica quotidiana. E’ ragionevole pensare che se oggi esistono numerosi individui “allergici” (anche per posizioni preconcette) e avversi alle tecnologie, siano esse meccaniche, elettroniche o informatiche, differente sarà l'atteggiamento della "generazione informatica”, ovvero quella dei giovani e adulti che già utilizzano il computer. In termini di accesso ad Internet, comunque, coloro che si trovano in questa situazione, in particolare quelle affette da handicap fisici, sensoriali o cognitivi, sono discriminate da una serie di difficoltà tecniche che potrebbero essere in parte risolte da una progettazione idonea dei siti e dei loro contenuti. A maggior ragione, considerando l’espansione del servizio pubblico in linea, si rischia che un’ampia parte della popolazione sia esclusa. Garantire l’accesso e assicurarne la fruizione diventa quindi 3 un nodo decisivo anche dal punto di vista della democrazia sostanziale. 1.2 Cos'è l'accessibilità? 1.2.1 Definizione Quando si parla di accessibilità, questo termine quasi immediatamente viene associato alla parola "disabile": per la maggior parte delle persone, infatti, l'accessibilità è un problema legato alla disabilità fisica, cognitiva o sensoriale e le differenze tecnologiche che spesso isolano parecchi utenti non vengono nemmeno considerate. Finché si parla di problemi legati a un sito Web amatoriale il fatto, pur tecnicamente grave, è ininfluente, ma quando si parla di servizi pubblici o commerciali l'inaccessibilità crea disservizio e perdita di guadagno. Il punto di partenza per capire di cosa si tratta l'accessibilità è la definizione di “accessibile”. A tale scopo sfruttiamo quella contenuta nel glossario delle WCAG 1.0 (Web Content Accessibility Guidelines) che scopriremo successivamente essere un punto di riferimento per la valutazione dell'accessibilità di un sito web. In questo senso definiamo “accessibile” come segue: Content is accessible when it may be used by someone with a disability, ossia un contenuto è accessibile quando può essere utilizzato da un individuo affetto da disabilità. Internet è oramai diventato il canale di comunicazione in cui chiunque può trovare informazioni, accedere a servizi, consultare banche dati, offrire la propria professionalità. In una parola: comunicare. La comunicazione è necessaria soprattutto per quella categoria di utenti che per motivi non legati esclusivamente alla disabilità non può accedere ai servizi disponibili se non tramite queste tecnologie. Una delle più grandi disabilità di questo periodo è quella "temporale": il tempo, ormai, è una risorsa più preziosa dell'acqua e con i ritmi di lavoro e i tempi di spostamento attuali senza l'uso di internet risulta pressoché impossibile poter usufruire di alcuni servizi. 4 Prenotare un posto sul treno, sull'aereo, acquistare dei prodotti, pagare le imposte sono operazioni effettuabili on-line, in qualsiasi orario e in qualsiasi posto vi troviate. Ma, a causa di problemi di accessibilità, non sempre le cose vanno come dovrebbero. L'accessibilità quindi non riguarda solo le persone disabili, ma poiché per esse è una qualità fondamentale, esiste una legge specifica che tutela i loro diritti. 1.2.2 barriere ideologiche e barriere tecnologiche Come per l'accessibilità nel mondo fisico, anche per l'accessibilità informatica esistono delle barriere. A un utente di servizi informatici potrà sembrare più semplice rimuovere una barriera informatica rispetto ad una barriera architettonica, in quanto è diffusa l'idea che lo sviluppo di applicazioni e di contenuti sia un'operazione semplice e che non richiede particolari competenze tecniche. Purtroppo la riprogettazione di applicazioni e di siti Web richiede molto tempo e ingenti risorse economiche ed è forse per tale motivo che nella Legge 04/2004, trattata successivamente, si richiede ai soggetti destinatari della legge l'adeguamento dei propri servizi informatici con i rinnovi contrattuali, auspicando un adeguamento delle modalità di sviluppo da parte delle aziende fornitrici. Le barriere tecnologiche dovute all'utilizzo di contenuti non standard creano forti problemi agli utenti con disabilità, che si vedono costretti ad aggiornare frequentemente gli ausili utilizzati. è bene ricordare che un lettore dello schermo ha un costo di oltre 1000 euro, e che tali applicazioni non risultano ancora inserite nei prontuari degli ausili: se siete degli sviluppatori e pensate di inserire qualche effetto speciale in un sito Web dedicato a un pubblico eterogeneo e che comprende utenti non vedenti, riflettete sul fatto che ciò può contribuire alla diffusione di pratiche di sviluppo sbagliate, che promuovono standard commerciali con conseguente necessità di aggiornamento delle applicazioni e quindi ingenti costi per gli utenti. Costi ulteriori superflui, se le stesse funzionalità fossero state 5 implementate secondo le tecnologie e le raccomandazioni standard de facto, vale a dire le raccomandazioni W3C in materia di sviluppo di contenuti, applicazioni e sistemi per il Web. Sviluppando secondo le linee guida internazionali del consorzio W3C (attualmente in fase di riconoscimento anche da parte di ISO) si garantirà il minor costo di aggiornamento dei sistemi informatici basati su tecnologie Web nonché si otterrà la maggiore garanzia di compatibilità con le diverse periferiche e applicazioni (browser) disponibili sul mercato. Uno dei più grandi problemi legati all'accessibilità e alla promozione dell'accesso universale è stata la guerra tra le diverse proposte di standard commerciali, che hanno portato alla diffusione di programmi per la creazione di contenuti che non producevano pagine conformi alle raccomandazioni internazionali. Mentre uno sviluppatore di contenuti Web che conosca le linee guida W3C sa chiaramente come operare sul codice di una pagina HTML, un Web designer nato nell'era degli editor visuali difficilmente conoscerà le grammatiche formali e nella maggior parte dei casi utilizzerà elementi e attributi in modo inopportuno. Questo è un altro problema inerente all'accessibilità del Web, ossia le barriere ideologiche, molto più difficili da abbattere di quelle tecnologiche: far comprendere a un Web designer che le tabelle e gli elementi di titolazione non vanno utilizzati a scopo decorativo, che un utente non vedente deve poter fruire dei contenuti e che un utente ipovedente deve poter ridimensionare i minuscoli caratteri predisposti per un menù visualizzabile esclusivamente a risoluzioni video 1024x768 pixel su schermo da 17 pollici è ancora oggi difficile. È per questi motivi che l'accessibilità sino a qualche anno fa era considerata un argomento di nicchia, un "qualcosa" utilizzato dai "puristi" del codice che "non comprendono le potenzialità grafiche offerte dalla rete". Grazie però a diverse iniziative, si è cercato di creare una cultura dell'accessibilità e molti designer stanno comprendendo la necessità di sviluppare in modo bello e accessibile, ossia abbinando una grafica d'impatto alla possibilità di fornire l'accesso anche a chi non può fruire di tali effetti speciali a causa di disabilità, anche di solo tipo tecnologico. --> 6 A questo punto è chiaro che per abbattere le barriere tecnologiche è necessario abbattere prima di tutto le barriere ideologiche, facendo chiaramente comprendere che un professionista del Web è colui che nell'ambito della professione opera per sviluppare servizi e prodotti secondo gli standard internazionali, vale a dire pensando tali servizi servizi e prestazioni per realtà commerciali o pubbliche in cui interagiscono anche utenti con disabilità. 1.2.3 tecnologia e disabilità Grazie alle nuove tecnologie gli utenti con disabilità possono sopperire a eventuali disfunzioni fisiche o sensoriali con i cosiddetti ausili (ossia sistemi di aiuto), che consentono agli utenti non vedenti di poter ottenere la lettura dello schermo, agli utenti con disabilità motorie di poter utilizzare periferiche alternative di puntamento, ai disabili cognitivi di ottenere rappresentazioni di contenuti testuali tramite immagini. Alcune categorie di ausili si basano principalmente sul dialogo tra l'ambiente operativo e l'ausilio: ciò che normalmente è gestibile tramite tastiera o mouse viene emulato dall'ausilio. In questo caso, se parliamo di siti Web, è necessario che tutte le funzionalità all'interno di una pagina siano utilizzabili sia con comandi tastiera sia tramite periferiche di puntamento, in modo che tali tecnologie possano identificare i comandi e quindi tradurne il significato alle tecnologie assistive. Come vedremo in alcuni capitoli del libro per ogni categoria di disabilità sono presenti diversi ausili con caratteristiche e funzionalità differenti. Oltre all'interfacciamento con l'ambiente operativo, molte tecnologie assistive utilizzano i contenuti testuali come mezzo per comunicare all'utente i contenuti di una pagina Web e/o di un'applicazione. Per esempio, un contenuto testuale può essere letto da un lettore di schermo di un utente non vedente o essere convertito in linguaggio dei segni per un utente sordomuto. Allo stesso modo, la descrizione equivalente testuale di un contenuto audio può essere utile per utenti non udenti. Come si comprenderà con la lettura di questo libro, è di vitale importanza per qualsiasi disabilità fornire la possibilità di rappresentare tutti i contenuti tramite testo proprio per garantire una comprensione a 7 chiunque con qualsiasi tecnologia di navigazione. Le realtà che creano le raccomandazioni e le normative internazionali in materia di accessibilità come il W3C e l'ISO lavorano in stretto contatto con le associazioni di disabili e con i produttori di tecnologie assistive al fine di poter garantire un'evoluzione delle tecnologie. Mantenendo questo rapporto collaborativo, gli utenti con disabilità hanno la garanzia di poter acquistare ausili che consentono di fruire di servizi e contenuti sempre che gli sviluppatori di pagine Web comprendano definitivamente la necessità di sviluppare secondo tali standard. Un sito Web è come un negozio: un utente perso e scontento può significare la perdita di diversi clienti. Se si tratta poi di una pubblica amministrazione o di un servizio di selezione di personale, può significare anche potenziali contenziosi legali, tutto perché lo sviluppatore non ha voluto applicare delle chiare regole di sviluppo internazionalmente riconosciute. Potremmo classificare in generale 3 categorie di disabilità: disabilità permanente, disabili con problemi di carattere sociale e culturale, disabili con problemi tecnologici. Con disabilità permanenti intendiamo gli utenti con problemi fisici che possono essere per esempio di tipo motorio, di vista o udito; tra questi citiamo: • • • • • cecità (per cui sarebbe opportuno avere alternative a tutti i contenuti visuali); ipovisione (richiede caratteri grandi, margini ampi, l'uso di colori non abbaglianti, forte contrasto fra primo piano e sfondo, impaginazioni semplificate); cecità ai colori (richiede accoppiamenti di colore in cui il contrasto tra testo e sfondo sia basato sulla differenza di luminosità piuttosto che sulla differenza di tonalità); sordità (richiede alternative equivalenti per tutti i componenti auditivi); mancanza o paralisi degli arti superiori (richiede pagine web navigabili anche senza l'ausilio del mouse, per esempio per mezzo di comandi vocali); 8 • • • dislessia (l'uso di termini difficili o il ricorso continuo a parole straniere può rendere molto difficile la lettura di una pagina web per un dislessico); epilessia (la presenza di immagini in movimento sullo schermo, particolarmente se lo sfarfallamento avviene con una frequenza intorno ai 20 Hz, può scatenare crisi epilettiche in soggetti predisposti); ritardo mentale (richiede la realizzazione di realizzare servizi web rispettando adeguati criteri di semplicità e chiarezza espressiva). I disabili in senso stretto sono solo una parte, e neanche la più cospicua, dei beneficiari dell'accessibilità. Accanto a loro elenchiamo diverse situazioni e di conseguenza diversi utenti che possano trovarsi in situazioni di impedimenti sociali e culturali: • • • • persone con normali problemi di vista (miopia, ipermetropia, ecc.); la maggior parte delle persone affette da problemi alla vista inerenti all'invecchiamento potrebbe incorrere in problemi insormontabili nel leggere pagine scritte in caratteri piccoli; persone anziane e/o dotate di scarsa o nulla preparazione informatica, “spaventate” da interfacce troppo complesse, o da richieste di plugin aggiuntivi; persone di livello culturale basso: per rendere accessibili i contenuti pubblicati sul web anche a persone che possiedono un bagaglio culturale basso sarebbe opportuno definire sempre concetti adoperati, scrivere in modo chiaro e ordinato; persone che parlano un'altra lingua: per loro valgono gli stessi accorgimenti per gli individui con basso livello culturale. Infine aggiungiamo le persone che sono limitate dalla navigazione dall'uso di strumenti hardware e software obsoleti o fuori dagli standard tecnologici più aggiornati. Per la prima sottocategoria intendiamo anche coloro che dispongono di una connessione Internet lenta; accessibilità in questo caso significa creare pagine web leggere (non con introduzioni con video o applicazioni flash di oltre 1MB!), in cui la presentazione è separata dal contenuto e la 9 consultazione non perda senso se effettuata senza immagini. Riguardo agli individui che dispongono e usano sistemi poco comuni, basta pensare agli utenti che non si connettono alla rete solo con Windows tramite Internet Explorer. Esiste una percentuale di utenti che utilizza altri sistemi operativi come Machintosh, Linux, BeOS, Amiga o anche diversi browser quali, Netscape, Mozilla, Opera, Konqueror, Safari, Lynx. Aggiungiamoci anche gli utenti che navigano utilizzando la webTV, i celluari, i PDA, monitor con risoluzioni basse o molto grandi, monitor monocromatici. Per questo genere di utenti accessibilità significa progettare pagine indipendentemente dalla periferica senza ottimizzare particolari sistemi o risoluzioni dello schermo, vale a dire pagine con codice standard valido e altamente flessibili nella struttura. Diventa perciò fondamentale al fine di garantire l'accessibilità al web a livello universale concentrare l'attenzione su tutti quei casi che abbiamo fin qui esaminato, ovvero senza escludere nessuno; non solo i disabili in senso stretto, ma anche chi soffre di disabilità temporanee, chi ha attrezzature speciali o obsolete, chi dispone di connessioni lente. 1.2.4 evoluzione dell'accessibilità Negli ultimi anni l'accessibilità si sta diffondendo come argomento centrale riguardo il Web. Il consorzio W3C sta già lavorando a delle nuove versioni delle raccomandazioni per la creazione dei contenuti accessibili (WCAG) e per la creazione degli strumenti di sviluppo accessibili (ATAG), così come il consorzio IMS ha sviluppato le linee guida per la creazione di servizi di formazione a distanza accessibili. Da un anno a questa parte si è riscontrata inoltre una forte attività in materia anche da parte dell'ISO (International Organization for Standardization) organismo internazionale per la definizione degli standard), che ha avviato diverse proposte relative all'ergonomia delle applicazioni con riferimento all'accessibilità delle applicazioni informatiche (ISO/TS 16071, "Ergonomics of human-system interaction - Guidance on accessibility for human-computer interfaces") e a un nuovo documento 10 relativo all'ergonomia delle interfacce Web (ISO/CD 23973, "Software ergonomics for World Wide Web user interfaces"). In Italia, il punto di riferimento normativo è la legge 04/2004 (Appendice C) “Disposizioni per favorire l'accesso dei soggetti disabili agli strumenti informatici” e Grazie a questa legge, sono incentivate le iniziative di promozione dell'accessibilità: non solo strettamente riguardanti il campo della pubblica amministrazione, ma anche le banche hanno definito delle linee guida per l'accessibilità dei servizi di home banking, IWA/HWG ha avviato un gruppo di lavoro per promuovere l'accessibilità nei settori dell'industria, commercio e servizi mentre per le pubbliche amministrazioni il CNIPA ha predisposto le regole tecniche e le metodologie di valutazione per l'accessibilità dei siti Web. Va anche ricordato che il 1°marzo 2006 è stata introdotta un’altra legge per tutelare le persone disabili (Legge 67/2006 "Misure per la tutela giudiziaria delle persone con disabilità vittime di discriminazioni" ): questa norma dà il diritto ad agire, da soli o tramite associazioni, ogni volta che si verifica un comportamento discriminatorio. Anche a livello europeo stanno nascendo iniziative di promozione e soprattutto di definizione di criteri di valutazione dell'accessibilità dei siti Web, segno che qualcosa si sta muovendo... forse per questioni etiche, politiche o forse per potenziali business. 1.3 Cos'è l'usabilità? 1.3.1 Definizione La ISO ha definito l'usabilità in due norme differenti: 1. nello standard ISO/IEC 9126 viene definita come“Information technology – Software product evalutation - Quality characteristics and guidelines for their use” ovvero “la capacità del software di essere compreso, usato e gradito dall'utente quando usato in determinate condizioni”; 11 2. secondo la norma ISO 9241 viene definito come “il grado in cui un prodotto può essere usato da particolari utenti per raggiungere certi obiettivi con efficacia, efficienza e soddisfazione, in uno specifico contesto d´uso”. Sintetizzando le due definizioni l´usabilità di un sito web è data quindi da una serie di fattori che influiscono sull'esperienza che l´utente fa navigando nelle sue pagine, interagendo con il sistema. 1.3.2 Fattori di usabilità Gli elementi principali che influiscono sull'usabilità di un sito sono: • • • • • • • • • percezione: le informazioni e i comandi necessari per l'esecuzione dell'attività devono essere sempre disponibili e percettibili; comprensibilità: le informazioni e i comandi necessari per l'esecuzione delle attività devono essere facili da capire e da usare; operabilità: informazioni e comandi sono tali da consentire una scelta immediata della azione adeguata per raggiungere l'obiettivo voluto; coerenza: stessi simboli, messaggi e azioni devono avere gli stessi significati in tutto l'ambiente; salvaguardia della salute (safety): indica le caratteristiche che deve possedere l'ambiente per salvaguardare e promuovere il benessere psicofisico dell'utente; sicurezza: indica le caratteristiche che l'ambiente deve possedere per fornire transazioni e dati affidabili, gestiti con adeguati livelli di sicurezza; trasparenza: l'ambiente deve comunicare il suo stato e gli effetti delle azioni compiute. All'utente devono essere comunicate le necessarie informazioni per la corretta valutazione della dinamica dell'ambiente; apprendibilità: indica le caratteristiche che l'ambiente deve possedere per consentire l'apprendimento del suo utilizzo da parte dell'utente in tempi brevi e con minimo sforzo; aiuto e documentazione: fornire funzioni di aiuto come guide in 12 • • • linea e documentazione relative al funzionamento dell'ambiente. Le informazioni di aiuto devono essere facili da trovare e focalizzate sul compito dell'utente; tolleranza agli errori: l'ambiente deve prevenire gli errori e, qualora questi accadano, devono essere forniti appropriati messaggi che indichino chiaramente il problema e le azioni necessarie per recuperarlo; gradevolezza: indica le caratteristiche che l'ambiente deve possedere per favorire e mantenere l'interesse dell'utente; flessibilità: l'ambiente deve tener conto delle preferenze individuali e dei contesti. 1.3.3 I 10 principi euristici di Nielsen Jakob Nielsen è colui che più di ogni altro lega il suo nome all’ usabilità del web. Nel suo portale, Nielsen espone i principi euristici che ha ricavato tramite analisi fattoriale di 249 errori comuni emersi in varie ricerche precedenti. I fattori emersi sono 10, e Nielsen li espone sul suo sito. Questi 10 principi si riferiscono in buona parte a 3 grandi aree di problematicità: • Orientamento e Navigazione: rendere cioè disponibili e comprensibili tutti quegli strumenti che consentono all'utente di capire immediatamente dove si trova, da dove è venuto e dove può andare all'interno del sito web. • Prevenzione e gestione di errori, senza allarmismi e con linguaggio comune: gli errori dovrebbero prima di tutto essere prevenuti, ma se ciò non fosse possibile, sarebbe necessario offrire all'utente la possibilità di tornare sempre indietro, e si dovrebbe sempre spiegare cosa sta succedendo, con un linguaggio semplice e chiaro, evitando i messaggi tecnici del server. • Coerenza interna, aderenza agli standard e ai vincoli del web: si deve definire uno stile omogeneo per l'intero sito, non disorientare il lettore con cambi di carattere tipografico, dimensioni, colori e layout senza un motivo che sia prima di tutto semantico. 13 Vediamo ora le 10 euristiche di Nielsen sull'usabilità delle interfacce: 1. visibilità dello stato del sistema; il sistema deve sempre tenere informato l’utente su cosa sta facendo, fornendo un adeguato feedback in un tempo ragionevole. Sapere se un oggetto è un link e dove porta. Utilizzare un segnale di attività in corso (clessidra, barra di caricamento, messaggio testuale, etc.); 2. corrispondenza tra sistema e mondo reale; il sistema deve parlare il linguaggio dell’utente, con parole, frasi e concetti a lui familiari. Uso di messaggi testuali, icone, azioni dal significato condiviso da tutti ( es. "salva con nome", icona "cestino", azione "copia e incolla"); 3. controllo e libertà; l’utente deve avere il controllo del contenuto informativo e muoversi liberamente tra i vari argomenti. Evitare procedure costrittive troppo lunghe (iscrizioni), evitare percorsi predefiniti senza possibili scorciatoie ed evitare azioni non volute dall’utente (apertura automatica di pagine non richieste); 4. consistenza e standard; l’utente deve aspettarsi che le convenzioni del sistema siano valide per tutta l’interfaccia. Riportare in ogni pagina alcuni elementi di riconoscimento (logo, stile grafico), dare la sensazione di essere sempre nello stesso ambiente; 5. prevenzione dell’errore; evitare di porre l’utente in situazione ambigue, critiche e che possono portare all’errore. Dare la possibilità di tornare indietro; 6. riconoscimento anziché ricordo; le istruzioni per l’uso del sistema devono essere ben visibili e facilmente recuperabili; produrre layout semplici e schematici, non contare sulla capacità dell’utente di ricordare il posizionamento degli oggetti che caratterizzano le pagine; 7. flessibilità d’uso; offrire all’utente la possibilità di un uso differenziale (a seconda della sua esperienza) dell’interfaccia, offrire una navigazione gerarchica per i meno esperti, offrire scorciatoie per i più esperti; 8. design ed estetica minimalista; dare maggior importanza al contenuto che all’estetica, evitare di accentuare oggetti irrilevanti o 14 raramente necessari (immagini grandi), evitare che il contenuto informativo della pagina sia messo in secondo piano, evitare che l’utente si distragga o si confonda; 9. aiuto all’utente; aiutare l’utente a riconoscere, diagnosticare e recuperare l’errore. I messaggi di errore devono essere espressi in linguaggio comprensibile (senza codici) e devono indicare in modo preciso il problema e suggerire una soluzione. Chiedere sempre conferma per una azione importante; 10. documentazione; anche se il sistema dovrebbe essere usabile senza documentazione è preferibile che essa sia disponibile. La documentazione deve essere: facile da reperire, focalizzata sul compito dell’utente, strutturata in un insieme di passi comprensibili. 1.3.4 I vantaggi dell'usabilità L'usabilità è un elemento molto importante nella progettazione di un sito web, perché influisce sulla quantità di visitatori di un sito. Sembra infatti che il 60% delle persone che cercano una informazione su internet finiscano per rinunciare senza aver trovato l´oggetto della loro ricerca. Per lo più non tornano a visitare il sito dove non hanno trovato soddisfazione. Pertanto, l´usabilità di un sito dipende da quanto il modo con cui viene progettato coincide con le aspettative dell'utente. Progettare un sito web usabile implica evidentemente un certo sforzo, ma sono indubbi i vantaggi che ne conseguono, e principalmente: • miglioramento nella qualità del prodotto; • riduzione dei tempi di sviluppo; • riduzione degli errori; • miglioramento dell'efficacia; • aumento della soddisfazione degli utenti; • riduzione dei costi di formazione e assistenza utenti; • miglioramento nell'immagine dell'organizzazione. 15 1.4 Accessibilità o usabilità? Analogie e differenze 1.4.1 analogie: obiettivi parzialmente sovrapposti Usabilità e accessibilità sono effettivamente materie affini: hanno entrambe come scopo il miglioramento delle interfacce web e hanno entrambe una doppia applicabilità: a livello valutativo, ovvero per verificare l'usabilità o l 'accessibilità di un sito già esistente, e a livello progettuale, ovvero come supporto alla realizzazione di un sito affinché questo sia accessibile o usabile. Entrambe, inoltre, partono dal presupposto che i siti dovrebbero essere fruiti attraverso qualunque browser, caldeggiando il rispetto degli standard nella scrittura del codice HTML; ma per entrambe questo è solo un presupposto e la correttezza formale del codice, da sola, non rende un sito accessibile né tanto meno usabile. Qualcuno sembra addirittura pensare che prima o poi una delle due materie si fondi con l'altra, dato che crede che abbiano gli stessi fini. Può capitare che l'esperto di accessibilità, una volta soddisfatti i requisiti di compatibilità tra browser, si convinca di aver realizzato un sito usabile o che un programmatore esperto di usabilità cada nello stesso tranello pensando di realizzare un sito accessibile. 1.4.2 differenze: metodi differenti Le due discipline presentano invece sostanziali differenze sia a livello concettuale sia, soprattutto, a livello metodologico. Innanzitutto, mentre per essere accessibile un sito deve garantire la fruibilità a qualunque utente, indipendentemente da disabilità e da dispositivi usati per la lettura delle pagine, un sito usabile è sì caratterizzato dalla fruibilità, ma solo relativamente al proprio target di riferimento; questo perché ciò che è chiaro e semplice per una tipologia di utenti non lo sarà necessariamente per un'altra. Da un lato la priorità è data all'accesso ai contenuti e dall'altro è data alla loro comprensione. 16 La differenza maggiore tra accessibilità e usabilità si riscontra però osservandone i metodi. La realizzazione di un sito accessibile passa attraverso il rispetto di determinate norme (WCAG 1.0 , vedi capitolo 2 o i requisiti della Legge Stanca vedi appendice) e la valutazione dell'accessibilità è appannaggio di strumenti automatici o semiautomatici. La realizzazione di un sito usabile, invece, avviene attraverso l'interpretazione di modelli più che il rispetto di regole e, soprattutto, la valutazione dell'usabilità vede coinvolti in prima persona i potenziali utenti. Da una parte la progettazione è orientata alle caratteristiche del sito, dall'altra al processo produttivo. Pensare all'accessibilità, non significa soltanto progettare affinché un sito possa essere letto attraverso qualunque dispositivo, ma anche generare strutture ipertestuali chiare e contenuti comprensibili. In questo caso l'usabilità, o meglio, i metodi dell'usabilità, possono andare incontro alla progettazione di un sito accessibile intervenendo ai livelli in cui l'applicazione di specifiche tecniche non è sufficiente: nel progetto dell'architettura dell'informazione e nel riscontro dell'effettiva fruibilità del sito attraverso i test con utenti. In assenza di un progetto di usabilità, infatti, l'applicazione di requisiti tecnici può essere insufficiente a garantire la comprensione di un ipertesto e talvolta può perfino nuocere alla navigazione. Per esempio, le regole dell'accessibilità insegnano ad agevolare la lettura tramite uno screen reader sostituendo i troppo generici link "clicca qui" con dei link contestualizzati, ma la scelta di quale link utilizzare implica i metodi di progettazione e valutazione dell'usabilità; la contestualizzazione infatti non può basarsi semplicemente sul buon senso degli sviluppatori. Sempre a proposito di screen reader, le WCAG chiedono di specificare la lingua del documento e di indicare il cambiamento di lingua per ogni parola straniera al fine di migliorare la lettura con uno strumento multilingue. Un cambiamento nella lingua del sintetizzatore, però, produce anche variazioni nel timbro della voce e altera il ritmo della lettura, il che può risultare più fastidioso dell'ascoltare una parola straniera letta con una pronuncia sbagliata. Al di là delle esigenze di correttezza formale del codice, che già la avvicinano all'usabilità, le teorie alla base dell'accessibilità si rivelano 17 estremamente utili anche nella progettazione di un sito usabile. Gli studi sull'accessibilità hanno il grande merito di aver introdotto delle specifiche tecniche per migliorare la fruibilità dei contenuti da parte degli utenti, siano essi disabili o meno. Un sito inaccessibile al suo target di riferimento sarà ovviamente inusabile. Se quindi spogliamo l'accessibilità dell'universalità che la contraddistingue, mantenendo le teorie che ne sono alla base, avremo un eccezionale supporto alla progettazione di siti usabili. Molti dei problemi di usabilità sono infatti legati alla scarsa accessibilità dei contenuti. Se il mio target è composto da persone con più di 50 anni, un testo scritto a caratteri troppo piccoli risulterà poco leggibile, così come dei link troppo ravvicinati rischiano di generare problemi di navigazione anche a persone senza limitazioni nei movimenti fini. La ricerca dell'accessibilità ha permesso di comprendere al meglio i limiti di tutti gli utenti e, soprattutto, di progettare e realizzare siti che tegano conto di tali limiti. 1.4.3 tramite un approccio integrato delle due materie un compromesso è possibile Il reperimento di utenti disabili per l'esecuzione di test di usabilità/accessibilità può però rivelarsi un'impresa ardua. Se però il raggiungimento dell'accessibilità deriva da motivi civici e non da obblighi legali, i test possono essere effettuati anche con utenti normalmente abili simulando, attraverso la navigazione con tecnologie assistive (come gli screen reader) o con un browser testuale, le possibili difficoltà a cui andrebbe incontro un utente disabile. In questo modo è possibile mettere in luce molti dei problemi che derivano da un'interfaccia non accessibile. Un ottimo strumento per la simulazione di disabilità visive è la barra dell'accessibilità: un'estensione di Explorer (gratuita per uso personale e non commerciale) che permette da un lato di effettuare valutazioni semiautomatiche dell'accessibilità e dall'altro di modificare l'aspetto della pagina per quanto riguarda immagini, testi, colori e script. L'accessibilità "per tutti" resta comunque un obiettivo difficile. Nel momento in cui si afferma che un sito per essere accessibile deve anche essere usabile, si deve tener conto di un vincolo fondamentale dell'usabilità: la sua relazione con un target di riferimento. All'aumentare 18 della quantità di utenti a cui un sito è accessibile, diminuirà l'usabilità del sito stesso; è importante quindi raggiungere un compromesso affinché l'accessibilità non sia soltanto il punteggio dato da un validatore, ma la reale possibilità da parte di un'utenza sempre più ampia di raggiungere i contenuti del web. Concludendo possiamo dire che il primo per migliorare davvero i siti e i servizi che rivolgiamo ai nostri utenti è dunque quello di capire entrambe le discipline per poter trarre gli appropriati vantaggi a seconda delle nostre esigenze e dei nostri obiettivi. 19 CAPITOLO 2: LE NORME SULL'ACCESSIBILITA' DEI CONTENUTI W3C WCAG 1.0 E 2.0 2.1 W3C, WAI e WCAG WAI è l'acronimo di Web Accssibility Iniziative, ovvero “Iniziativa per l'accessibilità al Web”. Si trattadi una sezione del World Wide Web (W3C). Il W3C è un organismo che, ormai dal 1994, ha il compito di definire i linguaggi e le procedure standard per rendere il web uno strumento democratico ed universale. I gruppi di lavoro creati all'interno del WAI hanno prodotto negli anni una serie di raccomandazioni tecniche, mirate a dare agli sviluppatori gli strumenti per rendere accessibili non solo i contenuti del web, ma anche i programmi per navigare in rete nonché quelli utilizzati per produrre e pubblicare applicazioni web e siti accessibili. 2.2 le WCAG 1.0 2.2.1 organizzazione delle WCAG 1.0: linee guida e priorità In questa sezione sono analizzate le 14 linee guida che compongono le WCAG 1.0 (pubblicate il 5 maggio 1999) che spiegano come rendere i contenuti di Internet accessibili anche alle persone con disabilità. Le linee guida sono indirizzate sia agli sviluppatori di contenuti Web (autori di pagine e siti Web, nonché chi si occupa della gestione dei contenuti) sia a chi si occupa della programmazione. Aderendo alle linee guida WCAG 1.0 si otterrà il risultato di rendere i contenuti Web più facilmente fruibili da tutti gli utenti, indipendentemente dalla tecnologia di navigazione utilizzata (per esempio, normali browser, browser basati su dispositivi di sintesi vocale, telefoni cellulari, e così via) o da eventuali limitazioni non legate esclusivamente alla disabilità (come dover operare in ambienti rumorosi, in stanze sottoilluminate o sovrailluminate, impossibilità di impiegare le mani): la conformità a queste linee guida consentirà agli utenti di reperire le informazioni desiderate in 20 modo più efficace e veloce. È importante inoltre chiarire che linee guida contenute nelle WCAG 1.0 non devono essere viste come una limitazione nell'utilizzo di immagini, video, elementi audio e così via, in quanto invece suggeriscono come rendere i contenuti multimediali accessibili a un pubblico più vasto. Le quattordici linee guida contenute in questo documento rappresentano i principi generali per lo sviluppo accessibile e si basano sui due principi generali: assicurare una trasformazione gradevole nonché rendere il contenuto comprensibile e navigabile. garantire una trasformazione gradevole Seguendo queste linee guida, gli sviluppatori di contenuti sono in grado di creare pagine che si trasformano con risultato gradevole: queste pagine saranno di fatto accessibili nonostante le possibili disabilità degli utenti, siano esse fisiche, sensoriali, cognitive, dovute al tipo di lavoro o alle barriere tecnologiche. Di seguito si riportano alcuni dei principi chiave per la progettazione di pagine che si trasformino con eleganza contenuti nelle linee guida: • • • • separare la struttura dalla presentazione, conoscendo la differenza che intercorre tra contenuto, struttura e presentazione; fornire contenuti testuali (compresi i testi equivalenti). Il testo può essere riprodotto secondo modalità disponibili a quasi tutti i dispositivi di navigazione e accessibili a quasi tutti gli utenti; creare documenti fruibili anche se l'utente non può vedere e/o sentire fornendo informazioni che abbiano lo stesso obiettivo o funzione di audio e video in maniera che sia adatta anche a canali sensoriali alternativi. Questo non vuol dire creare una versione audio preregistrata dell'intero sito per renderlo accessibile a utenti non vedenti in quanto questi possono utilizzare le tecnologie assistive (es: dei lettori dello schermo) per riprodurre per intero l'informazione testuale presente in una pagina; creare documenti che non si basino su una specifica periferica. Le pagine dovrebbero essere utilizzabili senza mouse, su monitor piccoli, a bassa risoluzione, in bianco e nero, senza schermo, solo 21 con output di voce oppure di testo, ecc. All'interno delle WCAG 1.0, Le linee guida dalla numero 1 alla numero 11 si occupano principalmente di ciò che riguarda la trasformazione gradevole. rendere il contenuto comprensibile e navigabile Gli sviluppatori di contenuti dovrebbero rendere il contenuto comprensibile e navigabile: questo significa, oltre all'usare un linguaggio chiaro e semplice, il fornire meccanismi facilmente comprensibili per la navigazione all'interno della stessa pagina e tra pagine diverse. Dotare le pagine di strumenti di navigazione e informazioni di orientamento ne incrementa l'accessibilità e l'usabilità: non tutti gli utenti difatti sono in grado di comprendere e utilizzare indicazioni di tipo visivo, come immagini sensibili (mappe immagine), barre di scorrimento proporzionali, frame affiancati o gli elementi grafici normalmente utilizzati da utenti senza disabilità visive. Gli utenti possono inoltre perdere informazioni relative al contesto, qualora possano fruire solamente di una parte dei contenuti di una pagina: per esempio, se accedono alla pagina una parola per volta (con sistemi di sintesi vocale o display braille), oppure una sezione alla volta (schermi di piccole dimensioni o caratteri molto ingranditi, nel caso di utenti ipovedenti). Tabelle di grandi dimensioni, elenchi, menù e altri elementi di questo tipo potrebbero non essere comprensibili da parte di alcune categorie di utenti se non vengono fornite informazioni che ne favoriscano l'orientamento. Le linee guida dalla numero 12 alla numero 14 si occupano principalmente dei principi da seguire per rendere il contenuto navigabile e comprensibile. Ogni linea guida include: • l numero della linea guida; • la dichiarazione della linea guida; • la spiegazione della linea guida; • una lista delle definizioni dei punto di controllo. Le definizioni dei punti di controllo in ogni linea guida specificano i requisiti per la conformità alle linee guida. Ogni definizione dei punti di controllo include: 22 • il numero del punto di controllo; • la dichiarazione del punto di controllo; • • • la priorità del punto di controllo; in alcuni casi note informative, esempi chiarificatori o riferimenti incrociati con relazione a linee guida o punti di controllo; il collegamento a una sezione delle "Tecniche per le Linee Guida per l'Accessibilità dei Contenuti per il Web 1.0" dove vengono discusse implementazioni ed esempi per il punto di controllo. Il documento sulle tecniche si occupa dettagliatamente di ogni punto di controllo fornendo esempi attraverso l'utilizzo di Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), Synchronized Multimedia Integration Language (SMIL), Mathematical Markup Language (MathML)., descrive inoltre tecniche per la validazione e la valutazione dei documenti, e comprende l'indice degli elementi e attributi HTML (e delle tecniche che li utilizzano). Queste tecniche sono state progettate per tenere traccia dei cambiamenti della tecnologia e dovrebbero essere aggiornate frequentemente: in questo libro è disponibile un capitolo dove vengono affrontati esempi pratici di applicazione delle linee guida per ogni singolo punto di controllo, ispirandosi al documento delle tecniche e utilizzando risorse ed esempi pratici condivisi nel Web al fine di aiutare l'autore nelle problematiche legate all'applicazione di queste linee guida. Il consiglio è di frequentare le risorse on-line specifiche di accessibilità, molte delle quali vengono spesso citate all'interno del libro, dove è possibile leggere le discussioni e le opinioni di coloro che creano le linee guida e di chi di fatto contribuisce alla loro diffusione. Ogni punto di controllo possiede un livello di priorità. Il livello di priorità rispecchia l'impatto che tale punto possiede sull'accessibilità. I livelli di priorità sono assegnati come segue: [Priorità 1] Lo sviluppatore di contenuti Web deve conformarsi al presente punto di controllo. In caso contrario, a una o più categorie di utenti verrà precluso l'accesso alle informazioni presenti nel documento. La conformità a questo punto di controllo costituisce un requisito base affinché alcune 23 categorie di utenti siano in grado di utilizzare documenti Web. [Priorità 2] Lo sviluppatore di contenuti Web dovrebbe conformarsi a questo punto di controllo. In caso contrario, a una o più categorie di utenti risulterà difficile accedere alle informazioni nel documento. La conformità a questo punto consente di rimuovere barriere significative per l'accesso a documenti Web. [Priorità 3] Lo sviluppatore di contenuti Web può tenere in considerazione questo punto di controllo. In caso contrario, una o più categorie di utenti sarà in qualche modo ostacolata nell'accedere alle informazioni presenti nel documento. La conformità a questo punto migliora l'accesso ai documenti Web. La priorità di alcuni punti di controllo può variare al verificarsi di alcune condizioni che nei casi specifici vengono precisate. 2.2.2 la dichiarazione di conformità WCAG 1.0 In questa sezione delle linee guida WCAG 1.0 è indicato come creare una dichiarazione di validità attestante la conformità dei contenuti per il Web a questo documento. Gli autori della dichiarazione sono i soli responsabili di quanto dichiarano e per l'utilizzo delle icone di conformità e se l'oggetto della dichiarazione viene modificato successivamente alla data di dichiarazione, il dichiarante ha la responsabilità di aggiornare la dichiarazione. Chi si occupa dello sviluppo delle dichiarazioni è incoraggiato alla conformità alle linee guida più recenti. Una dichiarazione di conformità deve indicare il livello di conformità raggiunto: • • livello di Conformità A: sono soddisfatti tutti i punti di controllo di priorità 1; livello di Conformità Doppia-A: sono soddisfatti tutti i punti di controllo di priorità 1 e 2; 24 • livello di Conformità Tripla-A: sono soddisfatti tutti i punti di controllo di priorità 1, 2 e 3. Nota: i livelli di conformità sono indicati in testo esteso (per esempio, Doppia-A invece di AA), in modo che possano essere compresi se letti da un sintetizzatore vocale. La presentazione di tale dichiarazione è consentita in due forme: forma testuale e con utilizzo delle icone di conformità. Per la forma testuale, la dichiarazione di conformità per essere considerata positiva deve includere le seguenti informazioni: • il titolo/la versione delle Linee Guida: "Linee Guida per l'Accessibilità dei contenuti per il Web 1.0"; • l'indirizzo Web dove risalire alle Linee Guida di riferimento: http://www.w3.org/TR/WCAG10; • il livello di conformità soddisfatto: A, Doppia-A, o Tripla-A. • l'ambito della dichiarazione (una pagina, un sito o una porzione ben definita di un sito). Un esempio di dichiarazione in HTML: <p>Questa pagina è conforme alle "Linee Guida per l'Accessibilità dei contenuti per il Web 1.0" del <abbr lang="en" title="the World Wide Web Consortium">W3C</abbr>, disponibili all'indirizzo Web http://www.w3.org/TR/1999/ WAI-WEBCONTENT-19990505, per il livello di conformità Doppia-A.</p> Si auspica che i dichiaranti modifichino o ritirino una dichiarazione nel caso sia possibile dimostrare che tale dichiarazione non è valida. È importante evidenziare che attualmente non è possibile validare le dichiarazioni di conformità in modalità completamente automatica in quanto, come vedremo nei capitoli di applicazione delle WCAG, molti punti di controllo delle linee guida richiedono una verifica personale del progettista. Se si decide di formalizzare la dichiarazione tramite le tre icone di conformità predisposte dal W3C, è necessario apporre, su ciascuna pagina che si dichiara essere conforme, l'icona equivalente al grado di accessibilità raggiunto inserendo un collegamento alla pagina di spiegazione W3C relativa alla dichiarazione. Negli esempi seguenti il 25 codice è stato modificato per essere conforme alla specifica XHTML. Nota: la presenza di una icona di conformità non implica che il W3C abbia revisionato e validato la pagina, essendo come già detto di esclusiva responsabilità di chi la espone. 2.2.3 linea guida 1: fornire alternative equivalenti per il contenuto audio e visivo A causa di disabilità o della indisponibilità di determinate tecnologie per alcuni utenti potrebbe essere impossibile fruire direttamente di immagini, filmati, suoni, applet e altri contenuti di questo tipo. Questi utenti possono comunque accedere ai contenuti se questi includono un'informazione equivalente al contenuto visivo o audio. L'informazione equivalente deve avere la stessa funzione del contenuto visivo e audio che sostituisce: per esempio, un testo equivalente all'immagine di una freccia rivolta verso l'alto che rinvii a un sommario potrebbe essere "Vai al sommario". In alcuni casi, un equivalente dovrebbe descrivere anche l'aspetto del contenuto visivo (come per grafici, pannelli o diagrammi complessi) o il suono del contenuto audio (per esempio, i dei contenuti audio come le spiegazioni di determinate azioni utilizzate nell'istruzione). Questa linea guida rimarca l'importanza del fornire equivalenti testuali al contenuto non testuale (immagini, audio pre-registrati, video). La potenzialità degli equivalenti testuali consiste nella loro capacità di essere rappresentati secondo modalità accessibili a persone con differenti disabilità, ricorrendo a tecnologie diverse: il testo può essere facilmente indirizzato verso la sintesi vocale e il display braille, e può essere presentato visivamente (in vari formati) sul monitor del computer o su carta. La sintesi vocale è fondamentale per le persone non vedenti e per chi soffre delle difficoltà di lettura che spesso accompagnano le disabilità cognitive, di apprendimento e la sordità così come il braille è essenziale per i sordo-ciechi e per tutte le persone la cui unica disabilità sensitiva sia la cecità. Il contenuto testuale invece va a beneficio sia degli utenti sordi sia della maggioranza degli utenti Web. Anche il fornire equivalenti non testuali (come immagini, video e segmenti audio pre-registrati) del testo scritto è di beneficio per alcune categorie di utenti, specialmente per gli illetterati o per le persone che hanno difficoltà di lettura. Nei filmati o nelle 26 presentazioni visuali, il linguaggio del corpo o altri comportamenti a commento dell'azione potrebbero non essere accompagnati da una informazione audio sufficiente a trasmettere l'informazione stessa. A meno che non venga fornita una descrizione verbale di questo contenuto visivo, le persone che non possono vedere (o guardare) il contenuto visivo non saranno in grado di percepirlo. Questa linea guida è formata da cinque punti di controllo, di seguito riportati, che comprendono quattro punti di controllo per la priorità 1 e uno per la priorità 3. punti di controllo 1.1Fornire un equivalente testuale per ogni elemento non di testo. [Priorità 1.2 Fornire collegamenti di testo ridondanti per ogni zona attiva di una mappa immagine sul lato server (server-side). [Priorità 1] 1.3 Fino a quando i programmi utente non potranno leggere automaticamente ad alta voce il suo equivalente testuale fornire una descrizione audio delle informazioni essenziali del filmato di una presentazione multimediale. [Priorità 1] 1.4 Per ogni presentazione multimediale temporizzata, sincronizzare le alternative equivalenti con la presentazione. [Priorità 1] 1.5 Fino a quando i programmi utente non renderanno disponibili equivalenti testuali per collegamenti di mappe immagine sul lato client, fornire collegamenti di testo ridondanti per ogni zona attiva nella mappa immagine sul lato client (client side). [Priorità 3] 2.2.4 linea guida 2: non affidarsi unicamente al colore I problemi legati alla percezione del colore sono più diffusi di quanto si pensi, ed hanno cause ed effetti diversi: si pensi che studi attuali fanno notare che addirittura una persona su dodici ne soffre. Per veicolare l'informazione il colore viene usato in maniera massiccia anche sul Web, e ciò può rendere difficoltosa o addirittura impossibile la navigazione o l'uso di un software per queste persone. Se inoltre pensiamo al costante innalzamento dell'età media dei navigatori abituali, 27 è facile comprendere come per un designer sia importante conoscere queste problematiche, in modo da evitare l'uso di combinazioni cromatiche che siano di fatto un ostacolo alla corretta fruizione dei contenuti nelle pagine Web da realizzare. Alcune disabilità visive non consentono una corretta visualizzazione dei colori rendendo quindi di difficile comprensione alcuni accostamenti cromatici. Ipotizzando di partire da un'immagine originale contenente dei fiori di colore rosa immersi in un insieme di foglie verdi si potranno avere le seguenti variazioni cromatiche: ● ● ● un utente effetto da deutranopia avrà una visione del fiore di colore grigio-azzurrino anziché rosa mentre vedrà le foglie di colore verde oliva anziché il classico colore verde prato. un utente affetto da protanopia avrà una visione del fiore similare all'utente con deutranopia mentre vedrà le foglie di un colore tendente al giallo senape anziché il classico colore verde prato. un utente affetto da tritanopia avrà una visione del fiore di colore rosa chiaro mentre vedrà le foglie di un colore tendente all'azzurro. Pensiamo quindi al caso in cui si forniscano informazioni basandosi su abbinamenti di colore che alcune categorie di utenti possono confondere tra di loro (ad esempio i soggetti affetti da daltonismo) oppure soggetti che possono non vedere un determinato colore. All'interno di questo libro è presente un capitolo curato da Roberto Ellero sull'accessibilità dei colori in cui sarà possibile approfondire questo interessante argomento. La serie dei punti di controllo relativa alla seconda linea guida riguarda in generale la definizione e il corretto utilizzo del colore nelle pagine Web, coinvolgendo tutti e tre i livelli di priorità definiti dalle linee guida. punti di controllo 2.1 Garantire che tutta l'informazione veicolata dal colore sia disponibile anche in assenza di colori. [Priorità 1] 2.2 Garantire che le combinazioni di colori tra il primo piano e lo sfondo forniscano un sufficiente contrasto se osservati da qualcuno con deficit percettivi del colore o quando visualizzati su un monitor 28 in bianco e nero. [Priorità 2 per immagini - Priorità 3 per il testo] 2.2.5 linea guida 3: usare le marcature ed i fogli di stile in modo appropriato Uno dei maggiori problemi nello sviluppo dei siti Web è il mancato rispetto della corretta sintassi del codice: l'usare una sintassi scorretta non permette una corretta interpretazione delle pagine da parte dei browser e quindi, di fatto, non consente una completa fruibilità dei contenuti da parte degli utenti. Usare le marcature in modo improprio, non seguendo le specifiche, impedisce quindi l'accessibilità della pagina Web. Il cattivo uso dei marcatori per effetti di presentazione, come l'utilizzo di tabelle (in molti casi annidate) per l'impaginazione o l'utilizzo degli elementi di intestazione (H1, H2, H3) per cambiare la dimensione dei caratteri, complica la comprensione e/o o la navigazione dell'organizzazione della pagina all'utente con disabilità, specialmente se di tipo visivo o cognitivo. Inoltre, l'uso di marcature di presentazione per rappresentare una struttura (come simulare una tabella di dati con l'elemento HTML PRE) al posto di marcature strutturali rende difficile la comprensione di una pagina a chi utilizza altri strumenti di lettura. Gli sviluppatori di pagine Web possono essere tentati di usare (o usare male) le strutture di formattazione della pagina per rispettare una presunta compatibilità con i vecchi browser. È necessario però essere coscienti del fatto che questa modalità operativa causa problemi di accessibilità, e quindi bisogna ben riflettere su quanto valga la pena di utilizzare una particolare formattazione della pagina se tale struttura rende il documento inaccessibile, ad esempio ad un lettore di schermo. È pertanto necessario che lo sviluppatore assuma come punto centrale di riferimento per la progettazione il concetto e la necessità del separare il contenuto dalla presentazione, utilizzando la sintassi corretta prevista dal linguaggio di marcatura prescelto (HTML, XHTML, MathML, altri), ricorrendo ai fogli di stile per la presentazione grafica degli elementi. Questa linea guida è costituita da sette punti di controllo, tutti per la 29 priorità 2. punti di controllo 3.1 Quando esiste un linguaggio di marcatura adatto, per veicolare informazione usare un marcatore piuttosto che le immagini. [Priorità 2] 3.2 Creare documenti che rispettino le grammatiche formali. [Priorità 2] 3.3 Usare i fogli di stile per controllare l'impaginazione e la presentazione. [Priorità 2] 3.4 Usare unità di misura relative anziché assolute nei valori degli attributi del linguaggio di marcatura e per i valori delle proprietà del foglio di stile. [Priorità 2] 3.5 Usare elementi di intestazione per veicolare la struttura del documento e usarli in modo conforme alle specifiche. [Priorità 2] 3.6 Marcare le liste ed elencare le voci della lista in modo appropriato. [Priorità 2] 3.7 Marcare le citazioni. [Priorità 2] 2.2.6 linea guida 4: rendere chiaro l'uso del linguaggio naturale L'utilizzo della definizione della lingua principale in un documento aiuta il browser nell'individuarne la codifica, ma risulta utile anche ai motori di ricerca per una corretta catalogazione delle pagine. Anche gli utenti che utilizzano tecnologie assistive beneficeranno dell'indicazione riguardo il cambio della lingua: disponendo di una sintesi vocale in lingua italiana, un browser leggerà le parole in lingua straniera in modo pressoché incomprensibile e quindi la mancata applicazione delle linee guida di questo gruppo rende inaccessibile alcune parti magari importanti del contenuto. Inoltre, l'utilizzo di acronimi e abbreviazioni aiuta la navigazione degli utenti e i motori di ricerca a catalogare correttamente i contenuti nonché la comprensione delle sigle spesso utilizzate in siti di pubblico interesse. Questa linea guida è formata da tre punti di controllo, di cui uno di priorità 30 1 e due di priorità 3. punti di controllo 4.1 Identificare con chiarezza i cambiamenti nel linguaggio naturale del testo di un documento e in ogni equivalente testuale. [Priorità 1] 4.2 Specificare il significato di ogni abbreviazione o acronimo nel documento laddove compaia per la prima volta. [Priorità 3] 4.3 Identificare il linguaggio naturale principale di un documento. [Priorità 3] 2.2.7 linea guida 5: creare tabelle che si trasformino in maniera gradevole Le tabelle sono sicuramente l'elemento maggiormente utilizzato nelle pagine HTML, ma troppo spesso in modo non corretto: quante volte abbiamo utilizzato un editor visuale e, per creare un menù allineato a destra con i contenuti a sinistra, creato una tabella a due colonne? Se non abbiamo seguito le indicazioni del W3C di questa Linea guida, il sito è già inaccessibile. Le tabelle, infatti, dovrebbero essere utilizzate per le informazioni che realmente richiedano l'uso di questo elemento, ossia per le tabelle di dati. Troppo spesso, invece, le tabelle vengono utilizzate per impaginare (le cosiddette tabelle di layout), mentre a questo scopo dovrebbero essere utilizzati i fogli di stile (linea guida 3). L'utilizzo delle tabelle per layout è consentito solo se vengono seguiti alcuni accorgimenti previsti da questa linea guida. Se una tabella dati non viene chiaramente distinta da una tabella di layout, i programmi utente (lettori dello schermo o altre applicazioni che linearizzano i contenuti delle tabelle) possono riscontrare problemi di interpretazione dei contenuti delle celle. I punti di controllo di questa linea guida sono a beneficio soprattutto degli utenti che accedono alla pagina Web con ausili audio (quindi non solo i lettori dello schermo ma anche, per esempio, un navigatore satellitare sulla vostra automobile) o persone che riescono a fruire sequenzialmente soltanto di alcune porzioni della pagina come utenti non vedenti o ipovedenti, che utilizzano sistemi di sintesi vocale o display braille, o che 31 vedono le pagine sul display di un computer palmare. La linea guida 5 è formata da sei punti di controllo, due per ogni livello di accessibilità con specifiche per tabelle di dati, tabelle di layout e per entrambi i tipi di tabelle. Il mancato rispetto di tali punti di controllo rende il contenuto delle tabelle inaccessibile agli utenti che utilizzano sistemi alternativi di lettura dei contenuti di una pagina Web, quindi non solo agli utenti non vedenti. punti di controllo 5.1 Per le tabelle dati, identificare le intestazioni per righe e colonne. [Priorità 1] 5.2 Per le tabelle dati che hanno due o più livelli logici di intestazioni di righe o colonne, usare marcatori per associare le celle di dati e le celle di intestazione. [Priorità 1] 5.3 Non usare le tabelle di impaginazione a meno che la tabella non sia comprensibile se linearizzata. [Priorità 2] 5.4 Se si utilizza una tabella di impaginazione non utilizzare alcun marcatore di struttura a scopo di formattazione. [Priorità 2] 5.5 Per ogni tabella definire un sommario dei contenuti. [Priorità 3] 5.6 Fornire abbreviazioni per le etichette di intestazione. [Priorità 3] 2.2.8 linea guida 6: garantire che le pagine che utilizzano tecnologie più recenti si trasformino in maniera gradevole È ormai risaputo che gli sviluppatori sono sempre propensi all'utilizzo di nuove tecnologie, che consentono di risolvere particolari situazioni, come la visualizzazione di un prodotto commerciale in tre dimensioni (3D). Con l'evolversi delle tecnologie troppo frequentemente non si considera la retro-compatibilità, ossia la necessità di progettare un contenuto valido anche per gli utenti che non possiedono queste tecnologie o che per diverse motivazioni non desiderano utilizzarle. L'uso di un browser datato, oppure la disponibilità di una connessione a bassa velocità, che non consente la fruibilità di animazioni e/o applicazioni Web, è una situazione frequente. Pensiamo, per esempio, ai contenuti sviluppati con 32 Macromedia Flash versione 7: per poter fruire dei filmati, gli utenti che non posseggono l'ultima versione del plug-in dovranno scaricarlo obbligatoriamente. Questo è un problema, in particolar modo se lo sviluppatore ha previsto che l'utente debba interagire con i filmati (implementando, per esempio, una serie di menu attivabili esclusivamente se il filmato viene riprodotto). Altri strumenti, come le WebTV di prima generazione (che utilizzavano HTML 3.2 come linguaggio di codifica dei contenuti) non riescono a interpretare i fogli di stile (CSS) di nuova generazione ed è pertanto necessario creare una struttura di pagina che possa essere letta anche da tali tecnologie. In queste situazioni, la domanda da porsi è: tutti gli utenti potranno fruire dei contenuti indipendentemente da qualsiasi piattaforma, sistema di navigazione e tecnologie assistive essi utilizzino? Questa linea guida è formata da cinque punti di controllo di cui tre di priorità 1 e due di priorità 2. punti di controllo 6.1 Organizzare i documenti in modo che possano essere letti anche in assenza dei fogli di stile. [Priorità 1] 6.2 Garantire che all'aggiornamento dei contenuti dinamici vengano aggiornati anche i contenuti equivalenti. [Priorità 1] 6.3 Garantire che le pagine siano utilizzabili quando script, applet, o altri oggetti di programmazione sono disabilitati oppure non supportati. Se questo non è possibile, fornire informazione equivalente in una pagina accessibile alternativa. [Priorità 1] 6.4 Garantire che i gestori di eventi per gli script e le applet siano indipendenti dai dispositivi di input. [Priorità 2] 6.5 Garantire che il contenuto dinamico sia accessibile oppure fornire una presentazione o una pagina alternativa. [Priorità 2] 33 2.2.9 Linea guida 7: garantire che l'utente possa controllare i cambiamenti del contenuto durante la loro rappresentazione Alcune persone con disabilità cognitive o visive non riescono a leggere testo in movimento a causa della velocità di scorrimento oppure non sono in grado di leggerlo affatto in quanto il movimento può causare una distrazione tale da rendere illeggibile il resto dei contenuti presenti nella pagina. I lettori di schermo non sono in grado di leggere testo in movimento mentre persone con disabilità fisiche potrebbero non essere in grado di muoversi con velocità o precisione sufficienti ad interagire con oggetti in movimento mentre altri con testi lampeggianti possono incorrere in attacchi epilettici. Questa linea guida è formata da cinque punti di controllo di cui uno di priorità 1 e quattro di priorità 2: è importante far notare che tutti i punti di controllo seguenti presuppongono un certo livello di responsabilità da parte degli sviluppatori fino a quando i programmi utente (gli "user agent") non forniranno adeguati meccanismi di controllo delle diverse caratteristiche. punti di controllo 7.1 Fino a quando i programmi utente non permetteranno agli utenti di controllare lo sfarfallio, evitare di far sfarfallare lo schermo. [Priorità 1] 7.2 Fino a quando i programmi utente non permetteranno agli utenti di controllare il lampeggiamento, evitare di far lampeggiare il contenuto. [Priorità 2] 7.3 Fino a quando i programmi utente non permetteranno agli utenti di bloccare il contenuto in movimento, evitare il movimento nelle pagine. [Priorità 2] 7.4 Fino a quando i programmi utente non forniranno la possibilità di bloccare l'autoaggiornamento, non creare pagine che si autoaggiornano periodicamente. [Priorità 2] 7.5 Fino a quando i programmi utente non forniranno la capacità di bloccare l'autoreindirizzamento, non usare marcature per reindirizzare le pagine automaticamente. Piuttosto, configurare il 34 server in modo che esegua i reindirizzamenti. [Priorità 2] 2.2.10 linea guida 8: garantire l'accessibilità diretta delle interfacce utente incorporate Quando un oggetto incorporato possiede una propria interfaccia, l'interfaccia (così come l'interfaccia dello stesso browser) deve essere accessibile. Questo significa che ogni interfaccia incorporata deve rispettare i principi di sviluppo di design accessibile, come per esempio l'indipendenza dal tipo di periferica (device) utilizzata, l'operatività tramite tastiera, ecc. Se l'interfaccia dell'oggetto incorporato non può essere resa accessibile, deve essere fornita una soluzione alternativa accessibile. Per lo sviluppo di queste interfacce è necessario far riferimento alle seguenti linee guida: • User Agent Accessibility Guidelines 1.03. • Authoring Tools Accessibility Guidelines 1.04. punti di controllo 8.1 Fare in modo che elementi di programmi come script e applet siano direttamente accessibili o compatibili con le tecnologie assistive. [Priorità 1 (se importante) o 2] 2.2.11 linea guida 9: progettare garantendo l'indipendenza dal dispositivo Abbiamo già detto come i visitatori di un sito Web possano potenzialmente utilizzare diversi dispositivi di input/output per accedere ai contenuti di una pagina : mouse, tastiere, comandi vocali, ecc. Accesso indipendente dal dispositivo significa quindi garantire agli utenti la possibilità di interagire con il programma utente o con il documento per mezzo del dispositivo di input (output) preferito. Al fine di garantire l'accesso a tutti gli utenti, è necessario che le pagine vengano create in modo che qualsiasi dispositivo ne consenta la fruibilità: creare pagine che interagiscono esclusivamente con comandi tramite mouse rendono 35 inaccessibile i contenuti agli utenti che utilizzano la tastiera (o un'emulazione della tastiera) o sistemi di comando vocale. Per esempio, fornendo equivalenti testuali di mappe immagine o per immagini utilizzate come identificazione per un collegamento. In genere, le pagine che permettono l'accesso tramite tastiera sono accessibili anche con input vocale o interfaccia a linea di comando. Questa linea guida è formata da cinque punti di controllo di cui uno di priorità 1, due di priorità 2 e due di priorità 3. punti di controllo 9.1 Fornire mappe immagine sul lato client invece di mappe immagine sul lato server, con l'eccezione dei casi nei quali le zone non possono essere definite con una forma geometrica valida. [Priorità 1] 9.2 Garantire che ogni elemento dotato di una sua specifica interfaccia possa essere gestito in una modalità indipendente dal dispositivo. [Priorità 2] 9.3 Negli script, specificare gestori di evento logici piuttosto che gestori di evento dipendenti dal dispositivo. [Priorità 2] 9.4 Creare un ordine logico di tabulazione fra i collegamenti, i controlli dei moduli e gli oggetti. [Priorità 3] 9.5 Fornire scorciatoie da tastiera per i collegamenti importanti (compresi quelli nelle mappe immagine lato client), per i controlli dei moduli e per i gruppi di controlli dei moduli. [Priorità 3] 2.2.12 linea guida 10: usare soluzioni temporanee Molte delle linee guida e dei punti di controllo contengono le parole "fino a quando i programmi utente". Questi punti di controllo sono classificati come "temporanei", nel senso che il gruppo di lavoro sulle Web Content Accessibility Guidelines (WCAG Working Group) li ritiene validi e necessari per l'accessibilità del Web al momento della pubblicazione di questo documento. Tuttavia, il gruppo di lavoro non ritiene che questi punti di controllo in futuro saranno necessari, quando le tecnologie Web avranno incorporato le capacità e le caratteristiche che sono state 36 anticipate in queste linee guida. Per esempio, i browser più datati non permettono agli utenti di spostarsi su caselle per l'immissione di testo vuote mentre i lettori di schermo di vecchia generazione leggono le liste di collegamenti consecutivi come se fossero un unico collegamento. È quindi difficile, se non impossibile, accedere a questi elementi attivi. Allo stesso modo, cambiare la finestra attiva oppure far comparire delle nuove finestre può disorientare notevolmente gli utenti, che possono smarrirsi all'interno della pagina. Nel mese di dicembre 2003, all'interno del gruppo di lavoro delle WCAG si è iniziato a discutere se sia preferibile fornire una versione migliorata delle WCAG 1.0 rimuovendo alcune di queste indicazioni, senza però modificare di fatto i livelli di conformità dei contenuti: si sta quindi pensando al rilascio delle WCAG 1.0 Second Edition che, al momento di stesura di questo libro, sono ancora in fase di ipotesi. La linea guida è formata da cinque punti di controllo di cui due relativi alla priorità 2 e tre relativi alla priorità 3 e si applicano fino a quando gli interpreti (comprese le tecnologie assistive) non risolveranno questi aspetti. punti di controllo 10.1 Fino a quando i programmi utente non permetteranno agli utenti di bloccare l'apertura di nuove finestre, non fare apparire popup o finestre di altro tipo e non cambiare la finestra attiva senza informare l'utente. [Priorità 2] 10.2 Fino a quando i programmi utente non supporteranno esplicite associazioni fra etichette e controlli dei moduli, garantire che l'etichetta sia posizionata correttamente per tutti i controlli dei moduli che hanno etichette associate implicitamente. [Priorità 2] 10.3 Fino a quando i programmi utente (comprese le tecnologie assistive) non rappresenteranno in modo corretto il testo affiancato, fornire un testo lineare alternativo (nella pagina attiva o in altra pagina) per tutte le tabelle che dispongono testo su colonne parallele e andando a capo. [Priorità 3] 10.4 Fino a quando i programmi utente non gestiranno in maniera corretta i controlli vuoti, inserire caratteri predefiniti come 37 segnaposto nelle caselle per l'immissione di testo a una o a più righe. [Priorità 3] 10.5 Fino a quando i programmi utente (comprese le tecnologie assistive) non rappresenteranno in modo distinto collegamenti adiacenti, inserire caratteri stampabili (delimitati da spazi), non facenti parte dei collegamenti, per separare i collegamenti adiacenti. [Priorità 3] 2.2.13 linea guida 11: usare le tecnologie e le linee guida del W3C Il World Wide Web Consortium (W3C) è stato costituito nel 1994 con la finalità di portare il Web alle sue massime potenzialità: raccomandazioni come HTML, CSS, XML nascono dalle attività del Consorzio esplicate attraverso i gruppi di lavoro (Working Group). Ciò che ha reso fondamentale l'attività del W3C è l'attiva partecipazione alle sue attività dei maggiori produttori di tecnologie e di browser, che operano all'interno di questi gruppi per creare gli standard del futuro. Questa linea guida raccomanda l'uso delle tecnologie del W3C (come HTML e CSS) per diversi motivi: • • • le tecnologie W3C integrano nelle raccomandazioni i riferimenti alle linee guida per l'accessibilità; le specifiche W3C subiscono una revisione preliminare per assicurarsi che gli elementi di accessibilità siano presi in considerazione fin dalla fase progettuale; le specifiche W3C sono sviluppate all'interno di un processo aperto e con il consenso dell'industria del settore. Molti dei formati che non appartengono alle specifiche W3C (come PDF o Shockwave) richiedono l'uso di plug-in proprietari o di applicazioni specifiche senza i quali non possono essere visualizzati, altrimenti non sarà possibile navigare con interpreti standard (comprese le tecnologie assistive). Evitare quindi l'utilizzo di caratteristiche proprietarie, fuori standard W3C (elementi, attributi, proprietà, estensioni) contribuirà nel rendere le pagine maggiormente accessibili ad un numero elevato di 38 persone formato da utenti con diversi sistemi di hardware e software. Per il rispetto delle linee guida sull'accessibilità, quando si utilizzano tecnologie non accessibili (proprietarie o meno) è necessario fornire pagine equivalenti accessibili. D'altra parte questo è anche necessario quando si utilizzano le tecnologie W3C e non sia possibile generare contenuti accessibili. Se prevedete di usare queste tecnologie, assicuratevi che si trasformino in maniera gradevole (linea guida 6). La conversione di documenti PDF, PostScript, RTF e altri nei linguaggi di marcatura del W3C (HTML, XML) non sempre corrisponde alla creazione di un documento accessibile. Dopo il processo di conversione, è necessario quindi validare ogni pagina generata per verificarne l'accessibilità: se una pagina non è convertibile in modo semplice, è necessario cercare di renderla accessibile tramite le tecnologie definite dal W3C oppure, nel caso questo non fosse possibile, è necessario fornire una versione in formato HTML o testo semplice. Un intero capitolo di questo libro è dedicato alla validazione dei contenuti, con riferimenti ed esemplificazioni dove chiaramente viene spiegato che la validazione non può essere totalmente automatica, ma richiede il supporto umano. Questa linea guida è formata da quattro punti di controllo, di cui uno di priorità 1, due di priorità 2 ed uno di priorità 3. punti di controllo 11.1 Utilizzare le tecnologie W3C quando sono disponibili e sono appropriate per un certo compito usando le versioni più recenti quando sono supportate dai programmi utente. [Priorità 2] 11.2 Evitare l'utilizzo di caratteristiche disapprovate dal W3C. [Priorità 2] 11.3 Fornire agli utenti l'informazione necessaria perché possano ricevere i documenti in modo che si adattino alle loro preferenze (per lingua, per tipo di contenuto, ecc.). [Priorità 3] 11.4 Se, nonostante ogni sforzo, non è possibile creare una pagina accessibile, fornire un collegamento a una pagina alternativa che si riferisca alle tecnologie W3C, che sia accessibile, che contenga informazioni (o funzionalità) equivalenti e sia aggiornata con la stessa frequenza della pagina originale inaccessibile. [Priorità 1] 39 2.2.14 linea guida 12: fornire informazioni per il contesto e l'orientamento Raggruppare gli elementi e il fornire informazione contestuale sulle relazioni fra gli elementi è utile a tutti gli utenti in quanto le relazioni complesse fra parti di una pagina possono essere difficili da interpretare per persone con invalidità cognitive o per alcune disabilità di tipo visivo. Questa linea guida è formata da quattro punti di controllo di cui una di priorità 1 e tre di priorità 2. punti di controllo 12.1 Assegnare un titolo a ogni frame per facilitarne l'identificazione e la navigazione. [Priorità 1] 12.2 Descrivere lo scopo dei frame e il modo in cui questi interagiscono se non è evidente solo tramite i titoli dei frame. [Priorità 2] 12.3 Dividere i grandi blocchi di informazione in gruppi più maneggevoli quando è naturale ed appropriato. [Priorità 2] 12.4 Associare esplicitamente le etichette ai loro controlli. [Priorità 2] 2.2.15 linea guida 13: fornire chiari meccanismi di navigazione Meccanismi di navigazione chiari e coerenti sono importanti per le persone con invalidità cognitive o per i non vedenti, e comunque giovano a tutti gli utenti. Quando ad esempio si legge un libro, diversi indicatori ci informano sulla posizione attuale: numeri di pagina, capitoli, titoli, sottolineature del testo sono punti di riferimento durante la lettura. Cosa accade invece per un sito? Se un utente, utilizzando un motore di ricerca, raggiunge una pagina interna al vostro sito, sono disponibili informazioni sufficientemente chiare sulla posizione della pagina nel sito? Il vostro visitatore riuscirà a trovare quel che cerca? A queste domande rispondono positivamente i siti Web che rispettano i 40 punti di controllo di questa linea guida: 10 punti di controllo, di cui quattro relativi alla priorità 2 e sei alla priorità 3. punti di controllo 13.1 Identificare con chiarezza la destinazione di ogni collegamento. [Priorità 2] 13.2 Fornire metadati per aggiungere alle pagine ed ai siti informazioni di tipo semantico.[Priorità 2] 13.3 Fornire informazioni sulla configurazione generale di un sito (per esempio, una mappa oppure un indice dei contenuti). [Priorità 2] 13.4 Usare meccanismi di navigazione in modo coerente. [Priorità 2] 13.5 Fornire barre di navigazione per evidenziare e dare accesso ai meccanismi di navigazione. [Priorità 3] 13.6 Raggruppare i collegamenti correlati, identificare i gruppi (per i programmi utente) e, fino a quando i programmi utente non lo consentiranno, fornire un modo per saltare il gruppo. [Priorità 3] 13.7 Se sono fornite funzionalità di ricerca, rendere possibili diversi tipi di ricerca per differenti livelli di abilità e per preferenze differenti. [Priorità 3] 13.8 Posizionare l'informazione più significativa all'inizio delle intestazioni, dei paragrafi, delle liste, ecc. [Priorità 3] 13.9 Fornire informazioni sulle raccolte di documenti, ossia documenti composti da più pagine. [Priorità 3] 13.10 Fornire un mezzo per saltare i contenuti ASCII multilinea (ASCII Art). [Priorità 3] 2.2.16 linea guida 14: garantire che i documenti siano chiari e semplici Una disposizione coerente della pagina, una grafica riconoscibile e un linguaggio comprensibile giovano a tutti gli utenti, aiutando particolarmente le persone con disabilità cognitive o con difficoltà di lettura. Tuttavia, è bene assicurarsi che le immagini abbiano equivalenti 41 testuali per i non vedenti, gli ipovedenti, o per qualsiasi utente che non possa o abbia scelto di non visualizzare la grafica, secondo quanto definito dalla Linea guida 1 delle WCAG 1.0. L'uso di un linguaggio chiaro e semplice promuove una comunicazione efficace. Per persone con disabilità cognitive o dell'apprendimento, l'accesso all'informazione scritta può essere difficoltoso. L'uso di un linguaggio chiaro e semplice giova inoltre anche alle persone la cui madrelingua sia diversa dalla vostra, comprese le persone che comunicano essenzialmente con il linguaggio dei segni. Questa linea guida è formata da tre punti di controllo, di cui uno di priorità 1 e due di priorità 3, e conclude le WCAG 1.0. punti di controllo 14.1 Utilizzare un linguaggio più chiaro e semplice possibile che sia adatto al contenuto del sito. [Priorità 1] 14.2 Integrare il testo con presentazioni visive o audio nei casi in cui possano facilitare la comprensione della pagina. [Priorità 3] 14.3 Creare uno stile di presentazione coerente fra le pagine. [Priorità 3] 2.3 uno sguardo al futuro: verso le WCAG 2.0 Le WCAG 1.0, attualmente punto di riferimento per l'accessibilità dei contenuti per il Web risalgono al 1999, considerando che tale documento ha richiesto uno sviluppo di circa 2 anni. I gruppi di lavoro del W3C per le WCAG, stanno sviluppando le nuove versioni delle linee guida. I parametri seguenti possono essere considerati al momento come un punto di riferimento sulle aspettative dei gruppi di lavoro riguardo al futuro dell'accessibilità del Web, ma non come delle norme; al momento restano solo delle specifiche in corso di definizione. Non essendo documenti normativi non sono applicabili, ma possono essere una base di studio per comprendere come si intenda risolvere delle problematiche relative alle precedenti versioni delle linee guida. 42 Uno dei maggiori problemi da risolvere delle WCAG 1.0 è sicuramente il limite dell'ambito di applicazione, in quanto la raccomandazione si basa esclusivamente su HTML: basta considerare, per esempio, che raccomandazioni come XHTML 1.0/1.1, SVG 1.0, RDF 1.0, sono successive all'uscita delle WCAG 1.0. Dopo l'uscita delle WCAG 1.0 si sono ampiamente affermati standard "proprietari" come Adobe PDF o Macromedia Flash, tecnologie non definite dal W3C e quindi non integrabili nelle raccomandazioni del consorzio. Un altro problema delle WCAG 1.0 è legato alla certificazione dei risultati di validazione: risulta difatti impossibile effettuare una certificazione dell'accessibilità per tutti i punti di controllo delle WCAG 1.0, in quanto determinati punti di controllo hanno carattere soggettivo (per esempio, i punti della Linea guida 14 sulla chiarezza del linguaggio). 2.3.1 struttura delle WCAG 2.0 Il W3C ha ritenuto necessario aggiornare le attuali WCAG 1.0 in modo da garantirne maggiore chiarezza nell'applicazione pratica, soprattutto per il recepimento nelle normative nazionali. Allo stesso tempo, visto il diffondersi dell'utilizzo di tecnologie proprietarie il W3C ha invitato i produttori di tali tecnologie a sviluppare delle proprie regole di accessibilità invitando gli sviluppatori ad applicarle all'interno dei propri progetti. A differenza delle WCAG 1.0, la versione attualmente in elaborazione non è specifica per l'HTML, ma è orientata a tutte le tecnologie Web, anche proprietarie. A questo proposito, le specifiche tecniche relative a tecnologie proprietarie nonché esempi pratici di applicazione saranno disponibili nei siti dei produttori, in coordinamento con il gruppo di lavoro per le WCAG. Per soddisfare quest'ultimo punto, il gruppo di lavoro del W3C per le WCAG 2.0 ha deciso di definire quattordici linee guida con relativi punti di controllo (il numero esatto è ancora in fase di definizione e vengono definiti "Livelli di test di verifica di successo") nelle quali non ci si addentra nella specificità dei linguaggi. 43 L'obiettivo generale delle WCAG 2.0 è la generazione di contenuti per il Web che siano percettibili, fruibili e comprensibili per le differenti tipologie di utenti e tecnologie di navigazione assistita sia oggi che nel futuro. Sono quattro quindi i principi su cui si basano le diciannove linee guida che andremo ad analizzare nelle pagine di questo capitolo: • percepibile; • fruibile; • comprensibile; • durevole. Una delle novità delle WCAG 2.0 è l'abbandono delle Priorità per i punti di controllo, che ora vengono definiti Success Criteria (test di verifica di successo) e articolati su tre livelli: [Livello 1] Richiede di raggiungere un livello minimo di accessibilità attraverso i linguaggi di marcatura, script o altre tecnologie che interagiscono con i programmi utente, includendo le tecnologie assistive e che possono essere applicati ragionevolmente a tutte le risorse web. [Livello 2] Richiede di incrementare l'accessibilità del livello precedente garantendo maggiore dialogo tra i programmi utente conformi alle UAAG ed i contenuti web e/o garantendo a tutti gli utenti, anche se soggetti a disabilità, di poter utilizzare i contenuti web attraverso i normali programmi utente. Anche in questo caso le linee guida possono essere applicati ragionevolmente a tutte le risorse web. [Livello 3] Prevede test di verifica supplementari, che vanno oltre i livelli 1 e 2 che possono essere applicati per rendere i siti Web accessibili ad un numero maggiore di utenti per tutte o per particolari disabilità. Nelle WCAG 2.0 sono definite quattro attestazioni di conformità in cui chiaramente si definisce come prerequisito il rispetto dei punti di controllo del livello 1 per tutti i livelli successivi alla conformità al livello A: • WCAG 2.0 A: se vengono rispettati tutti i Success Criteria del livello 44 1 per tutte le linee guida. • • • WCAG 2.0 A+: se vengono rispettati tutti i Success criteria del livello 1 per tutte le linee guida e alcuni Success criteria del livello 2. WCAG 2.0 AA: se vengono rispettati tutti i Success Criteria del livello 1 per tutte le linee guida e tutti i Success Criteria del livello 2 per tutte le linee guida. WCAG 2.0 AAA: se vengono rispettati tutti i Success Criteria del livello 1 per tutte le linee guida e tutti i Success Criteria del livello 2 e del livello 3. La dichiarazione di conformità ha dei requisiti minimi da soddisfare. É pertanto necessario dichiarare: • che la risorsa (qualsiasi contenuto del Web) soddisfi tutti i criteri di successo per il livello selezionato di tutte le linee guida; • la versione delle linee guida ed URI di riferimento; • la finalità della dichiarazione di conformità; • l'elenco dei test di verifica di successo superati positivamente; • la data di creazione della dichiarazione di conformità. La domanda posta più frequentemente al gruppo di lavoro è relativa alla necessità di adeguare tutte le vecchie pagine Web conformi alle WCAG 1.0 alla nuova versione delle WCAG 2.0. É stato quindi deciso di consentire una dichiarazione congiunta, simile alla seguente: "I contenuti creati o modificati sino al giorno 6 luglio 2004 sono conformi alle WCAG 1.0 A mentre i contenuti creati o modificati dal giorno 6 luglio 2004 ad oggi sono conformi alle WCAG 2.0 A." Le attuali WCAG 2.0 sono articolate su tre livelli di informazione. Il primo livello è il documento nel suo complesso, suddiviso in una introduzione, quattro principi (percepibile, operabile, comprensibile, durevole), 14 linee guida (ciascuna corredata di test di verifica di successo, definizioni, vantaggi, esempi), una appendice con definizioni, riferimenti e altre informazioni di supporto. Il secondo è un insieme di documenti tecnici con liste di controllo relative a specifiche tecnologie che alla data di 45 pubblicazione del libro non è ancora stato organizzato. Il terzo livello includerà esempi di codice, screenshot e informazioni specifiche alle diverse tecnologie (HTML, CSS, script lato server e lato client, SVG, SMIL, XML), per ottenere la conformità alle linee guida secondo diversi approcci. 2.3.2 principio 1: percepibile Il principio numero uno si riferisce alla percepibilità dei contenuti, vale a dire alla possibilità di poter accedere al contenuto almeno in modalità testuale. È necessario quindi garantire che tutti i contenuti siano presentati in modo da poter essere percepiti da qualsiasi utente - ad esclusione delle informazioni o delle funzionalità che non possono essere descritte in modo testuale (per esempio, le immagini da una webcam in tempo reale). linee guida Per i contenuti non testuali, fornire un testo equivalente che abbia lo stesso scopo o fornisca le stesse informazioni del contenuto non testuale, ad esclusione di quando lo scopo del contenuto non testuale è di generare un'esperienza sensitiva specifica (ad esempio, musica ed arte visiva) e in questo caso è sufficiente una etichetta o una descrizione. 1.1 Fornire alternative in formato testuale per tutti i contenuti non testuali. 1.2 Fornire media equivalenti sincronizzati per le presentazioni dipendenti dal tempo. 1.3 Garantire che le informazioni, le funzionalità e la struttura siano separabili dalla presentazione. 1.4 Per le presentazioni visive, rendere facilmente distinguibili le parole e le immagini principali dallo sfondo. 1.5 Per le presentazioni uditive, rendere facilmente distinguibile il parlato e l'audio principale dai suoni di sfondo. [Linea guida di livello 2] 46 2.3.3 principio 2: fruibile L'utilizzo di tastiera - e che l'utente abbia la possibilità di intervenire nell'esecuzione di tali funzionalità: l'impossibilità ad esempio di poter operare tramite tastiera rende inaccessibili i servizi agli utenti che utilizzano tecnologie assistive basate sui comandi tastiera (per esempio, i lettori dello schermo). linee guida 2.1 Rendere operabili tutte le funzionalità tramite tastiera o tramite interfaccia in emulazione di tastiera. 2.2 Consentire agli utenti di controllare le limitazioni di tempo nella loro lettura o interazione a meno che degli specifici eventi in tempo reale o delle prove rendano impossibile tale controllo. 2.3 Consentire agli utenti di disattivare la rappresentazione dei contenuti che possono causare attacchi di epilessia fotosensitiva. 2.4 Facilitare la capacità degli utenti di orientarsi e muoversi all'interno del contenuto. [Linea guida di livello 2] 2.5 Aiutare l'utente ad evitare gli errori e rendere semplici le modalità per la loro correzione [Linea guida di livello 2 ] 2.3.4 principio 3: comprensibile Il principio numero tre si riferisce alla comprensibilità dei contenuti, vale a dire alla capacità di rendere chiari e semplici i contenuti. Questo principio di fatto corrisponde, estendendone le caratteristiche, alla linea guida numero 14 delle Linee guida per l'accessibilità ai contenuti del Web 1.0 (WCAG 1.0), la quale prevede che i documenti siano chiari e semplici e quindi di facile comprensione per contrastare l'ulteriore esclusione dal Web delle persone con problemi di lettura o disabilità cognitive. É bene ricordare tale punto in quanto contenuto nella Risoluzione del Parlamento Europeo (2002)0325 sulla comunicazione della Commissione "eEurope 2002: accessibilità e contenuto dei siti Internet delle amministrazioni pubbliche" (COM (2001) 529 - C5-0074/2002 - 2002/2032(COS)). linee guida 47 3.1 Garantire che sia possibile determinare il significato del contenuto. 3.2 Organizzare il contenuto in modo costante da "pagina a pagina" e rendere prevedibile il comportamento delle componenti interattive. [Linea guida di livello 2] 2.3.5 principio 4: durevole Il principio numero due si riferisce all'evolvibilità delle tecnologie, vale a dire alla possibilità di poter interagire con i contenuti e con le eventuali interfacce personalizzate attuali e future. Questo significa sviluppare cercando di utilizzare le ultime tecnologie disponibili attualmente ma allo stesso tempo mantenendo la compatibilità con le precedenti nonché operatività con le più diffuse tecnologie assistive. É necessario garantire quindi l'uso di le tecnologie all'avanguardia, supportate dalle attuali tecnologie che presumibilmente saranno utilizzabili anche con tecnologie future. linee guida 4.1 Utilizzare le tecnologie rispettando le specifiche. 4.2 Garantire che le interfacce utente siano accessibili o è prevista una alternativa accessibile. 48 CAPITOLO 3: PROGETTO “ARIANNA” (ASSISTENTE PERSONALE) 3.1 INTRODUZIONE Il progetto dell’assistente personale (denominato progetto “Arianna”) è stato ideato per consentire al cittadino di poter disporre di un punto di contatto personalizzato e diretto con il sistema sanitario e in particolare con gli utenti appartenenti alla ASUR Zona Territoriale 7 di Ancona. Tale progetto aiuterà in maniera particolare quelle categorie di persone quali disabili e non completamente autosufficienti, che possono così trovare nell’assistente personale un valido aiuto al fine di portare a termine determinati processi. Le tecnologie informatiche e comunicative dei nostri giorni possono permettere di creare interfacce in grado di migliorare, rendere intuitiva e semplificare l’interazione tra il personale medico e il cittadino, fornendogli una serie di servizi che possano aiutarlo a mettere in atto misure preventive a far incontrare le sue esigenze e richieste con l’assistenza erogata dal sistema sanitario, ad utilizzare strumenti concreti in grado di aumentare il livello d’autonomia e risolvere i problemi di vita quotidiana. Tutto questo ha lo scopo di migliorare la qualità di vita del cittadino e quindi anche di aggiornarlo in merito alle nuove strutture e competenze messe a disposizione dalle aziende sanitarie. Queste nuove tecnologie devono portare alla definizione di nuovi servizi che siano di integrazione alle attività svolte dal personale medico, in particolare dai medici di base e dagli specialisti, al fine di alleggerire il loro carico lavorativo. 3.2 OBIETTIVO E SPECIFICHE DEL PROGETTO L’assistente personale è di fatto un mezzo di comunicazione tra il paziente e il medico di medicina generale che lo ha in cura o tra il 49 cittadino ed il personale specialistico che può informarlo sulla prevenzione o sulla cura di determinati disturbi. L’obiettivo finale è quindi quello di realizzare un’interfaccia utente intelligente che sia in grado di migliorare le attuali capacità informative fornite dal portale della Zona Sanitaria Locale di Ancona, superando così il basso utilizzo dei servizi on line da parte dei cittadini. Ciascun utente riuscirà ad accedere alla propria pagina personale, all’interno della quale potrà trovare numerosi servizi informativi. Nell’interazione con l’interfaccia, l’utente viene seguito da un assistente virtuale che ne traccia gli attuali obiettivi e che è in grado di rispondere a richieste in linguaggio naturale. Nella fase di sviluppo dell’interfaccia sono state raccolte, attraverso una serie di interviste rivolte al personale medico sanitario che opera all’interno dell’ASUR Zona Territoriale 7, le specifiche del progetto. In questi colloqui si è provato ad individuare quali fossero le richieste dei cittadini e pazienti, ponendo particolare attenzione ai problemi di comunicazione e cercando le possibili soluzioni in grado di risolverli. I colloqui hanno portato alla definizione di strategie che permettessero di intensificare il contatto dell’assistito con il sistema sanitario, senza aumentare la mole di lavoro a carico del personale medico. Si è cercato anzi di introdurre dei servizi che potessero supportarli nelle loro attività, semplificando così l’interazione con i pazienti. Infine la successiva formalizzazione dei requisiti è avvenuta all’interno di riunioni che hanno coinvolto gli amministratori della rete e del sistema informativo aziendale assieme al team di sviluppatori del progetto. 50 3.3 LA STRUTTURA GENERALE Il sistema consiste in un’interfaccia utente suddivisa in due pannelli principali. Un pannello superiore in cui viene caricato il sofbot (software che cerca di stabilire una interazione con l’assistito) ed un pannello inferiore, costituito da una semplice interfaccia grafica composta da collegamenti e pulsanti. Figura 3.1: Interfaccia dell'assistente personale 3.3.1 IL SOFTBOT Il softbot comunica con il paziente usando il linguaggio naturale e il testo scritto ed ha, inoltre, la capacità di rispondere alle richieste sulla base dei protocolli stabiliti dal personale medico. Esso deve adattarsi ad uno specifico utente e, a tale scopo, impiega un modello utente e un modello di sistema. Inoltre, poiché deve avere la capacità di comprendere input imprecisi, ambigui o parziali, si è scelto di utilizzare anche input di tipo passivo (ad esempio la storia di interazione passata tra utente e sistema). Le richieste dell’utente vengono inserite in un sistema di regole di produzione. Tali regole, se soddisfatte, producono risposte e/o azioni che verranno portate a termine dal softbot. Ad esempio, l’assistente è capace di visualizzare le informazioni nel pannello inferiore e guidare l’utente in 51 una procedura semplice ed intuitiva affinché possa raggiungere i propri obiettivi. Gli input, provenienti da più canali di comunicazione, vengono registrati, elaborati e fusi assieme. La fusione avviene ad un livello semantico, ovvero dopo che ogni segnale è stato analizzato separatamente. A questo punto, il sistema, dopo aver deciso l’azione più opportuna da eseguire, adatta l’output sulla base del profilo utente coinvolto. Il testo e il dialogo vengono processati da un motore inferenziale e da uno schedulatore che stabilisce quali regole di produzione mandare in esecuzione. Nello sviluppo del sistema di gestione del dialogo si è scelto un modello a stati finiti. In questo caso il controllo dell’interazione è affidato al sistema e l’output vocale fornito dall’interfaccia è costituito da frasi pre-registrate e predeterminate. Le azioni svolte, unitamente ai dati di anamnesi e alla storia di interazione passata, sono utilizzati per dedurre nuove informazioni. Queste nuove informazioni andranno poi ad aggiornare il modello utente memorizzato all’interno del sistema. Per raggiungere tale risultato si utilizza una rete bayesiana, sviluppata attraverso la piattaforma WEKA, ambiente di sviluppo interamente scritto in Java che permette di applicare dei metodi di apprendimento di data mining (estrazione di informazione utile in modo automatico o semiautomatico) su di un set di dati, analizzandone il risultato. Le regole di produzione hanno la possibilità di generare testo, voce ed azioni. L’output, proveniente da queste regole, è in grado di lanciare scripts C# allo scopo di memorizzare lo stato dell’utente. Tale stato può essere poi recuperato attraverso un codice javascript per la definizione o la modifica dei contenuti del pannello inferiore. 3.3.2 L’INTERFACCIA GRAFICA Il pannello inferiore è costituito da una interfaccia grafica composta da collegamenti e pulsanti. Esso è organizzato in cinque sezioni distinte, che sono: Informazioni, Fascicolo Clinico, Percorsi Sanitari, Ricerca su Rete e Forum. Ogni sezione mette a disposizione vari servizi con l’obiettivo di migliorare il rapporto che si instaura tra il cittadino e i medici dell’ASUR. 52 Il contenuto e la struttura delle sezioni variano a seconda dell’utente che ha effettuato l’accesso. In particolare sono state sviluppate due differenti interfacce grafiche: una per i cittadini/assistiti e l’altra per il personale medico e paramedico. Si riporta ora una breve descrizione delle parti che compongono l’interfaccia. 3.3.2.1 INFORMAZIONI La grande quantità di informazione, accessibile attraverso un computer, potrebbe sovraccaricare cognitivamente l’utente. A questo punto diventa di fondamentale importanza la presenza di un meccanismo atto a filtrare e selezionare i dati richiesti. Questa sezione contiene le informazioni selezionate dal medico generico e/o dagli specialisti che hanno in cura il paziente, in relazione alla propria area di influenza, e ha il compito di organizzare in modo automatico tutti le notizie provenienti dal mondo sanitario. La selezione e il filtraggio si realizza attraverso l’utilizzo di un modello utente, strutturato per mezzo di una rete associativa di parole. Tale rete viene aggiornata attraverso tutte quelle risorse che sono considerate interessanti dall’assistito. 3.3.2.2 FASCICOLO CLINICO La sezione contiene una rappresentazione dei dati clinici dei pazienti. Deve essere aggiornata dal medico di base o da operatori di front office autorizzati. I nuovi dati possono essere inviati da remoto tramite reti sicure (SSL) ed i dati personali del cittadino devono rispettare precisi vincoli di privacy secondo la normativa vigente. I pazienti devono poter visualizzare i dati clinici presenti e ottenere una stampa in una versione più o meno semplificata. Nel caso in cui vi sono richieste troppo generiche da parte del cittadino, l’interfaccia utente deve guidarlo nell’esplorazione della propria cartella clinica ed aiutarlo nel selezionare le parti richieste. Dunque, se l’utente non ha le idee sufficientemente chiare sul tipo di referto richiesto e sui dati da recuperare, l’assistente personale si attiva autonomamente. Per 53 garantire la completa personalizzazione del proprio fascicolo clinico possono essere supportate viste personalizzate. In questo modo l’utente riesce a creare un ambiente di lavoro più familiare, nel quale si trova a proprio agio. Questo meccanismo ha lo scopo principale di aumentare la soddisfazione dell’utente, producendo un alleggerimento nel carico di lavoro sia attraverso la riduzione dell’affaticamento che attraverso la gradevolezza d’interazione. Il sistema, inoltre, potrebbe visualizzare quei valori irregolari che sono stati rilevati nei dati del paziente, fornire informazioni riguardanti i campi presenti all’interno della cartella e presentare all’utente delle domande allo scopo di comprendere il suo stato di salute. 3.3.2.3 PERCORSI SANITARI La sezione permette di visualizzare tutte le azioni e procedure che l’utente deve seguire al fine di prenotare un esame e/o ottenere un certificato medico. Il sistema deve avere la capacità di memorizzare lo stato corrente dei processi avviati dall’assistito. In tal maniera gli utenti visualizzano quali processi sono stati portati a termine e quali quelli ancora in sospeso. Ad esempio, una persona anziana potrebbe necessitare di un qualche tipo di assistenza nel momento in cui desidera ricevere una visita domiciliare. A questo punto il sistema potrebbe informarla che per prima cosa è necessaria una autorizzazione del medico curante, che occorre poi contattare il CUP (il Centro Unificato di Prenotazione) e quindi prendere un appuntamento con uno specifico medico. Alcune azioni possono essere effettuate in modo autonomo dall’assistente virtuale, altre invece devono essere eseguite esclusivamente dalle persone interessate. Dunque, il sistema potrebbe ricordare al paziente che la prenotazione della visita può essere effettuata solo presso il CUP e, al contempo, fornire informazioni utili riguardanti l’ufficio di prenotazione. Sarà poi compito esclusivo del paziente prenotare la suddetta visita presso la struttura preposta. I diversi processi di assistenza si presentano come veri e propri percorsi di lavoro che coinvolgono gli utenti e i diversi praticanti medici. Il sistema 54 di gestione deve organizzare le attività dei diversi attori nel modo più efficace ed efficiente possibile. 3.3.2.4 RICERCA SU RETE Questo servizio permette al cittadino e al personale medico di effettuare ricerche personalizzate. Tali ricerche si basano su un profilo dell’utente che viene aggiornato elaborando il contenuto testuale dei documenti da questi ritenuti correlati con le proprie attività. I risultati ottenuti vanno strutturati in base alla corrispondenza col profilo utente memorizzato. L’obiettivo principale è quello di evitare un possibile sovraccarico cognitivo dell’utente, perciò si cerca di presentare i risultati in modo ordinato, da quelli più significativi a quelli più lontani dai suoi interessi. Inoltre il sistema ha la capacità di mettere in contatto gli utenti tra loro, selezionando una lista di profili simili. Tutto ciò ha il duplice scopo di favorire la collaborazione tra i dipendenti dell’azienda sanitaria e di soddisfare le richieste di informazioni dei cittadini mettendoli in contatto con il personale medico autorizzato. 3.3.2.5 FORUM Questa sezione garantisce l’annotazione automatica dei messaggi. Il servizio gestisce in modo semi-automatico le richieste inviate dai cittadini. I nuovi messaggi vengono analizzati automaticamente dal sistema. Successivamente il sistema ottiene tutte le risposte, precedentemente fornite dai medici, che possono soddisfare tali richieste. Grazie a questo meccanismo i cittadini possono ritrovare immediatamente una risposta alla loro richiesta, senza dover attendere la replica del medico specialista. 3.4 SVILUPPO FUTURO L’aspettativa principale è quella di creare soluzioni innovative che portino 55 a recuperare le informazioni in modo semplice ed intuitivo e fornire l’assistenza necessaria ai cittadini. Il progetto dell’assistente personale deve soddisfare pienamente le esigenze dell’utente fornendo servizi di informazione adattativi. Nel futuro, per semplificare l’interazione con la IUI, sarà possibile adottare tutti quei meccanismi di comunicazione propri delle interfacce multimodali. Poiché si tratta di un progetto a medio-lungo termine sarà soggetto a modifiche. Dunque, dovranno essere aggiunti servizi di transazione, quali la prenotazione di una visita medica e il pagamento dei ticket. Si dovrà anche sviluppare il progetto in più lingue per soddisfare le esigenze di una società sempre più multietnica. Sarà inoltre possibile accedere all’interfaccia e quindi a tutte le sue funzionalità tramite telefoni cellulari UMTS, palmari ed altri dispositivi portatili. Infine all’interno del softbot saranno integrati ulteriori modelli, basati principalmente sulle emozioni, con l’obiettivo di ottenere una interazione simile a quella umana. 56 CAPITOLO 4: VALUTAZIONE DELL'ACCESSIBILITA' DEL PROGETTO “ARIANNA” (ASSISTENTE PERSONALE) 4.1 Valutare l'accessibilità di un sito web 4.1.1 Introduzione Esistono una varietà di strumenti e di approcci per valutare l'accessibilità di un sito web. Nessun singolo strumento di valutazione fornisce ancora informazioni complete o è in grado di cogliere tutti i problemi relativi all'accessibilità di un sito; perciò la valutazione richiede più approcci combinati. Gli obiettivi della valutazione di siti web sono differenti e richiedono, per essere raggiunti, approcci differenti: ● ● ● ● ● La revisione preliminare può: • identificare barriere di tipo generale su un sito web. La valutazione della conformità può: • cogliere i problemi principali durante la fase di sviluppo di un nuovo sito; determinare il livello di conformità alle WCAG 1.0 per un sito web esistente; dimostrare che un sito web soddisfa un dato livello di conformità alle WCAG 1.0. La valutazione della conformità, unita al riesame delle procedure per il monitoraggio costante, può: • aiutare a garantire che un sito conservi nel tempo un dato livello di conformità. 57 4.1.2 Revisione preliminare La revisione preliminare può aiutare ad identificare rapidamente la portata dei problemi di un sito web. Tuttavia la revisione preliminare non è in grado di cogliere tutti i problemi di un sito e non dovrebbe essere usata per determinare il livello di conformità. Una revisione preliminare non comprende le impressioni di una molteplicità di utenti con disabilità né interessa o testa ciascuna caratteristica di un sito. Una revisione preliminare combina il controllo manuale di alcune pagine campione di un sito web, con l'uso di vari strumenti semi-automatici per il controllo dell'accessibilità. I revisori non hanno bisogno di conoscere i linguaggi di marcatura per il Web, ma dovrebbero essere capaci di scaricare dei programmi dalla Rete e di familiarizzarsi con l'uso di alcuni strumenti on line, nonché di modificare certe impostazioni nei loro browser. Per condurre una revisione preliminare, completate tutti i cinque passi qui di seguito. 1. Selezionate un campione rappresentativo di differenti tipi di pagine dal sito web che deve essere esaminato; deve includere tutte le pagine alle quali è più probabile che la gente acceda giungendo al sito (la pagina di benvenuto, ecc.) NOTA: nei siti web con contenuti generati dinamicamente tramite database, producete dei campioni largamente rappresentativi, salvateli come pagine statiche e verificate queste ultime. 2. Usate un browser con interfaccia utente grafica (GUI), come ad esempio Internet Explorer, Netscape Navigator o Opera, ed esaminate il campione di pagine, modificando le impostazioni del browser nel modo seguente (NOTA: per gli utenti con disabilità, alcuni dei passi successivi possono richiedere l'aiuto di un'altra persona che non abbia le medesime disabilità.) (NOTA: Alcuni di questi controlli manuali possono essere eseguiti cambiando le impostazioni o le preferenze del browser, alcuni possono richiedere cambiamenti alle impostazioni del sistema operativo, altri ancora possono richiedere programmi aggiuntivi.) 1. Disabilitate le immagini e verificate se sono disponibili testi alternativi appropriati. 58 2. Disattivate l'audio ed assicuratevi che i contenuti audio siano ancora disponibili attraverso degli equivalenti testuali. 3. Usate i controlli del browser per modificare la grandezza dei caratteri: verificate che la grandezza dei caratteri sullo schermo vari in modo corrispondente; e che la pagina sia ancora usabile una volta ingranditi i caratteri. 4. provate con differenti risoluzioni dello schermo e/o ridimensionando la finestra dell'applicazione a meno della sua grandezza massima, per verificare che non è richiesto lo scorrimento orizzontale (attenzione: fate la prova con browser differenti o esaminate il codice alla ricerca di dimensionamenti assoluti, per assicurarvi che sia un problema del contenuto e non un problema del browser) 5. modificate il colore dello schermo a scala di grigi (oppure stampate la pagina in scala di grigi o in bianco e nero) ed osservate se il contrasto dei colori è adeguato. 6. senza usare il mouse, tabulate attraverso i collegamenti ed i controlli dei moduli presenti sulla pagina, assicurandovi che potete accedere a tutti i collegamenti e a tutti i controlli dei moduli, e che i collegamenti indichino chiaramente a cosa conducono. 3. Usate un browser vocale come per esempio Home Page Reader, o un browser testuale come Lynx ed esaminate il sito web cercando di rispondere a queste domande (NOTA: gli utenti esperti nell'uso di lettori di schermo possono usare un lettore di schermo al posto di un browser vocale o testuale, ma se ciechi, possono aver bisogno di un compagno vedente per paragonare le informazioni con quelle disponibili visualmente; se vedenti, ascoltino il contenuto con gli occhi chiusi, quindi aprano gli occhi e confermino se l'informazione è equivalente.) 1. sono disponibili attraverso il browser vocale o testuale informazioni equivalenti a quelle disponibili attraverso un browser grafico? 2. le informazioni sono presentate in un ordine significativo se lette serialmente? 4. Usate due strumenti per la valutazione dell'accessibilità generale ed 59 annotate ogni problema indicato da tali strumenti. 5. Ricapitolate i risultati 1. ricapitolate i tipi di problemi incontrati nonché le buone pratiche che dovrebbero essere continuate o ampliate all'interno del sito 2. indicate il metodo con cui i problemi sono stati identificati e dichiarate chiaramente che non si trattava di una valutazione completa della conformità 3. raccomandate passi ulteriori, tra cui una valutazione completa della conformtià che includa la validazione del codice di marcatura ed altre verifiche nonché modi per risolvere i problemi identificati. 4.1.3 Valutazione della conformità alle WCAG 1.0 Una valutazione completa combina verifiche delle caratteristiche di accessibilità realizzate in modo semi-automatico, manuale e tramite utenti. Le valutazioni complete richiedono familiarità con i linguaggi di marcatura per il Web; lo scaricamento iniziale e/o l'addestramento con una molteplicità di strumenti di valutazione e di approcci; la configurazione delle impostazioni del browser; il coordinamento con revisori con diverse disabilità. La valutazione con utenti è importante ed aiuta ad identificare eventuali problemi nel modo in cui si stanno applicando le soluzioni tecniche. Una valutazione completa correttamente condotta può identificare i problemi potenzialmente maggiori durante la fase di sviluppo di un nuovo sito; determinare quale livello di accessibilità un sito web soddisfa; e/o garantire che un sito web raggiunga un richiesto livello di accessibilità. Una valutazione completa include tutti i passi sotto riportati ad eccezione di quelli che sono esplicitamente identificati come alternativi o facoltativi (NOTA: mentre identificare il campione di pagine è un primo passo chiave, e ricapitolare ed annotare i risultati della valutazione è la logica conclusione, l'ordine dei passi intermedi non è cruciale). 1. Identificate e rendete pubblica l'estensione del sito che deve essere valutato ed il livello di conformità a cui punta la valutazione (NOTA: 60 la divulgazione dovrebbe essere interna all'organizzazione durante la valutazione; se la conformità è dichiarata pubblicamente, rendete noto l'obiettivo anche all'esterno (p.es. sul sito web)): • Identificate e rendete pubblico il livello di conformità alle WCAG 1.0 che è il vostro obiettivo. • identificate e rendete pubblica una selezione di pagine per la verifica manuale e con utenti, che includa come minimo una di ciascun differente tipo di pagina all'interno del sito nonché tutte le pagine alle quali è più probabile che acceda la gente che visita il vostro sito. NOTA: esistono considerazioni speciali per i siti web con contenuti generati dinamicamente da database • identificate e rendete pubblico l'intero sito web comprendente tutte le pagine raggiungibili da un dato URL di base, per la valutazione automatica e semi-automatica; NOTA: se la verifica dell'intero sito non è fattibile (p.es. a causa della sua inusuale grandezza o per la natura dinamica), identificate una selezione ampliata di pagine, che deve essere chiaramente spiegata e resa pubblica sul sito web. Suggerimenti per l'inclusione in questa selezione ampliata di pagine: pagine appartenenti a differenti sezioni del sito; pagine rappresentative di stili grafici differenti; pagine rappresentative di differenti strumenti di sviluppo e processi, comprese quelle generate da database; pagine prodotte obbedendo a differenti linee guida; pagine di "contatti"; pagine critiche per la vostra attività, ecc. Se una qualsiasi area di un sito è esclusa dalla valutazione, assicuratevi di rendere pubblica quest'informazione. 2. Valutazione semi-automatica ed automatica • Validate il codice di marcatura, comprendendo sintassi e fogli di stile, usando tutti i validatori applicabili, sulla selezione di pagine. Eseguite almeno uno degli strumenti di validazione sull'intero sito web • HTML Validation service • HTML Tidy • CSS Validation service 61 MathML Validator • Usate almeno due strumenti per la valutazione dell'accessibilità sulla selezione di pagine ed eseguite almeno uno degli strumenti sull'intero sito web. Annotate qualsiasi problema indicato dagli strumenti. (un elenco degli strumenti è disponbile a http://www.w3.org/WAI/ER/tools/#General) 3. Valutazione manuale • Esaminate la selezione di pagine utilizzando i punti di controllo rilevanti dalla scheda dei punti di controllo per le Web Content Accessibility Guidelines 1.0. NOTA 'Rilevante' può significare: i punti di controllo che non possono essere valutati da strumenti automatici o semiautomatici; i punti di controllo che si applicano effettivamente al sito (p.es. se il sito non contiene contenuti audio, saltate quelli [relativi ai contenuti audio]); e, come minimo, quei punti di controllo che si applicano al livello di conformità che state valutando. • Esaminate la selezione di pagine con un browser dotato di interfaccia utente grafica (GUI): selezionate almeno tre differenti configurazioni scelte tra le seguenti variabili: differenti browser con interfaccia utente grafica (Internet Explorer, Netscape, Opera), in differenti versioni (le più recenti, le più vecchie), installate su differenti piattaforme (Windows, Linux, Mac) e facendo i seguenti aggiustamenti (NOTA: per gli esaminatori che hanno disabilità, alcuni dei passi successivi possono richiedere di essere fatti con un'altra persona che non abbia la medesima disabilità.): • Disabilitate le immagini e verificate se sono disponibili testi alternativi appropriati. • Disattivate l'audio ed assicuratevi che i contenuti audio siano ancora disponibili attraverso degli equivalenti testuali. • Usate i controlli del browser per modificare la grandezza dei caratteri: verificate che la grandezza dei caratteri sullo schermo vari in modo corrispondente; e che la pagina sia ancora usabile una volta ingranditi i caratteri. • provate con differenti risoluzioni dello schermo e/o • 62 • ridimensionando la finestra dell'applicazione a meno della sua grandezza massima, per verificare che non è richiesto lo scorrimento orizzontale (attenzione: fate la prova con browser differenti o esaminate il codice alla ricerca di dimensionamenti assoluti, per assicurarvi che sia un problema del contenuto e non un problema del browser) • modificate il colore dello schermo a scala di grigi (oppure stampate la pagina in scala di grigi o in bianco e nero) ed osservate se il contrasto dei colori è adeguato. • senza usare il mouse, tabulate attraverso i collegamenti ed i controlli dei moduli presenti sulla pagina, assicurandovi che potete accedere a tutti i collegamenti e a tutti i controlli dei moduli, e che i collegamenti indichino chiaramente a cosa conducono. • esaminate infine la pagina con script, fogli di stile ed applet non caricati Esaminate la selezione di pagine con un browser testuale (come per esempio Lynx) ED un browser vocale (come per esempio Home Page Reader) e rispondete alle seguenti domande: • Con il browser testuale • Informazioni e funzioni equivalenti (p.es. collegamenti ed eventi gestiti da script) sono disponibili attraverso il browser testuale così come sono disponibili attraverso il browser grafico? • Le informazioni sono presentate in un ordine significativo quando lette serialmente? • Con il browser vocale (NOTA: Per impostazioni per le quali esiste una scelta limitata di tecnologie assistive, eseguite pure una valutazione manuale del sito web con quelle tecnologie assistive; per esempio, JAWS è l'unico lettore di schermo tradotto in danese, e perciò un valutatore qualificato dovrebbe esaminare il sito web usando JAWS.) 63 informazioni equivalenti sono disponibili attraverso il browser vocale così come sono disponibili attraverso il browser grafico? • le informazioni sono presentate in un ordine significativo quando lette ad alta voce in modo seriale? • Rileggete attentamente le pagine: i testi sono chiari e semplici in una misura appropriata agli scopi del sito web? (Per i siti in inglese, valutate l'utilizzo del test Clear and Appropriate Language and Design (CLAD).) [NOTA: è appropriato rivolgere una tale domanda anche alle persone che partecipano a test di usabilità delle caratteristiche di accessibilità]. 4. Test di usabilità delle caratteristiche di accessibilità • Fate in modo che persone con differenti disabilità, differenti livelli di capacità tecnica e differenti livelli di familiarità con il sito, usando una molteplicità di tecnologie assistive e di strategie adattative, esaminino una selezione di pagine ed esplorino liberamente l'intero sito web [NOTA: talvolta ciò viene fatto nel contesto di un laboratorio sperimentale, ma è anche importante che le persone possano valutare il sito nel proprio tipico ambiente Web. Sono importanti differenti livelli di esperienza tecnica e di familiarità con il sito da parte degli utenti, osservate dunque che questi cambino nel tempo, mentre le persone partecipano all'esame del sito.] • Chiedete ai soggetti di provare a trovare risposte alle più comuni domande per le quali la gente visita il vostro sito Web. Notate le aree in cui risulta difficile o impossibile usare il sito web. 5. Ricapitolate e date seguito [ai riscontri ottenuti] • Ricapitolate tutti i problemi e le migliori procedure [=best practices] identificati per ciascun tipo di pagina, un URL rappresentativo ed il metodo attraverso cui sono stati identificati • Raccomandate passi ulteriori, potenzialmente includenti: • l'eliminazione delle barriere per l'accessibilità identificate • 64 • • attraverso il processo di valutazione della conformità. NOTA: per una valutazione che usi una "selezione allargata di pagine" invece dell'intero sito web," applicate ad altre pagine ciò che avete imparato. applicare più ampiamente le migliori procedure all'interno del sito manutenzione costante e monitoraggio del sito. 4.1.4 Considerazioni per specifici contesti Valutazione durante il processo di sviluppo La valutazione durante il processo di sviluppo è essenziale. Può essere talvolta difficoltosa, perché sia gli sviluppatori interni ad un'azienda sia quelli che lavorano in subappalto talvolta preferiscono consolidare il progetto grafico e dimostrare i propri progressi prima di ottenere delle risposte. Tuttavia i problemi di accessibilità identificati precocemente sono i più facili da correggere e da evitare. Un'efficace valutazione durante il periodo di progettazione può comprendere: • • • • definire chiari requisiti per il livello di conformità all'accessibilità che si desidera raggiungere la partecipazione ad incontri iniziali di pianificazione per il sito concordare un calendario di revisioni durante la fase di sviluppo fornire informazioni sugli approcci alla valutazione, in modo che gli sviluppatori siano almeno messi in grado di effettuare la revisione preliminare da soli Monitoraggio costante Per rendere massima la probabilità che un sito web mantenga nel tempo un dato livello di conformità, dovrebbero essere prese le seguenti misure: • • • • una esplicita dichiarazione del livello di conformità previsto e l'ampiezza del sito web a cui essa si applica identificare chiaramente le persone responsabili del monitoraggio del sito e le procedure di adeguamento che essi possono usare per rendere rapidamente conformi le pagine non conformi chiare previsioni sulla frequenza, il metodo e l'ampiezza delle valutazioni procedure per validare e valutare tutte le pagine modificate ed i nuovi tipi di pagina prima che siano aggiunti al sito 65 • • • software per facilitare la valutazione inserimento nel sito web di indirizzi per ricevere segnalazioni sull'accessibilità del sito verifiche automatiche o semi-automatiche per identificare i problemi riscontrati durante la valutazione completa NOTA: Una completa valutazione della conformità non è richiesta necessariamente per ciascuno dei passi in un processo di revisione continuo. Passi come ripetute verifiche con utenti possono essere necessari solo dopo le modifiche maggiori ai modelli di pagina o ai contenuti. Valutazione di siti non più aggiornati Occasionalmente si trova che siti web che sono "congelati" (lasciti: non più attivamente mantenuti) hanno dei sostanziali problemi di accessibilità. Può essere difficile determinare come risolverli. Può essere d'aiuto: • • • • • identificare chi ne è l'attuale proprietario; determinare se questi abbia un obbligo o un interesse nel rendere accessibile il sito; dopo la valutazione del sito, tracciare uno schema per il proprietario con le modifiche che sarebbero necessarie per "riequipaggiare" il sito per l'accessibilità; identificare e proporre risorse ed una scaletta dei tempi per adattare il sito; rendere pubblici i problemi di accessibilità del sito. Valutazione di pagine web generate dinamicamente Le pagine generate dinamicamente sono assemblate di solito da uno o più modelli di pagina che forniscono un'impaginazione e strumenti di navigazione comuni, mentre i contenuti sono forniti automaticamente da un database o da un altro sistema di gestione dei contenuti. Per ottenere una piena conformità, deve essere valutata l'accessibilità sia dei modelli di pagina sia dei contenuti generati. Non è sufficiente valutare soltanto i modelli: anche i contenuti possono contenere codice di marcatura o può essere necessario che contengano codice di marcatura, affinché siano accessibili. Le cose da considerare: 1. Modelli di pagina • valutate tutti i modelli 2. se i modelli sono generati da programmi autoriali, valutate la capacità dello strumento autoriale di includere caratteristiche di accessibilità (si veda Selezionare strumenti autoriali), p.es.: • l'ordine di tabulazione generato dal modello consente di 66 arrivare efficacemente ai contenuti testuali generati? 3. Contenuti • se non possono essere valutati tutti i contenuti dinamici, generate un campione largamente rappresentativo, salvate i contenuti generati ed effettuate verifiche su di essi; 4. valutate la capacità del sistema di gestione dei contenuti di conservare e generare informazioni per l'accessibilità (si veda Selezionare strumenti autoriali); • le immagini sono fornite con testi alt e, se necessario, con longdesc? 5. le tabelle generate hanno aiuti per l'accessibilità (es. didascalie, id sulle celle d'intestazione <th>, ecc.)? 6. se vengono generati dei video, sono sottotitolati? 7. se viene generato del contenuto audio narrato, è disponibile un equivalente testuale? 8. Modelli e contenuti combinati • per pagine che sono generate come risultato di un'interrogazione ad un database, il sorgente prodotto una volta che la pagina è stata generata dovrebbe essere catturato e sottoposto allo strumento di valutazione -- [può richiedere l'intervento di un operatore]; 4.2 Applicazione dei criteri di accessibilità al progetto “Arianna” 4.2.1 premessa Lo studio e la valutazione dell'accessibilità di un sito web o un portale è un processo piuttosto lungo e laborioso in cui debbono essere impiegate notevoli risorse affinché tutti i requisiti vengano pienamente soddisfatti. Mentre allo stato embrionale di progettazione di un sito web, il procedimento è meno complesso poiché è sempre possibile un rapido cambio di strumenti che risultano essere non accessibili in favore di altri che invece lo sono, valutare l'accessibilità di un applicazione web il cui un prototipo è già stato sviluppato, il lavoro risulta essere considerevolmente più complesso. Ciò è dovuto al fatto di dover lavorare non in condizioni ottimali, cioè dover apportare modifiche al codice degli applicativi affinché 67 soddisfino le specifiche delle linee guida, mantenendo inalterata la struttura e il corretto funzionamento dell'interfaccia. In queste condizioni è presente il rischio di scendere a compromessi tra funzionalità del sistema e accessibilità a discapito di quest'ultima; per esempio potrebbero esserci delle parti di codice dell'interfaccia che non sono accessibili ma che non sono nemmeno modificabili, causa l'instabilità del sistema. Una possibile soluzione è cambiare la tecnologia utilizzata, ma è improbabile che ciò sia possibile, o almeno non è possibile cambiare in tempi brevi. La valutazione dell'accessibilità dell'interfaccia utente personalizzata “Arianna” purtroppo si colloca in questa contesto; proprio per questo il periodo in cui ho svolto il tirocinio, non è stato sufficienti per apportare tutte le modifiche necessarie affinché un portale complesso come l'Assistente Personale sia reso completamente accessibile, ma è stato possibile attuare un lavoro preliminare evidenziando pregi e difetti del portale In questa sezione, il cuore della tesi, seguendo le linee guida e i principi delle WCAG 1.0, verranno illustrati tutti questi cambiamenti, integrati con un breve commenti degli screenshot e frammenti di codice per illustrare meglio le modifiche apportate. 4.2.2 Strumenti utilizzati Browsers • Microsoft Internet Explorer 6 Disponibile solo su sistema operativo Windows, è il browser più utilizzato, raggiungendo una quota di oltre il 45% del mercato dei browser, È dunque essenziale conoscere bene le caratteristiche, e soprattutto i difetti, di Internet Explorer 6 se si vogliono sviluppare siti accessibili al più largo pubblico. Dal punto di vista dell’accessibilità, tra le caratteristiche di questo browser 68 di cui occorre tener conto c’è la non ridimensionabilità dei caratteri definiti in px nei CSS e la mancanza di adeguato supporto per i contenuti generati. Il supporto di Internet Explorer 6 agli standard W3C è per molti versi carente e ciò provoca non pochi problemi agli sviluppatori, almeno a quelli impegnati nel tentativo di ottenere risultati analoghi su browser differenti scrivendo documenti conformi agli standard promossi dal W3C. • Microsoft Internet Explorer 7 Disponibile solo per Windows XP e per il nuovo sistema operativo Windows Vista, Internet Explorer 7 (www.microsoft.com) è accreditato da Net Applications di una quota di mercato del 32 % circa e in costante crescita, a danno della versione 6. Il nuovo browser Microsoft non risolve purtroppo i numerosi problemi di supporto agli standard presenti nella versione 6. Le carenze nel supporto ai linguaggi standard per il Web, unite al perdurante uso di istruzioni e marcatori proprietari, fanno di Internet Explorer 7, anche se in misura minore rispetto ai suoi predecessori, un “cliente” relativamente difficile per gli sviluppatori che lavorano con il rispetto degli standard in mente. Tra le innovazioni sicuramente positive del nuovo browser di casa Microsoft, va citata la funzione di ridimensionamento (page zoom), che rende possibile ingrandire tutti i contenuti di pagina, immagini comprese, fino al 400%. Si tratta di un ottimo ausilio per chi vede poco, anche se il modo in cui la funzione è implementata crea qualche problema: l’ingrandimento, infatti, è proporzionale in orizzontale e in verticale, il che porta alla rapida scomparsa di parte dei contenuti oltre i bordi laterali della finestra del browser, richiedendo l’uso della barra di scorrimento orizzontale per potervi accedere. Meglio sarebbe stato, forse, vincolare la dimensione orizzontale della pagina ingrandita a quella della finestra del browser, facendo scorrere verso il basso piuttosto che verso destra e sinistra i contenuti, anche a costo di scompaginare completamente la struttura grafica dei documenti. Un’altra innovazione introdotta con Internet Explorer 7 è la navigazione a schede (tabbed browsing), per mezzo della quale l’utente può navigare 69 tra più documenti aperti all’interno della stessa finestra del browser. Ma in ciò Microsoft non ha fatto che seguire il cammino intrapreso già da tempo dai browser concorrenti, cammino che ha seguito anche per quanto riguarda la funzione di blocco delle finestre pop-up, finalmente disponibile in modo nativo nella versione 7. • Firefox Nato alla fine del 2002 con il nome in codice di Phoenix da una costola del grande progetto Open Source Mozilla, Firebird, divenuto in seguito Firefox (mozilla-europe.org/it/), è l’unico browser che, finita l’epoca di Netscape Navigator, ha oggi la concreta possibilità di mettere in discussione l’egemonia mondiale di Internet Explorer. Firefox può contare su una quota di mercato di oquasi il 15% con tendenza a crescere. La media globale d’uso di Firefox subisce però sensibili variazioni a seconda della nazione. Per esempio, la percentuale di utenti che usano Firefox in Germania e in Australia è di oltre il 26%, ben superiore alla media mondiale (in Italia è del 18%). Tra gli utenti di Firefox vi sono soprattutto coloro che hanno qualche conoscenza di informatica, che non hanno difficoltà a installare software non presente nativamente nel proprio sistema operativo e che sono in grado di valutare pregi e difetti dei browser grafici concorrenti. Le ragioni del successo di Firefox, che il 31 luglio 2006 ha tagliato il notevole traguardo di 200 milioni di versioni scaricate, sono da ricercare nelle sue innovative soluzioni di progettazione: navigazione a schede nativa, blocco delle finestre pop-up, codice libero, ma soprattutto un gran numero di estensioni e di temi grafici prodotti da terze parti. Dal punto di vista degli sviluppatori, un pregio importante di Firefox è la sua notevole aderenza ai linguaggi standard per il Web, che lo rende uno strumento capace di riprodurre ottimamente i siti di ultima generazione, realizzati con un uso intensivo dei fogli di stile e di funzioni JavaScript che utilizzano il DOM. Firefox è inoltre, a differenza di Internet Explorer, un vero browser multipiattaforma: può essere installato indifferentemente su sistemi operativi Windows, Macintosh e Linux, con prestazioni che rimangono in tutti i casi 70 stabili e di alta qualità: un bell’esempio di interoperabilità, anche se il supporto per i fogli di stile CSS 2.1 non è ancora totale, nonostante sia stato già reso disponibile il supporto ad alcune parti delle specifiche CSS3. Tra i difetti di Firefox vi è un consumo forse eccessivo delle risorse di memoria del computer, che, con l’aumentare delle sessioni aperte, può far degradare sensibilmente le prestazioni. • Netscape Netscape Navigator (http://browser.netscape.com/ ), il browser che a metà degli anni Novanta legò il suo nome all’esplosione del Web come fenomeno di massa, arranca oggi in posizioni di retrovia. Del 90% di quota di mercato che deteneva nel 1996, gli resta – secondo le statistiche di Net Applications aggiornate a giugno 2007 – appena lo 0,78%, da suddividersi tra tutte le versioni ancora in uso. La nuova versione, ancora provvisoria, è disponibile per Windows, Mac OS e Linux. È basata sull’architettura aperta di Mozilla Firefox, del quale può installare le estensioni e i temi. Dal punto di vista dell’accessibilità, la funzione più utile e innovativa di Netscape 9 è la possibilità di ridimensionare manualmente, trascinandone i bordi, le finestre TEXTAREA (cioè i campi modulo usati per pubblicare testi discorsivi, come i commenti inviati ai blog). Unita alla possibilità di ingrandire i testi tramite appositi comandi, questa funzione consente a chi vede poco di superare le limitazioni di dimensione imposte ai campi modulo da sviluppatori poco amici dell’accessibilità. • Opera Giunto alla versione 9.21, Opera (http://www.opera.com/ )ha una quota di mercato al di sotto dell’1%, con punte di maggior uso (tra il 6 e l’11 per cento) in alcuni paesi dell’Est, tra i quali Ucraina, Russia, Polonia e Lituania. Dal punto di vista dello sviluppatore, Opera è un ottimo prodotto, dotato di funzionalità molto sofisticate e di un notevole supporto ai linguaggi standard per il Web. Opera 9 è, uno dei browser che rimane più fedele sia 71 agli standard del W3C che in particolare alle specifiche dei CSS 2.0. • Lynx (browser testuale) Lynx (http://lynx.isc.org/ )è un browser di solo testo utilizzabile su terminali con interfaccia a linea di comando. Per navigare con Lynx è necessario evidenziare il link scelto usando i tasti per muovere il cursore, o avendo tutti i link della pagina numerati, selezionare il numero del link. Le ultime versioni supportano SSL (Secure Soket Layer – protocollo di rete per comunicazioni cifrate su internet ) e molte caratteristiche dell'HTML. Le tabelle perdono la loro struttura in quanto ogni cella viene visualizzata di seguito all'altra, mentre i frame vengono identificati da un nome e possono essere visualizzati come fossero pagine indipendenti. Grazie alla sua interfaccia facilmente compatibile con il text-to-speech (da testo a voce), Lynx era popolare tra gli utenti non vedenti, ma la diffusione di migliori screen reader ne ha ridotto l'impiego in questo ambito. Validatori di codice • HTML validator (http://validator.w3.org/) È uno strumento messo a disposizione dal consorzio W3C per la validazione del codice HTML. È possibile validare il codice creato in 3 modi; copiando l'URI, effettuando l'upolad del file html, oppure copiare tutto il codice in una textarea. Dispone anche di molte funzionalità avanzate come il tipo di codifica in cui è stato scritto il codice, la grammatica formale usata, utili per una corretta validazione. 72 Figura 4.1: Homepage di HTML validator • CSS validator (http://jigsaw.w3.org/css-validator/ ) Servizio di Validazione del W3C per CSS, in italiano; si tratta di un servizio gratuito che consente di controllare la conformità alle raccomandazione del W3C dei fogli di stile a cascata (CSS), siano essi all'interno di documenti (X)HTML che in documenti autonomi. I metodi di validazione sono gli stessi dell'HTML validator (per URI, upload o copiando direttamente il codice). Le funzionalità aggiuntive consistono nel stabilire il profilo del css, (la versione: 2.0, 2.1, 3.0...), e il tipo di media cui è riferito (aural, braille, print) 73 Figura 4.2: Homepage di CSS validator Validatori automatici di accessiibilità • Bobby (http://webxact.watchfire.com/) Bobby è uno strumento informatico che verifica la rispondenza dei siti ai requisiti di accessibilità agli utenti disabili, facendo riferimento a quanto stabilito nelle apposite linee guida pubblicate dal WAI-W3C Bobby è stato creato dal Center for Applied Special Technology (CAST), un’organizzazione no profit fondata nel 1984 per espandere le opportunità per i disabili attraverso l'uso innovativo della tecnologia informatica. Ne sono state sviluppate due versioni, una friubile accedendo direttamente al sito di CAST ed una scaricabile ed utilizzabile offline (a pagamento), che permette la validazione di pagine e siti non in linea. Il funzionamento di Bobby è abbastanza intuitivo: immettendo l’URL della pagina da validare nell’apposito campo, dopo qualche secondo si vedrà comparire l’icona di Bobby approved, se la pagina risulta accessibile o, al contrario, quella indicante repair needed, ovvero che informa che mancano i requisiti necessari con i report dei vari error o warning, fornendo anche un esempio come rimedio. Se il sito risulta subito accessibile, si potrà esporre il bollino di Bobby, scaricabile dal sito. 74 Figura 4.3: Esempio di pagina dei risultati della validazione di Bobbyr • Cyinthia Says (http://www.cynthiasays.com/) Quest'altro validatore automatico di accessibilità, sebbene la grafica non è gradevole come Bobby, ha alcune funzionalità particolari. A differenza di quest'ultimo, espone nel report tutte le linee guida coinvolte nella validazione (a seconda del livello scelto), fornendo dei link diretti alle fonti (http://www.w3.org/TR/WAI-WEBCONTENT/ nel caso delle WCAG 1.0). La pagina da validare va sempre richiamata per URL, ma Cyinthia dà la possibilità di validare anche secondo le linee guida americane sull'accessibilità (508 standards). Inoltre è in grado di emulare i comportamenti dei browser più diffusi (anche se sotto questo aspetto deve essere aggiornato). 75 Figura 4.4:Pagina dei risultati di Cynthia Says 4.2.3 Esempi di applicazioni dei criteri di accessibilità in “Arianna” NOTA: in questo paragrafo sono esposti tutti le linee guida e i punti di controllo che hanno coinvolto il portale sanitario; di conseguenza le altre (per esempio tutta la linea guida 7) non verranno menzionate. Linea guida 1: fornire alternative equivalenti per il contenuto audio e video 1.1 Fornire un equivalente testuale per ogni elemento non di testo. Poiché molti utenti utilizzano strumenti di navigazione che si basano solo sul contenuto testuale della pagina (gli screen reader o i browser testuali), è importante fornire forme equivalenti testuali per le immagini, le animazioni, i frame, gli script, mappe d'immagine, suoni, pulsanti grafici, ecc. 76 Per quanto riguarda l'interfaccia Arianna un esempio sta nel logo dell'ASUR, posto in alto a destra nel quale è stato usato l'attributo alt, che ha il compito di fornire un testo alternativo. Figura 4.6: esempio di utilizzo dell'attributo alt Listato 1: utilizzo corretto dell'attributo alt. <img src="./images/logoASUR.jpg" alt="logo dell'Azienda Sanitaria Unica Regionale"/> In alcuni casi però è necessario fornire una descrizione piuttosto ampia dell'immagine per cui non è sufficiente una breve frase, si deve ricorrere all'attributo longdesc, che permettere di accedere a una descrizione estesa dell'immagine specificando l'URI () contenente la descrizione. Listato 2: uso attirbuto alt e longdesc. <img src="./images/logoASUR.jpg" alt="logo dell'Azienda Sanitaria Unica Regionale" longdesc=”logoASUR.html” /> Riguardo all'utilizzo dei frame, anche se sono sconsigliati, sono supportati dalle raccomandazioni W3C. Per rispettare il punto di controllo 1.1, è necessario utilizzare l'attributo longddesc per fornire una descrizione estesa dei contenuti dei frame. In Asianna si fa uso anche dei frame (4, 3 in fase di registrazione e login): uno per il logo, uno per il chatterbot, un terzo per il menù laterale e il quarto in cui vengono visualizzate tutte le informazioni. 77 logo verbotFrame mainFrame pulsantiera Figura 4.7: suddivisione in frame dell'Assistente Personale Listato 3: uso dei frame con longdesc. <frameset rows="230,*" cols="*"> <frameset cols="250,*"> <frame src="logo.html" name="logo" dell'azienda"> title="logo <frame src="..." name="verbotFrame” title="..." longdesc=”infoChatterbot.html”/> </frameset> <frameset cols="250,*" rows="*"> <frame src="..." name="pulsantiera" longdesc=”infoPulsantiera.html”/> title="..." <frame src="info.jsp" name="mainFrame" title="frame in cui vengono caricate tutte le pagine" longdesc=”infoMainFrame.html”/> </frameset> </frameset> 1.3 Fino a quando i programmi utente non potranno leggere automaticamente ad alta voce il suo equivalente testuale fornire una descrizione audio delle informazioni essenziali del filmato di una presentazione multimediale. 78 Grazie alla diffusione delle linee ad alta velocità (DSL, CDN, fibra ottica), nei siti Web è sempre più frequente l'uso di filmati e prestazioni multimediali. Affinché questi risultino accessibili, l'utente dovrà disporre di contenuti alternativi, per coloro che soffrono di disabilità visiva o tecnologica (browser vecchi che non supportano plug-in di flash). Se non fosse possibile predisporre una versione audio di supporto, è necessario fornire una versione testuale. Nel nostro caso, sono state effettuate delle prove disabilitando i plug-in dai browser ed effettuando il login dell'applicazione: è stato verificato che, anche senza il plug-in installato (flash), e quindi disabilitando l'audio, viene fornita una versione testuale che effettua un quadro generale dell'utente Figura 4.8: verifica della funzionalità del chatterbot anche senza il plugin installato Linea guida 2: non affidarsi unicamente al colore 2.1 Garantire che tutta l'informazione veicolata dal colore sia disponibile anche in assenza di colori. Un esempio di mancata applicazione di questo punto di controllo è 79 l'utilizzo dei fogli di stile per cambiare i colori dei collegamenti rimuovendone la sottolineatura, gli utenti con disabilità visive o che utilizzano periferiche di navigazione in bianco e nero (cellulari monocromatici o vecchi modelli di PDA), si troveranno in forte difficoltà. È invece richiesto che i collegamenti ipertestuali siano identificabili facilmente, anche utilizzando regole nei fogli di stile (CSS) che evidenzino gli attributi di sottolineatura o addirittura un carattere di peso maggiore. Figura 4.9: uso corretto dei colori per identificare i collegamenti 2.2 Garantire che le combinazioni di colori tra il primo piano e lo sfondo forniscano un sufficiente contrasto se osservati da qualcuno con deficit percettivi del colore o quando visualizzati su un monitor in bianco e nero. Con questo punto di controllo si richiede che il contrasto tra il colore del testo e il colore dello sfondo sia sufficiente a evitare problemi di lettura agli utenti. Non essendo stati definiti criteri per la definizione del contrasto, mi sono servito di un tool all'indirizzo http://gmazzocato.altervista.org/colorwheel/wheel.php in cui è possibile scegliere la combinazione di colori testo/sfondo tenendo conto delle disabilita cromatiche, in cui, a se conda della combinazione scelta, il 80 programma dice se tale combinazione è accessibile per tutti gli utenti o solo per una parte. Figura 4.10: sito del validatore dei colori Due colori permettono una buona visibilità se la differenza di luminosità e di colore tra i due è superiore a una determinata serie di valori. Il W3C ha determinato un algoritmo per calcolare il contrasto8 che potrà essere utilizzato in questa verifica. L'algoritmo è ancora in fase di sviluppo ed è possibile che in futuro venga modificato. La seguente formula è suggerita dal World Wide Web Consortium (W3C) e serve a calcolare la luminosità di un colore RGB. ((valore Rosso X 299) + (valore Verde X 587) + (valore Blue X 114)) / 1000 La differenza tra la luminosità dello sfondo e la luminosità del colore principale deve essere maggiore di 125. La seguente formula del W3C consente invece di calcolare la differenza tra due colori. (massimo (valore Rosso 1, valore Rosso 2) - minimo (valore Rosso 1, valore Rosso 2)) + (massimo (valore Verde 1, valore Verde 2) - minimo (valore Verde 1, valore Verde 2)) + (massimo (valore Blue 1, valore Blue 2) - minimo (valore Blue 1, valore Blue 2)) 81 La differenza tra colore di sfondo e colore principale deve essere superiore a 500. Alcuni esempi nel portale in cui questo punto di controllo è stato soddisfatto li troviamo nel menù laterale o nell'intestazione del frame principale. Figura 4.11: esempi di uso corretto di contrasto testo-sfondo Linea guida 3: usare le marcature ed i fogli di stile in modo appropriato 3.2 Creare documenti che rispettino le grammatiche formali. Ogni pagina web deve rispettare la grammatica formale dichiarata dall'autore; in pratica su ogni pagina deve essere definito il <!DOCTYPE> del documento (ovvero, il tipo di documento) al fine di garantire che tutti gli elementi e gli attributi utilizzati nella pagina appartengano alla grammatica definita nella DTD (Document Type Definition) dichiarata. Questo consentirà al browser utilizzato per visualizzare la pagina di valutare la semantica corretta da utilizzare. Alcune delle grammatiche formali create dal W3C sono: 82 HTML 4.01 Transitional <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Utilizzando questa grammatica si può mantenere la compatibilità con le vecchie versioni, consentendo l'utilizzi di elementi e attributi di presentazioni all'interno del contenuto. HTML 4.01 Frameset <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> Questa grammatica si usa per un utilizzo corretto dei frame. HTML 4.01 Strict <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> È la versione rigorosa della grammatica, in cui sono eliminate tutte le impostazioni di formattazione che possono essere gestite tramite i fogli di stile. Si può considerare la versione più “accessibile” tra le DTD. Quindi sarà fondamentale che il documento sia conforme alla grammatica definita. Purtroppo nell'Assistente Personale non è stato possibile adottare la versione “strict”, poiché l'interfaccia fa uso di frame; è stato quindi necessario adottare la versione 4.01 frameset. 3.3 Usare i fogli di stile per controllare l'impaginazione e la presentazione. L'utilizzo dei fogli di stile (CSS) è essenziale per lo sviluppo di siti web acessibili: grazie a loro non è più necessario l'utilizzo di tag come <font>, <basefont>, giudicati ormai “deprecated”, in favore di regole o classi definite nei CSS con cui si ottengono gli stessi effetti in modo più efficiente. L'allineamento, i margini e il posizionamento degli elementi nella presentazione di una pagina vanno gestiti tramite i fogli di stile; lo sviluppatore deve inoltre garantire la possibilità di lettura della pagina anche disabilitando i CSS, affinché il contenuto sia fruibile anche da utenti non-vedenti tramite gli screen reader. 83 link titolo snippet Figura 4.12: uso dei css per definire stili differenti Listato 4: uso dei css per definire stili differenti html <div class="link"><c:out value="${searchStatus.url[i1]}"/></div><br/> <div class="titolo"><c:out value="${searchStatus.title[i1]}"/></div><br/> <div class="snippet"><c:out value="${searchStatus.snippet[i1]}"/></div><br/> CSS .link{ font-size:16px; color:#47A;} .titolo{ font-size:14px; color:#888;} .snippet{ font-size:12px;} 3.4 Usare unità di misura relative anziché assolute nei valori degli attributi del linguaggio di marcatura e 84 per i valori delle proprietà del foglio di stile. Questo punto di controllo è particolarmente sentito dagli utenti ipovedenti, in quanto se non viene soddisfatto esistono grosse possibilità che un utente con tale disabilità visiva non possa accedere ai contenuti delle pagine. Considerando che in tale categoria di utenti ricadono anche le persone anziane, non rispettare questo punto di controllo provoca l'esclusione di una grossa fetta di potenziali utenti del vostro sito. Come affermato nel punto precedente, tutte le impostazioni relative alla rappresentazione devono essere definite all'interno dei fogli di stile. L'utilizzo di un'unità di misura di tipo assoluto, come pica (pc), punti (pt), inches (in), centimetri (cm), e millimetri (mm) ha come effetto il blocco delle dimensioni di un elemento a una dimensione fissa: un testo per noi di dimensioni "normali" potrebbe essere davvero troppo piccolo per un utente ipovedente o per chi utilizza monitor a risoluzioni elevate. Se invece le dimensioni del testo vengono definite con unità misura di tipo relativo, come em (relativa all'altezza del font) o in percentuale (%), i visitatori del sito potranno facilmente adattare il carattere alle proprie esigenze. Ciò comporta da parte dello sviluppatore una fase di test delle pagine simulando tali visualizzazioni e controllando che anche a risoluzioni medio-basse (800x600) con caratteri molto grandi il proprio sito sia fruibile senza problemi. Listato 5: uso dell'unità relativa em per definire la dimensione dei caratteri. Html <caption>Nr.<c:out value="${all.numeroAll}"/> allergie registrate nel DataBase:</caption> CSS caption{font-size:1.2em; margin-bottom:2%;} 3.5 Usare elementi di intestazione per veicolare la struttura del documento e usarli in modo conforme alle specifiche. Una pagina Web può essere formata da brevi contenuti, ma può 85 contenere anche testi molto articolati (per esempio, un bando di gara d'appalto, un comunicato stampa, ecc.) che per poter essere letti devono essere organizzati: come coi libri, anche sul Web servono titoli, sottotitoli, capitoli, sottocapitoli e così via. Gli elementi di titolazione (<h1> - <h6>) devono essere utilizzati in modo corretto per garantire una corretta visualizzazione e il rispetto della semantica dei contenuti. Alcuni programmi di navigazione utilizzano gli elementi di titolazione per ottimizzare la navigazione della pagina da parte degli utenti. Utilizzando gli elementi <hx> si garantirà maggiore accessibilità ai contenuti della pagina: tutte le pagine dovrebbero prevedere l'elemento <h1> e via via, a scalare di importanza, gli elementi <h2>, <h3> che forniscono all'utente la possibilità di individuare i paragrafi considerati importanti dall'autore dei contenuti. Da ciò si può chiaramente comprendere che è importante rispettare l'ordine di importanza dei titoli, in modo che un elemento <h2> segua un elemento <h1>, mentre un elemento <h3> deve seguire un elemento di tipo <h2>: è quindi sbagliato saltare livelli, passando da <h1> a <h3> senza evidenziare l'elemento <h2>. È importante, per una semantica corretta, non utilizzare gli header come mera decorazione per enfatizzare una porzione di testo: in questo caso i CSS tornano molto utili. Listato 6: Esempio di corretto uso degli header. ...<div id="centratoTopic"> <h3>FORM NUOVO TOPIC</h3> <c:if test="${forumBean.warning==1}"> <h4>WARNING : Hai dimenticato di inserire il campo OGGETTO</h4> </c:if> ... 3.6 Marcare le liste ed elencare le voci della lista in modo appropriato. Gli elementi di lista <dl>, <ul> e <ol> (quest'ultimo disponibile in HTML 3.2 e HTML 4.0) devono essere utilizzati unicamente per la definizione delle liste e non devono essere utilizzati a scopo di formattazione, come per rientrare dei contenuti. 86 Per modificare la formattazione delle liste, anche in questo caso ci si affiderà ai fogli di stile. Un esempio nel portale di Assistente personale si ha nella pagina di home dopo aver effettuato il login; il quadro generale dell'assistito è strutturato con una serie di liste (una per ciascuna categoria) “trasformate” gradevolmente tramite CSS senza però che il contenuto ne risenta. Figura 4.14: esempio di gestione di una lista utilizzando i CSS Listato 7: Definizione di una lista non numerata tramite fogli di stile. Html ...<ul class="navinfo"> <li>Nessuna notizia selezionata</li> </ul>... ...<ul class="navinfo"> <li><a href="..."/>Tieni il collo al caldo</a></li> <li><a href="..."/>Ecco un breve specchietto</a></li> </ul>... CSS .navinfo{border: 1px solid #0b39b2; padding: 0 1px 1px; margin-left: 0; margin-top: 0; 87 font: bold 14px georgia, serif; background-color:#0b39b2; width: auto;} .navinfo li{ list-style: none; margin: 0; background-color:#FFFFFF; text-align: left; display: block; padding: 0.25em 0.5em 0.25em 0.75em; border-left: 3px solid #0b39b2; background: #FFF; text-decoration: none; } .navinfo li{ border-top: 1px solid #0b39b2; } .navinfo li a {display: block; padding: 0.25em 0.5em 0.25em 0.75em; background: #FFF;} Linea guida 4: rendere chiaro l'uso del linguaggio naturale 4.1 Identificare con chiarezza i cambiamenti nel linguaggio naturale del testo di un documento e in ogni equivalente testuale. Se all'interno di una pagina sono presenti testi in diverse lingue, per definirne il riconoscimento da parte dei programmi utente è necessario utilizzare l'attributo lang. Nell'Assistente Personale è stata introdotta la possibilità di utilizzare la lingua inglese e spagnola. Figura 4.15: uso di una lingua differente da quella di defeult 88 Listato 8: Esempio di cambio lingua all'interno di un paragrafo. <div id="lingua"> <em lang="en"><a href="./versione_eng/index_en.html"><img src="./images/bandiere/bandiera_gb.gif" title="click here to select english language version" alt="english"/></a></em> <em lang="es"><a href="./versione_esp/index_es.html" target="_parent" ><img src="./images/bandiere/bandiera_sp.gif" title="chasca aqui para selecionar el idioma espanol" alt="espanol"/></a></em> </div> 4.2 Specificare il significato di ogni abbreviazione o acronimo nel documento laddove compaia per la prima volta. Un mancato uso dell'elemento <abbr> per le date in forma abbreviata, in quanto in alcuni casi, possono risultare ambigue in quanto dipende tutto dall'ordine di lettura. Spesso, per esempio nelle notizie o nei comunicati stampa, si utilizza la forma breve gg/mm/aaaa per rappresentare le date. In questo caso, è necessario utilizzare l'elemento <abbr> con attributo title contenente la data in formato esteso. Un esempio di corretto utilizzo dell'elemento <abbr> in Arianna è nella fase di registrazione, nel momento in cui è richiesto di selezionare il livello di accesso desiderato Figura 4.16:visualizzazione di un abbreviazione 89 Listato 9: Utilizzo dell'elemento <abbr>. <input type="radio" name="lvl" value="mb"/><abbr title="Medico di medicina generale">MMG</abbr> Di fatto, un acronimo può essere definito simile a un'abbreviazione che può essere letta e compresa. Nelle raccomandazioni HTML gli acronimi sono definiti tramite l'elemento <acronym>, che per soddisfare i requisiti di questo punto di controllo richiede l'utilizzo dell'attributo title. Sul sito dell'assistente personale i due acronimi più presenti sono SIA (Sistema Informativo Aziendale) e ASUR (Azienda Sanitaria Unica Regionale) Figura 4.17: uso degli acronimi Listato 9: Esempio di utilizzio dell'elemento <acronym> <p>Servizio sviluppato dal <acronym title=”Sistema Informativo Aziendale”>SIA</acronym> dell'<acronym title=”Azuenda Sanitaria Unica Regionale”>ASUR</acronym></p> 4.3 Identificare il linguaggio naturale principale di un documento. La maggior parte delle pagine Web da noi create sono in lingua italiana: ciò significa che la lingua italiana è la nostra lingua naturale principale, e 90 come tale va dichiarata all'interno del documento. Sappiamo già che gli eventuali cambi di lingua all'interno del documento sono da segnalare al browser tramite opportune tag e l'attributo lang; per la definizione della codifica della lingua in una pagina si utilizza lo stesso attributo, ma va posto nell'apertura del documento. Nelle pagine Web, la definizione del linguaggio naturale principale del documento richiede solamente il posizionamento dell'attributo lang all'interno dell'elemento <html> Listato 10: Identificazione della lingua principale in un documento HTML. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="it">,,, Linea guida 5: creare tabelle che si trasformino in maniera gradevole 5.1 Per le tabelle dati, identificare le intestazioni per righe e colonne. Questo punto di controllo informa lo sviluppatore che, nel caso vengano utilizzate delle tabelle per presentare dei dati, egli deve identificare in modo chiaro le celle contenenti i dati dalle intestazioni di righe e colonne. Pertanto, le tabelle dati richiedono l'uso degli elementi <tr>, <td>, <th> e <caption> e dei relativi attributi. Nel caso di tabelle con più righe una tecnica affinché un lettore di schermo legga correttamente il contenuto nelle celle, si utilizza l'attributo headers che specifica l'elenco delle intestazioni collegate a una cella contenente dati. Per utilizzare questa funzionalità, ogni cella di intestazione deve aver valorizzato l'attributo id. Per evitare la ripetizione del contenuto degli header in ogni riga, si utilizza l'attributo abbr che ha funzionalità inversa dell'elemento <abbr> visto precedentemente. 5.2 Per le tabelle dati che hanno due o più livelli logici di 91 intestazioni di righe o colonne, usare marcatori per associare le celle di dati e le celle di intestazione. Per le tabelle con strutture più complesse, è possibile utilizzare <thead>, <tfoot> e <tbody> per raggruppare le righe, <col> e <colgroup> per raggruppare le colonne e gli attributi axis, scope e headers per descrivere relazioni più complesse fra i dati. È comprensibile come gli attributi headers siano necessari per rendere comprensibile il contenuto agli utenti che utilizzano lettori dello schermo. In caso di uso scorretto, a maggior ragione nel caso di tabelle complesse, non verranno lette le intestazioni prima del valore di una cella dati. Di conseguenza l'utente sarebbe costretto a ricordare tutti i record della tabella. 5.5 Per ogni tabella definire un sommario dei contenuti. Un sommario delle tabelle (definito con l'attributo summary) è particolarmente utile per le tecnologie assistive utilizzate dagli utenti non vedenti. Qualsiasi tabella di dati dovrebbe contenere delle informazioni preventive, valorizzando l'elemento <caption>, eventualmente sostituibile dall'attributo title se si desidera renderlo visibile esclusivamente agli utenti non vedenti. Mentre l'elemento <caption> e l'attributo title rappresentano un "titolo" della tabella, l'attributo summary è di fatto una guida all'utente sul contenuto e sull'organizzazione della tabella dati. In questo caso gli utenti non vedenti, ricevendo informazioni descrittive dei contenuti grazie al contenuto dell'attributo summary, potranno valutare se fruire del contenuto della tabella o passare al paragrafo successivo. 5.6 Fornire abbreviazioni per le etichette di intestazione. Come detto nel punto di controllo 5.1, per non appesantire eccessivamente le frasi, si fa uso dell'attributo abbr nell'elemento <th>; grazie ad esso lo screen reader leggerà solo nella prima riga il contenuto dell'attributo headers per poi leggere dalla seconda in poi il contenuto di abbr, in modo da eliminare eccessive ripetizioni. 92 Come esempio riassuntivo di tutti i punti di controllo di questa linea guida, qui di seguito si riporta una tabella utilizzata in Arianna, in cui vengono elencate le ultime prescrizioni data a un assistito Figura 4.18: esempio di una tabella formattata correttamente Listato 11: Esempio di tabella a più livelli logici. <table class="tabpresc" summary="In questa tabella sono elencate tutte le prescrizioni dei farmaci"> <caption><abbr title="numero">Nr.</abbr> 2 prescrizioni registrate nel DataBase:</caption> <thead> <tr> <th class="blu" id="farmaco prescritto" abbr="farmaco">Farmaco Prescritto:</th> <th class="blu"id="data inizio somministrazione" abbr="somministrato dal">Data inizio somministrazione:</th> <th class="blu" id="data fine somministrazione" abbr="fine somministrazione">Data fine somministrazione:</th> <th class="blu" id="posologia">Posologia:</th> </tr> 93 </thead> <tbody> <tr> <td class="blu" headers="farmaco prescritto">CIPROXIN (antibiotico per via orale)</td> <td class="blu" headers="data inizio somministrazione">31/12/2006</td> <td class="blu" headers="data fine somministrazione">07/01/2007</td> <td class="blu" headers="posologia">2 pasticche al dì dopo i pasti</td> </tr> <tr> <td class="blu" headers="farmaco prescritto">MAALOX PLUS*3OCPR MAAST</td> <td class="blu" headers="data inizio somministrazione">31/01/2007</td> <td class="blu" headers="data fine somministrazione">02/02/2007</td> <td class="blu" headers="posologia">1 bustina al giorno</td> </tr> </tbody> </table> Il programma di lettura dello schermo leggerà i dati della tabella nel modo seguente: Caption:Numero 2 prescrizioni registrate nel DataBase; Summary:In questa tabella sono elencate tutte le prescrizioni dei farmaci; farmaco prescritto: CIPROXIN (antibiotico per via orale) ,data inizio somministrazione: 31/12/2006 ,data fine somministrazione: 07/01/2007 ,posologia: 2 pasticche al dì dopo i pasti; farmaco: MAALOX PLUS*3OCPR MAAST somministrato dal: 31/01/2007, fine somministrazione: 02/02/2007 ,posologia:1 bustina al giorno. Linea guida 6: garantire che le pagine che utilizzano tecnologie più recenti si trasformino in maniera gradevole 6.1 Organizzare i documenti in modo che possano essere letti anche in assenza dei fogli di stile. È necessario sviluppare i siti in modo che possano essere fruiti anche se il browser utilizzato dall'utente non supporta i fogli di stile: la finalità dello 94 sviluppatore deve essere quella di garantire la fruibilità del sito e, di conseguenza, l'accessibilità e l'usabilità dei suoi contenuti. Prendiamo come esempio il menù laterale dell'Assistente Personale; in pratica è una lista non numerata che, “modificata” con un CSS viene visualizzata come una pulsantiera. Figura 4.19: esempio di trasformazione di una lista in pulsantiera Se si disattivano i CSS dalla pagina (tramite il plugin web Developer di Firefox) il risultato è il seguente. Figura 4.20: disabilitazione dei CSS Listato 12: Codice della pulsantiera laterale con relativo foglio di stile html <div class="menuNavigazione"> <ul> <li><a accesskey="i" href="../info.jsp" target="mainFrame" title="cliccare qui per avere una sintesti delle notizie che ti riguardano">Informazioni</a></li> <li><a accesskey="c" href="../fsclin.jsp" target="mainFrame" title="cliccare qui per visualizzare il fascicolo clinico">Fascicolo 95 clinico</a></li> <li><a accesskey="p" href="../percorsi.html" target="mainFrame" title="cliccare qui per visualizzare i percorsi che hai avviato" >Percorsi sanitari</a></li> <li><a accesskey="r" href="../copGenPages/query.html" target="mainFrame" title="cliccare qui per effettuare una ricerca su rete">Ricerca su Internet</a></li> <li><a accesskey="f" href="../forumPages/index.jsp" target="mainFrame" title="cliccare qui per accedere al forum interno" >Forum</a></li> <li><a accesskey="e" href="../servlets/TempoQuest" target="mainFrame" title="cliccare qui per uscire">Esci</a></li> </ul> </div> CSS .menuNavigazione{ width: 230px; } .menuNavigazione ul{margin-left: 0; padding-left: 0; list-style-type:none; margin-top:2.5em; } .menuNavigazione a{display:block; text-decoration:none; border:1px solid #999; margin:1px 0; padding:3px 10px; background:#555; color:#FFF;} .menuNavigazione a:hover{background:#FFF; color:#000;} 6.3 Garantire che le pagine siano utilizzabili quando script, applet, o altri oggetti di programmazione sono disabilitati oppure non supportati. Se questo non è possibile, fornire informazione equivalente in una pagina accessibile alternativa. Gli sviluppatori devono creare contenuti per il Web fruibili anche quando gli script vengono disattivati o se il browser in uso non li supporta. Un'istruzione come la seguente, che consente di tornare alla pagina precedente, non potrà essere utilizzata dagli utenti che hanno disabilitato gli script o che utilizzano browser che non li supportano. Per evitare tali problemi riguardo il portale Arianna è stato deciso di 96 evitare di ricorrere al DHTML (combinando JavaScript, CSS e HTML). 6.4 Garantire che i gestori di eventi per gli script e le applet siano indipendenti dai dispositivi di input. Un gestore di eventi, è un insieme di istruzioni che vengono richiamate quando un particolare evento viene soddisfatto (per esempio, il movimento del mouse, la pressione di un tasto, il caricamento della pagina, e così via). In HTML 4.01 e XHTML i gestori degli eventi associati agli elementi vengono gestiti dai seguenti attributi, ordinati per tipo di evento. onload-onunload; onclick-ondblclick; onmousedown-onmouseup-onmouseover-onmousemove-onmouseout; onfocus-onblur; onkeypress-onkeydown-onkeyup; onsubmit; onreset; onselect; onchange; Alcuni di questi eventi, come onsubmit, sono indipendenti dai dispositivi di input, altri invece richiedono l'utilizzo del mouse (tutto il gruppo onmouse... e onclick). Altri ancora richiedono l'utilizzo della tastiera (onkey...). Se fosse necessario usare eventi che richiedano interazione all'utente, bisogna garantirne l'esecuzione, che l'utente utilizzi una periferica di puntamento, una tastiera o un emulatore di tastiera. È quindi necessario definire un equivalente comando da tastiera per ogni comando tramite mouse: i comandi da tastiera vengono spesso utilizzati per le tecnologie assistive e possono essere attivati anche tramite comandi vocali. È possibile associare alcuni eventi a coppie; • onmousedown con onkeydown; • onmouseup con onkeyup; 97 • onclick con onkeypress; Nel sito dell'Assistente personale un esempio di applicazione di questa linea guida si può trovare nella mappa di navigazione, posta in alto a sinistra del frame principale. Figura 4.21:utilizzo del gestore degli eventi per la pulsantiera Listato 13: Utilizzo di codice JavaScript indipendente dal dispositivo. <div id="percorso"> <a href="../info.jsp" onclick="top.frames[4].location.replace('../info.jsp')" onkeypress="top.frames[4].location.replace('../home.jsp')">Home</a> > <a href="../fsclin.jsp" onclick="top.frames[4].location.replace('../fsclin.jsp')" onkeypress="top.frames[4].location.replace('../fsclin.jsp')"> Fascicolo clinico</a> > Prescrizioni mediche </div> 6.5 Garantire che il contenuto dinamico sia accessibile oppure fornire una presentazione o una pagina alternativa. È necessario che uno sviluppatore riesca a fornire i contenuti dinamici in formato accessibile. se ciò non fosse possibile, è necessario fornire una 98 versione alternativa della pagina che dovrà contenere le stesse informazioni ed essere aggiornata con la frequenza della pagina originale. Il modo migliore per generare contenuti dinamici accessibili è utilizzare gli script server-side (ASP, PHP, PERL, ...) che generano contenuto dinamico indipendentemente dal browser utilizzato dall'utente. Ci sono 2 tecniche raccomandate dal W3C per fornire un collegamento alle pagine alternative: • • inserendo all'inizio e alla fine del collegamento un collegamento a tali pagine (deve risultare tra uno dei primi nella tabulazione); utilizzando l'elemento <link>. Tramite questa tag è possibile visualizzare la pagina alternativa a seconda delle impostazioni predefinite dall'utente. Per gli script si utilizzerà la tag <noscript> per rendere accessibile il documento fornendo una versione equivalente o, almeno alternativa. Nel caso si utilizzino dei frame, è necessario definire il contenuto per l'elemento <noframes>. Spesso gli editor HTML visuali generano automaticamente un testo per l'elemento <noframes> per informare gli utenti della necessità di utilizzare un browser che supporti i frame: ciò non è corretto, in quanto il contenuto di <noframes> deve riportare informazioni equivalenti a quelle presenti nei frame. Listato 14: esempio di frameset con l'elemento <noframes>. <frameset rows="230,*" cols="*"> <frameset cols="270,*"> <frame src="./logo.html" name="leftFrame" frameborder="0" scrolling="no" noresize="noresize" title="logo dell'azienda"> <frame src="http://www.verbotsonline.com/VerbotsOnlineWeb/webclient/detect.h tml?botcode=yglbxdt95c4r&input=pronuncia Autenticarsi per accedere ai servizi." name="verbotFrame" frameborder="0" scrolling="no" title="chatterbox in cui viene caricato l'assistente personale"> </frameset> <frame src="./login.html" name="mainFrame" frameborder="0" noresize="noresize" title="frame principale in cui vengono caricate tutte le pagine"> <noframes> <body> <h1>ATTENZIONE: Frames Non Supportati</h1> <h2> Il documento è composto da 3 frame di cui sono riportati i collegamenti:</h2> <ul> 99 <li><a href="./logo.html" title="logo dell'azienda">logo</a></li> <li><a accesskey="c" href="http://www.verbotsonline.com/VerbotsOnlineWeb/webclient/detect. html?botcode=yglbxdt95c4r&input=pronuncia Autenticarsi per accedere ai servizi." title="chatterbox in cui viene caricato l'assistente personale">Chatterbox in cui vengono caricate le informazioni vocali</a></li> <li><a accesskey="l" href="./login.html" title="frame principale in cui vengono caricate tutte le pagine">Pagina per la registrazione e/o per l'autenticazione</a></li> </ul> </body> </noframes> </frameset> Per verificare che la versione equivalente sia accessibile in Arianna è stato utilizzato un browser testuale che non supporta i frames, lynx. Figura 4.22: home page di Arianna visualizzata con Lynx Linea guida 9: progettare garantendo l'indipendenza dal dispositivo 9.3 Negli script, specificare gestori di evento logici piuttosto che 100 gestori di evento dipendenti dal dispositivo. Questo punto di controllo può definirsi una accentuazione di quanto richiesto dal 6.4. Ricordo che i comandi tastiera vengono spesso utilizzati dalle tecnologie assistive e possono essere utilizzati per attivare funzionalità tramite comandi vocali. La maggior parte dei produttori di tecnologie assistive preferisce quindi appoggiarsi alle caratteristiche di accessibilità dei sistemi operativi sui quali sviluppa le applicazioni, in modo da consentirne la piena interazione e compatibilità. Possiamo quindi affiliare alcuni eventi nel modo seguente: • usare onmousedown con onkeydown; • usare onmouseup con onkeyup; • usare onclick con onkeypress. In HTML non esiste un comando da tastiera equivalente al doppio click del mouse (ondblclick).È quindi importante specificare sempre eventi che non siano legati, per esempio, al movimento del mouse ma che abbiano sempre un equivalente tramite comando tastiera in quanto su tali comandi si basano principalmente le tecnologie assistive. 9.4 Creare un ordine logico di tabulazione fra i collegamenti, i controlli dei moduli e gli oggetti. Chi utilizza la tastiera per navigare all'interno di una pagina Web, utilizza il tasto TAB per passare da un elemento al successivo. È quindi chiaro che affinché il contenuto di una pagina sia comprensibile deve essere strutturato in modo da seguire un ordine logico. Generalmente la navigazione tramite il tasto tab avviene lateralmente. Nel caso in cui sia necessario navigare nella pagina spostandosi per colonne, o comunque sia in maniera differente da quella di default, in modo da mantenere l'ordine logico, è necessario utilizzare l'attributo tabindex. Questo attributo è utilizzabile com gli elementi <a>, <area>, <button>, 101 <input>, <object>, <select>, <textarea>. Spostandosi col tasto tab, utilizzando tabindex ci si sposta dal valore più piccolo al più grande (da 0 a 32767). Come verifica dell'ordine di tabulazione è sufficiente premere ripetutamente il tasto tab per controllare quali elementi vengono via via selezionati. Un esempio di applicazione di tale attributo lo troviamo fin dalla pagina di login di Arianna. Listato 14: uso dell'attributo tabindex nella pagina di login. ...<input tabindex="0"accesskey="s" type="button" value=" Aiuto "...>... ...<form name="userData" action="./servlets/CheckUserData" method="post" target="_top" onsubmit="return checkData(this)"> <h4 id="index">Inserire i dati per l'autenticazione</h4> <label for="usr">Nome Utente</label><br/> <input tabindex="2" id="usr" name="usn" size="30"...> <label for="pwd">Password</label><br/> <input tabindex="3" id="pwd" type="password" name="psw" ...><br/><br/> <p> <input tabindex="4" type="radio" checked="checked" value="assistito" name="role" .../>Assistito <input type="radio" value="medBase" name="role" .../>Medico di Base <input type="radio" value="medSpec" name="role" .../>Medico Specialista </p> <p> <input tabindex="6" accesskey="e" name="submit" type="submit" value="Entra" .../> <input tabindex="5" accesskey="c" name="reset" type="reset" value="Cancella".../> <input tabindex="1" accesskey="r" .../> </p> </form> 9.5 Fornire scorciatoie da tastiera per i collegamenti importanti (compresi quelli nelle mappe immagine lato client), per i controlli dei moduli e per i gruppi di controlli dei moduli. Come appena visto nel punto di controllo precedente è possibile utilizzare il tasto di tabulazione per muoversi tra gli elementi all'interno di una pagina Web. HTML consente anche di assegnare ad un qualsiasi tasto un 102 collegamento diretto con link o elementi all'interno di moduli: l'uso della lettera H, per esempio, potrebbe riportare l'utente alla home page così come l'uso della lettera C può posizionare il focus nel modulo di ricerca. Questi tasti di accesso rapido sono definiti tramite l'attributo accesskey che consentono di fatto una navigazione veloce tramite tastiera. Gli elementi che supportano l'attributo accesskey sono: <a>, <area>, <button>, <input>, <label>, <legend>, <textarea>. Le accesskey vengono attivate in modo differente secondo browser e sistema operativo in uso; per esempio in Explorer bisogna digitare il tasto ALT più invio, mentre su Mozilla e Netscape è sufficiente premere il tasto ALT. Un problema dell'attributo accesskey è che molte combinazioni di tasti con ALT (ALT+F per esempio) sono già utilizzati dai browser come tasti di accesso rapido, oppure per la ricerca di una parola del documento, rendendo quasi impossibile la navigazione tramite questo attributo senza incorrere in un conflitto. Pertanto alcuni esperti consigliano di utilizzare i caratteri numerici come accesskey, in quanto possono creare problemi esclusivamente con utenti che utilizzano tastiere con lingue orientali o con alcune applicazioni di lettori di schermo. Altri consigliano di creare una pagina interna al sito di “dichiarazione di accessibilità” e assegnarvi l'accesskey zero ('0'): all'interno di questa pagina dovrebbe esser indicata la mappa delle accesskey di tutte le caratteristiche che consentono di accedere al sito web. All'interno di Arianna, un utilizzo corretto dell'attributo accesskey è stato fatto nel menù laterale Listato 15: Esempio di utilizzo dell'attributo accesskey nella pulsantiera laterale <ul> <li><a accesskey="i" href="../info.jsp" target="mainFrame" title="cliccare qui per avere una sintesti delle notizie che ti riguardano">Informazioni</a></li> <li><a accesskey="c" href="../fsclin.jsp" target="mainFrame" title="...">Fascicolo clinico</a></li> <li><a accesskey="p" href="../percorsi.html" target="mainFrame" title="...”>Percorsi sanitari</a></li> <li><a accesskey="r" href="../copGenPages/query.html" target="mainFrame" title="...">Ricerca su Internet</a></li> 103 <li><a accesskey="f" href="../forumPages/index.jsp" target="mainFrame" title="...">Forum</a></li> <li><a accesskey="e" href="../servlets/TempoQuest" target="mainFrame" title="...">Esci</a></li> </ul> Le accesskey non vengono rese visibili all'interno della pagina ed è quindi necessario prevedere una formattazione tramite foglio di stile. Per esempio, nel nostro caso se volessimo far comparire l'accesskey a schermo subito dopo il collegamento ipertestuale, è necessario operare nel CSS della pagina con una istruzione come la seguente: Listato 16: Formattazione tramite foglio di stile per visionare l'attributo accesskey. a:after { content: " (" attr(accesskey) ") " } Linea guida 10: usare soluzioni temporanee 10.1 Fino a quando i programmi utente non permetteranno agli utenti di bloccare l'apertura di nuove finestre, non fare apparire pop-up di altro tipo e non cambiare la finestra attiva senza informare l'utente. Navigando in rete spesso capita d'imbattersi in pagine web in cui sono presenti collegamenti che portano all'apertura di nuove finestre o pop-up. Mentre a un utente normale ciò provoca solo una distrazione, l'utente non vedente che utilizza uno screen reader per navigare, si ritroverà in una nuova pagina, spesso senza nemmeno averla richiesta, senza alcun preavviso e perdendo il focus della pagina che stava consultando. Esistono browser che permettono di disabilitare le finestre di pop-up (Mozilla, Netscape o Explorer). Comunque sia non conviene dare informazioni importanti nei pop-up, poiché c'è il rischio che a tale contenuto non si riesca ad accedere. Per un corretto reindirizzamento si utilizza l'attributo target (nelle tag <a> e <frame>) in cui si definisce la destinazione del documento. Nel caso dell'apertura di una nuova finestra target assume il valore blank. Se non è possibile fare a meno di una nuova fniestra, è almeno necessario che l'utente sia informato, utilizzando l'attributo title; un 104 esempio corretto in Arianna lo troviamo nell'apertura di una nuova pagina in cui si fornisce una versione stampabile dei dati del fascicolo clinico. Figura 4.23: esempio di apertura nuova finestra 105 Listato 16:Esempio corretto di collegamento con apertura di nuova finestra. <a href="/Arianna/stampabili/prescstampa.jsp" target="_blank" title="Attenzione: si aprirà una nuova finestra con una versione stampabile delle prescrizioni">Versione stampabile</a> In questo caso, per facilitare l'utente, è stato posto un bottone “chiudi” nella nuova finestra. 10.2 Fino a quando i programmi utente non supporteranno esplicite associazioni fra etichette e controlli dei moduli, garantire che l'etichetta sia posizionata correttamente per tutti i controlli dei moduli che hanno etichette associate implicitamente. All'interno dei moduli è quasi sempre presente un testo che accompagna, per esempio, un campo di inserimento testo: è grazie a questo testo che possiamo ottenere informazioni chiare su quali dati sono richiesti. Pensiamo quindi ad un utente che utilizza un lettore di schermo e che si trova a dover compilare dei moduli: nel caso queste etichette non siano presenti o non siano posizionate correttamente l'utente non potrà procedere con la compilazione. Questi testi possono essere inseriti all'interno dell'elemento <label> che viene associato ad un elemento interno al modulo. Per far ciò si usa l'attributo for per label e l'attributo id per il l'elemento input; l'accoppiamento avviene tra i label e gli input in cui il contenuto rispettivamente all'interno di for e id coincidono. Nell'Assistente Personale un esempio di utilizzo di tale tecnica si trova nelle pagine di registrazione. Listato 17: Utilizzo dell'elemento <label>. ...<label for="nome">Nome*</label> <input id="nome" name="nome" size="30" maxlength="30">... ...<label for="cognome">Cognome*</label> <input id="cognome" name="cognome" size="30" maxlength="30">... ...<label for="codFis">Codice Fiscale*</label> <input id="codFis" name="codfis" size="30" maxlength="30"> Livello di accesso* 106 <input id="assistito" type="radio" name="lvl" value="A"> <label for="assistito"> Assisito </label> <input id="MMG" type="radio" name="lvl" value="mb"> <label for="MMG"> <abbr title="Medico di medicina generale">MMG</abbr> </label> <input id="medSpec" type="radio" name="lvl" value="ms"> <label for="medSpec"> Medico specialista</label> Sesso* <input id="sexM" type="radio" name="sex" value="m"> <label for="sexM"> Maschio</label> <input id="sexF" type="radio" name="sex" value="f"> <label for="sexF"> Femmina</label></div> 10.3 Fino a quando i programmi utente (comprese le tecnologie assistive) non rappresenteranno in modo corretto il testo affiancato, fornire un testo lineare alternativo (nella pagina attiva o in altra pagina) per tutte le tabelle che dispongono testo su colonne parallele e andando a capo. Come già analizzato nella Linea Guida 5, questo punto di controllo favorisce le persone che utilizzano interpreti (come alcuni lettori di schermo) che non sono in grado di gestire blocchi di testo affiancati. CAPITOLO 1 Questo è il testo del primo capitolo del libro scritto da... CAPITOLO 2 Siamo al secondo capitolo, dopo aver letto il primo che... CAPITOLO 3 Ed ecco ora il gran finale: ad uccidere la Contessa è stato... In questo esempio lo screen reader leggerebbe così: CAPITOLO 1, CAPITOLO 2, CAPITOLO 3, Questo è il testo del primo capitolo del libro scritto da..., Siamo al secondo capitolo, dopo aver letto il primo che..., Ed ecco ora il gran finale: ad uccidere la Contessa è stato... che non è la maniera corretta di leggerla. È vero che alcuni lettori di schermo e alcuni browser riescono a linearizzare in modo automatico le tabelle: il WAI ERWG (Evalutation and Repair Working Group) ha sviluppato uno strumento per linearizzare le tabelle, chiamato Tablin. Tuttavia, nel caso sia impossibile linearizzare il contenuto di una tabella è necessario proporre una versione alternativa prima della sua effettiva 107 visualizzazione (o lettura). In Arianna l'uso delle tabelle è stato fatto al minimo, per incolonnare il documento in due o più colonne è stata adottata la tecnica dei CSS; un esempio si trova nel frame principale di benvenuto. .colonna-1of3 .colonna-2of3 .colonna-3of3 Figura 4.24: formattazione in colonne utilizzando i CSS Listato 18: uso dei CSS per la formattazione della pagina. /* formattazione per 3 colonne */ .colonna-1of3{float:left; width:30%; margin-left:1.5%; margin-right:1.5%;} .colonna-2of3{float:left; width:30%; margin-right:1.5%; margin-left:1.5%; } .colonna-3of3{float:left; width:30%; margin-left:1.5%; margin-right:-5%; } 10.4 Fino a quando i programmi utente non gestiranno in maniera corretta i controlli vuoti, inserire caratteri predefiniti come segnaposto nelle caselle per l'immissione di testo a una o a più righe. 108 Alcuni vecchi browser per poter interagire in modo corretto all'interno dei moduli, richiedono la presenza di testo all'interno di campi di input a riga singola e a più righe (aree di testo) in quanto senza questi testi i campi modulo non possono essere accessibili tramite il tasto TAB. La presenza di testi predefiniti consente sia di rendere accessibile il contenuto dei moduli agli utenti che utilizzano queste tecnologie che ad utenti con disabilità di tipo cognitivo che possono ottenere dei "suggerimenti" sul contenuto da inserire in tali campi. Per gli elementi di tipo <input> il testo predefinito può essere impostato tramite l'attributo value mentre per l'elemento <textarea> il testo deve essere inserito tra l'apertura e la chiusura dell'elemento. Un esempio di corretto utilizzo dell'elemento <input> e dell'elemento <textarea> per il rispetto del punto di controllo 10.4 è presente nella pagina che segue. In questi esempi utilizzo sia l'attributo id sia l'attributo name per compatibilità con le versioni Transitional di HTML e XHTML mentre se si utilizza XHTML Strict l'attributo name non va utilizzato in quanto deprecato a favore dell'attributo id. I moderni browser, comprese le tecnologie assistive, hanno la capacità di operare senza la necessità di questi testi. 10.5 Fino a quando i programmi utente (comprese le tecnologie assistive) non rappresenteranno in modo distinto collegamenti adiacenti, inserire caratteri stampabili (delimitati da spazi), non facenti parte dei collegamenti, per separare i collegamenti adiacenti. Utilizzare collegamenti troppo vicini tra loro può creare problemi ad alcune tecnologie assistive e browser. Utilizzando spazi assieme a dei caratteri stampabili esterni ai collegamenti è possibile allo stesso tempo soddisfare questo punto di controllo e dare un effetto gradevole, rendendo maggiormente comprensibile la separazione dei collegamenti. I caratteri non compresi nei collegamenti ipertestuali consentono di ottenere una pausa nella lettura da parte dei lettori di schermo 109 consentendo di individuare l'inizio e la fine di un collegamento. Allo stesso tempo questo sistema consente una migliore comprensione dei contenuti alle persone con disabilità di tipo cognitivo, visivo o con disabilità motorie. Una soluzione alternativa è di utilizzare le liste per la visualizzazione dei collegamenti rendendoli poi gradevoli tramite fogli di stile: in questo modo è quindi possibile garantire la separazione tra contenuto e presentazione, nonché superare la problematica relativa a questo punto di controllo. Nel sito dell'Assistente Personale, questa tecnica è stata utilizzata nell'elenco delle bandiere delle lingue in cui è possibile consultare il portale sanitario. Listato 19: esempio di codice html e rispettivo css per collegamenti adiacenti html <div class="lingua"> <ul> <li><em lang="en"><a href="...” ...><img ... /></a></em></li> <li><em lang="es"><a href="...”...><img.../></a></em></li> </ul> </div> CSS .lingua ul, .lingua li { padding:0,0.5em,0,0.5em; margin:0; display:inline; border-left: 1em; } Linea guida 11: usare le tecnologie e le linee guida del W3C 11.1 Utilizzare le tecnologie W3C quando sono disponibili e sono appropriate per un certo compito usando le versioni più recenti quando sono supportate dai programmi utente. I gruppi di lavoro che si occupano della creazione delle specifiche delle raccomandazioni del W3C tengono in considerazione l'attività del progetto WAI e quindi coinvolgono gli esperti di accessibilità per valutare di volta in 110 volta come le ). nuove specifiche possano rispettare il principio di universalità del World Wide Web: è anche questo il motivo per cui le raccomandazioni del W3C sono universalmente riconosciute come standard de facto. È pur vero che con il rilascio di nuove specifiche i browser e le tecnologie assistive devono aggiornare i loro motori per rendere fruibili queste nuove caratteristiche, considerando che tutte le nuove specifiche mirano a mantenere una compatibilità con le precedenti. Può quindi succedere che attributi come longdesc per le immagini non vengano riconosciuti e ignorati da alcuni browser e/o tecnologie assistive ma questo non significa che per una tecnologia che non lo utilizza non ve ne siano altre che rispettano le raccomandazioni del W3C. Ciò significa che i contenuti delle pagine Web devono validare secondo le grammatiche formali (vedi il punto di controllo 3.2) utilizzando per esempio il validatore di codice HTML (http://validator.w3.org) o il validatore di fogli di stile (http://jigsaw.w3.org/css-validator/). È bene quindi cercare di mantenere le proprie pagine secondo le ultime specifiche del W3C: l'elenco completo e costantemente aggiornato è disponibili nella pagina W3C Technical Reports and Publications (http://www.w3.org/TR/). Le principali specifiche sono: ● MathML per equazioni matematiche; ● HTML, XHTML, XML per la struttura dei documenti; ● RDF per i meta data; ● SMIL per creare presentazioni multimediali; ● CSS e XSL per la definizione dei fogli di stile; ● XSLT per creare trasformazioni dei fogli di stile; ● PNG per la grafica. Riassumendo non esiste il programma (browser o screenreader che sia) che sia completamente fedele agli standard forniti dal W3C. Sul Web in alcuni portali (uno è webstandardso.org) sono disponibili alcune rinformazioni sull'effettiva applicazione degli standard per i programmi user agent più diffusi. 11.2 Evitare l'utilizzo di caratteristiche disapprovate dal W3C. 111 Con la definizione di nuove raccomandazioni e con l'avvento di nuove tecnologie alcuni elementi e attributi possono essere eliminati a favore di nuove raccomandazioni che ne migliorano l'utilizzo. Un esempio concreto è dato dall'elemento <font> che è stato disapprovato (deprecated) dal W3C a favore dei fogli di stile che consentono di separare il contenuto dalla presentazione. Per lo stesso motivo, l'attributo color è stato deprecato, sempre a favore dell'utilizzo dei fogli di stile. Gli elementi e gli attributi disapprovati diventano quindi obsoleti e vengono solitamente mantenuti nelle grammatiche dei DOCTYPE di tipo Transitional (ossia grammatiche di transizione) mentre vengono rimossi nelle grammatiche dei DOCTYPE di tipo Strict: un ulteriore esempio è dato dall'attributo target per i collegamenti che in XHTML 1.x Strict è deprecato. Elementi come <applet> ed <embed> sono stati sostituiti dall'elemento <object> che consente di trasformare il contenuto in modo gradevole nel caso non sia presente l'oggetto richiesto ma il cui supporto però con alcuni browser e tecnologie assistive non è ancora ottimale. Per la massima accessibilità si consiglia quindi di utilizzare le grammatiche con DOCTYPE di tipo Strict. L'elenco degli elementi ed attributi utilizzabili è disponibile direttamente nel sito del W3C, dove con asterisco sono indicati gli elementi e gli attributi disapprovati. Ma come possiamo ottenere gli effetti grafici e le impostazioni che utilizzavamo tramite l'elemento font tramite i fogli di stile ed allo stesso tempo garantire l'accessibilità della nostra pagina web? Invece di utilizzare elementi ed attributi disapprovati per controllare la grafica della presentazione, è invece possibile utilizzare i seguenti attributi tramite fogli di stile: ● font (solo CSS 2.x) ● font-family ● font-size ● font-size-adjust ● font-stretch ● font-style ● font-variant ● font-weight 112 ● color ● background-color Listato 20: Esempio di definizione corretta dei caratteri in un foglio di stile. body { margin:0; padding:0; font: 14px Verdana, Geneva, Arial, Helvetica, sans-serif; color:#000000 /*nero*/ float:left;} 11.3 Fornire agli utenti l'informazione necessaria perché possano ricevere i documenti in modo che si adattino alle loro preferenze (per lingua, per tipo di contenuto, ecc.). La maggior parte dei browser consente una configurazione in modo che richiedendo una determinata pagina, il server possa riconoscere la lingua prescelta. A questo punto server ed il browser negozieranno il contenuto da presentare e questo consentirà di ottenere direttamente la pagina nella lingua predefinita dall'utente: questo si chiama negoziazione dei contenuti (HTTP Content Negotiation) di cui è disponibile una pagina informativa sul sito del W3C. La negoziazione dei contenuti è attuabile solo se supportata dal proprio server. Selezionando per esempio la pagina Web nel sito del W3C all'URL http://www.w3.org/Press/1998/CSS2-REC con un browser con impostazione di lingua italiana, verrà visualizzata una pagina di errore (Errore 406) contenente le possibilità di visualizzazione del contenuto in altre lingue. Questo consente quindi di eliminare dall'interno della pagina i collegamenti alle pagine in altre lingue. Quando all'interno dei nostri elementi meta si inserisce il codice seguente, indichiamo chiaramente qual'è la codifica della nostra pagina: Listato 21: utilizzo dell'elemento <meta> per definire la codifica della pagina Web ISO-8859-1. <meta http-equiv="Content-Type" content="text/html; charset=ISO-88591" /> Se per esempio avessimo voluto visualizzare una pagina con codifica in giapponese, l'istruzione corretta da inserire nel codice della pagina 113 Websarebbe stata la seguente: Listato 22: Utilizzo dell'elemento <meta> per definire la codifica della pagina Web ISO-2022-jp. <meta http-equiv="Content-type" content="text/html; charset=ISO-2022jp" /> Utilizzando invece l'attributo lang è possibile consentire la possibilità di cambiare l'assegnazione della lingua predefinita della pagina (per esempio per una corretta lettura tramite lettore di schermo) oppure definire delle informazioni per i motori di ricerca in una particolare lingua: Listato 23: utilizzo dell'elemento <meta> per definire le parole chiave in diverse lingue. <meta name="keywords" lang="it" content="italiano" /> <meta name="keywords" lang="fr" content="françoise" /> Con la stessa modalità, mantenendo sempre il rispetto della linea guida che richiede la separazione tra contenuto e presentazione è possibile definire diversi fogli di stile a seconda del browser o della tecnologia assistiva utilizzata dal visitatore del nostro sito web. Poniamo per esempio il caso di un utente che utilizzi come tecnologia assistiva un lettore vocale e vogliamo definire un particolare tono della voce quando viene letto un elemento di tipo <h1>. Creeremo quindi un foglio di stile dedicato che si occuperà di assegnare una voce femminile a lettura lenta ma chiara: Listato 24: foglio di stile Aureal con definizione della voce per l'elemento <h1>. h1 { voice-family: announcer, female; stress: slow; richness: 70; } Nelle ultime versioni di programmi come Jaws consentono di identificare con tonalità di voce differente i diversi livelli di titolazione, i collegamenti, ecc. Queste personalizzazioni però potrebbero rendere di difficile comprensione il cambio di tonalità di voce se l'utente è già abituato a una sua impostazione personalizzata. Sempre per consentire la personalizzazione del contenuto, i CSS2 consentono allo sviluppatore di creare dei fogli di stile per ogni tipo di periferiche come per esempio lo 114 schermo, la stampante, le barre Braille, ecc. Attualmente con i CSS2 i media utilizzabili con i fogli di stile e quindi riconoscibili direttamente dai browser o altre periferiche di navigazione sono i seguenti: • all: tutte le periferiche • aural: sintetizzatori vocali • braille: barre braille • embossed: stampanti braille • handheld: palmari • print: stampanti • projection: proiettori e/o lavagne luminose • screen: schermi da computer • tty: periferiche a carattere fisso (terminali, telescriventi, ecc.) • tv: periferiche televisive (Web TV, TV digitale, ecc.) Creare dei fogli di stile per ogni periferica (device) riduce i tempi di caricamento della pagina in quanto consentono ai programmi utenti di non caricare le impostazioni di cui non necessitano. Ipotizzando per esempio un foglio di stile per palmari, questa versione sicuramente consentirà un caricamento più veloce dei contenuti rispetto ad una versione standard del sito. È però da tenere presente che spesso gli stessi browser all'interno dei computer palmari non utilizzano i fogli di stile dedicati preferendo utilizzare i fogli di stile predefiniti per il media screen adattandoli allo schermo del palmare. Sono attualmente disponibili due modalità per specificare il caricamento di questi fogli di stile: tramite importazione e tramite l'elemento <link>. Il primo caso risulta ottimale per i browser di ultima generazione mentre nel caso di vecchie versioni può creare dei problemi. 11.4 Se, nonostante ogni sforzo, non è possibile creare una pagina accessibile, fornire un collegamento a una pagina alternativa che si riferisca alle tecnologie W3C, che sia accessibile, che contenga informazioni (o funzionalità) 115 equivalenti e sia aggiornata con la stessa frequenza della pagina originale inaccessibile. Gli sviluppatori dovrebbero ricorrere a pagine alternative solo quando le altre soluzioni falliscono perché le pagine alternative sono in genere meno aggiornate delle pagine principali. Ipotizziamo un sito di un ente pubblico dove ogni ufficio inserisce dei contenuti in modo autonomo: se 100 operatori inseriscono contenuti non accessibili che richiedono una versione parallela, il costo e le ore lavorative saranno quantomeno raddoppiate e sempre con il dubbio che non tutte le pagine alternative siano aggiornate. Una pagina non aggiornata può essere frustrante quanto una pagina inaccessibile visto che, in entrambi i casi, l'informazione presentata nella pagina originale non è disponibile. La generazione automatica di pagine alternative può portare a aggiornamenti più frequenti, ma gli sviluppatori devono comunque fare attenzione ad assicurare che le pagine generate abbiano sempre senso, e che gli utenti siano in grado di navigare in un sito seguendo i collegamenti delle pagine primarie, di quelle alternative, o di entrambe (magari posizionando su ogni pagina il collegamento alla versione alternativa). Alcuni esperti di accessibilità consigliano di iniziare la conversione dei vecchi siti tramite versioni alternative solo testo, magari con qualche foglio di stile dedicato a particolari tipi di disabilità. Personalmente seguendo le indicazioni del W3C sconsiglio tale pratica che rende pesante l'aggiornamento e che di fatto può risultare dannosa all'accessibilità di un sito Web in quanto si utilizza tale modalità di ripiego per "tenere la coscienza pulita" da eventuali incompetenze degli sviluppatori o dei gestori dei contenuti. Prima di ricorrere a una pagina alternativa, riesaminare il progetto della pagina originale; è probabile che rendendola accessibile essa risulti migliore per tutti gli utenti. Il W3C non parla mai di sito alternativo ma di pagina alternativa: chi crea siti alternativi non rispetta le WCAG 1.0 e nemmeno i principi di sviluppo per l'accesso universale. Inoltre la soluzione "solo testo", spesso utilizzata anche da siti istituzionali, non è conforme a questa linea guida in quanto non si tratta di pagina equivalente che utilizza le tecnologie W3C. 116 Linea guida 12: fornire informazioni per il contesto e l'orientamento 12.1 Assegnare un titolo a ogni frame per facilitarne l'identificazione e la navigazione. Alcuni programmi utente non possono accedere a più frame contemporaneamente o possono essere configurati esclusivamente per visualizzare un solo frame: un esempio possono essere le applicazioni software di supporto per gli utenti non vedenti. Utilizzando l'attributo title per i frame è possibile fornire informazioni al visitatore sul contenuto di quella particolare pagina web, consentendo all'utente di selezionare il frame desiderato. Listato 25: esempio di corretta definizione di Frameset e titoli per i frame. <frameset rows="230,*" cols="*"> <frameset cols="250,*"> <frame src="..." name="logo" frameborder="0" title="logo dell'azienda" noresize scrolling="no"> <frame src="..." name="verbotFrame" frameborder="0" noresize scrolling="no" title="assistente virtuale che espone un quadro generale della situazione dell'assistito"/> </frameset> <frameset cols="250,*" rows="*"> <frame src="..." name="pulsantiera" frameborder="0" noresize scrolling="no" title="menù laterale per la navigazione nelle varie sezioni del portale"/> <frame src="..." name="mainFrame" frameborder="0" title="frame in cui vengono caricate tutte le pagine"> </frameset> <noframes>... 12.2 Descrivere lo scopo dei frame e il modo in cui questi interagiscono se non è evidente solo tramite i titoli dei frame. Nel punto di controllo precedente abbiamo visto che utilizzando l'attributo title possiamo dare alcune informazioni sul contenuto dei frame. È possibile che il semplice title può non essere sufficiente per spiegare la struttura o lo scopo dell'elemento <frame> o dell'elemento di contenimento <Frameset>. Poniamo il caso di una pagina con cinque frame: uno per la testata, uno a sinistra per la navigazione dei menù, uno centrale per i contenuti, uno a destra per le ultime notizie ed uno alla fine 117 per la chiusura di pagina: come è possibile spiegarne la struttura tramite l'attributo title? Già in questo paragrafo per spiegare in modo rapido una struttura teorica ho utilizzato diverse righe di testo, che non avrei potuto utilizzare con l'attributo title. In questi casi è consigliabile utilizzare l'attributo longdesc per l'elemento frame al fine di rendere disponibile un collegamento ad un documento (pagina senza frame) che contiene una descrizione completa per una pagina con una struttura complessa di frame. Una possibile alternativa per le descrizioni troppo lunghe dei frame può essere la seguente: Listato 26: esempio di corretta definizione di frameset, titoli e longdesc per i frame <frameset rows="230,*" cols="*"> <frameset cols="250,*"> <frame src="..." name="logo" frameborder="0" title="Logo dell'azienda" noresize scrolling="no"> <frame src="..." name="verbotFrame" frameborder="0" noresize scrolling="no" longdesc=”chatterbot.html”/> </frameset> <frameset cols="250,*" rows="*"> <frame src="..." name="pulsantiera" frameborder="0" noresize scrolling="no" title="Menù navigazione"/> <frame src="..." name="mainFrame" frameborder="0" longdesc=”descr.html”> </frameset> <noframes>... 12.3 Dividere i grandi blocchi di informazione in gruppi più maneggevoli quando è naturale ed appropriato. All'interno di una pagina è possibile che vi siano raccolte molte informazioni che se non vengono raggruppate possono creare confusione e distrazione da parte dell'utente che fruisce dei contenuti. È quindi necessario che lo sviluppatore utilizzi gli elementi di marcatura necessari per diminuire questo disagio. Analizziamo in questo punto di controllo quali siano gli elementi utilizzabili a tal fine. Nel nostro caso uno dei principali problemi nel raggruppamento delle informazioni in blocchi è stato nella compilazione dell'anamnesi dell'assistito. Una tecnica semplice e allo stesso tempo gradevole è stata l'utilizzo dell'elemento <fieldset> con il suo complementare <legend> 118 Figura 4.25:esempio di raggruppamento campi di modulo Listato 27: utilizzo dell'elemento <fieldset> come raggruppamento per i campi modulo <h4>Informazioni sullo stile di vita</h4> <form...> <fieldset> <legend>Stile di vita</legend> <h5>11 Ha l'abitudine di fumare?</h5> <p><input type="radio" value="noFumo" name="tabagismo" id="nomai""/><label for="nomai">No, non ho mai fumato</label></p> <p><input type="radio" value="passFumo" name="tabagismo" id="nnpiù"/><label for="nnpiù">No, ma fumavo in passato</label></p> <p><input type="radio" value="siFumo" name="tabagismo" /><label for="si1"> (specificarne la quantità)</label><input id="si1" type="text" name="qtyFumo"/></p> <h5>12 In questo periodo sta seguendo qualche dieta?</h5> <p><input type="radio" value="siDieta" name="dieta" id="no2"/><label for="no2">No</label></p> <p><input type="radio" value="noDieta" name="dieta" id="si2"/><label for="si2">Si</label></p> <h5>13 Se si, per quale motivo?</h5> <p><input type="radio" value="estetico" name="usoDieta" id="dima1"/><label for="dima1">Per dimagrire(per motivi estetici)</label></p> <p><input type="radio" value="dimagrimento" name="usoDieta" id="dima2"/><label for="dima2">Per dimagrire</label></p> <p><input type="radio" value="disintossicazione" name="usoDieta" id="disintoss"/><label for="disintoss">Per disintossicarmi</label></p> <p><input type="radio" value="altraMotivazione" name="usoDieta" /><label for="altro1">Per altri motivi</label> <input id="altro1" 119 type="text" name="altraDieta"/></p> <h5>Se si, chi le ha prescritto la dieta?</h5> <p><input type="radio" value="auto" name="prescrizioneDieta" id="solo"/><label for="solo">Nessuno, faccio da solo/a</label></p> <p><input type="radio" value="medico" name="prescrizioneDieta" id="mmg"/><label for="mmg">Il medico di famiglia</label></p> <p><input type="radio" value="specialista" name="prescrizioneDieta" id="medSpec"/><label for="medSepc">Uno specialista</label></p> <p><input type="radio" value="estetista" name="prescrizioneDieta" id="estet"/><label for="estet">Un estetista</label></p> <p><input type="radio" value="altraDieta" name="prescrizioneDieta" /><label for="altro2">Altro</label><input id="altro2" type="text" name="altraPresc"/></p> </fieldset> <fieldset> <legend>Attività extralavorative</legend> <h5>15 Pratica attività di volontariato o fa parte di qualche associazione di volontariato?</h5> <p><input type="radio" value="noVolontariato" name="volontariato" id="volNo"/><label for="volNo">No</label></p> <p><input type="radio" value="siVolontariato" name="volontariato" id="volSi"/><label for="volSi">Si (specificare) </label><input type="text" name="specVol"/></p> </fieldset><br> <input class="pulsSpace" type="submit" value="Procedi" name="procedi" title="per proseguire con la compilazione del questionario clicchi qui"/> <input class="pulsSpace" type="reset" value="Cancella" name="reset" title="per cancellare le risposte del questionario clicchi qui"/> </form> 12.4 Associare esplicitamente le etichette ai loro controlli. Abbiamo già approfondito nel punto di controllo 10.2 riguardo possibilità di utilizzare delle etichette (elemento <label>) sia in modo implicito che in modo esplicito. Per soddisfare questo punto di controllo, è necessario utilizzare l'elemento <label> in modo esplicito tramite l'attributo for che deve corrispondere all'attributo id dell'elemento interno al modulo: 120 Listato 28: uso corretto delle etichette per i campi modulo. ...<label for="numTel"> Numero telefonico (*) </label><input id="numTel" name="tel" size="30" maxlength="30" /> Linea guida 13: fornire chiari meccanismi di navigazione 13.1 Identificare con chiarezza la destinazione di ogni collegamento. Quando creiamo un collegamento ipertestuale (link) è necessario che il testo del collegamento abbia un senso. La porzione di frase che deve essere coinvolta non deve essere troppo lunga, non deve contenere il “clicca qui” (manca la contestualità tra il testo di collegamento e la sua destinazione; se necessario è possibile aggiungere l'attributo title per descrivere meglio la pagina di destinazione. Oltre a tutte queste indicazioni, come già detto in precedenza, è necessario che i notificare l'utente se il collegamento a una pagina si apra su una nuova finestra. Figura 4.26: uso della corretta parte della frase come collegamento 121 Listato 29: utilizzo corretto di testi nei collegamenti ipertestuali. <h5 class="info"> Per visualizzare i referti degli esami <a href="http://www.adobe.com/it/products/acrobat/readstep2.html" target=_”blank” title="[nuova finestra] pagina di download adobe reader"> Scarica Adobe Reader</a> se non lo hai già installato <img src="./images/pdficon_large.gif" alt="logo formato pdf" title="logo formato pdf"></h5> 13.2 Fornire metadati per aggiungere alle pagine ed ai siti informazioni di tipo semantico. All'interno di una pagina Web sono presenti degli elementi strutturali che forniscono delle informazioni sul documento. Questi elementi sono chiamati metadati, ossia informazioni su dati. L'elemento <title> L'elemento <title> specifica il titolo del documento e si differenzia dall'attributo title in quanto compare una sola volta ed identifica in modo univoco il titolo di una pagina. L'elemento <meta> Gli elementi <meta> possono fornire delle informazioni che consentono di controllare i contenuti e fornire informazioni. Per esempio, per fornire informazioni sul contenuto della pagina ai motori di ricerca si utilizza un codice come il seguente. La dichiarazione !DOCTYPE Lo sviluppo di documenti che corrispondano a grammatiche formali, preferibilmente se ufficiali del W3C (punto di controllo 3.2) è un requisito basilare per la lettura dei contenuti di una pagina in quanto fornisce informazioni specifiche al programma utente sul tipo di linguaggio utilizzato. Qui di seguito un frammento di codice per una corretta fornitura di metadati Listato 30: uso corretto degli elementi <title> <meta> e <!DOCTYPE> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html dir="ltr" lang="it"> <head> <title>Arianna – Assistente Personale</title> <meta name="description" content="divisione in frame della homepage" /> <meta name="author" content="Michele Bianchella, Michele 122 Campanelli, Luigi Lella, Juri Orazi, Domenico Paccone" /> <meta name="keywords" content="informazioni sistema sanitario, progetto Arianna " /> </head>... 13.3 Fornire informazioni sulla configurazione generale di un sito (per esempio, una mappa oppure un indice dei contenuti). Al fine di rispettare questo punto di controllo, un sito Web dovrebbe avere un indice o una mappa che rappresenti i contenuti in modo schematico e ad accesso immediato. La mappa di un sito Web o un indice dei contenuti deve essere strutturata in modo da garantire la massima accessibilità, quindi preferibilmente in HTML senza molte formattazioni. È altresì necessario che il testo del collegamento corrisponda al titolo principale (elemento <h1>) della pagina di destinazione in modo da non confondere gli utenti con disabilità di tipo cognitivo. Uno degli errori da evitare è quindi l'utilizzo di pagine Web con lo stesso titolo (elemento <title>) proprio per non creare problemi di interpretazione da parte di disabili cognitivi, utenti che utilizzano lettori di schermo ed anche utenti senza disabilità. Listato 31a: esempio di coerenza tra il nome del link e il titolo della pagina a cui reindirizza. ...<li><a href=”...”>Fascicolo clinico</a></li>... 123 Listato 31b: header principale della pagina che coincide con il nome del collegamento. ...<h1>Fascicolo clinico</h1>... È inoltre consigliabile, se possibile, la creazione di una pagina personalizzata di errore 404 ("page not found") che riporti alla pagina contenente la mappa del sito e che consenta all'utente di ritornare alla pagina precedente. Figura 4.29: errore 404 con possibile reindirizzamento 124 13.4 Usare meccanismi di navigazione in modo coerente. Se ogni pagina del vostro sito Web mantiene sempre uno stile uniforme mantenendo per esempio lo stesso stile e la medesima posizione per la barra di navigazione, una determinata posizione per il motore di ricerca, ecc. i visitatori del sito otterranno una navigazione semplificata individuando più facilmente le informazioni ricercate. Modificare l'impostazione delle pagine per ogni pagina può disorientare i visitatori riducendo quindi il piacere di navigare i contenuti del vostro sito web. Attualmente grazie ai sistemi di gestione contenuti (CMS) e tramite l'utilizzo di modelli (template) offerti dai più diffusi editor è più semplice rispettare il requisito di questo punto di controllo. 13.5 Fornire barre di navigazione per evidenziare e dare accesso ai meccanismi di navigazione. Il percorso fornisce agli utenti le informazioni di cui essi hanno bisogno per capire dove si trovano all'interno del sito web. Questo lo si fa creando una struttura gerarchica che ha come punto iniziale la home page e come punto finale la pagina che si è raggiunta. Tra il punto iniziale e quello finale ci sono i link a tutte le pagine intermedie che sono state attraversate. Sul sito dell’assistente personale mancava completamente il percorso. In ogni pagina quindi si è provveduto ad inserirlo in alto a sinistra. Si è partiti dalla home page, che in pratica è la pagina di benvenuto (quella subito dopo il login), fino a raggiungere la pagina che l’utente sta visitando. Tutte le pagine attraversate possono essere visitate di nuovo cliccando direttamente sui link del percorso. 125 Figura 4.30: tecnica delle breadcrumb come barra di navigazione Listato 31: barra di navigazone: Percorso: <a href=”../info.jsp”>Home</a> > <a href="../fsclin.jsp"> Fascicolo Clinico </a> > Anamnesi 13.6 Raggruppare i collegamenti correlati, identificare i gruppi (per i programmi utente) e, fino a quando i programmi utente non lo consentiranno, fornire un modo per saltare il gruppo. È sempre bene posizionare il menu di navigazione all'inizio del codice all'interno della nostra pagina web, magari inserendo anche una barra di navigazione come indicato nel punto di controllo 13.5. Però così facendo accade che gli utenti non vedenti che utilizzano i lettori di schermo solitamente si spostano all'interno di una pagina saltando da collegamento a collegamento: questo accadrebbe per ogni pagina visitata se non venisse offerta la possibilità di saltare direttamente al contenuto. Se i collegamenti sono raggruppati secondo una logica (per esempio, le barre di navigazione) è possibile definire un collegamento ipertestuale che ne consenta il superamento: questo significa offrire la possibilità 126 anche agli utenti non vedenti di saltare la lettura di una parte del testo, così come qualsiasi utente vedente farebbe nel caso di ripetizione di testi. Considerando che spesso la prima voce interna a una pagina Web riguarda proprio la barra di navigazione, se raggruppiamo questi collegamenti in una unità logica alcune tecnologie assistive consentono di saltare direttamente il blocco. Per le tecnologie assistive che invece non consentono tale possibilità, è necessario definire un collegamento che permetta di saltare a un'altra area del contenuto. Nell'esempio seguente i collegamenti vengono raggruppati nell'elemento <map> e la prima opzione consente di saltare direttamente all'inizio del contenuto. Listato 32: esempio di raggruppamento di collegamenti. <map title="Barra di Navigazione" id="BarNav"> <p> [<a href="#contenuto" tabindex="1" accesskey="1">Passa al Contenuto</a>] <a href="../info.jsp" tabindex="2" accesskey="2">Home</a> > <a href="../fsclin.jsp" tabindex="3" accesskey="3">Fascicolo clinico</a> > Allergie</p> </map> <a name="contenuto"></a> È inoltre possibile utilizzare i fogli di stile per nascondere questo collegamento in modo che sia fruibile esclusivamente dai lettori di schermo. Listato 33: definizione di una classe per nascondere il collegamento. <div class="nascosto"> <a href="#contenuto">vai direttamente al contenuto</a> </div> È sufficiente inserire la seguente classe nel foglio di stile, in modo da rendere subito operativo il codice sopra riportato rendendolo quindi "visibile" agli utenti che navigano con sistemi di lettura dello schermo. Listato 34: rispettivo CSS per il listato 33. div.nascosto { display: none; } 13.7 Se sono fornite funzionalità di ricerca, rendere possibili diversi tipi di ricerca per differenti livelli di abilità e per preferenze differenti. Questo punto di controllo non obbliga lo sviluppatore ad inserire all'interno di un sito Web un motore di ricerca ma fornisce delle indicazioni su come 127 dovrebbe esser definita la procedura di ricerca e di visualizzazione dei risultati. È altresì necessario definire una pagina dedicata alla ricerca all'interno del sito Web che spieghi le modalità con cui viene effettuata la ricerca. È possibile inoltre fornire delle ulteriori opzioni avanzate per semplificare la ricerca, utilizzando gli operatori AND, OR, EXCLUDE per ricercare rispettivamente tutte le parole indicate, una delle parole indicate o tutte le parole escluse quelle indicate nel modulo di ricerca. Il sito dell'Assistente Personale fornisce un motore di ricerca interno ma in esso non sono ancora incluse le funzionalità sopra citate. Figura 4.31: motore di ricerca interno all'Assistente Personale 13.8 Posizionare l'informazione più significativa all'inizio delle intestazioni, dei paragrafi, delle liste, ecc. Gli utenti preferiscono allineamenti compatibili in tutte le pagine web per elementi come di testo, righe, colonne, pulsanti di scelta, campi di immissione dati, ecc. Si deve determinare, all’inizio, se c'è un ordine per gli elementi che 128 possano agevolare l’utilizzo del sito. Se c’è, bisogna utilizzare quell'ordine in tutte le pagine del sito (ad esempio liste organizzate numericamente o alfabeticamente). Dove non si applica alcun ordine evidente, organizzare le liste ad esempio con pallini. Un formato di lista ben organizzato tende ad agevolare la scansione rendendola rapida e precisa. Uno studio ha indicato che gli utenti scandiscono le liste verticali più rapidamente delle liste orizzontali. Scandire una lista orizzontale fa impiegare agli utenti il 20% di tempo in più rispetto ad una lista verticale. Fornire un'intestazione descrittiva, all’inizio di ogni lista, permette agli utenti di capire che tipo di elementi ci saranno in quella lista. Gli utenti, infatti, utilizzano meglio le liste quando queste includono intestazioni. L'utilizzo anche di etichette significative, di colori di sfondo, margini e spazi bianchi, permettono di identificare un insieme di elementi come una lista separata. Solo la prima lettera della prima parola dovrebbe essere scritta in maiuscolo a meno che l'elemento non contenga un'altra parola che sarebbe normalmente scritta con lettera maiuscola (es. nome proprio). Le liste di punti funzionano meglio quando gli elementi non contengono una sequenza, un ordine. Le liste numerate assegnano a ogni elemento della lista un numero ascendente. Le liste numerate sono particolarmente importanti quando si danno istruzioni. Sul sito dell’assistente personale le liste non rispettavano la direttiva. Anche qui è stato fatto un lavoro di modifica e visto che l’ordine degli elementi, in tutti i casi, non era stabilito, non sono state usate liste numeriche, alfabetiche, ma semplicemente delle strutture a blocchi con le voci separate da linee orizzontali. Inoltre la prima lettera di ogni voce è stata scritta in maiuscolo. 129 Figura 4.32: Esempio di liste raggruppate 13.9 Fornire informazioni sulle raccolte di documenti, ossia documenti composti da più pagine. Gli sviluppatori dovrebbero utilizzare l'elemento <link> per descrivere le modalità di navigazione e l'organizzazione di un documento. Utilizzando l'attributo rel per l'elemento <link>, per esempio con Netscape, Mozilla e Opera, è possibile ottenere un barra di navigazione con i collegamenti indicati dall'attributo rel. In Arianna i contenuti che erano divise in più pagine erano sezioni riguardanti l'inserimento di dati (registrazione, anamnesi). In questi casi è stato necessario muoversi avanti e/o indietro nelle varie form o tramite l'invio dei dati con il bottone di “conferma” o “Prosegui” oppure tornare indietro utilizzando il menù di navigazione. 130 Figura 4.33: uso dei pulsanti per navigare tra pagine dello stesso documento Linea guida 14: garantire che i documenti siano chiari e semplici 14.1 Utilizzare un linguaggio più chiaro e semplice possibile che sia adatto al contenuto del sito. Quando si sviluppa un sito Web o quando ci si occupa della gestione dei contenuti (content manager) è necessario utilizzare un linguaggio appropriato al tipo di contenuti in modo che possa essere accessibile alle persone con disabilità cognitive o con problemi dovuti alla lettura. Le etichette, i link, il testo, devono essere chiaramente descrittivi della loro funzione o della loro destinazione e devono riflettere chiaramente le informazioni e gli elementi contenuti nella categoria. Utilizzare parole di uso frequente e spesso sentite. Non utilizzare parole che è possibile che gli utenti non capiscano. Agli utenti piacciono etichette abbastanza descrittive. I titoli delle 131 categorie devono essere capiti dagli utenti che invece troveranno difficoltà a capire le etichette di collegamento vaghe e generalizzate. Utilizzare intestazioni povere che possono provocare incongruenze tra quello che gli utenti si aspettavano e quello che realmente trovano, è un problema comune nei siti web. Se le intestazioni sono troppo simili le une dalle altre, è possibile che gli utenti debbano sforzarsi a rileggerle per decifrarne la differenza. E’ consigliato utilizzare parole familiari e di frequente utilizzo per consentire un veloce riconoscimento. Le parole familiari possono essere raccolte utilizzando indagini o visualizzando i termini di ricerca immessi dagli utenti sul sito. La terminologia ha un grande ruolo nella capacità dell'utente di trovare e capire le informazioni. Molti termini sono familiari per progettisti e scrittori, ma non per gli utenti. Per migliorare la comprensione tra gli utenti che sono abituati all'utilizzo del termine gergale, può essere utile mettere quel termine tra parentesi. Un dizionario o un glossario può essere utile per gli utenti che non conoscono un determinato argomento, ma comunque questo uso non dovrebbe essere considerato un’abitudine. In generale la terminologia utilizzata deve esser comprensibile al target di pubblico a cui si rivolge il sito. Siccome il sito dell’assistente personale si rivolge ad un target di utenti molto vario, nel sito dell'Assistente Personale si è deciso di utilizzare una terminologia molto semplice in modo tale che tutti possano chiaramente comprendere qualsiasi aspetto del sito. 132 Figura 4.34: esempio di uso di termini comprensibili 14.2 Integrare il testo con presentazioni visive o audio nei casi in cui possano facilitare la comprensione della pagina. Per rendere comprensibile un messaggio al maggior numero possibile di utenti è necessario utilizzare immagini, suoni e testi in modo complementare: una fotografia può sostituire centinaia di parole, così come un suono può consentire di risparmiare tempo di lettura. Immagini, animazioni e filmati vengono utilizzati dagli utenti che preferiscono i contenuti di tipo visuale o da utenti con disabilità cognitive. Un filmato può essere fruito da utenti normodotati, non udenti e non vedenti: in questi due ultimi casi la fruibilità è possibile se si utilizzano linguaggi per il captioning (come per SMIL). Nel caso invece di contenuti né testuali né visuali, come la musica, interventi verbali o effetti speciali questi risulteranno ottimali per gli utenti non vedenti, mentre per gli utenti non udenti sarà necessario fornire un equivalente di tipo testuale: per una canzone sarà possibile rendere disponibile il testo, così come per un intervento verbale (un convegno, ecc.). In entrambi i casi il problema maggiore è dato dagli eventi in tempo reale, che raramente possono essere riportati in contemporanea con una versione alternativa. 133 14.3 Creare uno stile di presentazione coerente fra le pagine. In un sito web va creato uno schema di navigazione comune agli utenti, per aiutarli ad apprenderne e capirne la struttura. Va quindi utilizzato lo stesso schema di navigazione in tutte le pagine per quanto riguarda intestazioni, liste, ricerca, mappa di posizione, pulsanti. Degli studi hanno dimostrato che il numero di errori fatti utilizzando schemi visivamente incompatibili è più alto rispetto all’utilizzo di schemi visivamente compatibili. La compatibilità visiva include la dimensione e il numero di caratteri, i colori utilizzati per etichette, font e sfondo, le ubicazioni di etichette, testo immagini, pulsanti. Gli studi precedenti hanno trovato che le attività eseguite con l’utilizzo di schemi compatibili portavano ad una riduzione dei tempi di completamento dell’attività, alla riduzione degli errori, ad un aumento della soddisfazione dell’utente e ad una riduzione del tempo di apprendimento. Sul sito dell’assistente personale mancava l’omogeneità tra le pagine. Si è provveduto quindi a sistemare questo problema usando tra le pagine uno schema coerente. Il percorso di navigazione è stato inserito in alto a sinistra in tutte le pagine, il titolo sempre sotto il percorso di navigazione, i pulsanti “suggerimenti” e “torna indietro”, ad esempio, sempre nella stessa posizione, così come il link con la versione stampabile, ecc… 134 Figura 4.35 : esempio di identica disposizione degli stessi elementi in due pagine diverse del sito 135 CAPITOLO 5 – SVILUPPI FUTURI : ACCESSIBILTA' E WEB 2.0 5.1 Introduzione Si parla molto in questo ultimo periodo di Web 2.0, non si tratta di un nuovo protocollo, di una release di un software, ma di un termine utilizzato per descrivere un nuovo modo di intendere e di utilizzare la rete grazie allo sviluppo di una molteplicità di applicazioni che sono già state lanciate e che lo saranno nei prossimi mesi e che contribuiranno a modificare la morfologia della rete. L’avvento del Web 2.0, dei contenuti generati dagli utenti e l’incremento nell’utilizzo di tecnologie come PDF e Flash hanno portato all’attenzione nuove questioni riguardo l’usabilità e l'accessibilità web. Le nuove linee guida del W3C sull'acessibiltà (WCAG 2.0) saranno d’aiuto? Sono passati più di sette anni da quando il W3C ha rilasciato la prima versione definitiva delle linee guida sull'accessibilità (WCAG .10). Da quel momento, l’accessibilità web è divenuta sempre più importante per i web manager delle organizzazioni più importanti. Ormai l'accessibilità è un criterio base nella progettazione e realizzazione di servizi web rivolti a una vasta utenza. Per questo motivo sempre più siti di alto profilo offrono una migliore accessibilità rispetto agli anni precedenti. C’è ancora molta strada da fare ma il progresso è evidente. Quando si parla di Web 2.0 ci si riferisce alla ‘nuova generazione’ di siti, tecnologie ed applicazioni online che si stanno diffondendo a macchia d’olio su Internet. 136 5.2 caratteristiche principali del web 2.0 Due sono le caratteristiche del Web 2.0: la tecnologia AJAX, il contenuto generato dall’utente, e le nuove linee guida del W3C sull'accessibilità (WCAG 2.0) che sono in via di rilascio. 5.2.1 AJAX AJAX, o Asynchronous JavaScript e XML non è una vera e propria tecnologia di per sé, ma un insieme di tecniche già esistenti che creano applicazioni web altamente interattive. Le pagine web basate su AJAX richiedono il supporto di JavaScript, condizione già supportata dalla maggior parte delle tecnologie assistive odierne. A tal riguardo i problemi relativi all’accessibilità non riguardano l’uso del JavaScript di per sé, ma il modo in cui il JavaScript viene usato per effettuare cambiamenti sulla pagina. La funzionalità Amazon diamond search (http://www.amazon.com/gp/gsl/search/finder/104-80207417498364?ie=UTF8&productGroupID=loose%5Fdiamonds) per esempio, mostra come si possa usare AJAX per creare un’interfaccia utile ed interattiva, il cui obiettivo è filtrare dati sulla base di criteri pre-selezionati. L’ applicazione di Amazon è un esempio di usabilità di alto livello, ma tuttavia non è utilizzabile da coloro che usano uno screen reader o la tastiera ed è poco utilizzabile da chi utilizza un ingranditore di schermo. La soluzione ?: una versione accessibile separata che Amazon ha puntualmente fornito (anche se tale applicazione non è costruita per essere davvero accessibile al 100%). 5.2.2 Contenuto generato dall’utente Un secondo concetto legato al Web 2.0 è il contenuto generato dall'utente. Blog e wiki stanno divenendo sempre più un luogo comune all’interno delle organizzazioni che tuttavia non si interessano ancora a 137 fondo delle questioni legate all’accessibilità. Siti come Blogger (https://www.blogger.com/), Flickr (http://flickr.com/) e YouTube (http://www.youtube.com) si basano totalmente sui contenuti generati dall'utente, rispettivamente in forma di blog, foto e video. Come possono questi siti controllare l'accessibilità dei contenuti che vengono creati minuto per minuto? Siti di photo sharing, come Flickr, potrebbero richiedere agli utenti di inserire descrizioni alternative alle foto, anche se controllare tutto questo non sarebbe possibile. E per quanto riguarda i siti delle grandi organizzazioni, i proprietari di tali siti saranno in grado di assicurare che il contenuto venga prodotto secondo criteri di accessibilità? 5.2.3 WCAG 2.0 La seconda versione delle linee guida sull’accessibilità (WCAG) del W3C sta per essere rilasciata ufficialmente. Per i dettagli a questa nuova versione, ancora in via di definizione rimandiamo al capitolo 2 5.3 Possibili scenari futuri I tre fattori che abbiamo appena trattato sono le principali variabili che influenzeranno l'evoluzione dell’accessibilità web del futuro. Un possibile scenario riguardo ad un nuovo approccio all'accessibilità potrebbe portare alle seguenti conseguenze: 1. L’Accessibilità verrà sempre meno condizionata da linee guida Con l’avvento di nuove tecnologie (come AJAX), e nello stesso tempo dell’idea di neutralità della tecnologia delle nuove linee guida del W3C, l’accessibilità sarà sempre meno condizionata da criteri guida. Questo significa che da un lato gli esperti di accessibilità diventeranno sempre più importanti nelle organizzazioni, dall’altro che l’interpretazione delle linee guida sarà sempre più difficoltosa. 138 2. Versioni accessibili alternative diverranno la norma Storicamente, ci si è sempre opposti sia per ragioni etiche che di business alle doppie versioni, vale a dire avere di uno stesso sito sia una versione “grafica” che “testuale”. Ma attualmente, dal momento che usabilità e accessibilità vengono a scontrarsi sempre più grazie alla creazione di interfacce sempre più interattive, diviene necessario creare versioni separate (naturalmente dopo aver provato ogni tentativo di integrazione). 3. Probabilmente il contenuto generato dall’utente offre poca accessibilità Il contenuto creato dall'utente sta divenendo sempre più un luogo comune sul web ma viene creato ad una tale velocità che diviene impossibile creare dei requisiti di accessibilità. 4. JavaScript, PDF & Flash non saranno più tecnologie da evitare a priori. Nel WCAG 1.0, i manager web e gli sviluppatori non si affidavano a queste tecnologie. Ma le WCAG, lasciano spazio all’interpretazione ed ora molte tecnologie assistive possono supportare JavaScript, PDF e Flash. 139 BIBLIOGRAFIA – SITOGRAFIA – Roberto Scano, Accessibilità: dalla teoria alla realtà, 2005 – G. Troiani, “CSS Guida completa”, 2005 – Michele Diodati, Diodati.org, Accessibilità e traduzioni dal W3C http://www.diodati.org/ – http://www.w3.org/ , W3C Consortium – Cristiano Tonelli, Accessibilità e siti web: nuove normative e metodologie di controllo, 2005 – Giacomo Mazzocato, ruota dei colori accessibili http://gmazzocato.altervista.org/colorwheel/wheel.php?lingua=it – Validatore HTML, http://validator.w3.org/ – Validatore CSS, http://jigsaw.w3.org/css-validator/ – Web accessibile, www.webaccessibile.org 140