Android in the dark
I was supposed to call someone yesterday, but I didn't get around to it. I figured I'd get to it this morning, but I didn't manage that, either. At last I had a few moments to breathe as I sat down on the train to Tel Aviv. I looked at my phone and realized that I was almost out of battery. Deciding that it wasn't a good idea to use the last of the battery on a phone call that might not last long enough to say anything important, I thought I should send an sms instead. Short, quick, and interruptionless.
But then I stopped myself.
The person I was supposed to call is blind, and I found myself wondering if his cell phone had a screen reader. Did he have a way to hear my sms if I sent it to him? I wasn't sure, so I just waited until I could send an email instead.
I tend to obsess about accessibility in technology. I know that not every image on every website I've ever done has alt tags, but the overwhelming majority do, and those that don't usually don't because the image is visual fluff. You really don't want your screen reader translating stupid visual fluff, do you? (I wouldn't.) I've even created a few websites over the years with voice styles set in the css along with font styles, just because. (And I wonder if anyone has ever noticed.)
So, it's well within character that I found myself obsessing over the whole sms on cell phones problem all night long. In fact, here it is just after 4 in the morning, and I haven't been able to sleep. I had to get out of bed, boot my computer back up and look some stuff up. And what am I obsessing over?
"Can blind people use my beloved Android?"
All through my shower and after I climbed into bed I've been thinking about what it would take to make touch screen Android-based smart phones accessible. I thought about the highly visual user interface, the fact that there are no raised buttons on the front of the phone, and the way that text and images can live in an unpredictable pattern on the screen. I thought about the vibration and the sensitivity of the screen, and how when you play the game labyrinth you can actually "feel" the metal ball bearing as it hits the wooden walls of the puzzle boards. Ah, so you could make a very tactile UI for an Android phone.
But what would it take to make the whole phone really accessible, I wondered. It seemed to me that you'd want to have an entire tactile interface option in the OS, and then you could add in other tools and apps for specific tasks beyond that. I thought about it a lot, and then I climbed out of bed to look up what had already been done.
It makes me extremely pleased to report that a lot has been done, actually. In fact, there is a screen reader, a special UI, and some pretty cool toys tools out there for blind users of Android phones. There's actually a project called Eyes-Free over at Google Code. And this augmented reality application called vOICe looks really cool, too. (And there are versions of that app for Java ME phones and Windows Mobile as well!)
Along the way I found a fantastic New York Times article about a developer at Google who specializes in developing accessibility into technology. There's a quote in there that I just love:
"Instead of asking how something should work if a person cannot see, he says he prefers to ask, 'How should something work when the user is not looking at the screen?'"
YES! Yes, yes, yes!!! Building tools that are more accessible for people with special needs of one sort or another actually makes those tools more accessible to everyone.
One thing that I didn't find as I looked around was any application that used the vibration of the phone as a tool for expressing the edges of features on the screen like I was imagining. I wonder if anyone else has thought of that or tried it out, or if it's just too cumbersome to make it work at all. It seems to me, though, that having some sort of tactile feedback on the phone makes a lot of sense.
If you have an Android phone and haven't tried labyrinth, look it up in the Market so you can see what I mean. You can even feel how hard the ball hits edges or falls into holes! It's a great inspiration for what I'm thinking about.
[edit: I just found out that there's something called "KickBack" in Android 1.6 and beyond which gives haptic feedback just like I'm describing. Cool.]
The phone also gives you another way to control things: motion. You could have a dialer that works based on how many times you shook the phone. It would be a bit slow, like a rotary dial, but possibly faster than trying to figure out buttons on a flat touch screen. Also, it would work even in situations where accents or background noise made voice recognition dialing difficult. I didn't see anything like that, either.
Do you have any experience with using accessibility features for the blind on an Android phone? What do you think? What would you improve? What would you like to have to make your life easier with Android?