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/

Reply via email to