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.
Magnifier
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:
MAG_HOOK.DLL
MAGNIFY.EXE
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.
Narrator
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:
NARRATOR.EXE
narrhook.DLL
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:
- Current Window:
- Title Bar: alt+home
- Status Bar: alt+end
- Contents: ctrl+shift+space
- Current Control:
- Description: ctrl+shift+enter
- Verbose Description: ctrl+shift+ins
- Whole Text (for fields only): ctrl+shift+enter
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:
- Try modifying the 2k version of Narrator if you've got access
to it.
- Or alternatively, Make a copy of the XP version of Narrator. Modify and use that version, in stead of the original.