Announcing ATK/AT-SPI Hackfest

This will come as no surprise to many of you at this point, as we already talked about it during the weekly accessibility meetings, but I would like to officially announce that we are having an ATK Hackfest in May.

For the new people, ATK is the accessibility toolkit. Right now the main and more extensive implementation is GAIL (GNOME Accessibility Implementation Library), although it is also used in Clutter (Cally), Java (via the Java Access Wrapper), and others. AT-SPI is the accessibility service provider interface. Accessibility tools “uses” AT-SPI in order to interact with the applications. ATK works as the common language that target applications uses to expose themselves to AT-SPI, so a deep change on ATK would require an update also in AT-SPI. In the same way, we would like to get a one-to-one relation between the interfaces on ATK and AT-SPI as much as possible.

Applications and toolkits do not all implement ATK consistently. This has a negative impact on the assistive technologies ability to provide a consistent cross-application user experience. Even in applications and toolkits in which the ATK implementation is complete, the information obtained from a single event and/or object is not always sufficient for an AT client to proceed immediately; instead it is often necessary to perform further queries and make decisions based on heuristics rather than concrete data. This has a negative impact on both performance and reliability.

Accessibility team has come to the conclusion that this is time to improve on ATK no matters if that means an API break. The primary goal is to take what we have learned from years of ATK/AT-SPI and make things better for all involved, and create the basis of what ATK 2.0 should be.

Location: Igalia (A Coruña, Galicia, Spain)
Dates: 9-15 May

Who Should Attend?

  • Developers of applications and toolkits which implement ATK
  • Developers of ATK and AT-SPI
  • Developers of Assistive Technologies which rely upon AT-SPI
  • Developers of testing solutions which rely upon AT-SPI

For more information, including the proposed task, pre-event “homework,” venue, and associated costs, please see:

For the moment the event is sponsored by Igalia (Venue, part of the food) and the GNOME Foundation (travel+hotel costs as far as the current a11y budget allows it). If any other company want to fund this hackfest somehow, please contact me or Joanmarie Digss (and thanks in advance)

My 5th anniversary as a Igalian

5 years ago, 13th of January 2006 I became a Igalian.

2 years earlier I had a student internship on the old offices, and it started my ‘brainwash’. Although I started to write Pascal (my first real programming language, as I don’t include my little LOGO experience when I was 10) since I was 12 years, during a lot of years I was really skeptical about this “free software thing”. And sincerely, the reason was because the first people that tried to convince me about Free Software were using this typical condescending “Free Software is just cool and will save the world from the Evil” attitude.

Whatever, forget that off-topic rant.

My first day on this internship was funny. After my first car accident I arrived to Igalia office, and Alejandro García (Alex, our beloved Igalian in the shadow) started the tutoring. “Do you know something about gtk+ ?”, “No”, “Do you know something about autotools ?” “No”, “Do you know something about glade ?” “No”, and finally with a desperate face “Do you know something about C ?” “Yes”. (Because in the end, we still have C)

The summary is that this “free software thing” was the best environment to keep doing something that I beloved since I was 12 years old: program. Decide to do a program, and with your big or small knowledge of a programing language and the remaining power of your last operative brain cells, conclude the right steps, write a program and feel satisfaction when you found that the program does what it was supposed to do, learning from other people code and sharing with them because reinventing the wheel is just a waste of time.

5 years and a internship. A long time related with free software, with a lot of projects involved. First with Fisterra. And after Fisterra, several other projects, Maemo (now Meego,) Hail, Cally, the Accessibility Team and so on.

And on the best place to do so. This post has become somewhat disperse, but remember that the title is “My 5th anniversary as a Igalian”. All this experience during those years showed me that I was not wrong about how I saw Igalia when I entered and about their advantages and philosophy. Igalia tries to obtain the real value of the workers, and share the concept of the company among all of them. They don’t work because someone give you a order, the people work because is their company.

In the end, probably this is the best idea, involve all the people. All the companies ask their workers to “work for the company”, make an extra effort as you “should think in the future of the company” without giving you any extra value or greetings. As Igalia share the responsibility, and the final purpose of Igalia is become a partner (a real igalian, in the end), you “work for the company” and “think in the future of the company” as YOU are the company.

Igalia real value is the group of people that conform that, and the synergy of these people working together. A company I’m proud of belong to.

Concluding, I’m old enough to say that I have worked 5 years for an (almost) 10 years old free software company. Some people says that 5 years on computer science is a lot of time, enough time to be obsolete, but as Jethro Tull says, I’m “Too Old to Rock ‘n’ Roll: Too Young to Die!”. So as my plan is not die today, lets rock and roll 5 years more!

GNOME Shell accessibility status

