[libreoffice-accessibility] OpenOffice and LibreOffice accessibility

classic Classic list List threaded Threaded
2 messages Options
Christophe Strobbe Christophe Strobbe
Reply | Threaded
Open this post in threaded view
|

[libreoffice-accessibility] OpenOffice and LibreOffice accessibility

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 [hidden email] 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
Alex Midence Alex Midence
Reply | Threaded
Open this post in threaded view
|

Re: [libreoffice-accessibility] OpenOffice and LibreOffice accessibility

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 <[hidden email]> 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 [hidden email] 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 [hidden email] 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