Speech output module

The speech output module uses the Microsoft Speech API to provide an audio supplement to keyboard navigation, for Windows Internet Explorer 5 or later. There is a demo, but we should go over the system requirements first.

Speech components

You will need to install the Microsoft Speech API, unless you already have it.

The downloads are Windows Installer files.

If you're running Windows XP you also need the Microsoft SAPI 4.0a runtime; it may require that you reboot after installation, even if it doesn't ask.

However if you bought your version of Windows XP within the last year or so, you almost certainly have all the speech components already.

Run the demo

If all that's okay you can run the demo. The demo is an HTML Application (HTA) which will offer you a dialogue, asking if you want to open or save the file - choose "Open".

Please note: the speech module is an ActiveX control, and allowing it to run is a security risk. You have our promise that it's not dangerous or malicious in any way, but if you don't trust us to make that promise, you should not run the demo.


Download the speech output script, copy it into your udm-resources folder, and then add the script include to the body section:

<!-- speech output module -->
<script type="text/javascript"

Then add this to the head section:

<script type="text/javascript" language="javascript"
	for="window" event="OnQuit()">

	//clean up voice object
	delete um.sapi.voice;

Finally, add this array to the Modules section of udm-custom.js:

//speech output
um.speech = [
	'no',	// asynchronous speech ["yes"|"no"]
	'0',	// buffer length ["milliseconds"|"0"]
	'2',	// reading speed ["-10" to "10"]
	'yes',	// read title attributes ["yes"|"no"]
	'navbar,menu,top,out of,link,to the,left,right,leaving menus', // vocabulary

There's more information in the Developer's manual on configuring the um.speech array.


You must be using the keyboard navigation module.

Implementation notes

End-users have to abstract the menu structure from description alone, so to keep it as simple as it can be, the module imposes two restrictions on your design:

  1. You must use a vertical navbar, so that the navbar and menus have the same orientation.
  2. Reposition menus is disabled, because it can change a menu's direction, but it's better if every menu opens in the same direction - always left or always right. Menu repositioning is actually not essential when navigating with the keyboard, because focused elements automatically scroll into view.

Language support

The Microsoft TTS engine speaks American English. For additional language support you may be able to use the Text-to-speech engines for Microsoft Agent from Lernout & Hauspie, for which you will also need the Microsoft Agent core components, unless you already have them. To customise the speech engine settings you can use the Speech control panel, however this can only be installed on Windows 2000 or earlier. I haven't personally verified that the Microsoft Agent TTS engines work with this script, so any feedback on the subject is most welcome.

Using it on the web

Most people's security settings will not allow an unsigned ActiveX control to run. That won't apply if you're running it on a local Intranet, or a similarly trusted environment, but if you want it on a public website there's one of two things you can do:

  1. Make a version of your site embedded within an HTML Application, and offer that to people who want it. An HTML Application is essentially just a webpage with a different file extension, which runs within a separate application window and has higher security privileges.
  2. Use it within a normal webpage, and ask the people who want it to change their security settings so that it can run.

The first option made sense in this case, because it's just a single demo. However if you're using it site-wide then the second option may be better - it's easier for you to maintain, and probably simpler for your visitors in the long run, although more complicated at first.

Anyway, you have the choice. If you prefer the latter option, here's how to change Internet Explorer's security settings so that the speech module can run. Feel free to copy and use this text yourself:

How to change your security settings

Go to Tools then Internet Options and click the Security tab. Select Local intranet and click the Custom Level button to open the Security Settings dialogue. Now check Enable where it says Initialize and script ActiveX controls not marked as safe, and click OK.

To add a public website to the Local intranet zone, click the Sites button then Advanced, and type the site's address where it says Add this web Site to the zone. Click Add, then click the next three OK buttons - until all the dialogues are closed.


We would like your feedback! Take the UDM4 Survey!

UDM 4 is valid XHTML, and in our judgement, meets the criteria for WAI Triple-A conformance.