iOS Development: VoiceOver and Click Behavior


I got a support e-mail this past weekend for Audiorun from a user who was not able to get past the title screen where it says "click anywhere to continue". I find out later, after a few exchanges, that the user is a completely blind user and one that uses VoiceOver. Having never actually enabled VoiceOver functionality on my phone, I never actually tested the game with it enabled.

As a brief summary, VoiceOver essentially changes the way the iOS device behaves by reading aloud what you've selected so you can use the phone without actually seeing it. What this does is also change the behavior or clicks, or specifically "single clicks". So instead of clicking an application icon to launch, you double-click to launch. A single click will highlight the application and read aloud the title. What happens is that if your game uses single clicks, like Audiorun, it will no longer function property as the device is trying to read aloud the selection that doesn't exist.

So after some fumbling around with VoiceOver, I learned that you can triple-click the Home button to enable or disable VoiceOver. This has to be configured first (Settings > Accessibility > Bottom of the Screen) as triple-clicking the Home button can also be set to do other things (zoom, white on black text, etc.).

Ultimately, the workaround was to simply use this triple-click feature to disable VoiceOver while the game was running. I'm happy to say that it worked and the user's high score right now is 28 jumps.

I tried this out with a few other games just to see if it was due to my game being one of those Flash to iOS export applications. Turns out that games like Flick Homerun and Infinity Blade II also do not respond well when VoiceOver is activated.

Bottom Line: So if you're developing an application geared toward users that are prone to using VoiceOver, keep in mind that it may break your application in that it won't function as designed. Make sure to have a note somewhere that triple-click Home to disable VoiceOver is required.

Related Link: Audiorun for iOS Devices