Farfalla

L’idea

Questo progetto si propone di costruire un framework web in grado di innalzare il livello di accessibilità dei siti web e di offrire agli utenti metodi nuovi per la fruizione e la creazione di contenuti.

La prospettiva da cui il progetto parte è quella di fornire agli utenti strumenti leggeri, flessibili e che non necessitino installazione, per essere usabili anche in un sistema di cui non si abbia il controllo completo.

L’idea è di iniettare, attraverso l’uso di varie tecniche, un frammento di codice html in una pagina qualsiasi per richiamare uno script remoto. Questo script deve essere in grado di attingere ad un database contenente le preferenze dell’utente e di richiamare una serie di plugin. Ciò permette l’aggiunta di effetti di ingrandimento e di evidenziazione del testo, l’implementazione di tastiere virtuali su schermo, la riproduzione audio di frammenti di pagina attraverso sintesi vocale e molto altro.

Tecnologie utilizzate

Il progetto include varie parti, per le quali sarà necessario utilizzare differenti tecnologie. Ecco nel dettaglio la struttura:

  • Database con le preferenze degli utenti
    • MySQL come database relazionale;
    • PHP per costruire l’interfaccia web di gestione, utilizzando il framework CakePHP;
  • sistema di iniezione del codice, con metodi alternativi da usare in diverse situazioni, in base al livello di permessi sulla macchina
    • Bookmarklet in Javascript;
    • plugin per i differenti browser (script di GreaseMonkey/GreaseKit, plugin per Firefox in XUL, plugin per Explorer);
    • Proxy trasparente basato su Squid oppure scritto ad hoc (in Ruby o in altro linguaggio di programmazione).
  • overlay da applicare ai siti visitati
    • interfaccia di attivazione dei plugin in jQuery+CSS;
    • plugin in jQuery+CSS+altri eventuali linguaggi di scripting web (di preferenza PHP, ma attraverso chiamate AJAX sarà possibile includere virtualmente qualsiasi applicazione web).

Esempi di casi d’uso

Farfalla punta ad essere una piattaforma accessibile a basso ingombro, semplice ed intuitiva. Alcuni casi d’uso sono i seguenti:

  • un utente ipovedente può necessitare di uno zoom selettivo su frammenti di pagina per mantenere anche una visione d’insieme;
  • un utente con difficoltà di movimento potrebbe necessitare di una tastiera su schermo con una particolare disposizione dei tasti, non riproducibile dalle tastiere virtuali presenti nei maggiori sistemi operativi;
  • un utente che si trovi all’interno di una struttura (es. scolastica) può trovarsi ad utilizzare una macchina generica, priva delle sue impostazioni di accessibilità preferite.