During some of my helproom hours as a TA, I met a CSE 231 student who is blind. Immediately, I started trying to figure out how a blind person could possibly program in Python. After speaking with my adviser Bill, I have learned a bit about how the CSE 231 professors have catered to blind students in the past.
- Blind programmers have read-aloud software which reads their code to them. They must keep track of 20-odd lines of code in their mind at any given time. An example of screen-reading software is JAWS.
- Python, although it is a great language for many new/beginning programmers, is *bad* for blind programmers. Why? Python relies heavily on whitespace to segment code, but screen readers do not “read” whitespace.
- Previous students Bill worked with did not want the course to be modified to accommodate their different methods of programming, but instead preferred to work through the dilemmas for themselves.
Here is a *really* interesting Stack Overflow thread about how to accommodate blind programmers, where many blind programmers have related their experiences and techniques. It covers all of the basics, and points to a lot of resources for blind students and developers.
One of the major problems which I’m seeing emerge is that as user interfaces have become more advanced, they have become increasingly difficult for screen readers to process.
An interesting resource for blind programmers is published through Empowerment Zone, which offers tips for blind programmers by blind programmers. Most of the tips are about how to set up a .NET programming environment (which is usually highly compartmentalized in a variety of small tabs) to optimize it for screen readers. Empowerment Zone also shares a list of the frequently asked questions for blind programmers.
Another thread of blind programming support has appeared with the advent of the touch screen and the popularization of the iPhone and iPad: BrailleTouch. Researchers at Georgia Institute of Technology are developing an App for iOS and Google Android which allows blind users to type effectively (with a small trial experiment yielding 92% accuracy) on a touch screen without the use of an expensive, clunky external keyboard.
As a last comment, I want to point to two articles about successful blind programmers in today’s world. This article features Roman Koci, the first ever blind programmer to release an iOS App.
The second article is a short interview with Subversion programmer Peter Lundblad. Quoted from the article:
“I was trained as a finger typist. I know from the feel of the keys if I’ve made a mistake typing. When looking at code, I prefer Braille.” Lundblad uses a device that presents each line of code on the screen in Braille for him to read by touch.
What does this mean for me as an educator? Honestly, I don’t know. I think I need to do my best to talk openly with the student in CSE 231, to see how I can provide them with help, and try to be conscious of how my actions affect their learning.