Hi Mark, On Thu, 2009-12-10 at 00:46 -0800, Mark Doffman wrote: > Hi Li, > > > Ginn found a bug today that when Firefox created a new window, the > > window can not be seen in Accerciser. We think the problem might be that > > the "index" field of "children-changed:add" signal is missing. Actually > > it is not missing, it is 0. > > If the index is 0 and that isn't actually the child that has been added > then it will cause problems. The index is used to add new children to > the cache even if it isn't sent in the UpdateAccessible signal.
Yes, the index is always 0 even if Firefox sends out the signal with other numbers. > > > > > So I checked the code and find atk-bridge does not emit > > "children-changed" signals anymore. Instead it emits "UpdateAccessible". > > And on pyatspi2 side, the old cache and the new cache are compared to > > determine if this is an add or a remove and send "children-change:add" > > or "children-change:remove" to ATs. (Please correct me if I am wrong.) > > > > This comes up with two questions: > > > > 1. In at-spi2-core/xml/org.freedesktop.atspi.Accessible.xml, > > "object:children-changed" is one of the signals of accessible. Now > > atk-bridge doesn't emit it anymore. This can be a problem if we develop > > another language bindings used by ATs. > > There are a number of inconsistencies in the XML description of the > protocol. At the moment it doesn't properly match what is going on in > the code. At some point we will need to do a thorough analysis of it. > Great. > > > > 2. The index information is not passed to ATs. So there may be bugs if > > ATs rely on the index number (or the AtkObject which is the second > > arguments of children-changed signal). > > I'm not sure what you mean by the index information not being passed to > the AT's. I mean Firefox sets the index to 2 or other numbers, and sends out the children-changed:add signal. But on Accerciser side, index is always 0. So the value of index is not correct. > An array of objects is passed to the AT's the index > information is implicit in the array structure. Its an ordered list. How the list is passed to AT's? I don't see the children-changed signals have such a field. Or do you mean ATs should get the list manually when there is a children-changed signal? > > > > So is it possible to emit "children-changed" signal in atk-bridge and > > use a separate listener in pyatspi2 to listen it? > > I've been thinking about doing this. It would make the code in Pyatspi > simpler, and so might help out if anyone wants to write new bindings. Yes. Thanks, Li _______________________________________________ Gnome-accessibility-devel mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel
