GNOME Accessibility Hackfest

GNOME Accessibility Hackfest LogoSponsored by the GNOME Foundation

Under sponsorship from the GNOME Foundation (thanks!), I attended the GNOME Accessibility Hackfest at CSUN in San Diego last week. Having been in the accessibility space for quite some time, I’ve been attending CSUN conferences since around 1990 or so. CSUN is a perfect venue to hold an accessibility hackfest because it offers an opportunity to immerse members of the GNOME Accessibility community into an environment chock full of technology and users all focused on accessibility. CSUN is also a great opportunity to show our wares and get feedback from our consumers.

Having recently been laid off as a result of Oracle’s acquisition of Sun, I have had to turn my attention towards finding a new job that will allow me to keep my family happy and stable.  As a result, I’ve not been able to focus on GNOME Accessibility as much as I would prefer.  I did play a mental game with the layoff, though — I had 7 weeks of vacation I never took, but for which I received financial credit.  So, I viewed those 7 weeks as time I could spend working on making a graceful transition out of my GNOME Accessibility leadership role; the job hunt could wait a little bit. The timing also happened to opportunistically align with CSUN 2010 and GNOME 2.30.

I had a few primary things I wanted to accomplish:

  • Help gracefully transfer leadership to one or more people in the community
  • Help the community plan for GNOME 3
  • Help spread the word that GNOME’s open source accessibility solution is for real
  • Help encourage others to join the GNOME accessibility community

Graceful Transfer of Leadership

The Oracle layoff didn’t offer any chance for a graceful transfer of leadership. That sounds cold, but with layoffs you need to cut ties quickly and surely so both sides can move on. That’s just the way they work and I can now say I have been on both sides of the equation. You just need to keep your eyes out the front window and away from the rear view mirror.

Having a lot of emotional stake in the success of GNOME accessibility, however, I couldn’t just walk away and say “see you later, bye, take care of the fish.” Instead, I needed to be sure that the GNOME Accessibility community would reform and refocus for success.

At the hackfest, we had a good discussion on overall leadership of GNOME Accessibility. We didn’t end up with any one clear person to “herd the cats”, but we did instead see a number of people step up to leadership roles and more participatory roles, which I’ve captured on the GNOME 3 planning page. Many thanks to everyone who took on some extra work to help make GNOME Accessibility succeed.  Truly a wonderful community.

One thing I wish we had been able to accomplish is clearly identifying a person who is able to be the “point person” for GNOME Accessibility — keep it focused, keep people connected, be the “go to” person for any questions anyone may have both inside and outside the GNOME project. For example, we need someone to prod people for accessibility discussion on new module proposals, someone to help prevent existing modules from regressing,someone to prod the release team about accessibility issues in the release, someone to help represent and expose GNOME accessibility to the world, someone to keep tabs on where things are, etc., etc.

I believe we think the “point person” might be a task we should relegate to the release team, though we understand that this should be done by adding a resource to the release team.  This person should be able to both help with the work the release team is currently doing while also being a strong advocate and communicator for accessibility.  I am still toying with the idea of doing this in my spare time, but something tells me it will not be a “spare time” task.  I tend to jump in and immerse myself in a task and I’m not sure I could successfully limit myself to just a couple days a release cycle and a few hours in some release team meetings.

In any case – the message here is that GNOME Accessibility community is stepping up. Totally rocking, and totally the right thing to do. It needs to operate as a global community that is not wholly dependent upon any one given funding source.

GNOME 3 Planning

Some people have suggested that it will be OK if GNOME 3 goes out the door inaccessible, using the analogy that it took GNOME 2 a few releases before it became accessible. I disagree. In my opinion, going out the door inaccessible is a regression and violates the position that accessibility is a core value of GNOME.

Having said that, there is a lot of work to do to make GNOME 3 accessible. I have often referred to GNOME 3 as the “perfect storm” for accessibility. With Bonobo/CORBA deprecation, GNOME Shell, and WebKit all staring us in the face, the situation can seem dire. Couple that with the reduction in investment from a number of places, and bracing for the storm can seem hopeless.

A great way to avoid hopelessness is to create an achievable plan.

