Are Ajax and Accessibility mutually exclusive?

Peter of ATRC and an a11y community member, pointed me to a blog post titled “Stop using Ajax!”, written by OperaDev community member James “Brothercake” Edwards.

My initial reaction was “Oh no! Not another one who uses accessibility as the sole argument to rant against a technology he doesn’t like!”

And while that outraged feeling has diminished somewhat, I still disagree with his article in large chunks. His point, despite the captivating title, is not to stop using Ajax in its entirety, but to stop using it when you don’t need it.

However, this brings up several questions. Whether you need Ajax to accomplish something is a totally subjective issue. I agree that sometimes, it is more worth to use native HTML widgets. But some examples simply horrify me, like a full page refresh when all you want to do is show or hide a quick help text in response to a user entry. Full page refreshes are one of the most terrible things you can do to screen reader users. Today’s screen readers are fully capable of handling dynamic page updates in supported browsers. You usually don’t even lose your virtual cursor reading position when such updates happen. There are obviously desired exceptions to that rule, such as pressing Enter on a link that moves focus to an anchor on the same page. In such cases, the reading position is expected to change.

He also mentions Twitter. I use Twitter myself sometimes, and I find it very handy to find out how many characters I have left when typing a Twitter update. This is one of those examples that could benefit from some ARIA-empowered live region support so Orca and other screen readers could pick it up and speak it automatically.

But first and foremost, we have to face reality: Ajax, although still pretty new, cannot be stopped. Whether we like it or not, it will continue to spread across the web. So his call to stop Ajax when you don’t need it may be several months, if not years, too late.

So what about the accessibility? I agree that some applications are real challenges right now. Google Calendar is one of those, gmail a similar one in some areas. However, Google Maps is not so bad. Since it talks about “maps”, I do not even expect to be able to see the map it brings up. But it is still accessible enough that I can type in my street address, and give the resulting link to someone sighted so they can see where I live.

And there is ARIA. The proposal for Accessible Rich Internet Applications has been evolving for several years now, has been in Firefox 2.0 and is more complete in Firefox 3, and is a way to make all these Ajax apps accessible.
And there are Ajax toolkits out there that already implement ARIA support, making any Ajax application accessible that uses them. One example is the Dojo toolkit, which is being used in the standard AOL freemail frontend, for example. Other toolkits such as Jquery are implementing, or planning to implement, ARIA in the near future, making even more Ajax widgets accessible with browsers and screen readers that support ARIA.

Granted, there is still a big userbase out there who use, or have to use, browsers that don’t support ARIA yet.

But frankly, instead of hiding away in a corner and whining about Ajax being so inaccessible, I prefer going out to web developers, educating them about ARIA and the possibilities it offers, and educate corporate deciders to make the right choices when they decide to implement Ajax. In addition, if I can, I’d like to help other evangelists like Steve Lee who spread the word at a UK Web 2.0 conference recently.

In addition, there are other bloggers like John Resig who are showing how easily it can be implemented, and how a few attributes already can make a major difference.

So, BROTHERCAKE, I invite you to get up to speed on ARIA and what it can do. Get in touch with me or other ARIA developers, learn, and then spread the technology yourself with projects you support. I strongly believe that you’ll be helping the accessibility community much more in that fashion than ranting or giving out hopeless calls like “Stop using Ajax”.

9 comments:

  1. Great post Marco. And lets get good examples and snippets in those places that the cut ‘n’ paste merchants go. That way the good gets spread not the bad. That’s not to suggest that good education and learning of the principles is unimportant, It’s vital for a fairly complex subject like this.

  2. Hi, Chris from Opera here – thanks for the response Marco. It was I who published Brothercake’s article on dev.opera. I appreciate all the work you’re doing on ARIA – it is a great initiative and will do wonders for Ajax/Accessibility issues. Opera are in full support of it. But I think some of your statements here are a little bit off, possibly because of the rant-ish tone of the article

    First, we deliberately made it rant-ish, to make people sit up and listen – yes, progress in innovation is essential, and we can’t stop Ajax, but then the article is not trying to say that (despite the title) – it is trying to make developers just sit up and think a little bit more responsibly about what they are doing. A lot of people in the centre of the web community are in tune with accessibility, but then again there are still a lot of people who are ignorant about it.

    Also, ARIA is a solution for the future, but there currently isn’t widespread support for ARIA, so for the present, we need to work with what we’ve got, which involves trying to get developers to work more responsibly, and trying to speed initiatives like ARIA along to the point where use can become more widespead.

    Also, Cake isn’t using accessibility as the sole argument to rant against a technology he doesn’t like – he has no problem with Ajax, but just feels that it is immature and should be used with more caution than we are currrently using it. He says this much.

    To follow up on this article, I will soon be commissioning some authors to write some more articles exploring what can be done to use Ajax more responsibly, to make Ajax-driven applications more accessible in the here and now.

    Best regards,

    Chris Mills

  3. Hi Chris!

    First of all, thanks for your insightful reply! Let me pick on one particular point that I think needs a bit more clarification. You wrote:

    Also, ARIA is a solution for the future, but there currently isn’t widespread support for ARIA, so for the present, we need to work with what we’ve got, which involves trying to get developers to work more responsibly, and trying to speed initiatives like ARIA along to the point where use can become more widespead.

    I would like to point out that, nobody is losing anything by implementing ARIA today instead of waiting for more widespread adoption. It may be a while until IE 8 is out, for example. Yet the adoption of ARIA today will give those with capable browsers and screen readers the enhanced accessibility today. As more and more browsers and screen readers will be released that support ARIA, those will automatically start working better with the ARIA-enriched solutions. And older browsers and screen readers won’t notice a difference: ARIA is designed in a fashion that is unintrusive: If it’s there, and the client can use it, it will be used. Otherwise, it will be ignored.

    The message to Ajax web developers has to be: Don’t wait until date x or release y have happened, but start adopting ARIA today. You won’t lose anything in the investment, on the contrary! It is an investment into the future if ARIA is being adopted today. Especially with new solutions, putting it in right at the start is much less of a problem than having to refit stuff later.

  4. Thanks for the further information Marco – I’ll have look into ARIA more, and think about publishing some useful stuff on dev.opera, to get the message out there. My e-mail is cmills [at] opera [dot] com – let me know where the best places to go are to learn more, and people to talk to. I’ve already started digesting the W3C site.

  5. Chris,

    “let me know where the best places to go are to learn more, and people to talk to.”

    For Accessible Ajax (and ARIA), Steve Faulkner and Gez Lemon of the Paciello Group have been doing some impressive work in demonstrating how to create accessible ajax applications.

    In particular, in his Accessibility 2.0 presentation last week, Steve Faulkner took Twitter and fixed a large number of problems first with just plain old Ajax, and also demonstrated working solutions using ARIA. In effect, ARIA looked so easy in comparison to plain old Ajax.

  6. This article is a nice summary of the current state of Web Design accessibility and usability development. I really enjoyed it, thanks!

    – Edward

  7. Pingback: mutually exclusive

What are your thoughts?