MsaaVerify – An Active Accessibility Testing Tool

Have you ever used AccExplorer or Inspect and wondered whether the information presented was correct? Have you ever wanted to know which controls really need Names, Keyboard Shortcuts, Descriptions, and so forth? It's time to MsaaVerify! MsaaVerify will verify 9 Microsoft Active Accessibility properties for 10 Microsoft Active Accessibility Role types. It doesn't matter whether these controls are standard Windows controls, managed, owner drawn, or custom drawn, just use MsaaVerify!

MsaaVerify (along with its source code) is located at the following GotDotNet workspace:


When I started Accessibility testing 3 years ago, my biggest learning curve was trying to figure out whether the properties shown in AccExplorer or Inspect were correct.  If these properties are incorrect, a screen reader may incorrectly announce a control.  For example, if a print button only has a graphic on it, but no MSAA name, the screen reader may not be able to identify that this is a print button.

At first, I wanted to automate screen reader testing, but I quickly realized that I needed to take smaller steps.  I discovered that if the MSAA properties are not correct, the screen reader tests will most likely fail.  I switched gears and started working on validating MSAA properties.

While working on the very early versions of this tool, I hit the steepest part of this learning curve: trying to figure out what HRESULTS to expect for a given control's property, for example, S_OK, S_FALSE, and DISP_E_MEMBERNOTFOUND.  If you’ve ever run the verifications in AccExplorer, you’ll know what I mean.  After talking with the Windows Accessibility Team, I came up with a testing matrix for the different properties, role types, and HRESULTS.  And this testing matrix is that it is built into the tool.


The tool has gone through various changes since I created that new Windows Application one December day back in 2002.  I’ve been working on this tool off and on for the past two years, either adding other properties or roles, or adding additional functionality.  Things recently quieted down enough so that I could put the final touches and perform the final test passes on the tool to make it public.  I’ve been working on this tool for so long that it feels like I need to host a ship party this afternoon.

I get questions for customers now and then about how to write test cases or perform testing on MSAA.  Now, our customers can use the same tool that we use in-house.

I hope people find this tool useful in their Microsoft Active Accessibility testing.  Let me know what you think!

Comments (0)

Skip to main content