Re: [g-a-devel] Coming to grips with the state of a11y in gtk



From: Matthias Clasen <matthias clasen gmail com>

> I've spent some time this weekend starting to explore how moving gail
> implementations into gtk 1-by-1 will work in practice. I didn't get
> very far (GtkWidget, GtkContainer and GtkImage), but the exercise
> proves very useful for spotting all the things that should be
> straightened out in the gail implementations.
> 
> http://git.gnome.org/browse/gtk+/log/?h=drop-gail
> 
> if you want to take a look. I expect to spend some more time on it
> over the coming weeks. From my perspective, the next steps for this
> are:
> 
> 1. move remaining implementations over, keeping a list of things to
> clean up later

Like a bug per widget to move, or the work will be done just on this
git branch?

> 2. add replacements for libgailutil api to GtkTextBuffer and where
> else they belong, as needed

It has sense, as libgailutil mostly delegates on
GtkTextBuffer. Anyway, on a perfect world, this would became a
gtk-independent thing (but I feel that this is too "high level" to be
included on glib).

Right now ATK implementation on clutter lacks a implementation of
those methods, postponed due other things, but that would require to
be solved somehow, and I really feel that just reimplement it would be
a waste of time (but right now, is the solution I have in hands).

> 3. move setting up the factories to gtkmain

If we move gail to gtk, why maintain the factories?

Some people opposed to use the factories as the default way to
instantiate the accessible object, ie. Owen Taylor here [1]

For this reason, on St the factories are not being used, so
StWidget->get_accessible was redefined. In order to not redefine
get_accessible on any object, a virtual get_type method was added (you
can review the patch here) [4]

>  - at this point, gail should no longer be needed -
> 
> 4. start on all the FIXMEs that got added in step 1
>   - drop the crazy focus handling contortions

As I commented to Li Yuan on a private mail, it would be good to
reduce as much as possible the code on gail.c, so all the a11y support
for the gtk hierarchy would be implemented on the gail hierarchy.

Right now, on clutter, the code con cally.c is just the factory
registration. Anyway, I know that this is not a perfect example, as
gail is more complete, and has more requirements.

>   - drop excessive use of signal handlers
>   - don't create an extra  text buffer for each text-containing widget
>     in the world
>   - etc
> 
> 5. port GtkAccessible to use AtkGObjectAccessible; clutter uses that,
> and it looks a little cleaner

For all the reasons above, I added a factory-related item on the atk
roadmap [3] (that should be also a "towards atk 2.0" bug), and also
created a but on clutter related to debate it is a good idea to keep
using AtkGObjectAccessible on Clutter [3].

BR

[1] https://bugzilla.gnome.org/show_bug.cgi?id=626658#c5
[2] http://live.gnome.org/Accessibility/Roadmap#Augmented_and_Consistently-Implemented_Atk
[3] http://bugzilla.clutter-project.org/show_bug.cgi?id=2371
[4] https://bugzilla.gnome.org/show_bug.cgi?id=636717#c17

BR

===
API (apinheiro igalia com)


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