IAccessible2
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:
- Is a new accessibility application programming interface (API) that complements Microsoft's earlier work on MSAA. The new API was built to fill critical accessibility API gaps in MSAA that were discovered when the Commonwealth of Massachusetts wanted to purchase and install a usable and accessible OpenDocument Format (ODF)-based office suite. By implementing IAccessible2, developers of IBM Lotus® Symphony , which creates and edits ODF-based content, were able to demonstrate that an ODF-based office suite could be both usable and accessible.
- Has been harmonized with the Linux® accessibility APIs to allow for efficient multi-platform development. This work was done through close collaboration with IBM, Linux, and Mozilla accessibility architects who have intimate knowledge of both Windows accessibility APIs (MSAA plus IAccessible2) and the Linux accessibility APIs (ATK and AT-SPI).
- Was a joint effort initially between IBM and the leading AT vendors. These vendors saw the need for an enhancement to MSAA and worked closely with IBM architects and engineers during the definition and implementation of IAccessible2 in Lotus Symphony and the screen readers.
- Is currently implemented in IBM Lotus Symphony, Firefox (since version 3), JAWS, MAGic, Window-Eyes, NVDA, ZoomText, and IBM technology implementation AccProbe with more products and technologies scheduled to implement the interface soon.
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:
- The Microsoft Active Accessibility (MSAA) or IAccessible2 hierarchy of a currently running application or rendered document.
- The properties of the accessible objects of that application or document.
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:
- Provide full support for rich text, including the attributes associated with the text
- Manipulate the text, including caret information, selection, cut / paste, and inserting text
- Embed and work with embedded objects in rich text.
- Notify the user of changes in the UI that is not where the user is focused.
- Create relationships between objects, such as associating labels with fields.
- Send and respond to accessibility events
- Create and provide full information about tables
IBM contributed the implementation to Eclipse.org.
Last updated, June 1, 2011