These days some people have started to ask about the current GNOME Shell accessibility status, probably a collateral effect of the Boston Summit, as Joanmarie Diggs and Alejandro Leiva (Orca maintainers) were talking there with GNOME Shell developers, mainly about the current Universal Access UI and how fit Orca on the new ui experience. They are planning to make a summary post so stay tunned.

Anyway, I would like to share my view of the current accessibility status on GNOME Shell. Using the GNOME Shell roadmap as a guide:

  • Magnification: Joseph work has been integrated on GNOME Shell. Not as a extension or something like this, it is a real feature of GNOME Shell. So good news.
  • Design and implement keyboard navigation: Some months before GUADEC Dan Winship started to work on on keyboard navigation, and it has been really active these past months. This includes support on the Shell Toolkit itself (already on master), and then use this on the different regions of the shell, like the overview or the chrome, which provides a promising keyboard navigation. Note that in the case of the overview this is somewhat on a idle, as it is planned a overview relayout (check the overview-relayout branch).
  • Hook up accessibility to ATK: basic ATK support is right now directly provided without loading any Cally module, as Cally is now part of Clutter, and part of the stable Clutter 1.4 release. It is true that Cally can be more complete (this statement applies to any library), but the current status should be enough for GNOME Shell purposes. Of course, new bugs can be detected, and I should need to take a look to this bug, but I don’t see Cally as the main issue here. In the same way, I provided a patch proposal to load the atk-bride on GNOME Shell. The main problem with this patch is that although working, it is not clear if it is the final solution.
  • Comprehensively make controls accessibility: new elements are being defined on the Shell Toolkit, and most of them would require to export appropriate roles and actions. I have started to review this, so I have already created a patch for StLabel, and I have some other items in my TODO, like StWidget tooltips, and the new objects declared on the Javascript code. This is related with the previous keyboard navigation task, as I’m detecting most of then while testing the keyboard navigation patches. So I reported some additional bugs related to provide extra ATK information on the overview navegation (with patches) and the chrome. As there isn’t anything equivalent to gtk widget mnemonics those patches are using direct calls to ATK methods.
  • Theming: it is already reported as a bug, but AFAIK, there is not immediate plans to implement it.

So, if you apply all these patches, you get Orca speeching out most of the events from GNOME Shell. Part of the sections of GNOME Shell can be used using just the keyboard. In the cases that GNOME Shell is using the new core keyboard navigation support Orca reacts to the focus change, although the information exposed is only meaningful on part of the cases.

Apart from this, GNOME Shell includes an accessibility tray icon, with the intention of switch on/off the accessibility features, or start the Universal Access UI to configure those tools. But it is not still complete for the moment, and it seems more a mock-up. The screen reader switch doesn’t starts any screen reader, and although you can start the GNOME Shell magnifier you can’t configure it on the settings dialog (right now you need Orca to do that).

Conclusion

Most (all?) of the missing accessibility holes are detected, and a lot of them have provisional solutions. The process to manage the GNOME Shell with just Orca and the keyboard has started. In fact in my short-medium term plans was updating and finishing the current additional ATK support required on the keyboard navigation support, and create something like a branch or PPA and ask some user feedback (so new bugs). This will be postponed, due last changes on keyboard navigation and the overview-relayout.

But, most of then are provisional solutions, and it is still required to analyze them. Although it works, it is not clear if the current proposal to load the atk bridge, or start to add atk calls to the ui javascript code are the best options. Those should be also good solutions. Using Owen Taylor words “In my mind accessibility has to be held to the same high standards as everything else in GNOME”.

So as it was already stated, it would be really unlikely that GNOME Shell will ship with full accessibility support for GNOME 3.0.

BUT, as the roadmap states, accessibility is being taking into account. People are working on it, with several bugs, patches, and continuous patch review. So what now is a “rough draft”, at that moment will be a “real draft” of the required accessibility support on GNOME Shell, enough at least to start to ask users for feedback, and with a perspective of what it is missing, with the purpose of polish them for the following releases.

GNOME Accessibility Hackfest is over

Hackfest Logo
As you probably already know, most of the gnome a11y community were this week on Seville, on the GNOME Accessibility Hackfest, taking the most of the fact that some of them were already planning to assist the first international AEGIS conference.

Not too much blogging during this week, sorry. It was a really busy week. Assisting the conference or trying to hack something (I’m cooking some patches, imminent bug report).

Although it was a exhausting week (and somewhat a jinx week), I really think that it was worth the effort. Being face-to-face allow us to have meetings, coordinate ourselves, check the current status of GNOME accessibility and planning the priorities having in mind GNOME 3.0. And of course code. You can see in the following picture that Mario can work on WebKitGtk a11y in any place, and that he can’t stop in the middle of a task:

