GNOME Bugzilla – Bug 83134
not accessible widget
Last modified: 2004-12-22 21:47:04 UTC
Overview: No event from gnome-cd/cddb track editor. Steps to reproduce: Start gnome-cd application. Push Track editor push button. Actual result: No event from at-spi. Expected results: Events according with user actions.
This button is just made the same way as all the others, so can you give me a way to test this?
Not the button itself has problems, the new opened window. This window is not accessible.
That window is a seperate program called cddb-track-editor, so that might be the problem. It should be accessible, as most of it's widgets are the standard ones.
Did you load gail-gnome ? i.e set GTK_MODULES=gail:atk-bridge:gail-gnome cddb-track-editor being a bonobo component will require gail-gnome to be loaded. Bill ?
right, you need gail-gnome in addition to gail. setting the GNOME_ACCESSIBILITY environment variable to 1 (or true, or anything non-null) should load libgail-gnome automatically. However if you are relying on the GTK_MODULES environment variable instead, then deepa is quite right, you would need to specify gail-gnome in the GTK_MODULES string as well, i.e. setenv GTK_MODULES gail:gail-gnome:atk-bridge (assuming c shell). or just setenv GNOME_ACCESSIBILITY 1
o.k. I tried using at-poke. I was not able to see any events for applets and cddb-track-editor. My GTK_MODULES=gail:atk-bridge:gail- gnome. When i say "Poke" on gnome-panel, the tree view does not show any entries for the applets present in the panel. I had mini-commander, volume control & clock applet on my panel. Am i missing some setting or is there a problem with events from bonobo-components, Bill ?
I don't know, the libgail-gnome bonobo support has been shown to work in the past but there may be either regressions in libbonobo/libbonoboui, or something could be abnormal about the panel. One distinct possibility is that the panel applets may not be inheriting the accessibility settings. I would recommend using the gconf key for accessibility instead of the environment variable, as env variables may not be getting inherited by bonobo out-of-process components. The gconf key is in the /desktop/gnome/interface gconf 'directory' (not a real directory, but something used internally to gconf), you need to set "accessibility = true". You can do this with gconftool-2: gconftool-2 -R / /desktop/gnome/interface: ... accessibility = false that reports all gconf settings. gconftool-2 --help should give some info on using gconftool-2, or email darren.kenny@sun.com. Under some circumstances you may not have a /desktop gconf directory, I am not sure what causes this, but in such cases you must solve that problem first, then set the gconf accessibility key to "true".
Thanks Bill, at-poke was able to detect applets. But the problem with detecting cdd-track-editor still seems to exists.
Ok - it's true that a11y is not enabled. This seems to be because the application is activated by bonobo-activation, and thus accessibility wise we assume it will be a control - and thus don't register a toplevel for it, reasoning that it will be embedded in another window. In this case it's not true - and it's really unclear what to do about it . Really an at-spi bug I think.
Ok; so instead of using solely the bonobo_activation_iid_get check in at-spi/atk-bridge/bridge.c to see if we are a Control - we probably also need to add a GtkWindow hook in here like the one in gail: gtk_type_class (GTK_TYPE_WINDOW); signal_id = g_signal_lookup ("show", GTK_TYPE_WINDOW); g_signal_add_emission_hook (signal_id, 0, gail_toplevel_show_event_watcher, toplevel, (GDestroyNotify) NULL); and we need to register ourselves with the registry if a toplevel window is created ie. if the window is not a GtkPlug. Whether we should always delay registration until we throw up a real window is a moot point - perhaps not.
well, we definitely don't want to delay registration until we throw up a real window, since ATK/AT-SPI are intended to be functional for non-GUI applications as well as GUI apps. But I don't think this is really the right fix. I think this raises another nasty issue... if embedded objects ever launch toplevels which "look" to the user like separate applications (for instance, launchers), then we *do* want to treat the new toplevel like a separate application. On the other hand, in the case of the cddb track editor, is that a "new app" which needs to register with the accessibility registry, or is it a dialog child of the object (cd player)? I think it should be the latter, but the proposed fix would make it look like a separate application.
Created attachment 12313 [details] [review] Proposed patch
Propsoed patch has been reviewed on gnome-accessibility-devel and has been committed.