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.
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.