Monday Oct 01, 2007

The Orca Project: Accessibility
through open source empowerment

Jen McGinn is an interaction designer in xDesign who is working to improve the user experience with the Java Enterprise System installers. She has an MS in Human Factors in Information Design and works out of Sun's campus in Massachusetts.

Will Walker is a senior staff engineer in the Accessibility Program Office. He has worked on software for people with disabilities for almost two decades and currently leads the Orca screen reader project.

At the end of August, I had a chance to sit down with Will Walker, and learn more about the Orca project. To quote their GNOME project page, Orca is a flexible, extensible, and powerful assistive technology for people with visual impairments. Using various combinations of speech synthesis, braille, and magnification, Orca helps provide access to applications and toolkits that support the AT-SPI. AT-SPI stands for "assistive technology service provider interface" and the GNOME desktop implements this API.

Will has had a long history working with assistive technologies. First, at Digital Equipment Corporation, he worked on making the X Window System accessible to people with disabilities, which included work on RAP, one of the first service-based approaches to accessibility. Then, at Sun, he helped author the Java Accessibility API. Next, he joined Sun Labs to work on speech synthesis and recognition, before moving back into the Accessibility Program Office (APO) to lead Orca.

Jen: Will, tell me about your involvement in the Orca project.

Will: The first thing we did was to hire Mike Pedersen, a usability expert in screen reading who also happens to be an end user. I was really tired of people without disabilities defining the user experience for people with disabilities. It was important to have a person with a disability in a leadership role to define the user experience. I put Mike in that role. We then formed the Orca advisory board. This was a small group of friends and family who had visual impairments and different use patterns: some people used braille, some people used speech, some people with low-vision used magnification and then we had combinations of all of those.

We asked them, "What do you want a screen reader to do?" "What's your typical day like?". We developed some form of personas and adopted the mantra of the User Experience will drive the architecture, not the other way around. This focus created wins across the board:

  • Any decision we made was based on direct user experience
  • We avoided over-generalization, but instead solved specific user problems
  • We did rapid prototyping all the way

Every so often, we'd stop and refactor as necessary to support new user experience patterns as they emerged. From a modularity standpoint, we used the rule that "we will generalize when the use case exceeds 1".

We also asked ourselves questions to help us make some simplifying assumptions. Did we want Orca to be all things to all people? Did we want to cover more than one platform? We decided to focus Orca on providing access to the GNOME desktop for the professional. This allowed us to simplify by keeping the problem space limited to office productivity applications such as email, web browsing and content management; we didn't have to worry about CD players or games. While this may seem limiting, it is still a huge task with a wide spectrum of problems. As such, we felt like we could generalize to other areas once we better understood the office productivity problem space.

A couple years later, Orca is the official screen reader for GNOME and we are getting a lot of positive feedback from around the world. Mike continues to play a pivotal role -- anything to do with user interaction involves consultation with Mike and our new public list,, which has over 200 members.

Jen: What's happening with the Orca community?

Will: A big portion of the project involves building "the community." In our sense of the word, "community" isn't restricted to developers. More importantly, it is mostly users. As part of building the community, we wanted to let users know the team members are accessible, they listen, and they "get it." This was done by making a concerted effort to establish effective communication channels for the community.

The primary communication channels we use are the list and the #orca IRC channel on The team monitors these and regularly engages users in productive conversations. More recently, we have also seen users frequently help other users, which is a great sign of a community that is growing and thriving. I often try to remind myself not to jump into a conversation, but to instead let it happen. Letting people have the freedom to talk can help them emerge as experts.

We have some ground rules for communicating: problems have to come with a constructive suggestion; new members will be treated with respect; and abusive people get private warnings. By keeping a positive atmosphere, we can have an open dialog. We can ask users what they want and why they want it. We can ask what tasks they are trying to accomplish, and then explore different interaction models to arrive at the best solution.

Finally, I need to say that the other team members employed by Sun are also part of this big community. Rich Burridge, for example, is a very valuable member of the team and is well respected in the Orca community. It's just great to be surrounded by such a good crew of folks.

Jen: So what do you think the biggest benefits are or were of having that kind of direct access to your users?

Will: That direct contact has paid off in many ways: users began to have direct personal relationships with the developers and with each other. As a result, the users felt empowered that their requirements were valued and that their voices were being heard.

Direct access also helped the development team understand the domain better. While we all have been involved in accessibility for some time, there is still always a lot to learn, and what better way to learn than to talk directly with end users.

Direct access to our users also helped grow our virtual team. We have an early adopter in Spain, Francisco Javier Dorado Martínez, who helped push Orca adoption throughout Spain. He gives us patches and is thrilled to see his name in the change log. We had worked for months via e-mail, and I finally met him in person at Software Libre 2007. One of the first things he told me was that he was amazed he could mention a bug or feature request and see it in a build later that day.

The respect and thrill is also a two way street. The reason I was at Software Libre was to give a talk on Orca. Based upon the circumstances at the time -- the conference was in Spanish! -- and my familiarity with Javier, I made a last-minute decision to have Javier join me on stage. He was very effective. I've heard reports that he was the hit of the show. I would not have made the same decision had I not had direct communication with Javier in the months prior to the conference.

Finally, from my perspective, the emails that we get that say "thank you" are what keep me going.

Jen: Will, we've talked about what Orca is, and the involvement of the users, but now I want to know: what's the value of open source?

Will: One value to our users is that they can get updates the second we check in a change; not in six months or a year. The open source nature of the project is also very empowering for our users. All of the bugs and the decision-making processes are public. User requests and bug reports are managed in our public database, so there's a written record that they can follow; they see the discussion and the fix.

From a development perspective, we also get new functionality and bug fixes from the community. There are a lot of contributors to thank, but I'd like to highlight a person on our virtual team: Joanmarie Diggs. Joanmarie produces in her spare time the equivalent of a full-time developer and is responsible for significant portions of Orca. Wow! It's just amazing to get that kind of contribution.

We also have other contributors who are being funded by the Mozilla Foundation. Eitan Isaacson is helping us out a lot with migrating to unified bindings for AT-SPI as well as helping with our regression testing framework. In the coming months, I'm going to be relying upon Eitan to help refactor the speech support and roll in support for contracted braille. Scott Haeger has been focusing on providing access to emerging web technologies such as ARIA. I'm very thrilled that the Mozilla Foundation is involved in Orca -- Aaron Leventhal, if you read this, thanks for your support!

Last, Ubuntu has been instrumental in the success of Orca. Like Sun, Ubuntu has embraced accessibility. For example it has accessible install, which is the ability to install an application without assistance from a sighted person. More and more people migrated to Ubuntu as a result of accessible install. The fact that accessible install was such a huge differentiator was an eye-opener for me; I plan to pursue it aggressively for OpenSolaris.


xDesign is a software user experience design group at Sun.
Follow us on Twitter : Flickr : Blog (see feeds below)


« September 2016