Re: Request for comment (accessibility team): release date for GNOME 3.0

Hi All:

In a nutshell -- IMO, GNOME 2.30 might be good enough to call a "Preview for GNOME 3.0", but nowhere near something we should call GNOME 3.0. We want GNOME 3.0 to be solid and sexy for everyone. GNOME 2.32 is probably the earliest we should shoot for. I might also suggest we create a few more point releases for GNOME 2.28 as a means to keep some stability in GNOME while the transition is being made.

For longish details, perhaps with some diatribes from a mind that is a bit concerned at the moment, read on. I did take at least 10 breaths before pressing the "Send" button, too. You don't want to see my earlier drafts. ;-)

As we discussed at GNOME Boston, we are currently facing a "perfect storm" when it comes to GNOME Accessibility. The three major fronts that are converging together are as follows:

1) Bonobo Deprecation (AT-SPI/D-Bus, SpeechDispatcher, GNOME Shell mag)
2) WebKit a11y
3) GNOME Shell a11y

Other weather patterns, such as frequent unfortunate regressions in gdm a11y[1], are things that aren't new to us and stuff we generally just need to absorb by our very small team.

The Bonobo Deprecation work is being tracked at We are generally on target for getting a Bonobo/CORBA-free a11y stack (including speech and magnification) by GNOME 2.30, but I would feel uncomfortable calling it polished by GNOME 2.30. I would instead be more inclined to call it a "preview" that we can polish for Sep 2010 at the earliest.

The AT-SPI/D-Bus work is chugging along. We hope to have something in place by early next week where AT-SPI/D-Bus will be the default for GNOME 2.29 and AT-SPI/CORBA will also be available as a backup. Once we get this in people's hands for larger testing, we'll have a better idea of where we stand.

There is a concern that CSPI is not slated to be ported to D-Bus, unless resources magically appear and join our mythically large a11y army. ;-) We're working to understand the impact of this, with the biggest consumer being GOK. As Ben Konrath mentioned, he's working on a new Python/pyatspi-based utility that might supplant GOK, so it might eliminate the need for CSPI. Ben's work isn't due to land until Sep 2010, though.

The speech stack is a bit of an issue, but the good thing is that the approach (migrating to SpeechDispatcher from gnome-speech) is something that Ubuntu has been shipping for a while now. As a result, it's getting some good testing coverage from end users. It also has being met with mixed results, mostly due to PulseAudio issues as well as a nasty speech dispatcher crasher that remains elusive.

Speech dispatcher also needs to be tested (and perhaps fixed) on thin devices such as the SunRay.

There are minimal resources for the speech work and I'm concerned. Since this work might be something of interest to other groups (e.g., using GNOME on your small mobile device to do a speaking GPS), I'm hoping we can get some help somewhere.

For magnification, there are two potential solutions. The first one (porting gnome-mag to D-Bus) is being investigated by the last known gnome-mag maintainer in his spare time, but there are no commitments. The second solution is being done by Dr. Joseph Scheuhammer at the ATRC. Joseph is incorporating magnification directly into GNOME Shell. The work is progressing well, and I hope we can see some success for GNOME 2.30. The difficult part, however, is that GNOME Shell is currently inaccessible. As a result, we have a dependency relation set up on an inaccessible component. Scary.

Joanmarie Diggs has taken on the burden of digging into WebKit internals for a11y and she's doing a fantastic job at it. The opportunity cost of needing Joanie to backfill the WebKit a11y internals work, however, is that we're basically tabling all but the highest priority Orca work and work in other areas (e.g., OOo and Firefox). I'm hoping Igalia can pick back up on the WebKit a11y work[2]. My goal would be to achieve a good first milestone, which is that yelp/WebKit will be accessible. After that, WebKit then needs to start rolling in support for ARIA.

I've saved the biggest unknown for last: GNOME Shell. We had some good discussions about GNOME Shell a11y at GNOME Boston. At the surface level, I believe people agree GNOME Shell a11y is necessary.


GNOME Shell is lacking when it comes to communicating with the AT-SPI. API has looked at doing some a11y work in clutter, but this work is likely be too low in the stack. GNOME Shell has also recently introduced their NBTK fork, ST, which provides a toolkit on top of clutter. This might be a place to put ATK support, but there are no resources allocated to the task. API might take a look (which would be awesome).

With the exception of pressing the Windows key to bring up the shell view and pressing Alt+Tab to switch between windows, keyboard navigation in GNOME Shell is non-existent. You must use a pointing device to interact with GNOME Shell right now and there are no plans to add keyboard navigation to GNOME Shell.

Theming is supported in GNOME Shell's own way and is not at all integrated with the GNOME themes, so this is another issue.

GNOME Shell also makes some assumptions about the kinds of windows that appear on the desktop. This can potentially cause interaction issues with things like on screen keyboards and assistive technologies that use window for highlighting objects on the display. This needs to be investigated and resolved.

The final kicker for GNOME Shell is that it is an actively churning moving target. The ancient model that the a11y cleanup team will come in afterwards and resolve a11y issues cannot possibly work in this case. As with every project, I truly believe that accessible design needs to be part of on-going GNOME Shell development by the people developing GNOME Shell. If we can get that to happen, I'd feel much better, but I'm just not seeing that happen right now.

Right now, I think all I can resign to is that GNOME Shell will be actively churning up to and beyond the GNOME 2.30 code freeze. We'll then have to somehow try to figure out how to clean up the a11y issues for 2.32, but with no resources. Based upon past experiences with other teams, I also expect a11y fixes will likely be met with resistance from the GNOME Shell team because the fixes will do two things: 1) draw the team's attention from other work they need to do, and 2) possibly conflict with design choices that could have been done differently had they made a11y part of their earlier design discussions. Accounting for a11y sooner than later will save time and frustration in the long run.

So...GNOME 2.30? Can you spell "FAT CHANCE"? :-) GNOME 2.32? Possibly, but with the assumption that a11y remains a core value among all GNOME developers and not just the a11y team.


[1] - I *hope* we can eventually reach a situation where the gdm a11y solution is compelling. The work done by RedHat is a step in that direction. It opened some great doors, but also introduced some challenges in the process. I think the problems are solvable, though.

[2] - My understanding is that as soon as WebKit was accepted as a dependency, the WebKit a11y work was dropped because there were too many other general WebKit issues that needed resolution.

Vincent Untz wrote:

The release team is gathering comments from various teams to get a
proper idea of which of March or September 2010 is more appropriate for
the release of GNOME 3.0. The decision for the release date is following
what we set in the 3.0 planning document [1]: we want 3.0 to be out in
2010, but we also want to make sure that 3.0 is rock-solid; your input
will help us take an informed decision.

It'd be great if someone could summarize the status of the work that is
being done in your team (especially for the new at-spi, and also the new
on-screen keyboard and magnifier), and how March or September would work
for you. (Willie: feel free to just quickly say what you told me during
the Summit -- that was really great input)



PS: make sure to cc the release team for the reply ;-)


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