Can two ATK toolkits cooperate in the same app?



Greetings,
 
I am working on making a Python application accessible by creating ATK objects corresponding to the GUI objects of the application.  The Python app is under development and I recently fetched a new version of the source and it caused my ATK interface to stop working.  I've tracked it down to a single line in the Python app:
 
import gtk
 
As I mentioned in a previous posting, my implementation of add_global_event_listener() in the AtkUtilClass prints the name of the event for each listener added.  If I initialize the ATK system:
 
before "import gtk":
1. The usual list of events is printed
2. My AT-SPI clients sees the ATK object with role ATK_ROLE_APPLICATION that my ATK code defines.
3. The toolkit name (obtained by my AT-SPI client from AccessibleApplication_getToolkitName) is "PAPI" - the ATK tookit I'm using
 
after "import gtk":
1. no list of events is printed
2. the application object is not mine, it has name "atkapplication.py"
3. the toolkit name is "GAIL"
 
Marcus von Appen has documented "Wrapping ATK" here:  http://www.sysfault.org/atk.html.  It looks to me like the first toolkit to perform this wrapping is the one the app uses.  Is this limitation documented somewhere?    When my AT-SPI client starts exploring the accessible object tree rooted at the application object, it will see either the tree created by GTK or the tree create by PAPI, but not both.
 
I forsee a problem when I start trying to interface to Cally, Clutter's accessibility implementation.  Sure enough, this is a problem that Alejendro Iglesias, the author of Cally, has identified, see http://bugzilla.o-hand.com/show_bug.cgi?id=1738).  Cally is a toolkit just like GAIL (see page 12 of this PDF: http://personales.igalia.com/apinheiro/files/cally_guadec_2009_slides.pdf.gz).  If I have a GTK app that is accessible (GAIL, ATK) and I add Clutter along with its accessibility (Cally, ATK) to my app, only one of Cally or GAIL will successfully connect to ATK.  I do not see a way for the two toolkits to cooperate.
 
-Sam


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