Code for basic IAccessible2 support is already in OO CVS: the workspace is named ooo11ia2 and most of the code resides in gsl/winaccessibility.
But the workspace is based on a pretty old code base (OOo 1.1) and the modifications (to the application code to make OOo behave as expected by IAccessible2 clients0 are not part of this workspace either.
The CWS ooo31ia2 has the latest code of IAccessible2 support which is based on Ooo310m11. IAccessible2 support will be ready in Apache OpenOffice 4.0 GA.
Migration to Head/Trunk
This is an attempt to list what needs to be done to make the latest version of OOo support IAccessible2.
Move the bridge code to VCL
Making the Java <-> UNO AccessBridge an UNO service was just a convenient way to bridge between Java and C++ code. All the other "native" bridges (ATK, OS X) reside in the platform dependent source tree(s) inside VCL.
Analyze, document and migrate the extensions to the UNO Accessibility API
- new AccessibleEventIds: TABLE_SUMMARY_CHANGED, ACTIVE_DESCENDANT_CHANGED_NOFOCUS, SELECTION_CHANGED_ADD, SELECTION_CHANGED_REMOVE, SELECTION_CHANGED_WITHIN, PAGE_CHANGED, SECTION_CHANGED, COLUMN_CHANGED => see MSAA/IAccessible2 specification for details
- new AccessibleRelationType: DESCRIBED_BY => see IAccessible2 specification for details
- new AccessibleRole(s): TREE_ITEM, IMAGE_MAP, RULER, EDIT_LIST, BUTTON_MENU, BUTTON_DROPDOWN, NOTE => all but EDIT_LIST added to DEV300 with CWS aqua11y02.
- new AccesibleState(s): MOVEABLE, OFFSCREEN, COLLAPSE, DEFAULT => COLLAPSE(D) probably can be expressed by EXPANDABLE && !EXPANDED, how does OFFSCREEN relate to VISBLE and SHOWING ?
- new interfaces: XAccessibleTextExtension, XAccessibleAttribute, XAccessibleTableExtent, XAccessibleGroupPosition, XAccessibleGetAccFlowTo => need to be reviewed in regard of naming conventions and type safety (often return objects of type any). Almost no documentation inside of the idl files.
Adapt the application code to make use of the new UNO Accessibility API
Note that any of this changes has to be carefully reviewed for its effect on the Accessibility support of OOo on the other desktop environments.
Drop the limitation of children in documents in the application code
AT vendors of the other supported desktop environments have indicated to prefer access to the full document either. However - unless support for the Java<->UNO AccessBridge gets dropped in favor of IAccessible2 - the limitation to visible children in documents probably needs to get re-introduced here for performance reasons.