Accessibility & app design blunders

Doug Wakefield, Judy Dixon and I have been collaborating on Blindfold Cryptogram. I started with the framework we built for Blindfold Sudoku, and then started making changes so the game would be great for rapid audio play.

You play the game by tapping on the screen, and it tells you the encrypted letter in a man’s voice, and your solution for that letter – if any – in a woman’s voice. As you swipe your finger from left to right, or right to left, it tells you the encrypted letters that you are touching. Swipe left or right with two fingers, it moves one word and reads it to you. Swipe up and it reads your solution for entire puzzle – words where you’ve solved it, and letters or beeps where you didn’t solve the word.

To enter your solution for a letter, you tap the screen with 3 fingers, and then select from the letters you have not used yet. That screen – called the keypad screen – also shows you the frequency of each letter and has a list of letters that you’ve already used, and some other buttons for hints and things.

Doug’s first issue was that due to his hearing, he couldn’t distinguish between the voice generation for different letters. He suggestion was to have a mode in the app to state the word – “apple” for the letter “a”, “baker” for the letter “b” and so on. That’s an easy improvement.

Doug’s next issue really shows the difference between how sighted people use an audio game and how blind people use one. When I play, I put my finger somewhere on the screen and listen to the puzzle letter, and then move around – looking at the blank screen and tapping at where other words should be. Doug, simply flicks left and right one letter, or uses the 2 finger swipe to the next or previous word. He never really taps the screen with one finger since he’s not using any visual cues.

From a programming perspective, distinguishing a tap from a flick is non-trivial. A tap starts and ends in more-or-less the same place , and lasts a short time – about a tenth of a second. A flick to the left starts somewhere, ends slightly to the left of the starting position, and lasts a short time – about a tenth of second. The problem is that its very hard to tell the difference between a tap and a flick. Based on the roundness of your finger, a tap doesn’t end where it starts – it’s usually a few millimeters away. So the question becomes – how to write a program that can tell the difference between a tap and a flick?

Another problem is distinguishing between a single tap and a double tap. If the app works with both, then it knows a double tap is when two single taps occur within a half of a second. The app must wait a half second when it gets a tap, to know the difference between a single tap and a double tap. That means that the app must wait a half second before it can respond to the single tap. A half second is a long time to wait when you are playing the game.

I spent a long time trying to solve this problem, and I researched alternatives on Google from what other programmers attempted. Blindfold Sudoku and Blindfold Cryptogram have reasonable, but not perfect abilities to tell the difference. Remember – when playing these games, the normal voice-over assist is shut off, so the app can be more responsive.

Had I thought about what Doug navigates the puzzle, I could have solved it much more simply. Doug, for the most part, never uses a single tap to navigate on the screen, since doing so would be pointless – he would randomly end up somewhere on the puzzle screen. Instead, he’s flicking and swiping. That frees up the tap gesture to be available for something else that’s more game appropriate, or eliminate it altogether.

Doug wants the alphabet to appear at the bottom of the screen and use the app as follows: First, he’ll navigate to the puzzle letter using flicks and swipes, then use a 2 finger tap to say that he wants to pick a solution letter. Then he flicks through the alphabet at the bottom of the screen, picks the solution letter (with a double tap), and moves onto the next puzzle letter to solve. Now that we’ve eliminated the importance of the single tap, that’s easy to do.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s