Windows Automation API 3.0
Some of you may be wondering why we refer to the Microsoft Accessibility programming platform as "Windows Automation API 3.0". We named it that way because the SDK isn’t really just about MSAA or UI Automation anymore. It's a combination of both old and new technologies. For instance, the Dynamic Annotation API is no longer unique to MSAA Servers – it can be used by these applications to add support or annotate UI Automation properties. The IAccessibleEx interface bridges two worlds together in a very organic way. Even from UI Automation, new LegacyIAccessible control pattern and the new Client API (i.e., ElementFromIAccessible) function enables jumping between MSAA accessible object tree and UI Automation element tree. We set the version of Windows Automation API to 3.0 in order to respect the previous MSAA version number as well as the generations of new UI Automation implementations in Windows.
When we talk about technologies specifics, we continue to use 'UI Automation' or 'MSAA'. Windows Automation API is used when we talk about collections of technologies or the Windows specific frameworks.
SDK Tools
The Windows 7 RC SDK features a new Inspect Object tool (Inspect) for the Windows Automation API SDK. It may look familiar to some of you who’ve been using the old Microsoft Active Accessibilty (MSAA) tool, however the bulk of the code is actually re-written from scratch. The new Inspect tool features the essence of UI Automation included in Windows 7.
Core Tools
Microsoft Windows SDK for Windows 7 (Release Candidate) includes all of the tools. The latest revisions of Windows Automation API SDK tools are:
Inspect
It's worth highlighting some of the new tricks for UI Automation support using Inspect. You can now inspect brand new UI surfaces that support UI Automation natively. Following are a list of things you can try out with Windows 7 RC and Internet Explorer 8.
You can find all keyboard shortcuts and other key features of Inspect Object tool at http://msdn.microsoft.com/en-us/library/dd318521(VS.85).aspx.
The SDK and platform are still under development, therefore things may still change, but we hope you find the tools useful in the meantime. Keep in mind that the MSDN online Library is still being updated with new changes, but these should get you started in the right direction.
Old versions of these tools are located in the Microsoft Download Center as MSAA 2.0 SDK tools, however these are retiring with the release of new versions (with the exception of AccExplorer).
UIAVerify and AccChecker
While they are not technically SDK tools, there are also a couple of other tools that you can leverage (one called 'UI Accessibility Checker' and the other 'UI Automation Verify',) but it would take us an entire post to describe them! If you'd like to learn a bit more about what they do, check out http://www.codeplex.com/AccCheck and http://www.codeplex.com/UIAutomationVerify. In short, UI Automation Verify is designed for integrating your UI Automation Provider testing into your test pass and UI Accessibility Checker features a set of accessibility test scenarios and criteria for general UI accessibility testing.
Common tips and suggestions
There are few common tips and useful suggestions to keep in mind whenever any of these accessibility test tools are used.
Quick References and Useful Links
Supports MSAA?
Support UIA?
Distribution
Supported test scenarios
Yes
Windows 7 SDK (RC)
Ad-hoc UI accessibility investigation by focus or by a point on screen
AccEvent
No
WinEvent logging
UISpy
Yes*
Ad-hoc UI accessibility investigation with UIA Event logging support
UIAVerify
CodePlex
Automated verification of UIA Provider implementations (Ad-hoc investigation tool available)
AccExplorer
MSDN download
Ad-hoc MSAA Server testing with preset test criteria per MSAA specification (no longer supported or maintained)
AccChecker
General UI Accessibility test tool featuring some huristic based MSAA based testing.
*UISpy and UIAVerify are based on managed UI Automation Client API which has not been fully updated with the Windows 7 version of UI Automation implementation. The tool may not find properties, patterns or events that are not yet supported by the managed API.
Just a note - We are aware of the broken table-of-contents (TOC) with MSDN Library “UI Automation for Win32 Applications” section and apologize for any inconvenience. Once the TOC is fixed, we should have all the latest SDK contents featuring the new UI Automation Specifications implemented by Windows 7. In addition, the navigation is supposed to be replaced by “Windows Automation API: UI Automation” containing additional content.