Re: Linux Window Managers and Accessibility
- From: Bill Haneman <Bill Haneman Sun COM>
- To: Brian Cameron Sun COM, jsh pixelslut com
- Cc: sawfish lists eazel com, wm-spec-list gnome org, gnome-accessibility-list gnome org
- Subject: Re: Linux Window Managers and Accessibility
- Date: Wed, 6 Jun 2001 14:17:02 +0100 (BST)
Hi:
John replied to Brian's forward, on accessibility SPI support involving the
window manager.
A number of our needs are addressed by wm-spec properties, which is great.
I will for the most part not comment further on these parts of the SPI, but
will elaborate on a few other issues.
>|SomeReferenceToVirtualDesktop *getDesktop (in short n);
>
>Why can't the reference simply be the integer n?
It can. of course. The Accessibility SPI can take responsibility for creating
"AccessibleDesktop" container structures, the point here is that for any
property one wishes to obtain for a desktop, it should be possible to ask for
that property for the "Nth desktop".
>|
>|long getChildCount ();
>|
>|[the above function, for an "AccessibleDesktop", should return the
>|number of accessible applications that are associated with that
>|virtual desktop.]
>
>What is an accessible application?
>
>Is it different to a window? Is there a many-to-one mapping from
>windows to accessible applications?
In short, yes to both.
Again, it's mostly the responsibility of the Accessibility SPI implementation
(which I will hereafter refer to as the AccessibilityBroker) to return the
AccessibleApplication children of an AccessibleDesktop. It is the
responsibility of applications which support the Accessibility SPI (thus,
"AccessibleApplications" to register with the AccessibilityBroker. What is
needed from the window manager is a way to map these AccessibleApplications
onto desktops.
AccessibleApplications may reside on a different host, thus in order to
identify them something like a PID:hostname pair is probably required. At any
rate we need to be able to determine for each AccessibleApplication which
desktop(s) is is resident on. In the case of AccessibleApplications which do
not map any windows, it's up the the AccessibilityBroker to decide whether they
belong to "no desktop", "all desktops", etc., only for AccessibleApplications
which map windows on particular desktops do we need to involve the window
manager.
I notice that John did not mention this part of the SPI (getPIDforIndex,
getIndexForPID() ). As I noted above the mapping should probably be not just a
PID but include host information as well. Perhaps a better API would be:
boolean desktop_getPIDForIndex (in short desktop,
in long index,
out long pid,
out long hostIP);
// returns false if not a member of the desktop in question
long desktop_getIndexForPID (in short desktop,
in long pid,
in long hostIP);
This is the area of the SPI/API that I am most concerned about, it seems
straightforward to implement the rest. But we need a way to associate the IDs
that the accessible apps give the AccessibilityBroker when they register with
the window manager's information about which windows are mapped in which
desktops. Note that since the accessibility support is on a per-app basis (not
per-window) we need to convert from windows to apps as well.
>|APPLICATION_REMOVED (or moved from one desktop to another)
>|
>|Note that since the last two events concern the relationship between apps and
>|virtual desktops, not "window create" or "application exit", I think they
need
>|to be delivered by the window manager and not the application.
>
>I don't understand this relationship, so I'm not going to comment on
>how these would be implemented.
This just means that an application's desktop mapping (i.e. that of one or more
of its windows) has changed.
>Anyway, I don't think there needs to be anything window-manager
>specific about this - it should be reasonably simple to implement a
>shared library to do all the property and event monitoring...
>
> John
Thanks, and best regards,
Bill
------
Bill Haneman x19279
Gnome Accessibility / Batik SVG Toolkit
Sun Microsystems Ireland
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]