How to Develop Accessible Linux Applications Sharon Snider Copyright © 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML e aggiornati collegamenti interrotti. Revisione v1.0 2002-01-28 Revisionato da: sds Scritto e convertito in DocBook SGML. Questo documento fornisce agli sviluppatori di software Linux direttive e test case per lo sviluppo di applicazioni Linux accessibili. Traduzione a cura di Lorenzo Allegrucci, l_allegrucci@yahoo.it, 21/09/04. Revisione a cura di Elisabetta Galli, lab at kkk dot it. Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or a later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover text, and no Back-Cover text. A copy of the license can be found at http://www.gnu.org/licenses/fdl.txt. _________________________________________________________________ Sommario 1. Introduzione 2. Sviluppo di applicazioni accessibili 2.1. Principi per lo sviluppo di applicazioni accessibili 3. Direttive per lo sviluppo di applicazioni accessibili 3.1. Navigazione con la tastiera 3.2. Interazione del mouse 3.3. Elementi grafici e oggetti 3.4. Tipi di carattere e testo 3.5. Impostazioni di colore e di contrasto elevato 3.6. Ingrandimento 3.7. Audio 3.8. Animazione 3.9. Focus 3.10. Indicatore visivo del focus 3.11. Temporizzazione 3.12. Documentazione 4. Risorse aggiuntive: 1. Introduzione Questo documento fornisce agli sviluppatori le informazioni necessarie per valutare l'accessibilità delle loro applicazioni. Alcuni di questi test dovrebbero essere svolti usando vari tipi di tecnologie adattabili. Commenti o contributi possono essere inviati via e-mail a Sharon Snider. Questo documento sarà aggiornato regolarmente con nuovi contributi e suggerimenti. _________________________________________________________________ 2. Sviluppo di applicazioni accessibili Alcune delle ragioni più importanti per lo sviluppo di software accessibile sono: * Il software dovrebbe essere accessibile a più utenti possibile. * L'accessibilità a nuovi prodotti va a beneficio di tutti. La tecnologia dell'informazione ha fornito molti benefici alla società: tuttavia, le persone disabili non possono parteciparvi pienamente quando la tecnologia non va incontro alle loro necessità. * Conformità con regolamenti e standard a livello mondiale come la Sezione 508 del Rehabilitation Act, l'Americans with Disabilities Act e la World Wide Web Consortium's Web Accessibility Initiative. _________________________________________________________________ 2.1. Principi per lo sviluppo di applicazioni accessibili Gli sviluppatori devono considerare le seguenti necessità degli utenti disabili nello sviluppo di una applicazione accessibile: * Scelta dei metodi di input. Il supporto dovrebbe essere disponibile per vari tipi di input, per esempio tastiera, mouse e tecnologie adattabili. Si presti molta attenzione alla navigazione con la tastiera. * Scelta dei metodi di output. Il supporto dovrebbe essere disponibile per vari tipi di output, per esempio per la visualizzazione sullo schermo, per l'audio e per la stampa. L'obiettivo principale è che siano fornite etichette di testo per tutti gli elementi, gli oggetti, la grafica e le icone dell'interfaccia utente. * Coerenza e flessibilità rispetto alla configurazione di sistema dell'utente. Inoltre, includere opzioni di personalizzazione in modo che l'utente possa selezionare colore, tipo di carattere e disposizione dell'area di lavoro. _________________________________________________________________ 3. Direttive per lo sviluppo di applicazioni accessibili Le seguenti sezioni contengono direttive e test che gli sviluppatori possono usare per creare applicazioni più accessibili. Usare superato, fallito o pendente come sistema di valutazione per ciascuna voce. _________________________________________________________________ 3.1. Navigazione con la tastiera 3.1.1. Direttive Le seguenti impostazioni e sequenze di navigazione con la tastiera possono causare problemi di accessibilità. Confermare che: * Le funzioni dell'applicazione siano accessibili in maniera efficiente dalla tastiera. * Sia stato implementato un ordine logico di navigazione con la tastiera. * Sia stato usato un corretto ordine di tabulazione per i controlli che dipendono da caselle, bottoni radio o che commutano lo stato. * L'accesso alla tastiera non si sovrapponga alle funzioni di accessibilità esistenti. * L'applicazione fornisca, ogni volta che sia possibile, più di un metodo per svolgere attività da tastiera. * Siano presenti combinazioni di tasti alternative ogni volta che sia possibile. * Non ci siano tasti difficili da raggiungere per operazioni da tastiera frequenti. * L'applicazione non usi combinazioni di tasti ripetitive e simultanee. * L'applicazione fornisca funzioni da tastiera equivalenti per tutte le funzioni del mouse. * L'applicazione non usi alcuna funzione di navigazione generale per provocare operazioni. * Tutti i menù, le finestre e i suggerimenti invocati da tastiera appaiano vicino all'oggetto a cui si riferiscono. _________________________________________________________________ 3.1.2. Test Eseguire i seguenti test per la tastiera senza usare il mouse per tutte le azioni. Usando solamente comandi di tastiera, si muova il focus attraverso tutti i menu dell'applicazione. Verificare che: * I menu sensibili al contesto vengano visualizzati correttamente. * Ogni funzione elencata sulla barra degli strumenti possa essere eseguita usando la tastiera. * Si possa far funzionare ogni controllo nell'area client dell'applicazione e nelle finestre di dialogo. * Possano essere selezionati testo e oggetti all'interno dell'applicazione. * Ogni funzionalità aggiuntiva della tastiera o i tasti di scelta rapida funzionino come previsto. _________________________________________________________________ 3.2. Interazione del mouse 3.2.1. Direttive Quelle che seguono sono azioni e sequenze di tasti del mouse che causano problemi di accessibilità. Confermare che: * Non ci sia input dipendente dai tasti due o tre del mouse. * Tutte le operazioni del mouse possano essere annullate. * Ci sia riscontro visuale durante una operazione di drag and drop. _________________________________________________________________ 3.3. Elementi grafici e oggetti 3.3.1. Direttive Quelli che seguono sono attributi degli elementi grafici, degli oggetti e convenzioni di denominazione necessari per l'accessibilità. Confermare che: * Non vi siano attributi grafici prefissati come linee, bordi o lo spessore delle ombre. * Ci siano nomi descrittivi per tutti gli oggetti che fanno parte dell'interfaccia di programmazione dell'applicazione (API). * Tutti gli elementi grafici multicolore possano essere adattati al monocromatico, quando possibile. * Tutti gli elementi interattivi appartenenti all'interfaccia utente grafica (GUI) siano facilmente identificabili. * Sia stata fornita un'opzione per nascondere la grafica non essenziale. _________________________________________________________________ 3.3.2. Test Provare l'applicazione usando un lettore di schermo e verificare che: * Etichette e testo siano lette correttamente, inclusi menù e barre degli strumenti. * Le informazioni sull'oggetto siano lette correttamente. _________________________________________________________________ 3.4. Tipi di carattere e testo 3.4.1. Direttive Quelli che seguono sono tipi di carattere e stili di testo, attributi ed etichette che causano problemi di accessibilità. Confermare che: * Tutti gli stili e dimensioni dei tipi di carattere non siano prefissati. * Sia stata fornita un'opzione per disattivare gli sfondi grafici. * Tutte le etichette abbiano nomi consoni anche fuori dal loro contesto. * Non ci siano nomi di etichette usati più di una volta nella stessa finestra. * Il posizionamento delle etichette sia coerente in tutta l'applicazione. * Quando si usa testo statico come etichetta per un controllo, l'etichetta preceda immediatamente il controllo nell'ordine di tabulazione. * Sia fornita una alternativa a "quello che vedi è ciò che ottieni" (WYSIWYG). _________________________________________________________________ 3.4.2. Test Eseguire i seguenti test per confermare che siano mantenute la dimensione e le impostazioni del tipo di carattere. * Cambiare il tipo di carattere nell'applicazione e confermare che i cambiamenti abbiano effetto solo sull'applicazione e non sull'ambiente desktop. * Cambiare i colori all'interno dell'applicazione e confermare che i cambiamenti abbiano effetto solo sull'applicazione e non sull'ambiente desktop. * Eseguire un programma di ingrandimento dello schermo e provare il tipo di carattere, il colore e la dimensione del testo guardando attraverso l'ingranditore. _________________________________________________________________ 3.5. Impostazioni di colore e di contrasto elevato 3.5.1. Direttive Quelle che seguono sono direttive per il colore e per il contrasto elevato per l'ambiente dell'applicazione. Confermare che: * Il colore dell'applicazione non sia prefissato e possa essere cambiato. * Il colore sia usato come miglioramento e non come unico modo per comunicare informazioni. * L'applicazione supporti varie impostazioni di contrasto elevato (per esempio nero su bianco o bianco su nero). * L'applicazione non dipenda da una particolare impostazione di contrasto elevato. _________________________________________________________________ 3.5.2. Test Eseguire i seguenti test e verificare che: * Tutte le informazioni siano disponibili stampando una schermata con una stampante in bianco e nero. * Tutte le informazioni siano comunicate correttamente anche quando le impostazioni siano regolate sul solo bianco e nero o sul contrasto elevato. * Siano disponibili almeno tre schemi di contrasto elevato, correttamente funzionanti. * Le impostazioni di contrasto elevato del desktop siano rispettate dall'applicazione (per esempio, la barra della finestra e i colori dei tipi di carattere impostati dal desktop non cambino). _________________________________________________________________ 3.6. Ingrandimento 3.6.1. Direttive Dovrebbero essere incorporate nell'applicazione le seguenti funzioni di ingrandimento. Confermare che: * L'applicazione fornisca la capacità di ingrandire l'area di lavoro. * L'applicazione abbia l'opzione di scalare l'area di lavoro. * Le applicazioni non siano influenzate negativamente cambiando le impostazioni di ingrandimento. _________________________________________________________________ 3.7. Audio 3.7.1. Direttive Le seguenti sono direttive per l'output audio. Usando un lettore di schermo, confermare che: * L'utente possa udire tutto l'output audio necessario. * L'audio non sia il solo mezzo per comunicare le informazioni. * L'utente possa configurare frequenza e volume per tutti gli allarmi audio e per i suoni. _________________________________________________________________ 3.7.2. Test L'applicazione dovrebbe avere un'opzione per mostrare visibilmente gli allarmi audio e i suoni. Controllare che l'audio stia funzionando correttamente con il sonoro abilitato. Verificare che: * L'applicazione funzioni come previsto quando l'utente compie un'azione che genera un allarme audio. * L'applicazione funzioni correttamente aumentando o diminuendo il volume. * Gli avvisi e gli allarmi possano essere uditi correttamente in un ambiente di lavoro rumoroso. _________________________________________________________________ 3.8. Animazione 3.8.1. Direttive Le seguenti sono direttive per tutta l'animazione inclusa nell'applicazione. Confermare che: * Non ci siano elementi lampeggianti con frequenza maggiore di 2 Hertz (Hz) e minore di 55Hz. * Non ci siano grandi aree abbaglianti o lampeggianti. _________________________________________________________________ 3.8.2. Test Eseguire i seguenti test sulle applicazioni che includono animazione. Verificare che: * Sia disponibile un'opzione per fermare o disattivare l'animazione. * Quando l'animazione è disattivata l'applicazione funzioni correttamente. _________________________________________________________________ 3.9. Focus 3.9.1. Direttive Il focus è determinato dalla posizione del cursore mentre l'utente si muove attraverso l'applicazione o visualizza pannelli. Le seguenti sono direttive per il focus all'interno dell'applicazione. Confermare che: * Il focus si attivi con i controlli più frequentemente usati. * Il focus di input attuale sia sempre mostrato con chiarezza. * Il focus di input sia nel pannello visivo attivo. * Sia fornito un riscontro appropriato quando l'utente tenti di navigare oltre la fine di un gruppo di oggetti collegati. * Sia suonato l'allarme audio di default quando l'utente preme un tasto inappropriato. _________________________________________________________________ 3.10. Indicatore visivo del focus 3.10.1. Direttive L'indicatore visivo del focus indica all'utente la posizione del cursore e gli fornisce abbastanza informazioni per capire cosa fare successivamente. Le seguenti sono direttive per l'indicatore visivo del focus. Confermare che: * Ci siano sufficienti informazioni audio per l'indicatore visivo del focus, in modo che l'utente possa capire cosa fare successivamente. * I lettori di schermo e i dispositivi Braille possano confermare la posizione corrente del cursore all'interno dell'applicazione e leggere il contenuto dell'indicatore visivo del focus. _________________________________________________________________ 3.10.2. Test Eseguire i seguenti test usando un lettore di schermo o un dispositivo Braille. Verificare che: * Muovendosi tra gli oggetti l'indicatore visivo del focus sia facile da identificare. * La navigazione con la tastiera attraverso i menù dell'applicazione sia chiaramente visibile quando il focus si muove. * Il lettore di schermo o dispositivo Braille stia tracciando l'indicatore visivo del focus mentre si naviga usando la tastiera. * Quando si esegue un programma di ingrandimento dello schermo, l'ingranditore possa tracciare accuratamente l'indicatore visivo del focus mentre si usano la tastiera e il mouse. _________________________________________________________________ 3.11. Temporizzazione 3.11.1. Direttive Le seguenti direttive si applicano ad opzioni di temporizzazione incorporate nell'applicazione. Confermare che: * Non ci siano limiti di tempo prefissati o altre funzioni basate sul tempo. * Non ci siano oggetti che si mostrino brevemente e poi nascondano le informazioni in base al movimento del puntatore del mouse. _________________________________________________________________ 3.11.2. Test Effettuare i seguenti test relativi alla temporizzazione della propria applicazione. Verificare che: * L'utente sia avvisato prima che un messaggio vada in time out e sia data la possibilità di indicare che è necessario più tempo. * Sia disponibile un'opzione per regolare il tempo di risposta e confermare che stia funzionando come previsto. _________________________________________________________________ 3.12. Documentazione 3.12.1. Direttive Le seguenti sono direttive per la scrittura di documentazione accessibile: * Tutta la documentazione sia in un formato accessibile (per esempio HTML o testo). * La documentazione sia disponibile per tutte le funzioni di accessibilità dell'applicazione. * Rendere noto se l'applicazione non supporta l'accesso standard alla tastiera usato dal sistema operativo. * Identificare se sono presenti comandi unici da tastiera. * Identificare e chiarire tutte le funzioni di accessibilità. * Documentando le azioni del mouse, includere anche le azioni alternative da tastiera. _________________________________________________________________ 3.12.2. Test Eseguire il seguente test per verificare che la documentazione sia disponibile e accessibile. * Aprire un file di aiuto usando nell'applicazione un lettore di schermo o un dispositivo Braille e confermare che l'informazione sia accessibile, chiara e precisa. _________________________________________________________________ 4. Risorse aggiuntive: I seguenti siti Web forniscono liste di controllo e informazioni di test specifiche per i vari ambienti di sviluppo Linux: * L'American Foundation for the Blind fornisce informazioni per la creazione di applicazioni accessibili presso http://www.afb.org/. * GNOME Accessibility Project ha scritto appositamente una guida per lo sviluppo di applicazioni per il desktop GNOME 2.0. Include informazioni usando il loro Accessibility Tool Kit (ATK). Ulteriori informazioni sono disponibili presso http://developer.gnome.org/projects/gap/guide/gad/index.html. * IBM Accessibility Center fornisce collegamenti ad una lista di controllo per lo sviluppo di applicazioni Java, Web e software accessibili. Questo sito si trova presso http://www-3.ibm.com/able/guidelines.html. * Sun Accessibility fornisce informazioni sulla accessibilità nella progettazione di applicazioni Java accessibili. Maggiori informazioni sono disponibili presso http://www.sun.com/access/developers/software.guide.html. * Il sito web The Web Accessibility Initiative include direttive, liste di controllo e tecniche per lo sviluppo di siti Web accessibili e applicazioni. Maggiori informazioni si trovano presso http://www.w3.org/WAI/.