Open Source Accessibility for Windows

IBM has developed the IAccessible2 accessibility API extension for Windows, and led the implementation of this API in applications such as the Firefox browser for Windows and in the IBM Lotus Symphony productivity editors.


IAccessible2 is an engineered accessibility interface that enables application developers to leverage their investment in Microsoft® Active Accessibility (MSAA) and provide an assistive technology (AT) access to rich document applications, such as IBM Lotus® Symphony , and Web browsers such as Firefox. Additional function in the API includes support for rich text, tables, spreadsheets, Web 2.0 applications, and custom controls in other large mainstream applications. Through the Linux Foundation Open Accessibility Workgroup, IBM is consulting and collaborating with assistive technology vendors and other companies and open source communities regarding their implementations of IAccessible2, including Freedom Scientific, GW Micro, the Access Mozilla project, Oracle and the OpenOffice community, the Eclipse Foundation, Adobe, NVDA and others.

The IAccessible2 API:

In addition to IAccessible2, IBM has created and continues to participate in the following projects:

Eclipse ACTF Accessibility Probe (AccProbe)

The AccProbe is a standalone, Eclipse Rich-Client Product (RCP) application that provides a view of:

AccProbe can also serve as an event monitor for tracking the events fired by these accessible objects. It is meant to combine the functionality of tools like Microsoft's Inspect, AccExplore, and AccEvent into one easy-to-use application for accessibility testing and debugging.

Another notable project with which IBM participates indirectly is the Nonvisual Desktop Access (NVDA) effort. This is a free screen reader for the Microsoft Windows operating system. IBM has been working with nvaccess developers to provide support for applications implementing IAccessible2.

Eclipse IAccessible2 Support

Developers are now able to take advantage IAccessible2 support for Eclipse applications. Eclipse (since version 3.6) provides enabling classes in org.eclipse.swt.accessibility that interface to the IAccessibility2 APIs. Using the IAccessibilty2 enabled classes in Eclipse, developers can:

  1. Provide full support for rich text, including the attributes associated with the text
  2. Manipulate the text, including caret information, selection, cut / paste, and inserting text
  3. Embed and work with embedded objects in rich text.
  4. Notify the user of changes in the UI that is not where the user is focused.
  5. Create relationships between objects, such as associating labels with fields.
  6. Send and respond to accessibility events
  7. Create and provide full information about tables

IBM contributed the implementation to

Last updated, June 1, 2011