Re: atk <-> MSAA once more



Hi Allin,

I'm afraid I'm not that expert at MSAA; I left the Windows screen reader business before MSAA was released. However, based on my work on the Java Access Bridge for Windows, I'm guessing your going to need to translate a Win32 WindowID (and HWND or some such) to the top level GNOME GTK+ object, and from there use ATK to get the ATK_Accessible from that GTK+ top-level window. Once you've done that, general code that you'll need to write would create proxy MSAA objects for each ATK_Accessible you find, populating it as appropriate (based on the sub-interfaces of ATK that are implemented, and translating the subset of ATK that MSAA implements).

The initial HWND->GTK+->ATK magic may prove tricky however; and I know nothing about the GTK+ port to Windows to help you further...


Regards,

Peter Korn
Sun Accessibility team

Allin Cottrell wrote:
I'm following up on an issue I raised a few weeks back. I got busy with other things, but would still like to take a crack at bridging between gtk/atk and MSAA to provide a measure of accessibility for gtk apps on win32.

So far I have made a Windows DLL of libgail (though I'm not quite sure what that buys me) and have done some reading on MSAA. I'd be grateful if anyone could check my (still vague) understanding of what has to be done.

From the MS docs, I gather than if Jaws (say) is to read the menus

from a gtk appplication, it proceeds by asking OLEACC to quiz the app. OLEACC sends a WM_GETOBJECT message to the "server" (e.g. the gtk app). The server either returns zero (in which case OLEACC attempts to construct a proxy), or it returns an "Iaccessible object". I'm supposing that if the gtk app returns zero, OLEACC is not going to make much headway trying to construct a proxy, since the app is not composed of standard Windows controls. Therefore (?), the app will have to build and return an Iaccessible object.

I can sort of see from the MS docs how one might go about constructing an Iaccessible object. What I'm very hazy on is how one would hook this up with atk/gail. Or how one would receive and recognize OLEACC's WM_GETOBJECT message in the first place.

Would this involve (something like) creating an intermediary process which would listen for WM_GETOBJECT, and with which one's gtk app would be "registered" in some way. Is this roughly what gail does on gnome (or is it at-spi that does that)?

Sorry for all the questions. It may be that I'm simply out of my depth here, but I'm still keen to try if I can get a better handle on what's required.

Allin Cottrell
Department of Economics
Wake Forest University, NC
_______________________________________________
gnome-accessibility-list mailing list
gnome-accessibility-list gnome org
http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list





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