Re: X11 and the accessibility API
Re: X11 and the accessibility API
- Subject: Re: X11 and the accessibility API
- From: Ben Byer <email@hidden>
- Date: Tue, 06 Nov 2007 04:36:44 -0800
On Nov 6, 2007, at 12:12 AM, Nathaniel Gray wrote:
Folks,
One of my long-standing annoyances with X11.app is that it doesn't
give *any* info to the accessibility API about its windows. The
accessibility API is really handy for doing things like moving windows
programmatically, enabling useful apps like Witch and my own app
Forget-Me-Not. Unfortunately, I have to special-case X11 and do a
bunch of Xlib hackery just to get my app to work with X11, and authors
of other programs generally can't be bothered to do the same.
Now that Apple seems willing to accept outside patches I would be
willing to try to add some accessibility support myself, if I knew
where to look. Any thoughts or suggestions would be welcome. My
concern in the past was that I might need the quartz-wm sources to
make this happen. Does anybody know if that's the case or not?
Yup, still have <rdar://problem/4606472> X11.app should expose minimal
accessibility information about its windows
in my queue :)
I asked the person in charge of quartz-wm that very question, and he
said: "The X server owns the windows, so I think it would have to
come from there - the X server has the same information that the WM
has.."
I haven't had a chance to look further or to verify it. However, the
3-minute look says:
If we're going to content ourselves -- at least at the start -- to
merely giving the Accessibility API the title of each window, then you
should probably hook into the AppleWM handling path. Take a look at
ProcAppleWMSetWindowMenu in hw/darwin/quartz/applewm.c, or
X11ApplicationSetWindowMenu in hw/darwin/apple/X11Application.m. Then
again, that will give you a list of titles of windows, but not a
mapping between windows and titles.
So, maybe http://tronche.com/gui/x/xlib/ICC/client-to-window-manager/XGetWMName.html
would be more appropriate? That's a client function, but it ends up
caling XGetTextProperty, which will cause the server to execute
ProcGetProperty in dix/property.c, so maybe you should look at how
that's implemented.
Once we can map titles to windows, we can the start interfacing with
the Mac OS X Accessibility protocol -- for those who haven't looked at
it, see http://developer.apple.com/documentation/Accessibility/Conceptual/AccessibilityMacOSX/OSXAXModel/chapter_4_section_1.html
Going beyond that will be more difficult, and will likely involve http://www.linux-foundation.org/en/Accessibility
--
Ben Byer
CoreOS / BSD Technology Group, XDarwin maintainer
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
This email sent to email@hidden