During the CSUN hackfest, we went over GNOME 3 planning to see what can be achieved. The sordid details are on the planning page, so I’ll give just a summary here:

  • Community members are stepping up to take ownership and help out where they can. This includes the following (my apologies if I forgot someone or something — it’s not on purpose!):
    • Joanie Diggs taking over leadership of Orca as well as continuing to work on WebKitGtk accessibility
    • Li Yuan, Nagappan Alagappan, and Mike Gorse joining forces to help with AT-SPI/D-Bus, with Li also helping to figure out other AT-SPI related stuff, such as libgail-gnome and login-helper
    • Ke Wang continuing his work with the Java ATK Wrapper as a replacement for the Java Access Bridge for GNOME
    • Eitan Isaacson working on a new way to represent the AccessX status, helping with Caribou, and helping with Accerciser
    • Bryen Yunashko taking ownership of leading VizAudio to completion
    • Ben Konrath continuing his work on Caribou, including incorporating ideas he got from seeing things at CSUN
    • Alejandro Piñeiro Iglesias (API) taking leadership for Clutter and GNOME Shell accessibility
    • Flavio Percoco Premoli continuing work with MouseTrap, including incorporating ideas he got from seeing things at CSUN
    • There is a lot more, but it involves people who were not at the hackfest and I will follow up with them
  • We decided it was acceptable to not port CSPI to AT-SPI/D-Bus.  The biggest impact this will have will be on GOK since GOK relies immensely on CSPI. With the work on Caribou emerging as a potential replacement for GOK, we decided the risk is OK.

In any case, the GNOME 3 plan looks like it can be achieved, though not without a lot of work. I also believe the community still needs a point person to help keep everyone working together, be able to help make adjustments, and communicate with the release team. This is still a big hole that needs to be filled.

Outreach

CSUN also offered us the opportunity to do a lot of outreach to the community. We accomplished outreach at CSUN via a number of talks we gave as well as having a strong presence in the GNOME Foundation Booth. The talks were all attended pretty well and were well received. The booth had a constant steady flow of traffic from interested people, many of which who sought the booth out on purpose.

There was a *lot* of interest in GNOME Accessibility this year. Trust me – having been presenting on open source accessibility at CSUN for nearly 20 years, this year showed a marked increase in interest. For example, I’ve given talks to rooms “packed full” of 1 or 2 people in the past. This year, we gave talks to rooms that were really packed full of people. I suspect it is due to two things:

  1. GNOME Accessibility is “for real”. GNOME has real accessibility solutions that work for real people around the globe. It’s no longer demoware.
  2. The economy sucks. People are looking to open source solutions as real alternatives to commercial solutions.

I came back with a number of leads that I have already followed up with in e-mail.  These leads include getting GNOME Accessibility mentioned on various accessibility resource sites, which will expose GNOME Accessibility to a larger number of people searching for accessibility solutions. We also had some interviews on the floor, helping spread the word to a larger audience.

Growing the Community

In our work with students in projects such as HFOSS and Project:Possibility, we have been able to not only expose accessibility to the next generation of developers, but we have also been able to add value to GNOME itself. As a result of these positive experiences, I reached out more to universities this year, including CSUN itself and the University of South Florida. Steve Lee and I also had a great conversation with people from Michigan State University.

Having talked with the above and having given talks at other universities about open source accessibility, I am also seeing a pattern developing: more and more universities are starting to add open source classes to their curricula. These classes help teach students open source culture, tools, etc. These students are the next generation of developers, many of whom will be creating the next generation of user interfaces.

By exposing students to accessibility early, they will start adopting accessible design practices and will carry these forward into their jobs. These students are the vehicle to help me achieve this goal: “even if you do not work on assistive technologies, you need to work on accessibility.” (me quoting myself, sorry ;-)). The more we can accomplish that, the more accessible the world will be. We will also spend a lot less money doing it.

Note that the timing is perfect right now. Many universities are just beginning to ramp up in this space, and they are also looking to the open source community for guidance on how to make the connection. As a result, I think we need to do more outreach at the academic level. Get entrenched in their emerging open source curricula and we have a win-win situation.

Thank You!

Thank you Eitan Isaacson for your work organizing the GNOME Accessibility Hackfest at CSUN. I like what you did. I also listened to what you were saying to people visiting the booth and I like what you had to say. Nice job.

Thank you Dr. Joseph Scheuhammer for making a screencast of his GNOME Shell Magnifier work. It’s starting to look quite useful and we had it and number of other screencasts running on a loop in the booth.

Thank you Joanie Diggs for taking over leadership of Orca. You rock and you are a huge reason why Orca is what it is today.

For everyone on GNOME 3 planning page – thank you for your commitments. You are wonderful people and are the reason GNOME 3 will go out the door accessible. Your energy and commitment to accessibility is amazing; you do accessibility because you want to and you make others want to do accessibility. You are one of the best teams I have ever worked with.

Thank you Flavio for not killing me while I snored loudly in my sleep. You’re a good roommate.

