Re: [Usability] GTK+ at the UX Hackfest

On Tue, 2010-03-02 at 08:42 -0500, Willie Walker wrote:
> Li and I had talked about this in Ireland last April. I remember from 
> the conversation that dynamically loading the a11y modules after an 
> application has already started was probably OK, but that unloading 
> them while the app was still running would cause them to crash.  Li - 
> is this still not the case?  

It is almost impossible to free all accessibility objects and disconnect
all signals GAIL and atk-bridge have connected. If we unload the modules
without free the objects and disconnect the signals, applications will
probably crash. Although it is possible to just deregister the
application from registryd when modules need to be shutdown, in this
case, the modules are not actually unloaded but there will not be IPC
(D-Bus or CORBA) calls. So it "looks like" accessibility has been

> In addition, Li will the mechanism for the 
> GTK+ application to register the application also get called 
> appropriately if the modules are loaded after the application has been 
> initialized?  I thought I remember us discussion some potential issue 
> with this as well.

I think the modules' initialize function will be called appropriately.
The problem is that some GUI objects' accessibility peers may not be
created (this should not be the case for D-Bus version because
atk-adaptor sends the hole accessibility objects tree to ATs). But if
there is an AT running, the accessibility peers can be created when AT
goes through the accessibility object tree. I should test this, but
instant-apply/instant-load seems don't work for me.

> The thing I think we care about the most is preventing the need to log 
> out and log back in to enable accessibility for applications on the 
> desktop.  Preventing a crash when a11y is disabled would also be 
> necessary -- if disabling the dynamic unloading is the way to do that, 
> then I think it would be acceptable to say that you need to log out and 
> log back in for the disabling of a11y to take effect.


> In addition, I don't remember there actually being a mechanism in place 
> to signal that a running GTK+ application should load new modules when 
> the /desktop/gnome/interface/accessibility key changes.  Bastien - I've 
> never fully grok'ed the underlying mechanisms that trigger the 
> XSETTINGS changes to occur. Does g-s-d do this, and does GTK+ react 
> when the property changes?
> Will
> On Mar 2, 2010, at 7:27 AM, Bastien Nocera wrote:
> > On Tue, 2010-03-02 at 12:22 +0800, Li Yuan wrote:
> >> Mathias made the patch
> >> ( ) to
> >> make at-spi support XSettings.
> >>
> >>> From a11y side, gail and atk-bridge/atk-adaptor, as GTK+ modules, 
> >>> should
> >> be able to be loaded at any time. If there is no registry daemon
> >> running, for CORBA version, at-spi-registryd will be started through
> >> Bonobo activation (atk-bridge does this job); for D-Bus version,
> >> at-spi2-registryd should be started through D-Bus activation
> >> (atk-adaptor does this job).
> >>
> >> There are also gnome_accessibility_module_shutdown functions for these
> >> A11Y modules. Maybe we need a unified way to shutdown GTK+ modules.
> >
> > Right, it seems the discussion we had with Willie was with outdated or
> > incorrect data, so let's step back and look at the original problem
> > again.
> >
> > We'd like to be able to enable/disable a11y in applications without a
> > session restart, and, if possible, when deactivated, that the modules
> > are unloaded and all a11y related functionality is torn down.
> >
> > The goal is to make it easier for developers that do not need a11y to
> > test their applications with things like screen readers and other a11y
> > helpers.
> >
> > What is missing for this to work? Can we remove the "you need to 
> > restart
> > your session" from the a11y capplet in the control-center?
> >
> > Cheers
> >
> > _______________________________________________
> > gnome-accessibility-list mailing list
> > gnome-accessibility-list gnome org
> >

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