Accessibility: towards a Free software (Java-free) future.

    The crucial a11y code in OO.o will not be adopted due to the
painful Java requirement, these are some notes on potentially
circumventing this, and bridging directly to at-spi.

* code

accessibility/bride/org/openoffice/
    accessibility/*
	Windows related accessibility code ?
    java/accessibility/*
	Java mapping from UNO <-> Java bindings.


accessibility/

offapi/com/sun/star/accessibility/
	XAccessibleContent.idl: equivalent to Accessible.idl
	XAccessibleComponent.idl: AccessibleComponent.idl
etc.
	What is required is simply a _lot_ of typing / type-mapping.


Hooks into the toolkit done with eg.:
	unoToolkit.addKeyHandler(new KeyHandler());

desktop/source/app/app.cxx (Main)
    <-> vcl/source/app/settings.cxx (MiscSettings::GetEnableATToolSupport):
    -> vcl/source/app/svapp.cxx (InitAccessBridge)
        -> vcl/source/app/svdata.cxx (ImplInitAccessBridge):

        ImplSVData* pSVData = ImplGetSVData();
        if( ! pSVData->mxAccessBridge.is() )
	    ... re-hashed ...
                arguments[0] = makeAny(Application::GetVCLToolkit());
                pSVData->mxAccessBridge = xFactory->createInstanceWithArguments(
		                OUString::createFromAscii( "com.sun.star.accessibility.AccessBridge" ),
			            arguments 
				    );
		...
                    
This jumps into:
     accessibility/bridge/org/openoffice/accessibility/AccessBridge.java (initialize)

	We need to replace it with a C++ component that bridges direct
to atk: what fun. The 'AccessBridge' class is itself the main listener
it seems; follow a similar structure.

	Clobber with 'SAL_ACCESSIBILITY_ENABLED'

    We need to register a toplevel handler with atk [ as gail does ]

A11y wrapper:
    + needs to have a bi-directional hash:
	XAccessible <-> AtkObject
    + lookup in that first.
	+ then interogate an accessible
	    + create a wrapper.


* How about:

    + assume gail usage
	    + use only with the gtk+ backend;
		+ fallback to Java for KDE/gen (?)

    + clobber the a11y factory
	    + hook into that;
	    + implement the code in vcl/unx/gtk/ ?

    + Have verified
	    - there are a reasonable number of toplevels
	    + this is a sensible thing to do :-)


** FIXME
	+ need to audit all types of events atk needs
	  to expose & what we are expected to produce.

	+ assuming - nothing much at the root node ...