Thanks also to Peter Korn who put together a presentation and gift thanking me for the years I’ve worked on open source accessibility, and thanks to everyone who signed it. I’m a heartless bastard who doesn’t cry, but I can tell you that it touched me deeply.

Thank you to the GNOME Foundation and Mozilla for their sponsorship of the GNOME Accessibility Hackfest at CSUN and for subsidizing my attendance. I would not have attended the hackfest had it not been for your help.

GNOME Usability Hackfest

GNOME Usability Hackfest Logo

Last week, I went to London for the GNOME Usability Hackfest with one main goal: get accessibility introduced into a GUI as early in the development process as possible. Since the GNOME Usability folks help design much of the user experience for GNOME, getting them to think about accessibility early means facing fewer problems down the road.

Painless Accessibility – Do it at the Source

Although hackfests are somewhat informal “unconference” kinds of things (and this one was no exception), I was still able to spend some time talking to the group informally about “painless accessibility”.  Máirín Duffy from Red Hat blogged about the talk and it touched me deeply — she “got it”.  In addition, Matthew Paul Thomas from Ubuntu began using Orca and Accerciser on the UIs that he is creating for Ubuntu. Wow! Matthew “got it”, too. Finally, Seth Nickell told me that I was the best advocate for accessibility that he has ever met — I made him want to do accessibility versus feeling like he had to do accessibility.  Cool. Even just touching one person would have made the trip a success.

Control Center Madness

Matthew Paul Thomas, Thomas Wood, Jon McCann, myself and others spent an afternoon talking about the GNOME Control Center and the various sundry of knobs, sliders, and buttons available for tweaking system settings and desktop preferences. My goal, of course, was to be the accessibility advocate. 🙂  I hope I didn’t overstay my welcome, but I think it went well.  I had hoped to have some more discussion about the new Universal Access Preferences GUI, but I sensed that a lot of churn was potentially going to happen with the rest of the system settings and desktop preferences, so we need to see how that plays out first.  I was at least able to keep the awareness about accessible design high, so hopefully those thoughts will be carried forward.

This Little HIGgie

Matthew Paul Thomas, Calum Benson, Brian Cameron, Karl Lattimer and I went over thoughts on updating the HIG for GNOME 3.0. Again, for me the idea was to get accessible design as early in the development process as possible — what better place to do that than the document that’s the GNOME UI developer’s bible?  Note that the HIG already has a bunch of accessibility references in it (thanks Calum and others for their work years ago), but this was an opportunity to refine it and add sections for avoiding common accessibility pitfalls, such as using empty labels for layout purposes.

The HIG discussion went well and we came up with a lot of great ideas. Matthew Paul Thomas is going to make the first passes at implementing the ideas — I hope we can get a new version for GNOME 3.0.

Kindred Spirits

I was not the only accessibility advocate at the hackfest. David Colven from the ACE Centre (and AEGIS) and Steve Griffiths from the RNIB came early in the week to have a look and to chat with me. I think it may have been an odd venue for them, but it was still an opportunity for us to chat and meet face to face. It was also nice to have more accessibility muscle there to show that I’m not the only one who cares about this stuff.

Patrick Welche and Alan Lawrence from the University of Cambridge came by to hack on some accessibility stuff. Patrick is working on getting Dasher to work with AT-SPI/D-Bus — Dasher currently uses CSPI, which is not being carried forward with AT-SPI (unless someone wants to fund the work). I felt Patrick’s pain about there not being a lot of documentation available for the current AT-SPI work, and what does exist might be inaccurate. We worked out strategies where he could move forward with less pain, such as poring through code and engaging developers directly in e-mail and IRC channels. Rob Taylor also showed up to the hackfest and was able to give Patrick some additional guidance.  Yeah!

Alan Lawrence is working on implementing Nomon in GNOME. He and I spent some time going over AT-SPI and Accerciser and discussing ways he might approach the problem. By the end of the week, Alan had made a lot of progress with using AT-SPI. I think there may be a Nomon (I so want to call it “GNOMON”) success in GNOME’s future.

Patrick also had a chance to demonstrate some of the OpenGazer work. In particular, he was showing how one could train OpenGazer to recognize a gesture as a means to act as a software switch — instead of clicking a switch to control something like Nomon or GOK, one can make a gesture (e.g., raise your eyebrowse) while OpenGazer watches via the user’s inexpensive web camera. There’s still a fair amount of work to do.  I so want to see OpenGazer and MouseTrap succeed. I think they both are still at the point of being interesting, however, but not something users could use for everyday tasks. Step by step and we’ll get there.

Brilliant Bottle Washers

