Tips and Tricks for MS Magnifier and Narrator

By Veli-Pekka Tätilä

Alasdair - broken links and unavailable files have been removed from this page and are lost forever.

This page lists some tips and tricks for working with Microsoft's free accessibility aids Magnifier and Narrator. I'm assuming you know the basics of Windows as well as how to use both Magnifier and Narrator in general.


Bringing Magnifier on Top

One common problem in basic, window-based magnifiers is that sometimes the magnifier is covered by a full screen application (notably some installers) and you have no easy way of bringing it back. In Magnifier, the easiest solution is to open the Start Menu (click on Start, press the windows key or press ctrl+esc). When the Start Menu is Opened, Magnifier is momentarily put on the top. Now you can use Magnifier to read some text on the screen and position the mouse over the control with which you wish to interact. as soon as you click on the problematic control, however, Magnifier will retreat to the background and the control you targetted receives the mouse click. If you need the magnifier again, just open up the Start Menu to bring it back. Obviously, using magnifier like this is tedious but there are no easier ways of doing it, really.

There's one other alternative, however. That is, you can use the alt+printscreen key combo to capture an image of the problematic app and then go to Paint and examine the image there with magnification. You could do that as follows:
alt+printscreen, ctrl+esc, r, pbrush [enter], ctrl+v
In case you have a Windows keyboard, you can substitute ctrl+esc, r with windows+r.
If it seems Magnifier is hard to bring on top in Paint, you can also use the zoom feature to examine the image with magnification without using the Magnifier. Just select view/zoom/large size or press ctrl+page down. Further more, you might want to use a more advanced image viewer such as Paint Shop Pro which allows you to easily zoom into a specific region by simply pointing and clicking with the mouse.

windows XP Magnifier in All 32 Bit Versions of Windows

This is a little known feature. You can actually use any version of MS Magnifier, including it's newest incarnation in Win XP in any version of 32 bit Windows. This includes those Windows 95 versions that don't have any magnification by default, too. You can also take the Magnifier anywhere by putting it on a floppy.

Copying Magnifier is just a matter of copying these two files:
Both of these can be found in your Windows System32 or System directory (probably System32, though). Here's the easiest way to copy the files on a floppy: ctrl+esc, r, command [enter], copy %systemroot%\system32\mag* a: [enter], exit [enter]
You can, of course, also use Windows Explorer to do the copying. Note, however, that you might not be able to see the MAGHOOK.DLL file if you've set up Windows Explorer or My Computer not to show all of the system files. If the %systemroot% variable does not work, substitute that bit with the location of your Windows directory such as c:\windows\ or c:\winnt\. By the way, the destination directory does not really matter, you can put the Magnifier files anywhere provided that you keep the dll and exe files in the same directory.


Differences Between the 2k and XP versions of Narrator

Narrator has changed a little between version 1.0 (Windows 2000) and version 1.5 (Windows XP). The strong points of version 1.0 are that it can use any SAPI 4 compatible speech engine in any language where as v1.5 can only use Microsoft Sam in English. V1.0 also includes lar ger scales for the speed, pitch and volume boxes which is a definite plus when listening to some MS voices real fast. However, v1.5 has got better overall accessibility and it can read balloon help and tooltips, too. Further more, the reading order bug apparent in the properties dialog of Windows 2000 is fixed in the XP version of Narrator.

Using Other Voices and Foreign Speech Engines with Narrator

In the 2k version of Narrator (version 1.0), it is possible to use other Microsoft voices and even other speech synthesizers in foreign languages. This is becaus v1.0 supports the SAPI 4 speech standard. However, the XP version (v1.5) supports SAPI 5 and because SAPI 5 is not backwords compatible with SAPI 4, there's no way to use SAPI 4 voices in the XP version of Narrator. Neither does Narrator v1.5 support other SAPI 5 voices, all other SAPI voices and engines than Microsoft SAPI 5 and the voice Sam are completetely ignored. Not all hope is lost, however, because you can use Narrator v1.0 in Windows XP, more about this later on.