Mario Hacking

In the same way, the conference allow us to promote GNOME, and GNOME accessibility in particular, to a different public. Several AEGIS presentations were related to GNOME projects, some of them about specific GNOME modules and other about projects using GNOME, like the Guadalinfo project.

For any reason I received the award “Best accessibility project in the spirit of AEGIS”, due my work related to Cally and gnome-shell accessibility. In my opinion other people deserve it, like Joseph Scheuhammer, as his gnome-shell magnification solution is already integrated on gnome-shell, while my patches are still WIP. In fact, IMHO, this award should be granted to the GNOME accessibility community as a whole. Probably I fit more in the “spirit of AEGIS” because the most repeated word on AEGIS presentations were “prototype”. Who knows.
Aegis Award

I hope that all the presentations and the extra publicity of this award becomes a push to the interest to GNOME from the people attending the conference.

Finally I want to say “thank you” to a lot of people. I will try to not forgot anyone. If this is the case, please forgive me.

Thank you to the GNOME Foundation. Without his sponsorship most of the attendees would lost the hackfest. Thanks to the local team, mostly Emergya people, to coordinate several parts of the hackfest and behave like the perfect hosts during our time there. Special remark to Alejandro Leiva, as the in-theory common task of find and book the hotel was finally a little hell-in-earth. Thanks to Emergya and Yaco for sponsorship the BeerFest. Thanks to Joanmarie Diggs, as I’m always learning new accessibility things from the wisdom she irradiates.Thanks to all the people to make the effort to come to the hackfest.

And finally, thanks to the GNOME accessibility team for this really big and heavy present that they give me during the hackfest (if anyone doesn’t catch the joke, please check this video).

Cat herder

Wow, this was a really big post.

Talking on GUADEC ES before going to GUADEC

Today I’m assisting GUADEC-ES 7. As Berto told before, this year it is being organized in Coruña, in the same faculty I have been studying. Just 10 minutes from my home, so no excuse to not give a talk there.

I have just done that. It was in spanish, but a translated title would be “GNOME Accessibility: How it works, current status and his future towards GNOME 3.0”. The first part of this talk is a general description, and the other is a narrative form of the current GNOME 3.0 “accessibility issues list” that the accessibility community is reviewing in each weekly meeting.

I will upload the slides soon (sorry, in spanish).

Next step: GUADEC

Cally integrated on Clutter

I will stop making Cally releases. This is because this Wednesday something important (from Cally POV) happened. Cally source code was moved to Clutter repository.

Some people could think that this is the same that happened to GAIL, that started as a isolated library, and then was moved to GTK+ repository. But there is a major difference. GAIL is still a runtime loadable module, and compiles against GTK+ as a independent library. So this was just basically a GAIL source code move.

But now Cally is not a loadable module anymore. It is part of Clutter. Clutter calls Cally directly in order to start accessibility support, so accessibility becomes one of the pieces of Clutter, instead of a external plugin providing this feature. I would like to thank Emmanuele Bassi for all the work done in this integration. In fact this integration was his idea, during the discussion of two bugs related to how to use/load Cally in gnome-shell, during the GNOME accessibility hackfest on CSUN.

I hope this change makes things easier. Now we still have to implement a proper way to load the bridge between Cally (the ATK implementation) and AT-SPI, the atk-bridge.

Bridge to Cally

BTW, I’m going to guadec, so this means that I need to put here this:

Going to GUADEC

And I will have there a talk about Cally, at first scheduled on Wednesday 28th July. See you there.

Would you like to go a GNOME Accessibility Hackfest in Seville?

Logo

On October 6-8 the AEGIS project is hosting its 1st International Conference of AEGIS & 2nd Pan-European Workshop/User Forum in Seville, Spain. We expect to have a significant GNOME accessibility presence at the event, including a booth.

Taking into account the success of the CSUN GNOME accessibility hackfest we would like to try to organize one here as well. Remember that this would be just some weeks after the GNOME 3.0 release, so for sure there will be a lot of things to improve, as the current accessibility GNOME 3.0 checklist is overwhelming. We have started a live gnome page in order to coordinate it. It has just a rough agenda, but the work is in process.

In order to check if it is viable, and to provide a budget for the foundation, we need to know which people would like to attend.

Are you a maintainer of one of GNOME’s assistive technology modules? Are you developing an on screen keyboard? An alternative means for text input? A magnifier? Some trippy head-tracking app? Voice control? Switch access? Something new and exciting for cognitive disabilities? Are you hacking on new features for Orca? Are you working to provide users with disabilities unfettered access to GNOME? Are you working on accessibility tests?

If the answer to any of the above is ‘yes’, we hope you will consider joining fellow GNOME a11y folks at the AEGIS conference this year to help promote GNOME and to hack with fellow AT developers.

