Considerate Apps Sound Good

Go beyond what’s necessary with great support for Voice Over.

Voice Over is the screen reader technology Apple pioneered with MacOS and iOS. For the most part, if you use standard controls, Voice Over just works. However, what you get by default can be a bit clunky and can be improved by grouping views together and using custom accessibilityLabel values.

The Trulia online real estate application is an example of one app that has gone beyond simple Voice Over support. As we can hear in the following example, they’ve implemented a custom accessibilityLabel for each cell in their open house list. This really isn’t too much extra work, but it makes a big difference. In the end, Voice Over should sound like a trusted assistant reading the information to you not some clunky tool for reading the screen.

Listen to the information for an open house around the corner from where I live:

In case you had a hard time catching that, I’ve transcribed what Voice Over announced:

One open house in ninety eight thousand, one hundred and ten. For sale. Zero dollars minus one point three million dollars. Two plus bee dee. Two plus bah. Two thousand plus ess cue eff tee. Just now. Open house? Eight hundred and ninety nine thousand dollars. Three bee dee four bah three thousand and thirteen ess cue eff tee. Four thousand, six hundred and fifty two Island av en ee. Bainbridge Island. Double You ay. Open. The fourteenth of December 13 and the fifteenth of December 13.

That’s not bad, but as a native english speaker there are a couple things that make me cringe or simply confuse me. The first comes right away:

One open house in ninety eight thousand, one hundred and ten.

As I said, this house is right around the corner from where I live. If I wasn’t sighted, I wouldn’t know that “98110” represents the ZIP or Postal Code for the house. This should be announced as individual digits instead of a numeral. The best way to get this is to use UIAccessibilitySpeechAttributeSpellOut in the attributedAccessibilityLabel. There are a number of other great attributes we can use, like UIAccessibilitySpeechAttributePunctuation for IP addresses and UIAccessibilitySpeechAttributeIPANotation for words or phrases that Voice Over just never gets correct.

The next sentence has trouble too:

Zero dollars minus one point three million dollars.

I get it. Sometimes we just don’t have enough space on screen and we take typographical shortcuts (although I’d argue that’s not the case here). Sometimes we use a mathematical minus when we should use a dash. It doesn’t make a big difference visually1, but Voice Over will distinguish between the two. But that’s not all. This sentence just doesn’t sound right. That’s not how someone would say the same thing. It gets worse when describing the physical characteristics of the house:

Two plus bee dee. Two plus bah. Two thousand plus ess cue eff tee.

This isn’t Voice Over suffering a brain aneurysm. It’s once again reading just what’s on screen. However, the developers of Trulia have used abbreviations which make no sense to Voice Over. This and the previous example would be a great opportunity to use separate formatters for auditory messages. In the case of the price range a better auditory message would be:

Up to one point three million dollars.

And for physical characteristics, instead of abbreviating it’s better to use full words:

Two or more bedrooms, two or more bathrooms, two thousand plus square feet.

I’m glad to hear Trulia has implemented better than average support for Voice Over in their app. That’s why I didn’t feel too bad about calling them out. They’re already better than most applications.

  1. I mean it does make a difference, but only to those of us who care about that sort of thing. ↩︎