The Dev8D conference was also being held in London at the same time as the GNOME Usability Hackfest. Brian Cameron, Vincent Untz, and I headed over to check it out. What we discovered was a group of people from all over the island who all shared a lot in common — many of them were system administrators who were told to “change this word on that web page” and “reset my password” by day, but who hacked on brilliant stuff at night. I met people who were hacking with the Wii Remote using CWiid — they even got me going with it on my Toshiba NB205 Netbook.  I met others who created 3D printers. Others were hacking on stuff such as creating a mass spectrometer.  Holy cow!

Neat folks, and they cornered me into giving a lightening talk with Steve Lee on accessibility.  My hope was to get them interested in hacking on accessibility on GNOME. The format of Dev8D was that there was a room for scheduled lightening talks (15 minutes max). If someone was interested in your talk, they’d follow you like a puppy to the base camp. Steve’s and my talk went well and we had some interest afterwards. One of the more interesting discussions I had was with someone who wanted to create crossword puzzles accessible to people who are blind. That’s a pretty neat problem – APH has done some work in this space, and I’m sure others have as well. But, maybe the person I spoke with will work on a kick butt one for GNOME.

MX – is there hope for GNOME Shell Accessibility?

One of the most troublesome fronts on the “perfect storm” for GNOME Accessibility is GNOME Shell. Let’s see…keyboard traversal? Nope. Theming? In it’s own unique way that doesn’t look at the GNOME theme settings. AT-SPI support? Not really, though API is working on Cally. On top of all this, the GNOME Shell folks have told me accessibility really is not on their radar screen right now. Sigh. 🙁

Along comes mx, which is a clutter toolkit widget. And along comes Thomas Wood, who I quote: “I was inspired to look into ATK support for Mx, the GUI toolkit built on Clutter that I work on for Intel. I have some rudimentary keyboard navigation support available, but I would like also like to build in support for ATK (the accessibility toolkit).” Yee Haa! If the copyright assignment issues are worked out with mx so that GNOME Shell can use it instead of its own fork of Nbtk, then it can benefit from Thomas’ work. This also means that anything else using mx would have a strong chance of turning out accessible. Thomas – you rock and you “get it”.

Accessibility Infrastructure Pieces

By far, Bonobo deprecation has been our worst nightmare for GNOME Accessibility. But, a few other things have been hurting as well. Two of those are 1) the death of XEvIE and 2) the need to log out and log back in again after you’ve enabled accessibility. Bastien Nocera and I had some discussions about both. XInput2 has been thought of as a possible replacement for XEvIE and Bastien e-introduced me to Peter Hutterer, whom I hope to be able to have an e-mail discussion with soon. Bastien also started a discussion on having GTK+ applications dynamically load the gail and atk-bridge modules when the XSETTINGS property for accessibility changes on the display. If this can be done (I think we need help from Li Yuan), then one of the single most worst end user nastiness for GNOME Accessibility will have been put to bed.

What is GNOME 3?

There was a lot of interesting discussion about GNOME 3 and what we want it to be. My take away from it is that we want it to be a lot more. For me, I think it would be great to try to make a “person” a first class object for the entire desktop. Have people and your contact list integrated everywhere. A web page pops up with names on it? If the names are in your address book, you should be able to initiate communication, such as fire off an e-mail, start a chat, open facebook, etc. Same thing for the content of an e-mail message, git log, bug comment, source code, OpenOffice document, etc. Anywhere there’s a name or something resembling a person, you should be able to initiate communication. For me, that would make collaborating at a distance tons nicer.

How to do it?  Well, with my “everything looks like an AT-SPI nail” hat on, the hammer could be an AT-SPI agent that sniffs the text in the active window, performing regular expression matches on your address book. Then from there it’s just code and syntactic sugar, of course.

Thank you Canonical, Google, the GNOME Foundation, and the GNOME Usability Folks

I would not have been able to make this trip were it not for gracious funding from Canonical. To all the people at Canonical – you are wonderful! You helped me connect the accessibility synapses in the GUI designers’ brains. Without your support, this may never have been done. Thank you for funding my travel, hosting the event, and putting up with three rooms full of steamy, stinky, GUI nerds for an entire week.We tried to do the dishes and keep the kitchen area clean. I promise! Many thanks also to Google and the GNOME Foundation for sponsoring the event and sponsoring others to get there.

Finally, many thanks to the GNOME Usability Folks — you listened, you learned, and you “got it”. Let’s strive to get accessibility design in there early. Remember – the ability for someone to use your software (or not at all) affects your brand and evokes emotion as much as the rest of the work you do.