Wednesday, January 24th, 2007

Using the screen reader virtual buffer to make accessible Ajax

Category: Accessibility

Gez Lemon and Steve Faulkner have gone into more detail on using the virtual buffer in JAWS to enable Ajax interactions.

Popular screen readers use a virtual buffer to allow users to interact with web content, whereby the virtual buffer provides a mechanism for screen reader users to interact with web content. This article uncovers undocumented behaviour in JAWS 7.1 and later, which allows web developers to build Ajax applications that update the virtual buffer without any interaction from the user.

The hack relies on a hidden input form:

javascript

  1. function prepareBuffer() {
  2.     var objNew = document.createElement('p');
  3.     var objHidden = document.createElement('input');
  4.  
  5.     objHidden.setAttribute('type', 'hidden');
  6.     objHidden.setAttribute('value', '1');
  7.     objHidden.setAttribute('id', 'virtualbufferupdate');
  8.     objHidden.setAttribute('name', 'virtualbufferupdate');
  9.  
  10.     objNew.appendChild(objHidden);
  11.     document.body.appendChild(objNew);
  12. }

Posted by Dion Almaer at 7:44 am
7 Comments

+++--
3.9 rating from 22 votes

7 Comments »

Comments feed TrackBack URI

Nice!

Comment by JD — January 24, 2007

Somehow I’m not sure that using an undocumented hack in a recent version of a sole piece screen-reading software quite counts as “accessible“, but maybe I’m just a purist ;)

Comment by Pete Otaqui — January 24, 2007

Have to agree with Pete on this, undocumented hacks are far to risky to take seriously. I see no use for this unless the undocumented feature is adopted as a real feature in all major screen-readers.

Comment by stuart — January 25, 2007

“Somehow I’m not sure that using an undocumented hack in a recent version of a sole piece screen-reading software quite counts as “accessible“, but maybe I’m just a purist ;)”

We are not claiming that AJAX is now accessible, not by a long shot, if you take the time to read the article “Improving Ajax applications for JAWS users” it is made abundantly clear [http://juicystudio.com/article/improving-ajax-applications-for-jaws-users.php].
One of the pre-requisites for AJAX to be to accessible to screen readers is that updates to content that occur in the browser are also available to screen reader users. This is currently not the case for JAWS and Window Eyes. JAWS has improved in the latest versions, but the improvements have been implemented in what I describe as a “half assed” manner. What are hack does is extend the functionality that has been implemented in JAWS, by using one of the triggers already implemented, in such a way that the buffer updates can be triggered by any link or control using either keyboard or mouse rather than just on a link via the keyboard.

“I see no use for this unless the undocumented feature is adopted as a real feature in all major screen-readers”

Well it is a “real feature” in the latest version of JAWS, but as far as Freedom Scientific or GWMicro documenting features to make it easier for developers to build accessible web sites, thay have not done so in the past and don’t expect they will in the future.

Comment by Steve Faulkner — January 25, 2007

“Popular screen readers use a virtual buffer to allow users to interact with web content, whereby the virtual buffer provides a mechanism for screen reader users to interact with web content.”

how enlightening

Comment by Silly — January 29, 2007

Thanks, Silly. I have a habit of repeating myself, which causes me to repeat myself *smile* I’ve corrected the error; thank you for pointing it out.

Comment by Gez — January 30, 2007

This is more general post.

You may or may not already know, but Section 508 is under revision to address concerns specific to Rich Internet Applications. In mid-2006, a panel deemed Section 508 outdated with respect to modern web techniques and has enlisted the w3c to its advisory board.

http://www.w3.org/2006/09/aria-pressrelease.html

As a developer of Rich webapps, Section 508 compliance is a concern since its most recent update occurred in 2001. It’s great to hear that the problems between 508 and Ajax have been recognized by the government and that work is being done to accommodate. Also, I am awaiting feedback from access-board.gov on whether there will be any provisioning for transitional compliance for webapps built after the announcement but before the new rules take effect. We’ll see.

The w3c WAI-ARIA draft indicates what mechanisms will be standardized to allow webapps to communicate semantic details to API driven screen readers, but there I’ve been unable to find any public information about the specifics of the new 508 rules.

Joe Hanink,
Developer,
Bear River, Inc.

Comment by Joe Hanink — February 16, 2007

Leave a comment

You must be logged in to post a comment.