Liz: We’ve had some really interesting conversations this year with visually impaired users of the Raspberry Pi. Accessibility on the Pi is something the community’s been working on since we launched; Michael Ray started a Raspberry-vi (vi stands for visually impaired) mailing list which has been running for a while now, and the group behind it has made some serious advancements in accessibility on the Pi. Jason Miller mailed me to let me know he had Emacs/Emacspeak working, and stable. Michael is working on Speakup at the moment for Raspbian, and Jason and Mobeen Iqbal are working with him on getting it ready for Arch Linux too. All three of them are totally blind. This whole area’s really fascinating; it’s very hard to get to a point where work that’s been done by sighted users can be totally adapted so that blind users don’t need any sighted assistance at all. I asked them if they had a few words for us about just how they approached the problem, and Jason sent me what’s below.
We’ve pushed the Emacs/Emacspeak Arch image the guys released out to the Raspberry Pi mirrors network, so please click the link if you’d like to download it.
With no screen-reader or Braille display support out-of-the-box in any of the Linux distros so far available for the Pi, as visually-impaired hackers our only approach was to connect to the beast using SSH from a client machine running access tools. In my case that is a Windows PC running an Open Source screen-reader called NVDA.
As for myself, I’ve been connecting to the Pi using SSH from another Linux box, be it a Ubuntu derivative called Vinux, or from an Archlinux machine.
Many of us searched around, be it through the Raspberry Pi forums, through the Orca accessibility lists, or in the speakup mailing list for accessible solutions. I’ve also found people asking about making Emacspeak work on the Pi as well. There seem to have been the needle in a haystack of “I’ve got it working” or “I’ve got it talking” but no proof, no images to go from, and no steps on how to accomplish the task of making it accessible so one needs absolutely no sighted assistance.
For blind techies like the three of us, email reflectors are a valuable way to share ideas and experience with others. So I created the raspberry-vi list.
Two other Linux and Pi, erm, interested parties (this is more polite than geeks) quickly joined the list; Jason Miller in the USA and Mobeen Iqbal from the north of England. Both of these guys have been involved with other Linux projects connected with accessibility for the visually impaired. Indeed the three of us are all totally blind.
With Mo’s help we created the web-site to go with the list, and Jason and I set about trying to get some accessibility tools running.
Mike, myself and Mo have talked about what could be possible with the Pi, what we can do to help bring this to fruition, and also how it could impact the rest of the VI/blind community. We don’t want just an accessible image, if it has to come with the price tag of being a bit buggy. Mike has been working with the Raspbian image, as it is closest to what most VI and blind user’s of Linux are used to with Debian and Vinux. I myself, have been working solely with Arch for Arm, because of the simplistic approach, and the responsiveness of the system.
Mike was working with YASR, but stability was, to say the least, unobtainable. He would be lucky if YASR would stay up and running for more than 10 minutes at a time, and I believe his personal best time, with different synthesizers has been half of an hour. In his eyes, as well as Mo’s and mine, that wasn’t good enough to release. At this point, I started to look into Speakup, as well as Emacs with Emacspeak, and finally Orca in XFCE.
I did some basic work with Speakup, and realized I would probably have to recompile the kernel. I also toyed around with Emacspeak, never really learning how to use it before. I finally did some testing with Orca, and XFCE, but unfortunately at the moment, it’s not working as I would like. Back to Emacspeak.
I managed to get something up and running, but only after hours and hours of building, tinkering, and scrapping the image, only to restart. At first, I had it start Emacs, but the speech server wouldn’t start. When I tried scripting a log file to see what was the issue, for some reason starting the script made the speech server start… I can’t understand what or why, but at least we had a beginning point of something finally working.
Again though, that’s buggy, and I could have made a hack to work around that, but didn’t wish to release something that was, what I considered, unstable. When I started again, I followed the same steps as before, building everything under a user account instead of a root account. Same errors, but this time, even scarting a log file didn’t get the speech server to start up. It was worse, and I had to issue a “sudo reboot” command to get it to shut off.
This is when I decided to sit down, and go through every package installed for Emacspeak to work. Going through every folder, every program supposedly linked to the server, I had to clean up files, tweak build scripts, and remove/reinstall everything.
Finally one evening after who knows how many hours of tweaking, and working, I gave it one last shot. Started the Pi, and connected through an SSH session, started Emacspeak, and it worked. received the loading messages, and finally the final functioning message. We have stability. I gave it one last test for stability by blindly logging into the Pi without SSH, directly into it. Started Emacspeak, and same, working and stable.
Now, the group, Michael and myself are working on speakup. He has had great success on Raspbian, and should have an image shortly for download, and myself, well, I like Arch, so once I can get back to working on things we’ll see what happens. My next goal, after speakup is getting a working, accessible desktop on the Pi. It looks like our best bet may be XFCE and Orca at this moment.
Finally, what would I like to see? Don’t ever disable SSH login by default. A lot of VI users will definitely need that. Also, for those of us using speech, getting rid of those pops right off the bat with audio would be more than a huge help as well.
Thank you for designing the Pi, and keeping it low cost. It lets us nerds and tinkerers in the VI community have an affordable way to both get our hands dirty, and once speakup is working, offers a way to learn Linux to those that aren’t everyday users.