Tuesday, July 15, 2008

paper for the CSI conference

The following is the draft of the paper I am sending for the CSI national conference for infomration and communication technologies. This is pretty much a summary of my recent blogs. Will be great if you can provide any comments:

Accessibility with Web 2.0
Manish Agrawal
Introduction
The Web browser has moved on from being a window to static content in the form of html pages on Web sites. Web applications are becoming increasingly dynamic and as rich and interactive as desktop applications with the improvements in available bandwidth, development of client side libraries, Web services and mash ups and so on. All these combined are often referred to as the Web 2.0. These next generation Web 2.0 applications bring with them a new set of accessibility challenges. This paper presents some of these challenges along with the proposed solutions and frameworks being developed to overcome these hurdles.
The purpose of this paper is to increase the awareness about Web 2.0 accessibility challenges and to give companies and developers the information that will help them select the right platforms and tools to make the Web 2.0 applications produced by them accessible by the differently abled.

What are the accessibility challenges
Currently the way most screen readers provide access to Web pages is through the Document Object Model (DOM). The screen reading software loads the entire Web page into a buffer and then provides it as audio output as the user navigates around the browser window.
Some of the accessibility challenges with the current Web pages include:
• Screen reader users are presented a Web page linearly from the top left to the bottom right. This causes them to have to scroll a lot before they can get to the relevant content on a page. Simple mechanism to avoid this like the use of headings to highlight the beginning of various sections of a page, proper tab stops, assigning shortcut keys to frequently used options etc. are not frequently implemented.
• Images are used on Web pages without proper alternate text. Often these images are clickable and act as buttons allowing users to perform various actions. These kinds of user interface elements are completely inaccessible for screen reader users.
• Tables and CSS are incorrectly used in a way that the screen reader software is unable to correctly read out page contents.
In addition to these and other existing problems, Web 2.0 applications present a new set of challenges. Some of these include:
• Rich content may be presented in a container that does not expose accessibility hooks required by screen readers. Some common examples include WebEx online meetings, Citrics over the Web etc.
• Dynamic HTML allows screen elements like fly-out menus and tree views to be created that can be operated only with the use of a mouse. These screen elements do not have any keyboard alternatives and are completely unusable by screen reader users.
• The use of AJAX allows small areas of a Web page to be updated with new content from the server without reloading the whole page. Although this is good for performance and interactivity of a Web page, it is very difficult for a screen reader to detect and present this new information to the user.
• Plain AJAX and DHTML pages are now being replaced by pages created using specialized libraries and toolkits like the Google Web Toolkit, Microsoft Silverlight, Adobe Flash Flex and so on. All these libraries and toolkits either do not expose any accessibility information for screen readers or have their own proprietary mechanism for providing this information. Screen reader support for applications developed using these frameworks is currently very basic to non-existent.

The next section describes the key solutions being developed for making the rich Web 2.0 more accessible.

Accessibility frameworks for the rich Web
This section lists some of the upcoming standards and frameworks aimed at addressing the issues of accessibility in Web 2.0.

User Interface Automation
User Interface Automation or UIA is the new Microsoft accessibility framework that replaces Microsoft Active Accessibility (MSAA).
While MSAA was meant for exposing accessibility related information using COM, UIA is based on .Net. At a high level, UIA looks like a fairly well thought out framework that addresses the shortcomings of the MSAA world and will hopefully simplify the utterly complex mechanisms that current accessibility technologies have to implement.
The added focus on the use of UIA for automated testing will probably help to push it higher on the priority list of third party control developers - who traditionally haven't either looked at accessibility or only looked at it as an after thought.
UIA will be implemented by all Microsoft products, including MS Office, Internet Explorer etc.

IAccessible2
IAccessible2 is a framework similar to UIA but is still based on COM. This has been created by the open Linux foundation and builds on top of the work done by Microsoft on MSAA. . The purpose of IAccessible2 is to fill some key gaps in MSAA related to how accessibility related information should be exposed by applications specially related to spreadsheets and tables, complex documents etc.
IAccessible2 is being adopted by large vendors like IBM in their office suite and open source projects like Firefox. The standard has been synchronized with the UNIX/Linux GNOME Accessibility Toolkit (ATK).
Using this framework, existing screen readers can provide richer information to the users with the MSAA support already built in. This framework, however, does not provide a good answer for accessibility in applications built using the .Net platform.

Accessible Rich Internet Applications (ARIA)
ARIA is the upcoming W3c recommendation/standard for the accessibility of rich internet applications.
So, how does ARIA translate into accessibility?
There are basically three pieces to the accessibility puzzle:
1. ARIA: provides a standardized markup that browser based rich application UI libraries can implement to describe the UI and provide standard events for dynamic updates.
2. The browser: While rendering the apps that have been marked up using ARIA, the browser translates ARIA tags into the platform specific accessibility API. In the case of Windows, this API may be UIA or IAccessible2. Firefox already implements this translation and IE 8 has announced support for ARIA to UIA translation.
3. Assistive applications like screen readers: These are the clients of applications that expose accessibility related information through UIA, MSAA or IAccessible2 and help people with disabilities use those applications.

ARIA is gaining a lot of acceptance in the browser and UI toolkit vendors. Support for ARIA is being built into Microsoft Silverlight 2.0, Google Web Toolkit, Dojo from IBM and so on. These frameworks are still under development and Adobe flash and some smaller third party control developers have still not caught on to this.

AxsJAX
AxsJAX is a JavaScript framework that helps inject accessibility features into Ajax Web applications so that users of adaptive technologies such as screen readers and self-voicing browsers experience the same level of interactivity that is now taken for granted by users of Web 2.0 applications.
AxsJAX injects accessibility enhancements as defined by W3C ARIA. The prerequisites for experiencing its benefits include:
• A modern Web browser like Firefox 2.0 or later that supports W3C ARIA.
• Adaptive technologies that respond correctly to the accessibility enhancements introduced by W3C ARIA.
• In particular, many of the enhancements injected by AxsJAX depend on support for live regions a feature that enables adaptive technologies like screen readers and self-voicing browsers deal correctly with asynchronous updates to portions of a Web page.

The AxsJAX framework can inject accessibility enhancements into existing Web 2.0 applications using any of several standard Web techniques:
• As a bookmarklet --- small snippets of JavaScript that are used to create smart bookmarks.
• Using Greasemonkey --- a powerful browser extension that allows end-users to customize the look and feel of Web sites via custom scripts.
• Using Fire Vox --- Fire Vox, an open source talking browser extension for Firefox, automatically injects the AxsJAX scripts if the "Use site specific enhancements" option is turned on.


Conclusion
The future of the Web is rich and interactive powerful applications. These applications pose significant new accessibility challenges for the users of assistive technologies like screen readers. There are concerted efforts being made by the W3c, software vendors like Microsoft, Google, and IBM, and the open source world to make Web 2.0 more accessible. It is our responsibility as consumers of UI development platforms and frameworks for Web 2.0 applications that we demand these platforms provide the accessibility features required to ensure that the differently abled are not left out of the Web 2.0 revolution.

About the Author
Manish Agrawal is a visually impaired software professional who has over 10 years of extensive software industry experience successfully leading large teams to design and implement complex business-critical applications. Manish is currently working with Sapient Corporation, a leading IT consulting company based out of Boston, USA. Manish is a .NET architect on the Sapient’s Advanced Technology team and writes a blog related to accessibility at http://iaccessible.blogspot.com .