Re: Loading a11y related modules and atk-bridge module directory



Hello,

I discussed this briefly with regards to Firefox in an a11y conference
call recently.

I personally think that the ATK API is broken. (The AtkUtil API in
particular)

What happens at the moment is that when an ATK implementation library
loads it sets its own AtkUtil implementation as the default / standard.
Li - Is this correct? Its hard to work out as it uses quite an obtuse
method. (Asking GType for a class with a particular name) The problem is
that the AtkUtil "getRoot" method ends up being implemented by whatever
was the last Atk implementation module to load. 

AtkUtil needs to disappear as an interface to be implemented by the
modules and instead be implemented in Atk iself. There should be an
AtkUtil method "setRoot (AtkObject *)" that way Firefox could load Atk
implementations without worrying about order and later set the root
AtkObject to be of whatever class it chose. 

Similar changes should be made to the AtkUtil events code. The Gail code
for registering event listeners and dispatching events should be moved
in to Atk. Gail, and other AtkImplementation libraries should then
inform Atk of events they feel are pertinent.

I'm sure there is a-lot more to this than I have found out, but I'm
certain that what Firefox / Mono / Silverlight are doing to modify the
order of module loading is a hack. There must be a better way to solve
this within Atk itself.

Thanks

Mark

On Thu, 2009-08-20 at 19:02 +0800, Li Yuan wrote:
> I believe Firefox has a similar problem. To fix it, we created
> environment variables (NO_GAIL_ENV and NO_AT_BRIDGE) to tell GAIL and
> atk-bridge "it is not the time to be loaded". So if applications set
> these environment variables, even they call gtk_init(), GAIL and
> atk-bridge will not be loaded. After that, applications can load them
> any time they want.
> 
> 
> On Thu, 2009-08-20 at 12:34 +0200, API wrote:
> > Hi,
> > 
> > right now, in most gnome applications, and as libgnome is deprecated,
> > GTK_MODULES is used to load both gail and atk-bridge. In order to get
> > this, atk-bridge was placed on the gtk moduledir directory, when if
> > fact, it is implemented without any gtk dependency.
> > 
> > But with Cally, and perhaps any future toolkit (I think that there are
> > plans to use Qt apps with at-spi, so probably they will use the same
> > atk-bridge), probably atk-bridge should be placed in a different
> > place.
> > 
> > In the same way, probably we will have mixed environments, ie,
> > clutter+gtk, and both Cally and GAIL will need to be loaded, but the
> > order matter (it is not the same gail:cally:atk-bridge, that
> > cally:gail:atk-bridge).
> > 
> > So, probably we will require a common application-level way to load
> > the a11y related modules. Yes, I know, this is what gnome-program
> > made, and libgnome is deprecated ...
> 
> I agree that we should find a more common place to put atk-bridge, so
> other toolkit can use it.
> 
> Li
> > 
> > I'm not sure about the proper solution, so probably apps will need to
> > load the modules by hand for the moment.
> > 
> > The source of this:
> > 
> > http://bugzilla.openedhand.com/show_bug.cgi?id=1738#c3
> > 
> > ===
> > API (apinheiro igalia com)
> > _______________________________________________
> > gnome-accessibility-list mailing list
> > gnome-accessibility-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list
> 
> _______________________________________________
> 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]