I forgot to mention one more issue. Any time a python application has a main thread managing a pygtk interface, and a second thread directly modifies the state of widgets in the main thread, and if Orca is running, gnome locks up, and you have to restart the X session. This behavior seems unique to pygtk based apps.
It seems to be a bug in at-spi-registryd, but if anyone has insight into this bug, please let me know. I'm starting debugging this with zero idea of any of this code. Thanks, Bill On Mon, May 3, 2010 at 11:21 AM, Bill Cox <waywardg...@gmail.com> wrote: > I've been trying to make some python apps that use pygtk more > accessible to the Orca screen reader. I've run into problems all > related to gtk.TreeView. > > The CellRendererPixbuf class is used in applications to show various > icons, like stars in a user rating. Orca reads these images a > "image", with no further information. If I have a widget, I can use > the widget.get_accessible() method to get it's accessibility object, > and then the accessible.set_name() and accessible.set_description() > methods to allow Orca to know more about the icon. I don't see any > way to get the widget in a TreeView for these icons, but they must > exist, as Orca sees them. Could we add a method to either get the > widget, or a method to get the accessible object of the widget, either > to the Treeview given a path or iterator, or on the cell renderer? > > The gtk.ListStore class is a great way to keep data associated with > rows in a TreeView table. However, the TreeModelSort and > TreeModelFilter classes don't have any set_value function in their > interface. This results in the model data not following any changes > the user makes, at least not in CellRendererToggle cells. To get > around this problem, Python programmers store their data outside the > model, which is fine for most users, although a pain to the > programmer. However, Orca only reads the data in the treeview models > for checkboxes, and so is unable to say what changes the user has > made. Gross hacks are required to manually alter the model whenever > the user changes the state of a checkbox. Could we add pass-through > set_data functions to TreeModelSort and TreeModelFilter that detect if > the child model has a set_data function, and which calls that if it > exists? Then, the TreeModel code should be able to set the model to > reflect the state of the widgets. I think that would make life better > for everyone. Alternatively, could we alter the gtk atk code to read > the state directly from the checkbox widget? > > Thanks, > Bill > _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/