MRW, the MSAA Registration Issue Workaround for JAWS
Doug Lee
Last revised January, 2018
The MSAA Registration issue Workaround (MRW) scripts for JAWS are a set of scripts designed to help JAWS work around an issue sometimes found in Windows 7, 8.1, and 10 installations. The issue consists of an abnormality in the
Windows registration of certain Microsoft Active Accessibility (MSAA) DLL modules, resulting in JAWS being partially unable to use accessibility information in various applications.
Example symptoms include
- Messages in Skype saying that "these scripts do not support this Skype version" even when they do.
- Difficulties reading Skype chat messages.
- Failure of some custom scripts for Internet Explorer, such as for a specific web page or company web site.
- Failure of other custom scripts that use MSAA objects directly.
- Failure of JAWS to announce some incoming system tray notification messages.
In this author's experience, symptoms tend to appear after a reboot, typically following Windows updates, and can disappear after another such reboot at a later time.
MRW Script Usage
To use these scripts to work around the described MSAA registration issue,
- If not already done, install the MRW scripts.
You can uninstall the scripts thereafter at any time via the new "Uninstall MSAA Registration Issue Workaround (MRW)" item in the Start menu. Typing "mrw" in the Windows 10 Search box should also find this item.
- To check the status of MRW, type Alt+JAWSKey+C. JAWS will announce whether the MRW workaround is active or not active. Active means the MRW scripts will intercept failing MSAA requests and fulfill them as best it
can. Not active means the requests will be handled by JAWS without any help from the MRW scripts.
The MRW scripts will be inactive by default after every system reboot or JAWS restart.
JAWS may also announce a count of cached objects, which merely indicates how many MSAA objects MRW has had to obtain around the MSAA issue.
- On encountering any problem you suspect is caused by the MSAA registration issue, which can occur after any system reboot or JAWS restart, type Alt+JAWSKey+C twice in quick succession. This will toggle the MRW
scripts on. Doing this again will toggle them back off.
Turning them on may fix problems in various applications and scripts.
- Though this should rarely if ever be needed, you can type Alt+JAWSKey+C three times quickly to force MRW to deactivate, and four times quickly to force it to activate. For both of these, the object cache is also
cleared, so no stale information can be used.
These two features were added in revision 15.
Technical Details and Other Solutions
The MSAA registration issue appears to consist of missing or improper COM registration of one or more MSAA-related DLL files. The impact is that IDispatch (COM Automation) calls to MSAA objects, such as from JAWS script code,
fail or return invalid results.
To this author's knowledge, the most common cause of this MSAA problem is the installation and subsequent removal of Mathplayer. Reinstalling Mathplayer tends to fix the issue directly. These scripts are
provided, however, for those who do not wish to install Mathplayer and/or who do not have reason to believe Mathplayer has ever been installed.
The effects of the MSAA registration issue can extend beyond JAWS to other screen readers.
For example, NVDA may become unable to read some web pages properly and/or start saying "Unknown" on Alt+Tab.
These scripts, of course, only address the issue's effect on JAWS and JAWS scripts.
Release History
This section lists changes among MRW releases, most recent first.
- Revision 24, November 17, 2018
- Should work under JAWS 14 and 15 without a script load error.
- Minor documentation updates.
- Revision 21, January 16, 2018
- Reverted to older NSIS installer to fix a few logging and installation problems.
- Revision 20, September 12, 2017
- Upgraded to support installation into JAWS 2018.
- A post-install log should appear if the installer fails to find any installed JAWS instances.
- Revision 17, May 12, 2017
- Added some support specific to TeamSpeak.
- Added the ability to clear the object cache by typing Alt+JAWSKey+C three or four times in quick succession. On three times, MRW is forced to deactivate; and on four times, it is forced to activate.
- Revision 14, May 9, 2017
- Initial release.