Re: [g-a-devel] at-spi idea: two registration points of entry

Right now, at-spi2-atk calls a method called GetRegisteredEvents to determine what events are being listened to. It will not send events over the bus if no one is listening to them. However, this does not currently apply to device events, and the code could be more intelligent (ie, not even register for signal handlers if no one is listening for the events, rather than just seeing the signal from GAIL and suppressing the sending of an event).

On Tue, 22 Feb 2011, Piñeiro wrote:


probably this will lead to another bug under the umbrella of our
"towards ATK 2.0" but [1], but I would to discuss a little it first.

This idea appeared during the last events related to the integration
of accessibility on the desktop, first Bastien Nocera and the
gseetings and then Matthias Clases gail revamp. One of the issues
mentioned is that on a perfect world, the accessibility framework (ie
at-spi2) should be always running. That would avoid this "set on the
accessibility requires to make a log out".

Well, the main reason that prevents it, is that with the accessibility
enabled (at-spi2 running), there are a overhead related, and in some
cases (like bad use of gtktreeview-treeviewmodel) it could lead to
some apps not usable at all.

One comment of Bastien triggered the idea I have. He said that
accessibility should be enabled as soon as Orca is started. And then I
realized something. For a user that doesn't use any AT (Orca, or
Caribou, etc), enabling the accessibility means that the apps
registered on at-spi2 will start to sent events and other information
at-spi2, but nobody is listening to at-spi2 from the other side, so
that information is useless.

So I'm proposing to debate if have sense to add an AT registration.

So, it would be something like:

a) Target apps register to at-spi2 (as it is done right now on
  adaptor_init, bridge.c::664)

b) AT apps register to at-spi2 using an alternative (not existint
  yet) API.

So, when apps register on at-spi2 on a), if there is any AT listening,
the bridge will start to add the listeners to their events, and so on,
as it is being done now.

But if there isn't any AT listening, this registration will not be
done, they will be just added to the register. If after some time any
AT is registered, at-spi2 will ask to any app registered, to start to
add the listeners and so on. In the same way it would be good to add a
mechanism to remove the event emission on any app if the count of AT
apps listening reaches zero.

With this mechanism, at-spi2 can be running always, and apps always
register to it, as it should be really safe to just add the apps to
the register. As far as no AT tools is executed, that would just mean
that the applications will be listed on the register, but there will
not be any "hypothetical unstable interaction" with the at-spi2.

Opinions, ideas?



API (apinheiro igalia com)
gnome-accessibility-devel mailing list
gnome-accessibility-devel gnome org

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