Torniamo adesso a vedere come rendere accessibile un programma. Abbiamo detto che basta scrivere un file di regole, che descriva il programma stesso. Eventualmente possiamo scrivere delle nuove azioni ed aggiungerle al sistema, come modulo. Prendiamo tre esempi: la posta elettronica, la navigazione internet e la gestione dei file.
<pine>
(Posta Elettronica)
[pre_folder_list]
K_UP = SayText(Leggi iimeil), go(pre_message_index)
K_DOWN = SayText(Gestione elenco indirizzi)go(pre_address_book)
K_ENTER = SayText(Vado all'elenco caselle di posta.), go(folder_list)
Selfc = SayText(Scrivi gli indirizzi dei destinatari, o premi control tii, per accedere all'elenco indirizzi.), go(compose_message),
Selfi = SayText(Sto` accedendo ai messaggi.), go(message_index)
Selfl = SayText(Vado all'elenco caselle di posta.), go(folder_list)
Selfa = SayText(Sto` accedendo all'elenco indirizzi), go(address_book)
Selfs = SayText(RiConfigurazione.), go(setup)
Selfq = SayText(Esce.), go(quit)
Self? = SayText(Help a Video.), go(help)
Fn12 = SayText(Le frecce su` e giu` permettono di spostarsi tra i menu`. Return, accede al menu`.)
# Fn12: Help vocale
# Fn11: Reset dello stato
Questo è un possibile frammento di file di regole, per la prima schermata del "pine", uno dei programmi per la gestione della posta elettronica. Le frecce ed enter ci permettono di muoverci tra i menu e di sceglierne uno. I caratteri c, i, l, a, s, q, ?, permettono di accedere direttamente ad un determinato menu. In questo caso vengono "mappati" sul file di regole, le voci di menu come domini, attraverso i quali ci si può muovere con le frecce ed enter, oppure con i caratteri c, i, l, a, s, q, ?.
Per cercare di avere un comportamento "omogeneo" con altri servizi, su F12 è stato attivato l'help vocale, ovvero una sintesi delle azioni possibili in quell'istante. Su F11 è sempre presente il "Reset dello stato", ovvero la possibilità di riportare lo stato sul dominio iniziale. Questa funzione è utile nel caso, ad esempio, ci si trovi in uno stato "non previsto", e quindi si vuole tornare ad uno stato noto.
Vediamo un altro esempio di Rule File:
<lynx>
(Internet.)
[Generic]
K_UP = SayHighlighted(2, 27)
K_DOWN = SayHighlighted(2, 27)
K_RIGHT = SayText(Sto caricando la nuova pagina)
K_LEFT = SayText(Torno alla pagina precedente)
Questo è un possibile frammento di file di regole, per lynx, uno dei browser internet di Linux. In questo caso, è fondamentale la presenza dello Screen Reader: con questo possiamo leggere il contenuto delle varie pagine. I tasti su` e giu` ci fanno muovere tra i link; i tasti destro e sinistro, ci fanno accedere alla pagina puntata dal link corrente, o ci fanno tornare alla pagina precedente. Questo risultato è stato raggiunto modificando la configurazione di lynx, dicendogli di "evidenziare" i link attivi. In questo modo noi con la SayHighlighted() riusciamo a posizionarci sul link corrente, ed a leggerne il contenuto.
<mc>
(File Manager.)
[First_Screen]
Fn9 = go(high_menu)
Fn4 = go(Edit)
Fn5 = go(copy)
K_DOWN = SayHighlighted(3, 25)
K_UP = SayHighlighted(3, 27)
K_TAB = Pause(1), SayHighlighted(3, 27)
[Edit]
K_DOWN = SayCursor()
K_UP = SayCursor()
Questo è un possibile frammento di file di regole, per mc, uno dei file manager di Linux. In questo caso abbiamo un approccio misto: - per i menu uso un dominio per ogni voce (high_menu, Edit, copy); - per scorrere i file uso la SayHighlighted per leggere quello selezionato
L'editor usa poi un approccio diverso: la lettura della riga corrente con la SayCursor(), ovvero legge la riga dove'è il cursore.
In tutti questi casi notiamo come sia possibile scrivere file di regole diversi per lo stesso programma: tutto dipende dalla definizione dei domini e da quali "azioni" abbiamo intenzione di usare. Nel caso di lynx, abbiamo visto come una semplice modifica nella configurazione del programma ("evidenziando" i link attivi), ci abbia permesso di renderlo più accessibile. La scrittura di nuovi moduli di "azioni", ci permette di introdurre nuovi modi di rendere accessibili i programmi.
Per la gestione del Rule File, Middleware contiene al suo interno un parser che crea le strutture interne dal Rule File testuale.
Per rendere pi`semplice l'uso dell'interfaccia a linea di comando, si possono creare dei link simbolici ai comandi, usando dei nomi più "umani". Ad esempio per eseguire il programma per la gestione della posta elettronica, mutt, si può usare il link simbolico email. In questo modo sarà più semplice accedere alle applicazioni usate più di frequente. Inoltre nel caso si volesse cambiare programma per la gestione della posta elettronica, passando da mutt a pine, basterà cambiare il link simbolico.