Does your screen reader read phone numbers properly?

I write this on the understanding that I don’t often get technical, so there may be glaring errors/omissions that you’re welcome to point out.

Having recently looked at accessibility in Mac OS 10.5 (Leopard) I started playing around with VoiceOver. It’s also included in OS 10.4, which is what I’m using. Having mostly used Windows (90% of the time) over the last few years, testing with a screen reader always seemed beyond my reach given the price. Also, I’d managed to pick up the advice that there’s no point, simply because as I’m sighted, the methods I’d use to interact with a computer would be different to those people using this interface out of necessity. So my previous experience in this area is limited.

Working on a site recently, I decided to get VoiceOver to read it back to me. All seemed fine until it read the phone number. Changed slightly for this example, the number ’07000 121 022′ was read back to me as “seven thousand, one hundred twenty one, twenty two”. Notice how it misses off the first zeros on the ’07000′ and ’022′ sections of the number. Had I not included the spaces, the number ’07000121022′ would have read as “seven billion, one hundred twenty one thousand, twenty two”. So you see, still unintelligible to the listener.

I started to look on the net for a way around this problem. Nothing jumped out at me as a solution that worked. I then came up with the following idea:

0<span>7000</span> 1<span>2</span>1 0<span>2</span>2

In VoiceOver this reads “zero, seven thousand, one, two, one zero, two, two”. Notice I kept the ’7000′ as one number; to me “seven thousand” is more memorable than “seven zero zero zero”. This works with VoiceOver (so I’m assuming it also works with JAWS etc). One good thing about this solution is that, when spoken, it splits up the numbers without affecting the spacing for the visual user (it still looks like ’07000 121 022′). Also, only the spoken style is affected (even though I recognise it’s using otherwise unnecessary spans). If the number is copied and pasted, the content is not compromised as it doesn’t include any extra spaces.

Rik suggested I try aural CSS (media type ‘speech’). My research into aural CSS properties found that the property I’d need is already there – ‘speak-numeral: digits;’ – and given that I use microformats wherever possible, I could simply reference a ‘speech’ CSS file and attach this property to all tags that include the ‘.tel’ selector. But from what I’ve found, there doesn’t seem to be much support for aural CSS in the current crop of browsers.

Request for comments

I’ve written a test page that includes each of the formatted versions of the number.

I know JAWS has already produced this kind of functionality, but is this technique useful for other screen readers (and users on older versions of JAWS)? What about the new version of VoiceOver, has that changed its handling of such content? Has anyone got a screen reader that they could use to test this and critique the idea? Overall is the span method a valid or worthwhile technique? Is there any method available that’s more elegant?

Posted on Friday 9 November 2007.

Posted in accessibility, apple, css, usability | 2 comments »

2 Responses to “Does your screen reader read phone numbers properly?”

  1. Benjamin Hawkes-Lewis, at 6:58pm on Monday 7 January 2008

    You could give tools like screen readers a better fighting chance by using a standardized notation for telephone numbers:

    http://en.wikipedia.org/wiki/E.123

  2. Thanks Benjamin for the pointer and the link, I hadn’t heard of this. By typing ‘JAWS E.123′ into Google I managed to come across this discussion that seems to offer a good background to the issue. I agree with you and the general consensus on the thread that writing phone numbers in a standardised way is the best place to start. From it, a posting by Kynn on 3 March 2003 even describes a solution similar to (although far more tag/css heavy than) the one I’ve described above.

    One comment states that any incorrect reading of a phone number is ‘an inconvenience rather than an obstacle’. I’m not yet convinced of this. As I demonstrated in my example above, if one section of the number is preceded by zero(s), only the succeeding numbers make it into the auditory output; as with the first example where ’07000′ is interpreted as ‘seven thousand’. This could be a barrier and the user is left guessing – at least on Mac OS 10.4, which some of us penny-pinchers are still using ;)

    It might look like I’m being pedantic with all of this, in fact this started as a niggle I had with a page that otherwise seemed to work perfectly (so it’s not mission critical). This is more a discussion that I hoped might benefit others and I thank Benjamin and anyone else who wishes to contribute.

Leave a Reply