Also, note that if you are using foreign speech engines with the 2k version of Narrator, the prompting is still in English which makes the speech kind of funny. It's still usable in some apps like the iamC IRC client, though.

Having Narrator 1.0 use and recognize new voices is a matter of just installing those voices and selecting them in Narrator's voice dialog. Sometimes you also need to tweak some of the pitch and speed settings for the voices a little but that's easy to do.

Using Both Narrator 1.0 and 1.5 in Either Win 2k or XP

You can use both Narrator versions 1.0 and 1.5 in both Windows 2000 and Windows XP. This way you can take advantage of better speech engine support in v1.0 while using v1.5 for balloon help and tooltips, Windows Explorer (properties dialog) and other aps that might work better with 1.5 than 1.0.

Copying either of the two Narrator versions is a matter of copying these two files located in your system32 directory:
Note that the name MAG_HOOK.DLL has got an underline character between mag and hook but there's no underline char in narrhook.dll.
also, you may need to tell Windows to show you all the system files before narrhook.dll is shown.
If you are working on an XP machine, Narrator V1.5 is copied, whereas on a 2k machine, you are copying version 1.0
By the way, the destination directory does not really matter, you can put the Narrator files anywhere provided that you keep the dll and exe files in the same directory.

Before you can actually start using Narrator you need to make sure that your system has got the necessary speech components. If installing the 2k version of Narrator in XP, you need the SAPI 4 runtime and some voices. If it's the XP version for 2k, you need SAPI 5 support in stead. Here are the download links for both SAPI 4 and SAPI 5:

SAPI 4 runtime files
All of the Microsoft SAPI 4 voices
SAPI 5 runtime and voices for XP

Narrator Hotkeys

It seems to me not many people have read through the Narrator help file in its entirity. the help for the Xp version lists several useful reading keys that you can use in Narrator. Here we go:

Customizing Narrator's Prompting with a Resource Editor

One down side of both versions of Narrator is the prompting. Narrator talks all too much, giving tips on how to operate certain controls and tellling you all the time that it is a foreground window or that you are in a dialog box. These advice might be nice if you are a newbie but are certainly irritating if having a little experience in using Windows from the keyboard.

As we don't have access to Narrator source code and because Narrator does not let you customize it's prompting, the only way to do it is to edit some of the string table (ordinary text) resources of Narrator with a resource editor. So, let's download a free resource editor called Resource Hacker. It is only a few hundred kilobytes and does not require installation (just extract and use, to uninstall, delete). You can download Resource Hacker here.

Before editing any of the Narrator resources, be sure to copy the Narrator files (NARRATOR.EXE and narrhook.DLL) in your system32 directory to a temporary one such as temp. Windows system restore won't usually let you permanently replace the originals in system32, so you'll have to modify your back up copies. You might be able to trick system restore by booting into safe mode and doing permanent changes to system32 in there. I'm not totally sure, and at any rate, you're likely to need sighted help for the job. Anyway, let's move onto editing copies of NARRATOR.EXE and narrhook.DLL!

Start Resource Hacker by running the reshacker executable file. Then use the file open menu command to open NARRHOOK.DLL. There's a tree control on the left listing all of the resource types available and under the types the individual resources you can edit. On the right, there's a blank area which is the resource viewer. It shows all the text, icons, dialogs and all of the other resources you can view or edit.

NOTE: the resource numbers and texts that follow are specific to the 2k version of Narrator. The resources should be somewhat similar in the XP version but the names and numbers may differ.

Open the String Table node (tree element). You can see numbers 13 to 16 in that branch of the tree (child nodes). Open each of these in turn. Each of the items called 1033 contains text strings that you can edit on the right side of the program. As an example open the 1033 resource under 13 (from now on refered to as 13/1033). You should see some text on the right side. We are mostly interested in the stuff between the quotes. Here's one line of the resource script:
197, "Menu end"