We have just added a section called “Hope to attend” on this hackfest wiki page. Please add yourself in this list if you would like to attend this hackfest. Of course, you can also add yourself to the attendee list, AEGIS conference will be there for sure.

Cally going to GUADEC


I'm attending GUADEC

Somewhat late but just to comment that my talk “Cally: One Year Later” was accepted, so if nothing strange happens, I will attend this year to GUADEC. Four in a row.

A lot of work these days related to Cally. During the accessibility hackfest and talking about how apps should load cally or extend it, Emmanuele Bassi suggested that we should stop to consider Cally as a isolated module. These weeks I have been working in order to make this real, a lot of changes that involves the current Cally and Clutter itself to support it (summarized in one metabug), and AT applications like Orca required some changes when I removed the gdk/gtk dependency.

All the related patches are uploaded, and waiting to be applied, but blocked right now for reasons out of my hands. I hope this will be ready for GUADEC. So with this solved we could forgot to load a Cally module using gmodule. It still remains the atk-bridge, but I think that in this case it still has sense to be an optional module.

And to finalize this rant, this week I uploaded on maemo.gitorious.org a version of at-spi (here) . On previous weeks some people on maemo-developers list were interested in use at-spi and other a11y technologies (in this case for automatic testing purposes). The only place to find a proper stack to maemo was an old hildon automatic testing project.

So I just uploaded version of at-spi more recent that the one we can find there. It is still somewhat old, and still CORBA based, but it was tested with maemo, and have some specific maemo fixes applied, so it can be still useful.

The ideal would be try to migrate the current a11y stack, as much as possible, including the DBUS at-spi to maemo, but right now I don’t have enough time to do that.

My first day on Accessibility Hackfest

Accessibility Hackfest Logo

Well today was my first day on the Accessibility Hackfest 2010 on San Diego (where my travel and accommodation costs are being funded by Igalia). Really interesting day, where the hackfest were officially started and we touch a lot of interesting things:

  • Testing discussion: integrate a11y testing infrastructure on GNOME, to catch earlier a11y regressions. Better explained in Peter Korn slides
  • a11y leadership: Willie Walker explained how he thinks the leadership should be oriented, and that he thinks that the a11y team should be more involved with the release team
  • Willie Walker made a full review of GNOME 3.0 accessibility planning
  • Bryen Yunashko lead a talk about press strategy
  • AT presentations
  • Eitan Isaacson explained his plans about the GNOME booth tomorrow

And finally the official CSUN keynote. A really busy day. Taking into account that the previous one was mostly a three-flights trip from Coruña to San Diego, I’m just tired and sleepy. Forgive any error in this post. I’m going to bed. Sweet dreams.

Gnome-shell starts to talk

After spent some time improving cally, reviewing mx new focusable/focus-manager objects and several days configuring my environment (karmic upgrade, broken linkage in my jhbuild environment, etc) I started to check again how to use cally on gnome shell (first look here).

One of the entries in my TODO is start to make the module loading more that a hacking patch. A first solution proposal and a gratuitous rant here.

Other point on my TODO list is check why accerciser and orca froze gnome-shell. Well, accerciser still frozes the shell, but, fortunately it seems that orca now works (more or less) fine without doing anything special (black magic probably):

orca running on gnome-shell

I know that it would be more useful with sound, but as the gnome shell screencast recording feature doesn’t record audio, and I wasn’t able to use recordmydesktop or istanbul, finally I just recorded the sound with my N900, and I was too lazy to create a video with both. If you are curious enough, you can hear the audio of the previous video screencast here.

How I run gnome-shell

During this environment configuration time, I was also looking for a convenient way to run gnome shell. On live gnome, there are two proposed options to run gnome shell:

  • Replace your own WM (with –replace option)
  • To avoid to replace your own WM, run gnome-shell nested (with –xephyr option).

As I said, running some of the accessibility tools leads to froze the gnome-shell. Additionally in my case, running it on xephyr had a horrible performance, so both options were not really useful to me. Finally I chose a mixed option. I just launch a second X server, and launch the gnome-shell here.

So, in brief:

  • Move to other tty with Ctrl+F1
  • Launch other x server: xinit -- :1
  • Execute gnome-session
  • jhbuild shell
  • ./gnome-shell --replace

Then you can just use Ctrl+F9 and Ctrl+F7 to move between your “normal environment” and your “gnome-shell” environment. Probably someone can wonder why it is required to run gnome-session, and not execute directly gnome-shell (without the replace). Well, for any reason if I do that, the performance is also as horrible as with the –xephyr option. In the same way gnome-session load all my configuration, etc. Not a big issue anyway.