Friday, October 30, 2009

Coding For Accessibility: The Experience of SG Buses Developer Muh Hon Cheng

Ensuring that an app is accessible means a little extra work, which Apple has documented. In addition, there are other resources online to help developers, such as this article by Mobile Orchard.

Testing accessibility is pretty simple too. If you have a 3GS, go to Settings/General/Accessibility and turn VoiceOver on. Then close your eyes and use the app the way a blind person would.

Developer Muh Hon Cheng contacted Alvin upon reading his email on iMerlion. Since then, Hon Cheng has tweaked both SG Buses and buUuk to make them more accessible to the blind.

According to Hon Cheng, it was not difficult to add the accessibility feature at all. "In fact, the accessibility feature can work with most default iPhone UIs", he said. "I think if other developers wish to add the accessibility feature to their application, it will probably not take them more than half a day to do so."

Said Hon Cheng: "With the existing UI, when VoiceOver is turned on, the phone can already read the text to users. But some of the text may not make sense if a user can't see them. So it is just a matter of adding two more lines to make sure that the text read makes sense. For example, instead of reading out 'BQ Bar, 100m, 39 Boat Quay', I just make it read 'BQ Bar, 100m, located at 39 Boat Quay'.

"There are also problem with certain custom UIs where the text is not read out at all. For this, I'll have to do a bit more work, but it's just a matter of a few lines.

Some features are not easily accessible to blind users, said Hon Cheng. "For example, in SG Buses, users have to tap on the clock icon on the right to load arrival time. I think that's a bit troublesome for them. But I also want to prevent the user's device from getting blocked, so the next version will auto-load arrival time for bus stops in bookmarks, and nearby. The rest will not be auto-loaded.

"Also, to set certain bus numbers to be auto-loaded in all pages, existing users have to swipe the cell to the right to reveal a switch. That is not easily accessible to blind users as well so I have added an option in Settings to turn on 'Additional Supports' for Accessibility. When this is turned on, tapping on the cell will not go to the next page, but ask users if they want to go to the next page, turn on auto-loading, or just load arrival for the stop. This is a lot of extra steps, but I realise for blind users, this make more sense."

No comments: