I released an iOS game about a month ago. To avoid spoilers, I simply set the description of the game to “a text based journey… awake, head throbbing, vision blurry”. A couple of weeks later, I received a tweet online from someone who was stuck. He said he was pretty far into the game, and was just having some difficulty making it back to a specific location, and needed some clarification about what some of the game elements meant. I was a little confused, I spent a whole lot of time making sure that all the game elements were simple to understand. After a few exchanges on Twitter, I finally realized he was blind. He was using iOS’s built in screen reader to play the game and was well into the storyline. I never expected a blind person would try playing the game. I was extremely surprised at how far he had gotten (he was pretty much to the end). After helping him out, I read up on iOS’s accessibilty features. With very, very, little work, I released an update to the game with accessibilty enhancements.


If you are building a native iOS app, consider making it accessible to the blind. The out of the box accessibility features of iOS devices are pretty damn impressive. The API’s are simple. Use them. You’ll be surprised at how little you have to do to make your app better for the visually impaired. I don’t have any experience with accessibility on Android (yet), but from what I’ve read, the accessibility features are good. As of the publish date of this blog entry, Windows Phone has no out of the box screen readers or assisted navigation, though it is something they are working on (part of the Windows Phone 8.1 release maybe).

Let’s Paint a Picture

Think of your favorite blog, the one that you just love to read while sitting on the can (admit it, you know you do it). So you’re sitting in the dark. On the toilette (saying it in French help?), about to do your thing. You don’t need to turn on the lights in the bathroom. Cause you’re blind. Not blind-without-your-glasses blind, but NLP (no light perception) blind. You have your pants down to your ankles, your phone is in your hand. Can you navigate to your favorite blog using the phone’s browser, find the latest blog entry, and have your phone read it to you? If you have an iOS device, the answer is a definite yes (it’s also a yes for Android phones).

How The Blind Use Mobile Devices

This slide deck by Austin Seraphin (a blind software developer) goes into details about how the blind use mobile devices.

Some highlights:

Here is a video that you can watch, and the blind will never, ever, ever see (yes, I’m trying to make you teary eyed here):

Here is a short video about Austin Seraphin a blind software developer:

Here is a podcast about another blind software developers, Aaron Cannon:

NerdCast #45: Programming In The Dark – A Developers Tale

And a presentation on web accessibility by him:

Some Help if You’re Developing iOS Apps

I found this library called SSAccessibility extremely helpful. It provides a facade over iOS’s accessibility apis and does a great job of managing/queueing VoiceOver notifications (something that you’d have to build yourself… since the core libraries simply interrupt what’s currently being spoken, if another notification comes in).

There are already plenty of resources out there that will help you with the api, here are a few search terms that you can type into Google, leading to a wealth of material:

A List of Undocumented Edge Cases That You Definitely Want to Look Out For

Make Mobile a Better Place for the Blind, Because We’ve Broken the Web

I know many of us feel that having an app for something that can just be a website is silly. I myself get extremely annoyed every time I visit a web page and I get a nag screen telling me to download the iPhone app. But, we’ve pretty much broken the web for the blind. Our websites aren’t linear, top to bottom. We have “like” buttons, and sidebars, and modals with tiny pngs for close buttons (with no alt-text), and partial async page rendering all over the place. All of which is nightmarish for a screen reader that is taking a two-dimensional medium, and shoving it into a one-dimensional voice over. Native iOS apps are extremely, extremely valuable to the blind… just something to be aware of next time you get a download-the-app nag screen.

When I first developed A Dark Room for the iOS, I was ignorant. I didn’t think that mobile devices were such a life changer for the blind (and that there are blind gamers out there). I’ve went back and made a ton of accessibility changes to the game (available in v1.2), and am now writing this blog post. It is my meager attempt to raise a little bit of developer awareness. So, go forth, and make a difference. One of my friends said all this more succinctly when I was telling him about the updates I was making to A Dark Room:

Their happiness is more important to me than the happiness of 1,000 spoiled nerds with $2. It matters.

Note: for those that are interested in downloading the game, here is the link: A Dark Room for iOS v1.2

Subscribe to get high signal, low noise entries with regards to software development, doing what you love, and never being content with where you are.

Also, I've spent the three years fighting the uphill battle of getting noticed in the App Store. I've decided to write some words about it in book format.

powered by MailChimp

29 December 2013