Difference between revisions of "Accessibility/IAccessible2 support"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Status quo of the IAccessible2 support.)
 
m (enumerated UNO API extensions)
Line 15: Line 15:
 
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.
 
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 and migrate the extensions to the UNO Accessibility API ==
+
== 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 ==
 
== Adapt the application code to make use of the new UNO Accessibility API ==
Line 21: Line 33:
 
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.
 
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 exposed children to visible ones in the application code ==
+
== 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 - this limitation probably needs to get re-introduced here for performance reasons.
+
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.

Revision as of 09:59, 8 August 2008


Status Quo

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.

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.

Personal tools