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
For the same reason people are already working on IA2 support in FireFox
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.