My First Blind Email
By user12607856 on Nov 16, 2005
For about three months now, I've been working on Orca, a screen reader/magnifer written in Python. This program works in conjunction with the built-in accessibility support in the JDS (GNOME) desktop to provide speech and braille support for blind users, and magnification support for low vision users.
The original idea and the first working prototype for Orca were created by Mark Mulcahy, a blind programmer who used to work for us. Since Mark left Sun and ventured out with his Dad and brother to start their own company, we (the Accessibility Program Office at Sun) have taken Mark's work and continued with it. Will Walker is the architect and project lead. See his Orca blog for more details and pointers.
One of the cool things about using Python for this project is that we can use it's scripting abilities to customise the way Orca works with a particular application. For the last week or so, I've been working on seeing what changes I will need to make over the default application script, in order for Orca to work nicely with Evolution, a GNOME mail and calendar client.
My normal email client is Thunderbird, so I had to learn how Evolution works and setup my IMAP email account information correctly. I initially did all this mostly using the mouse to navigate around. I then tested to make sure that it was fully navigable with the keyboard. I'm using Evolution v2.4. I still seem to be having an intermittent problem where I sometimes can't Tab into the message header pane, but I've been unable to generate a reproducable test case to file a bug against. I'm still looking at this.
So I've now got to the point where I'm fairly comfortable with the application. Time to try a real test.
They say you should always walk in another person's shoes to truly experience something from their perspective. To try to simulate a blind person's experience, I turned off my monitor and started up Orca. I started Evolution from the JDS (GNOME) Launch menu, navigated around, composed a new mesage, sent it to a couple of people (including myself), then went back and read that message as it newly arrived in my Inbox and then successfully quit the Evolution application. All without seeing the screen and just using the speech output from Orca to guide me around.
Now this is a small step. Blind people around the world do this and so much more every day. Nothing to really brag about here. It did teach me a few things though.
First of all I will admit I had to look at the keyboard. I'm not a touch typist. I never will be. I use about 4-5 fingers to type (very fast) in a hunt-n-peck style. I'm never going to change this. The quality of my typing ability isn't something I was trying to measure here.
Speech (for me) comes from a software synthesizer written in Java called FreeTTS. You can setup Orca to echo your input and also speak by character, word or line. It also varies the pitch of the speaking voice so that you can tell when it's speaking upper case, lower case or something special like a hypertext link. It's probably me, but the default upper case voice sounds like somebody has given the speaker a swift knee to the groin. I also used headphones so I could better hear the text that was being spoken. I suspect this is a skill you acquire over time. There are also higher quality voices available from commericial text-to-speech engines.
My biggest problem after I had sent the email was not knowing how to "Get New Mail" with Evolution. Since that run, I've turned on my monitor, restarted Evolution, looked at the contents of all the menus and I still can't see how you can quickly or easily do this. I'm guessing the message showed up because I Tabbed away from my Inbox in the folder list, then Tabbed back to it.
What I've come to appreciate is just how much extra information a blind user has to remember to efficiently use an application such as Evolution. You need to memorise where all the options are and the quickest way to activate them. A sighted person will tend to just pull up menus (probably with the mouse), then look around until they see the one option that they are currently interested in. Not so easy if you can't see them all "at a glance" and also when you have to use the keyboard to move around. You tend to learn as many keyboard short cuts as possible for the various operations.
It also helped that I'd seen the Evolution application. I could visualize how the various panes looked on the screen and the "flow" as you Tab from one control to the next. What would be a better test is to try to operate a GNOME application I'd never seen or used before.
One thing I did notice was that Orca was being a little verbose with what it spoke on certain occasions. I will now try to adjust this in the Orca Evolution.py application script, by overridding some default methods and customising accordingly. This is where the fun begins.