I am evaluating test tools for the next generation of our product.

We are using a 3rd party control for menu and tablist controls.

The 3rd party control has full compatibility with IAccessible. I have downloaded the AccExplorer32 tool from microsoft and it sees all of the menu items. The automated tools I have tried thus far have not recognized the menus or tab controls.

Here is a description of what the IAccessible interface does:
Technical Overview

Microsoft Active Accessibility improves the way accessibility aids (specialized programs that help people with disabilities use computers more effectively) work with applications running on Microsoft Windows.

Active Accessibility is based on the Component Object Model (COM), which was developed by Microsoft and is an industry standard that defines a common way for applications and operating systems to communicate. Active Accessibility consists of the following components:

* The COM interface IAccessible, which exposes information about user interface (UI) elements. IAccessible also has properties and methods for obtaining information about and manipulating that UI element.
* WinEvents, an event system that allows servers to notify clients when an accessible object changes.
* Oleacc.dll, a support or run-time dynamic-link library.

The Active Accessibility dynamic-link library, Oleacc.dll, consists of the following components:

* APIs that allow clients to request an IAccessible interface pointer(for example, AccessibleObjectFrom.X).
* APIs that allow servers to return an IAccessible interface pointer to a client (for example, LresultFromObject).
* APIs for getting localized text for the role and state codes (for example, GetRoleText and GetStateText).
* Some helper APIs (AccessibleChildren).
* Code that provides the default implementation of IAccessible for standard USER and COMCTL controls. Since these implement IAccessible on behalf of the system controls, they are known as proxies.
<font size="2" face="Verdana, Arial, Helvetica">