[Fwd: OOo Accessibility on WIndows via IAccessible2]

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Fwd: OOo Accessibility on WIndows via IAccessible2]

Malte Timmermann
FYI - I have posted the mail below to [hidden email].

In the beginning of our Accessibility implementations, we used
[hidden email] for discussions.
But for implementing such a bridge the dev list is more appropriate, IMHO.

So if this is interesting for you, make sure to subscribe to
[hidden email] - which you probably already did anyway...


-------- Original Message --------
Subject: [dev] OOo Accessibility on WIndows via IAccessible2
Date: Thu, 05 Jul 2007 21:13:38 +0200
From: Malte Timmermann <[hidden email]>
Reply-To: [hidden email]
To: [hidden email]


I am not sure if all of you are aware of IAccessible2 (IA2,
http://www.linux-foundation.org/en/Accessibility/IAccessible2 ), and the
influence that it will have on Assistive Technology (AT) on Windows.

Right now, OOo is not well accessible (with screen readers) on Windows.

OOo itself has a very rich Accessibility API, and is offering all needed
information via this API.
But the AT vendors don't make use of that, because this would mean
implementing something "only" for OpenOffice.org.

So the only way to get their support is by implementing some API that
also other important applications are implementing.

For this reason OOo currently bridges the UNO Accessibility API (UAA) to
Java Accessibility API (JAA), because some AT tools at least support Java.
This helps for the user interface, and for some standard things in the
documents, but currently the AT products don't make use of all
interfaces which are needed to expose the content of complex documents.

For AT, the situation on Windows is worse than on Linux/Solaris with GNOME.
GNOME comes with a full featured Accessibility Architecture.
AT tools can quite easily support any GNOME application, because of the
architecture they don't have to know anything about the applications!
They (basically) just track the focus events, and ask for roles and
interfaces of the focused elements.

On Windows, there is nothing like this.
There is some API (MSAA - Microsoft Active Accessibility), but this is
not a complete architecture. That API is only a complement to Win32 API
to fill some gaps, but still doesn't support exposure of document content.

Microsoft started "UIAutomation" with Windows Vista, but it seems that
this is also not very sufficient.
Supporting this would also be quite difficult (requires managed instead
of native code) and expensive (lot's of new development)  for AT vendors.

For this reason, IBM has "created" IAccessible2.
Mainly they looked into OOo's Accessibility API, and extracted all
things that are not covered by the Win32/MSAA combo.
They brought this to theFree Standards Group (nowadays Linux Foundation)
for further standardization, and the major AT vendors are working on IA2
One of the benefits from IA2 for them is that it's not something
completely new, but only complements existing API. This means they can
keep all their working MSAA implementations, and exchange/enhance some
implementations with IA2.

The AT vendors  already start replacing some "custom" or ugly
implementations with clean solutions based on IA2.
This means, if OOo would support IA2, it could benefit from these
efforts, and quite soon we should have a very well accessible OOo even
on Windows!
For the same reason people are already working on IA2 support in FireFox
and Thunderbird.

Implementing IA2 would be similar to what we are doing on GNOME now. A
small bridge layer maps our UAA implementations to the systems
Accessibility Architecture. In this case, this would mean implementing a
bridge for MSAA and IA2.

A lot of code should be very similar to our GNOME bridge, so I think we
could make quite fast progress if we started this.

Now I wonder - are there any volunteers for this?

This would be great!

Best regards,


To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]