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/.