[g-a-devel] OO.o / new a11y bridge ...
- From: michael meeks <michael meeks novell com>
- To: Oliver Braun <Oliver Braun sun com>
- Cc: accessibility mailing list <gnome-accessibility-devel gnome org>
- Subject: [g-a-devel] OO.o / new a11y bridge ...
- Date: Tue, 19 Apr 2005 16:34:16 +0100
Hi Oliver / All,
Just to let you know - I'm hacking on a new, direct-to-atk a11y bridge
which (may) improve performance, but of course also lets OO.o function
accessibly without Java and a full Java a11y implementation.
To get the code grab it from:
http://go-oo.org/ooo-build/patches/a11y/
or do:
cvs -d ':pserver:anonymous anoncvs gnome org:/cvs/gnome' login
cvs -d ':pserver:anonymous anoncvs gnome org:/cvs/gnome' co \
ooo-build/patches/a11y
Still in a very hacked, but semi-functional state; the gaps between the
mapping are quite interesting too; Oliver - is it possible to extend the
OO.o a11y in certain places ? eg. non-localised vs. localised names for
accessible actions ?
Anyhow - I'd really value your feedback, I've also fallen over a rather
silly problem in the OAccessibleWrapper, a crash (with a custom zoom
combo box we added to the toolbar):
The crash is caused by instantiation of:
comphelper/source/misc/accessiblewrapper.cxx (OAccessibleWrapper) with a
NULL _rxInnerAccessible ...
I append the trace; for reasons unknown the combo box contains a list
accessible that thinks it has multiple children, and then returns NULL
when you fetch them in
'OAccessibleContextWrapperHelper::getAccessibleChild' the xInnerChild is
NULL; this patch at least stops the crash (in
OAccessibleWrapper::getAccessibleContext()) when we de-reference the
NULL m_xInnerAccessible - yes it's quite contorted; patch is:
Index: comphelper/source/misc/accessiblewrapper.cxx
===================================================================
RCS file: /cvs/util/comphelper/source/misc/accessiblewrapper.cxx,v
retrieving revision 1.8
diff -u -r1.8 accessiblewrapper.cxx
--- comphelper/source/misc/accessiblewrapper.cxx 4 Feb 2004 11:26:40 -0000 1.8
+++ comphelper/source/misc/accessiblewrapper.cxx 19 Apr 2005 14:49:13 -0000
@@ -177,6 +181,12 @@
{
Reference< XAccessible > xValue;
+ if( !_rxKey.is() )
+ {
+ fprintf( stderr, "It was this path that was crashing stuff\n" );
+ return xValue;
+ }
+
// do we have this child in the cahce?
AccessibleMap::const_iterator aPos = m_aChildrenMap.find( _rxKey );
if ( m_aChildrenMap.end() != aPos )
or somesuch.
Obviously to run OO.o with this enabled; you need to do: export
GTK_MODULES=gail:atk-bridge, but that's about it (beyond enabling
desktop a11y).
I'd be interested in a performance comparison if you can do on,
HTH,
Michael.
#0 OAccessibleWrapper (this=0x56365e70, _rxORB= 0x5635bb50,
_rxInnerAccessible= 0xbfffe4e0, _rxParentAccessible= 0xbfffe480)
at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:353
#1 0x40d1cd54 in
comphelper::OWrappedAccessibleChildrenManager::getAccessibleWrapperFor
(this=0x5635bb38, _rxKey= 0xbfffe4e0,
_bCreate=1 '\001')
at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:193
#2 0x40d1ef16 in
comphelper::OAccessibleContextWrapperHelper::getAccessibleChild
(this=0x5635b7e4, i=0)
at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:491
#3 0x40d1fd49 in
comphelper::OAccessibleContextWrapper::getAccessibleChild
(this=0x5635b7b0, i=0)
at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:599
#4 0x41f2bf84 in wrapper_ref_child (pObject=0x81617c0, i=0)
at /opt/OpenOffice/src680-m90/vcl/unx/gtk/a11y/atkwrapper.cxx:271
#5 0x422f4d91 in atk_object_ref_accessible_child ()
from /opt/gnome/lib/libatk-1.0.so.0
#6 0x428778ff in impl_accessibility_accessible_get_child_at_index ()
from /opt/gnome/lib/libspi.so.0
#7 0x42874321 in
_ORBIT_skel_small_Accessibility_Accessible_getChildAtIndex ()
from /opt/gnome/lib/libspi.so.0
#8 0x429297e7 in ORBit_POAObject_invoke ()
from /opt/gnome/lib/libORBit-2.so.0
--
michael meeks novell com <><, Pseudo Engineer, itinerant idiot
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]