Date: prev next · Thread: first prev next last

That was very informative.  I didn't realize the Java accessibility
api was used this way in Windows.  I am one who thought the app was
written using the java swing classes and this was responsible for the
poor accessibility of the tool.  This was very illucidating.

On 2/7/11, Christophe Strobbe <> wrote:

Some time ago we had a discussion that mentioned the use of the Java
accessibility API on Windows. However, the use of the Java
accessibility API does not imply that and LibreOffice
use Swing (at least that is my understanding). I think LibreOffice
and OpenOffice are still similar enough to use Malte Timmermann's
presentation from last year's OOoCon [1] as a source of information.
(Malte Timmermann has been working on OpenOffice since 1991, when it
was still owned by StarOffice; he works mainly on accessibility and
security.) Malte gave an update of this presentation yesterday at the
FOSDEM Conference in Brussels [3]. doesn't use the system's standard widgets, which
(should) already implement an accessibility API. When OpenOffice
started work on accessibility (after Sun took over StarDivision), the
only usable APIs where those in Java and GNOME. MSAA was OK for UI
accessibility, but too limited for document content (especially in
complex documents). Sun specified the UNO Accessiblity API, with the
intention of creating bridges between this API and the
platform-specific APIs on Windows, Linux etctera.

Since the Java Accessibility API was the only API that was rich
enough on Windows, OpenOffice pretended to be a Java application on
Windows. This created a complex accessibility architecture:
OpenOffice UI elements (in C or C++) expose accessibility metadata to
the Java Accessibility API through a bridge; the Java Accessibility
API is then exposed to Windows AT through the Java Access Bridge.
(For comparison: on GNOME, exposes accessibility
metadata through a bridge beteen the UNO Accessibility API and ATK,
so OpenOffice "looks" like a GNOME application to Orca.)

Since 2001, new APIs have become available on Windows: Microsoft's UI
Automation, and IAccessible2 (which IBM donated to the Linux
Foundation)[2]. IAccessible2 is not a full API but complements
Microsoft's older MSAA.
For a long time, the developers wanted to replace the
Java-based accessibility with a system based on MSAA and
IAccessible2. In his FOSDEM presentation [3], Malte said that IBM had
donated the code that replaced the Java-based accessibility with an
IAccessible2 implementation. IBM's donation was not based on the most
recent version of, and some work has been necessary to
find out where the changes should go (code had been moved, things had
been renamed, OpenOffice code had moved from its previous code
control system to Mercurial, ...) and to check for any issues related
to intellectual property rights (IPR). These changes are in a "child
work space"; Malte could not say when the IAccessible2 implementation
would be released; in other words: It will be done when it's done.

On Windows, you can use NVDA to access the OpenOffice UI, but the
support for document content is incomplete. For example, I can't find
a way to access the alt text of an image in a Writer document when
using NVDA (and I am not the only one). The NVDA developers are
probably waiting until the IAccessible2 implementation is available
in OpenOffice before completing their support of this office suite.

This is basically my understanding of OpenOffice accessibility, and I
think that it also applies to LibreOffice. I can't guarantee that is
100% correct; please let me know if anything I wrote is inaccurate or
even wrong.

This summary raises a few questions:
1. As far as I understand, IBM donated the IAccessible2
implementation to Sun or Oracle (I don't know when this happened, but
Malte didn't mention any of this in his slides for OOoCon 2010). I
don't know how the Document Foundation can benefit from this, if at
all. However, this donation is relevant to LibreOffice for reasons I
discuss below.
2. The IAccessible2 implementation significantly reduces's dependence on Java (Java is still used in one or two
wizards, I heard). The Document Foundation wishes to reduce
LibreOffice's dependence on Java as well, although for very different
reasons (Oracle being more strict about Java as demonstrated by its
legal action against Google?). If LibreOffice wants to get rid of
Java, it will also need to implement another accessibility API on
Windows, i.e. either MSAA and IAccessible2, or Microsoft's UI
Automation[4]. I don't know if LibreOffice developers have thought
about this already.

Thoughts, comments?
I would like to start a discussion with LibreOffice developers at
some point, but I would like to get some feedback before I do that.
And maybe someone has already made the developers aware of this.

Best regards,


[1] <>
[3] <>
[4] <>

PS: When I write: "I don't know if X has though about Y", I mean
quite literally that don't have that information. This does not imply
any criticism on X.

Christophe Strobbe
K.U.Leuven - Dept. of Electrical Engineering - SCD
Research Group on Document Architectures
Kasteelpark Arenberg 10 bus 2442
B-3001 Leuven-Heverlee
tel: +32 16 32 85 51
Twitter: @RabelaisA11y
"Better products and services through end-user empowerment" -
Please don't invite me to Facebook, Quechup or other "social
networks". You may have agreed to their "privacy policy", but I haven't.

E-mail to for instructions on how to
List archives are available at
All messages you send to this list will be publicly archived and cannot be

E-mail to for instructions on how to unsubscribe
List archives are available at
All messages you send to this list will be publicly archived and cannot be deleted


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.