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 <[email protected]> wrote: > Hi, > > 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 OpenOffice.org 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]. > > OpenOffice.org 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, OpenOffice.org 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 OpenOffice.org 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 OpenOffice.org, 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 > OpenOffice.org'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, > > Christophe > > > [1] <http://www.ooocon.org/index.php/ooocon/2010/paper/view/217> > [2] > <http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2> > [3] <http://fosdem.org/2011/schedule/event/ooo_accessibility> > [4] <http://en.wikipedia.org/wiki/UI_Automation> > > > 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 > BELGIUM > tel: +32 16 32 85 51 > http://www.docarch.be/ > Twitter: @RabelaisA11y > --- > "Better products and services through end-user empowerment" > www.usem-net.eu - www.stand4all.eu > --- > 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 [email protected] for instructions on how to > unsubscribe > List archives are available at > http://listarchives.libreoffice.org/www/accessibility/ > All messages you send to this list will be publicly archived and cannot be > deleted > -- E-mail to [email protected] for instructions on how to unsubscribe List archives are available at http://listarchives.libreoffice.org/www/accessibility/ All messages you send to this list will be publicly archived and cannot be deleted
