Re: gtk accessibility on win32

Hi Allin,

The picture is pretty much as bleak as Marc paints it. But there are two other options to consider:

 1. Limit yourself to JAWS and ZoomText (and Virgo), and bridge ATK to
    the Java Accessibility API (basically the reverse of what we're
    doing in the gnome-java-bridge.  Not a small amount of work...

 2. Port Gnopernicus to Win32, and offer that as the screen reader.
    This might actually be the easiest route...  You might also choose
    to start with Orca instead of Gnopernicus.

Oh, there is also:

 3. Make your app self-voicing.  This may actually be the easiest thing
    to do.  Study either Gnopernicus or Orca for this, and have a
    separate process (loaded with GTK_MODULES if that works in Win32)
    that receives the events and speaks them.  This won't be as functional
    as either Gnopernicus or Orca or JAWS, but it may be an option worth
    considering, depending upon your requirements.


Peter Korn
Sun Accessibility team

Marc Mulcahy wrote:
Hi Allin,

Currently, GTK+ apps aren't accessible on Win32, because the GTKWidgets do not use standard Windows controls, and so screen readers can not identify them or make any sense of the information they contain.

Basically, I guess what you'd need would be an ATK to MSAA bridge. You would need Gail installed, since it provides the ATK implementations for all the standard GTK+ widgets. You wouldn't need libgail-gnome.

Creating an ATK to MSAA bridge wouldn't be trivial-- you'd have to create MSAA proxy objects that proxy for ATK objects. Not insurmountable, but not trivial either. The fact that MSAA only has one real interface would make your life a whole lot easier. While ATK has several interfaces, AtkAction, AtkComponent, AtkImage, AtkText, etc. MSAA has one interface which is most analogous to the basic AtkObject interface.

I guess the other issue is how complex is your app. If it has some simple text controls and menus, then making it accessible on Win32 using the methods I described above is probably doable in a few weeks. However, if you have any complex documents, such as HTML, or rich text, then the task would be nearly impossible, since MSAA doesn't define any interfaces for complex documents, and screen readers all sorta have their own notion of what MSAA should provide for complex documents such as web pages in IE and Adobe PDF files in Adobe Reader.

I don't mean to paint an overly bleak picture here-- just trying to provide some context and info about the current landscape. Some more details about the complexity your app might be helpful.

If you decide that GTK+ is too complex to make accessible on Win32, there are a few other options worth considering for your GUI:

Java : Java Swing is accessible on both Linux and Windows (with JAWS)
The Eclipse Widget Toolkit- Is apparently somewhat accessible on both Windos and Linux, although I have no experience with it



At 09:24 PM 9/15/2004, Allin Cottrell wrote:

Hello all,

I need to make the win32 version of my gtk app accessible, in particular for the visually impaired (vocalization of menus and so on). After googling some I have an initial notion of how to proceed, but I'd much appreciate any comments from those who know more about the technology. Here are my current assumptions:

1. I need atk.  That's fine, Tor Lillqvist has given us an atk.dll.

2. Looks like I need GAIL, according to the logic set out at

So I need to port gail to win32, right? But I guess I don't need libgail-gnome, since it is gnome-specific and my app is "pure" GTK.

3. Then I need to make something like a port of atk-bridge, and I need to find the part of atk-bridge where it actually talks to a speech synthesizer (is it in fact atk-bridge that does that?) and add/substitute a component that talks to, say, the Windows speech API (as implemented in sapi.dll)

(Of course, if I succeed in this I'll contribute the code to GTK/gnome, if it's wanted.)

Allin Cottrell
Department of Economics
Wake Forest University, NC
gnome-accessibility-list mailing list
gnome-accessibility-list gnome org

gnome-accessibility-list mailing list
gnome-accessibility-list gnome org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]