Date: prev next · Thread: first prev next last


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] <>
[2] <>
[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 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.