[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 704.   Sistemi di interazione per non vedenti

I sistemi standard di interazione per non vedenti con un elaboratore sono di due tipi, che si integrano convenientemente assieme: il terminale braille e la lettura automatica di ciò che appare sullo schermo. Il terminale braille è un'unità che si collega generalmente a una porta seriale o parallela e richiede la presenza di un programma in grado di leggere ciò che appare sullo schermo normale; il sistema di lettura automatica richiede naturalmente un programma simile.

Un sistema di lettura automatico è apparentemente un problema semplice da risolvere; in pratica le cose non sono così, perché deve anche essere in grado di individuare la struttura del testo (si pensi a un'organizzazione in più colonne). Il sistema che sembra essere più efficace per la lettura sonora del testo è Emacspeack, che comunque qui non viene descritto. Si vedano eventualmente i riferimenti bibliografici alla fine del capitolo.

704.1   Lettura di ciò che appare sullo schermo

Qualunque sistema di lettura per non vedenti (braille o audio), deve avere un modo per accedere a ciò che appare sullo schermo. Esistono evidentemente due modi: ciò che appare sullo schermo è controllato direttamente dal programma di lettura, oppure questo programma deve interagire con il sistema operativo per ottenere una copia dello schermo.

Un programma che controlla ciò che si deve leggere potrebbe essere una shell, oppure una sorta di navigatore ipertestuale, che eventualmente incorpori anche delle funzionalità per la creazione e la modifica dei documenti (dovrebbe essere questo il caso di Emacspeack).

Nel caso di GNU/Linux si accede a una copia di ciò che appare sullo schermo della console attiva attraverso il file di dispositivo /dev/vcsa o /dev/vcsa0. In particolare questi file di dispositivo consentono di ottenere informazioni anche sugli attributi del testo, cosa che permette di localizzare il cursore, per esempio; esistono infatti anche i file di dispositivo /dev/vcs* che consentono di ottenere una pura copia testuale delle console virtuali.

Questi file di dispositivo sono normalmente inaccessibili a utenti diversi dall'amministratore; pertanto, per consentire una lettura a programmi con privilegi limitati, occorre intervenire nei permessi. Supponendo di dover creare da zero il file di dispositivo /dev/vcsa0, probabilmente si dovrebbe agire come segue:

mknod /dev/vcsa0 c 7 128[Invio]

chown root:tty /dev/vcsa0[Invio]

chmod 660 /dev/vcsa0[Invio]

In pratica, si arriva alla fine a dare i permessi di lettura e scrittura anche al gruppo, supponendo che il programma che deve utilizzarlo funzioni, in questo caso, con i privilegi del gruppo tty (SGID-tty). Ciò consente di mantenere un minimo di riservatezza, nonostante il problema contingente da risolvere.

Volendo verificare che il file di dispositivo /dev/vcsa0 consente di accedere al contenuto dello schermo della console virtuale attuale, si può inviarne una copia in una console inattiva o comunque non utilizzata. Per esempio:

cat /dev/vcsa0 > /dev/tty12[Invio]

Manda una copia alla 12-esima console virtuale e si può verificare facilmente con la combinazione di tasti [Alt F12].

704.2   Terminali braille

Il terminale braille è solitamente un componente da collocare al di sotto della tastiera normale, attraverso il quale è possibile leggere una riga di testo, senza allontanare troppo le dita dalla tastiera stessa.

Vicino alla barra contenente le celle braille, devono essere disponibili alcuni tasti per il controllo del terminale stesso, per poter navigare sulla superficie di quello che appare sullo schermo. Infatti, di solito si dispone di una sola riga di celle braille, ma anche se potessero essere disponibili più di una, non sarebbero mai quante le righe che si vedono su uno schermo normale; inoltre, anche la quantità di celle è limitata, per cui diventa necessario poter spostare la «visualizzazione» braille anche in orizzontale.

Figura 704.1. Collocazione tipica di un terminale braille, sotto la tastiera o sotto un elaboratore portatile.

braille-terminale

La figura 704.2 mostra in particolare un dettaglio delle celle di un terminale braille a otto punti.

Figura 704.2. Dettaglio delle celle di un terminale braille.

braille-terminale-dettaglio

704.3   Brltty

Brltty (1) è un programma in grado di comunicare con un terminale braille, allo scopo di inviargli ciò che accade sullo schermo della console virtuale attiva di un sistema GNU/Linux.

Il funzionamento del programma è relativamente semplice: si tratta di un demone, brltty, da avviare e fermare automaticamente attraverso la procedura di inizializzazione del sistema, che comunica con il terminale braille seguendo la configurazione relativa al terminale stesso e la configurazione della conversione braille.

In pratica, Brltty deve conoscere il tipo di terminale braille utilizzato e deve disporre di una tabella di conversione adatta per quanto riguarda la codifica usata e l'alfabeto braille dell'utilizzatore.

704.3.1   Configurazione

Brltty è accompagnato da una serie di file di libreria, per l'adattamento alle caratteristiche del terminale braille e per la conversione finale della codifica in braille. Questi file dovrebbero essere collocati nella directory /etc/brltty/.

Il file di configurazione in cui occorre intervenire dovrebbe essere /etc/brltty.conf, il cui contenuto potrebbe apparire come nell'esempio seguente:

braille-device /dev/ttyS0
braille-driver ec
dot-translation text.us.tbl

Si comprende intuitivamente il significato delle direttive: il terminale viene connesso alla prima porta seriale, corrispondente al file di dispositivo /dev/ttyS0; il terminale braille viene gestito attraverso un protocollo definito dalla sigla ec; la trasformazione della codifica in braille avviene secondo il modello denominato text.us.tbl, che in pratica è un file contenuto nella directory /etc/brltty/, facente riferimento a un adattamento per la lingua inglese.

Tabella 704.4. Sigle attraverso le quali si abbinano le librerie di controllo del terminale braille.

Sigla Terminale corrispondente
al
Alva (ABT3xx/Delphi)
b1
BrailleLite 18
b4
BrailleLite 40
cb
Tieman CombiBraille
ec
EcoBraille
eu
EuroBraille
md
MDV braille
pm
Papenmeier
ts
TSI (PowerBraille/Navigator)
va
BAUM Vario

Brltty è anche in grado di gestire terminali parlanti. Eventualmente, si può usare la direttiva speech-driver per il controllo della sintesi vocale. Di solito, la funzionalità è disabilitata, con la direttiva seguente:

speech-driver no

Tabella 704.6. Sigle relative alla gestione della sintesi vocale.

Sigla Sintesi vocale
no
No Speech
al
Alva (Delphi)
bl
BrailleLite
cb
Tieman CombiBraille
fv
Festival Text to Speech Package
gs
Generic Say (invia allo standard input di /usr/local/bin/say)
tv
Televox Speech Interface

704.3.2   Accesso alla copia della console virtuale corrente

Come già spiegato in precedenza, anche Brltty deve poter accedere a una copia della console virtuale corrente. Ciò avviene precisamente attraverso il file di dispositivo /dev/vcsa0, che in alcuni sistemi GNU/Linux potrebbe anche essere assente, perché equivalente a /dev/vcsa. Si riepilogano nuovamente i passi necessari a creare il file e ad attribuirgli i permessi necessari per il funzionamento corretto con Brltty.

mknod /dev/vcsa0 c 7 128[Invio]

chown root:root /dev/vcsa0[Invio]

chmod 600 /dev/vcsa0[Invio]

In questo caso, si presume che il demone brltty sia avviato attraverso la procedura di inizializzazione del sistema, in modo tale da funzionare con tutti i privilegi dell'utente root. Diversamente, occorre cambiare strategia per quanto riguarda i permessi e la proprietà del file di dispositivo.

704.4   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) Brltty   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome sistemi_di_interazione_per_non_vedenti.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!