Re: About making public gtk accessibility headers

This thread didn't take too much attention, but I assume that it is due
the post-GUADEC back-to-home trip. Anyway, I want to add some extra
information here.

On 08/01/2012 04:42 PM, Piñeiro wrote:
> So, the obvious solution could be use
> gtk_widget_class_set_accessible_type on EvView. But the problem is that
> the headers for the accessibility objects on gtk are not public (in
> fact, if you take a look to gtk/a11y get_type methods has a '_' prefix
> so we assume that they are private). Probably we could keep doing some
> kind of hack to obtain the parent accessible type. But remember that we
> are talking about hacks like the ones on link [2] and specially link [3].

I was looking a little more on the code, and I found another problem.
One that would mean getting the parent accessible type not possible.
Factories are not only used to set the GType of the accessible object
for a specific gtk widget GType, in order to instantiate it. It is also
used to get the GType of the parent accessible class. I will to explain
myself with the EvView example:
  * EvView is a GtkContainer subclass.
  * So EvViewAccessible should be a GtkContainerAccessible subclass.
  * But, EvView is not part of gtk+, and GtkContainerAccessible.h is not
  * So EvViewAccessible->get_type used the atk factories/registry to get
the accessible type for GtkContainer, in order to use it as his parent type

But this is not possible anymore. gtk is not using the atk factories
anymore. That includes GtkContainer. So as the headers for the
accessible classes at gtk are not public, and the factories are not
used, there is no way to get the type of the accessible classes. So at
this moment any application/toolkit can make a subclass of any gtk
widget, but not a proper subclass of the related accessible class.

So the options are:
  a) Make gtk accessibility headers public (my preferred option)
  b) Go back to use again the factories at gtk+
  c) Make impossible to any application/toolkit that require to extent
gtkwidgets to properly extent his accessibility support (this includes
evince, evolution, etc.)


Alejandro Piñeiro Iglesias

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