197 is a unique identifier for the text and the stuff between the quotes is what is said. Menu end is what Narrator says when you exit from a menu. When editing these entries you should not touch anything outside the quotes. And if you do want Narrator to say nothing leave some blank space inside the quotes e.g. 197, " ". If you would leave nothing inside the quotes, the resource editor would took it to mean that you don't want this resource at all and it would delete it. This would result in Narrator complaining it cannot find some resource it should. So be sure to use a single space inside quotes as a symbol for nothing. You could also try an empty string i.e. only two double quotes with nothing in between.

As a practical example, let's remove the prompt for foreground window. The location is 14/1033/217. Meaning it's under String Table 14, in 1033 and in the line that has the id number of 217. The line reads:
217, "Foreground window"
Let's change it to read:
217, " "

When we are done, we should use the tab key to return to the tree control and move to some other node. Resource Hacker should ask if we want to compile this script meaning if we want to save our changes. Answer yes. Now you can also edit other resources as described above, saving the changes each time you edit something. After you are done, you should save the file using the save as command and give it the name NARHOOK.DLL (not narrator.exe because we were not editing that one). finally, try running your modified version of Narrator to see if you managed to get rid of the foreground window prompt.

You can also edit the file NARRATOR.EXE, but it's string tables are text shown in Narrator dialogs, so you'd probably not want to touch the exe file at all.

Bear in mind, that even though many of the most important Narrator prompts are located in the NARHOOK.DLL file there are simply prompts that cannot be changed at all. There's nothing you can do about it.

Finally, I'll show you how my NARRHOOK.DLL FILE looks nowadays. Each line here starts with the string identifier followed by a colon and a space after which there's the text that goes inside the quotes (the text empty in this part means simply " "). As a final note before we get down to business, I'm only listing those resources that are different from the Narrator defaults. And here's the list :

197: empty
198: empty
199: empty
200: empty
201: empty
202: End of line
212: empty
217: empty
218: Tip:
219: Start of line
220: empty
223: empty
224: empty
225: empty
226: empty
227: , Has sub-menu
228: empty
231: %s
232: empty
233: empty
234: Leaf
235: Root
236: Unselected
244: Caps on
245: Num on
246: Print on
247: Num off
248: Caps off
249: Esc

Recording the Voice of Narrator on the Computer

Recording the Narrator output is very easy on most soundcards supported under Windows.
1) Hit ctrl+esc then r to open the run box and type in sndvol32 to open the volume control.
2) Open the options menu, select properties and choose the radio button titled recording.
3) On the list below the buttons, chekc the box next to wave audio output. the name varies depending on the soundcard it could be one of the following for example: stereo mixer, wave out, DirectSound and so on.
4) Once you've found wave out or it's equivalent, hit ok and then click the select check box under wave out (or the equivalent name).

This selects the wave output as the recording source. Now recording stuff on the computer will capture the Narrator speech digitally.

If you don't have any good sound recorder programs, you can use sound recorder for basic recording. Before you start recording I suggest opening file/properties and pressing convert now to be able to select the sampling rate and other sampling options in sound recorder. For recording speech you should choose 16 bit 22050 Hz mono PCM. Save this option so you can use it later on in recording.

The most important editing commands are delete before current position and delete after current position. These can be used to trim the sound file and cut out portions of the sound either before or after the cursor (the position of the slider control).

Actually sound recorder can even produce mp3 files if you have an mp3 codec such s LAME installed. Just use the convert now option after a recording and select the lame codec in the format list. Renaiming the mp3-encoded wave file to mp3 should yield ordinary mp3-files.

Work-arounds for Windows File Protection

Some users trying out this hack guide have been having problems with Windows XP's file protection. File protection is a backup system that prevents malicious programs from messing core system files. Unfortunately, it might also prevent you from making the changes in narrhook.dll. Here are some suggestions that you might try:

See Also

A review of Microsoft Magnifier and Narrator

Back to Accessibility