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 [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
