Saturday, July 22, 2006

Create a lightweight screen reader in OS X

[This is a complete rewrite of my original post, because the initial post was misguided.]

Once upon a time if you wanted a reading aide for a child with learning disabilities you could invest hundreds of dollars in complex applications that were slow, quirky, unreliable, hard to use, and difficult to integrate into real world behaviors.

Now, if you have a Mac that can run OS X 10.3 or later, you can create a de facto reading aide that's available everywhere, from your web browser to your word processor to your PDF viewer (Preview or Acrobat). It works the same way in all of these applications -- highlight the text, type a shortcut, hear the word. (Children with motor disabilities can use OS X accessibility features to help with shortcut key use.)

You say you'd never heard of this? Well, it's not advertised. Even I (geek, special needs parent, etc) hadn't put the pieces together until now -- despite having played with this once. It turns out to be easy to do if you know the path to follow.

First, you must avoid the misleading alternative paths. OS X Tiger (10.4) includes screen reader services for visually impaired persons (VoiceOver). It's not appropriate as a reading aide however, it's too complex and designed for a very different function. Alternatively the 'services' options available for modern OS X applications (Cocoa based) includes an obscure command to read highlighted text, however the user interface is extremely awkward, shortcut key assignment is buggy in 10.3, and it doesn't work in Firefox (not Cocoa), Acrobat or Microsoft Word.

What you need to do is enable text-to-speech; it's disabled by default.

You can read the directions in the above link, or follow along here. Go to the System Preferences and look for the Speech icon (see below if this is grayed out). Click on it.

[This is from Tiger, OS X 10.4. The layout in 10.3 is a bit different but it works just as well.]

You'll probably see the Speech Recognition tab, but click on Text to Speech. The only one you want is 'Speak selected text when the key is pressed'. You'll be asked for a shortcut key.

I typed Option-S to get this. So far it works, though it's so simple there's a risk I might have change it.

Double key combinations are less likely to have conflicts, but they (Option-Control-S for example) are harder for some children to type. I may put a special mark on the option button as well as it's easy for the child to type Cmd-S (save menu) instead. If I change the shortcut combination I'll update this post.

Now if a child or adult is reading and finds a word he or she can't read the sequence is:

  1. Click twice to select word or click and drag (if you extend the selection by triple-clicking or dragging all words selected will be read).
  2. Hold the option key and tap the S key. The word is read.
PS. You can't select this preference, it is grayed out: If the preference is not available then this user has a 'managed account' and their privileges have been restricted. Annoyingly, even 10.4 does not allow one to enter an Admin username and password and get access to the preferences. You have to logout of the user account, login as an Admin, escalate user privileges, login to the user account, make the changes, logout from the user account, switch to Admin, and restrict user privileges again. I assume 10.5 will fix this ...

Update 7/31: There's definitely a bug with this functionality. I thought it was OS X 10.3 specific, but it happens with 10.4 too. I think it happens more often with slower machines. The OS seems to "miss" the keystroke. My son has learned to hold the option key and tap the S several times until the word is spoken. After the first trial it works better. The 10.4 "voices" are better than 10.3.

1 comment:

Nick said...

Great post! Thanks for the info. I will use this and pass it along as well - heck I'll just add it to my blog!