It’s not graceful or enhancing this progression is just degrading

So I have a problem. It’s a bit of a corker, and it seems like everyone who uses AJAX suffers from it. That means, me, and probably you.

The problem is AJAX is not accessible. Gez and Steve improved the situation, but again AJAX is not accessible. I know I’m being rather alarmist, but the situation is starting to eat at me.

Right now, we have a solution which works for JAWS 7.1 and for the latest version of Windows Eyes. But what about users using screen readers older than that? The problem is the massive amounts of mixed messages and myth.

  1. Most blind people use JAWS
  2. Progressive enhancement / Graceful Degradation will protect users from functionality they can’t use
  3. We can’t be expected to support all versions of user agents

1. Most blind people use JAWS

We have a solution for JAWS. Yet, there are no published figures with any authority I have ever seen that show percentages of users that use which screen readers. It is largely, and informally, accepted that Freedom Scientific are the leading vendor. However, Windows Eyes and Hal are not to be discounted as well as the other readers around on the market.

2. Progressive enhancement / Graceful Degradation will protect users from functionality they can’t use

Many version of screen readers now support JavaScript. A lot of screen readers are based on the MSAA using Internet Explorer. In order to access non interactive elements of the page to interact with they have to implement a “virtual buffer”. The problem? The javascript is being supported by the browser, so the progressive enhancement is progressing and the graceful degradation isn’t degrading. The problem, is in fact, that the virtual buffer isn’t refreshing and the user doesn’t know.

3. We can’t be expected to support all versions of user agents

Most user agents are free. Assistive technology isn’t. In fact, assistive technology is pretty expensive, as much as a new computer. More than that, it is well established that people with disabilities tend to have significantly lower incomes than the national average. That does sound like constant upgrades might be an issue.

So where do we draw the line? At what point does a browser become un-supportable? Well the main issue is that our normal techniques for excluding a browser based on functionality doesn’t work. This combined with the unusual economics of Assistive Technology mean a new selecting the bottom line must be found. A little research shows that there have been 7 versions of JAWS and 4 version of Windows Eyes since 2001. However finding quality information on the capabilities of screen readers is hard without actually having them.

Solutions?

The ideal solution would support all assistive technology which can run JavaScript. That minimum level would allow the progressive/graceful enhancement/degredation to kick in. The problem is I don’t have a solution. What I really need right now is lots and lots of screen readers. I have access to the latest version of JAWS, and Windows Eyes. I need access to anything else I can get my mitts on in all versions possible. If you can help please contact me.

In terms of raw ideas, the best I have right now is to use Flash to detect MSAA support and disable the AJAX. For JAWS it may be possible to use an Active X component (remember until JAWS 7.0 only Internet Explorer was supported) to hotwire older versions using JAWS scripting. But that’s about it, and it ain’t a whole lot.

Technorati Tags:
, , , , , , , ,

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • Digg
  • DZone
  • Ma.gnolia
  • MisterWong
  • Reddit
  • scuttle
  • Slashdot
  • SphereIt
  • StumbleUpon
  • YahooMyWeb
  • Wists

5 Responses to “It’s not graceful or enhancing this progression is just degrading”

  1. Steve Webster Says:

    A superb, well thought out article. It seems to me like the vendors of assistive technology should be investing in web developers. It’s all very well being able to buy the latest version of JAWS or WIndows Eyes, but we need access to something like evolt.org’s browser archive if we’re going to support the vast majority of users out there.

  2. Chris Heilmann Says:

    I am still not sure about the “Ajax doesn’t work” article and I consider the approach Gez is taking far too technical. Pending real testing I always thought that loading content via Ajax and then setting the focus of the browser to this new content would at least tell screen reader users that something happened. Another precaution is changing the element that invokes the Ajax call - as in changing the value of a button to “loading” when you submit the form.

    Personally I’d never build an app that _relies_ on JavaScript and the best accessible approach is having a message on the page first up that explains that the following app is using Ajax and offer a non-JS version as an alternative to go to. We stopped creating bespoke versions for every broken browser out there, why should screen readers be different? ARIA will be a solution, the problem isn’t really that we use JS, the problem is that HTML is bad in handling keyboard access and generally not rich or clever enough to be used for applications. The ball is in the court of browser and OS vendors as accessibility of applications is far too rich to be tackled in a simulated GUI inside an app that was meant to deliver web content and doesn’t even have a native way of scaling graphics or embedding media.

  3. Victor Tsaran Says:

    I would like to second Christian’s comments here. There is always a trade-off between advancements in technology and backwards compatibility. I’d rather see AT vendors and community working together on solutions to the Ajax accessibility problem, rather than trying to figure out how to make JAWS 4.1 or Window-eyes 3.0 work with Ajax. Let’s be realistic here!

  4. Victor Tsaran Says:

    I wanted to post this separately to keep information more compact.
    Here are several alternative screen readers to look at:
    1. A new open source initiative called NVDA, www.nvaccess.org/nvda.
    2. Firevox, a screen reading plug-in for Firefox, http://www.firevox.clcworld.net/
    3. Freedom Box, a fairly affordable screen reader, http://www.freedombox.info/about.html
    Hope this will get you started!

  5. sh1mmer Says:

    I think my main feeling is not that we should try to make another version for every screen reader. It’s just that Gez shows an accessibility pattern that works for JAWS 7.1 as well as JAWS 8.0. If we can come up with a way to make older versions of and other screen readers JAWS work correctly with everything else we should.

    That said, other than venting my general frustration level, this post doesn’t mean I plan to abandon AJAX any time soon.

Leave a Reply