[LAD] Interface development for the blind (starting from Bristol)

Julien Claassen julien at c-lab.de
Thu Apr 8 22:46:51 UTC 2010

   so as has been suggested on LAU, I moved this discussion back on-list, but 
thought it would be more relevant to the LAD than LAU for obvious reasons.
   Maybe some general points. Blind or visually impaired people most work with 
one of these technologies: Braille display, Speech synthesis (text-to-speech) 
or magnifier. The latter is, I think, the easiest to accomodate, as GNOME and 
basic X!! offers screen mags.
   Braille displays and speech synths are in general one dimensional tools. 
Both can work with graphics, yet there are restrictions.
1. The only project for both braille and TTS for GUIs I know is Orca, which 
needs Gnome/GTK. I suppose it's also relying on standard widgets. Then there 
is the fact, that I'm not certain about its usability/stability. A few win and 
linux users, I know, said, that Orca is far from comfortable, in comparison to 
windows solutions.
2. Graphics rely on 2-dimensionality. That's - in my books - all it's about. 
It's designed for the sighted person, being able to use his field of vision, 
other markers than only text to transport information to the user.

   Speech ingeneral is - again only from my point of view - not very suitable 
for audio, for obvious reasons again. I got festival to work with JACK, but 
it's not nice and not everyone using speech, has two soundcards, to make it 
really convenient. But that's just an aside.
   So seeing all this, the best way to interact is the console/CLI interfaces. 
The best amongst these are readline interfaces. Applications, which look like 
shells. to make this really helpful and nice (the equivalent of eye-candy) a 
nice kind of online help is forunite. A good example - not to say superb - is 
Nama. You have the command help. It works with category names, category 
numbers, keywords and actual commandnames. That's really taking it to the 
height of convenience and comfortability.
   A short note about ReadLine. It's written in C, for those, who haven't yet 
seen/used it. There is a c++ wrapper called rlmm, which hasn't seen 
development for some time, as far as I'm aware. Yet Readline hasn't changed 
it's interface drastically, I believe. Readline itself offers two ways of 
usage: Directly or via callback-functions. This is what rlmm uses. rlmm is 
also GPL, so if you don't want to use it as an external reference, I'm sure 
you can include it in your code, modify it to your liking. I remember, that it 
isn't big.
   Another way to interface is ncurses (with menus and forms and all the rest). 
Yet that can be tricky. You have to take care of the cursor (the hardcursor!) 
Always moving it to the current element. Don't rely on seeintg attributes. 
Braille displays like to attach to the real cursor and focus on it by default, 
which is good, because , where the cursor is, there should be the action and 
it's easy to follow it (I think). I also think, the same applies for TTS 
systems. So with ncurses you'd have to take care of some restrictions beyond 
the library itself.
   One other of these restrictions (for comfort) would be to draw progressbars 
or percentage bars  - like in a mixer - horizontally. That's the way a braille 
display is oriented.
   Most braille displays have 40 characters, there are those with 80 
characters, but they're mostly designed for home or workplace systems. The 40 
character displays can serve nicely at home (most of the blind people I know, 
have one) and they can easily fit under a laptop. And I believe they are 
cheaper, so the health insurance, which mostly pays for it, is happier with 
it. :-)

   Applications, which have both GUIs and CLIs are: Aeolus (restricted CLI, yet 
helpful). But Fons relies - I seem to remember - on his own UI-classes. Still, 
he makes use of callback functions, if I'm right. Nama is written in Perl, it 
also offers both a GUI and a CLI. Yet I'm not completely sure, how much 
interconnection there is between the two. I believe, they are quite seperate. 
There's links2, which I think has both CLI and GUI, it's a web-browser, and 
should be available as packages on all major distros. It uses ncurses for 
displaying information. The SuSE Yast2 system, has both an ncurses and a 
graphical interface. But the ncurses interface is nothing to show off, to a 
blind person at least. (Last seen 2005/06, so that MAY have changed).
   And now I'm open to specific questions.
   Kindly yours

Music was my first love and it will be my last (John Miles)

======== FIND MY WEB-PROJECT AT: ========
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======

More information about the Linux-audio-dev mailing list