Sunday, June 15, 2008

UIA and test automation

This MSDN article about test automation using UIA gives a good overview of how UIA can be used:
Test Run: The Microsoft UI Automation Library

I feel it is too cumbersome for developers to use it the way it is presented in this article. The underlying technology is very useful but will probably need testing automation applications like QTP or silk to start adopting it for large scale use.

ARIA and UI frameworks

ARIA is the upcoming w3c recommendation for making rich internet apps accessible.
I tried looking around for how many rich application platforms/development libraries are building support for this. Here is what I found:
- Silverlight2 has announced support for ARIA this year.
- ASp.net is not talking about ARIA anywhere that I could find. They are sticking with the existing accessibility they have with html...although I would have thought it would have been better with all the interactive features being packed into asp.net controls.
- Flash is still with the MSAA world. I don't know enough about Flash to say if they will move to ARIA or UIA going forward.
- DOJO is an ajax toolkit that is building ARIA support in its widgets. However, my browser hangs every time I try to visit dojo's accessibility page.
- Ruby doesn't seem to be talking about ARIA either. But again I don't know enough about ruby to say that I've looked around enough to state this.

Saturday, June 14, 2008

IAccessible2

IAccessible2 is the accessibility API specification created by the Linux foundation.
It builds on top of Microsoft Active Accessibility (MSAA), which was the accessibility API created and promoted by Microsoft in the COM days and untill recently.
Pros:
- MSAA is implemented by all existing assistive technology vendors and it will be straightforward for them to use IA2.
- The API has been harmonized with the Unix accessibility API.
- The API has been implemented in some big projects like firefox and some IBM products.

cons/aprehensions:
- the API builds on top of an old MS API and not on UIA, which is being actively developed and supported by Microsoft going forward.
- I am looking for answers to the following with IAccessible2:
1. The entire specification is for use by Com servers and clients. However, most new application development work on the Microsoft platform is being done in .Net. How does this specification help to make those .Net applications accessible?
2. If .Net/Com interop is the anser, how does this spec address the significant performance overhead of that interop?
3. Are there .Net wrappers to the com API already being created that .Net applications can use without having to implement the com interop themself?
4. Is there a .Net widget/control library that is also being published by the tool vendors supporting this initiative that I can use as a .Net application developer to get out of the box accessibility with my UI elements - as is the case with the UI widgets that ship with Microsoft Visual Studio?
5. If I am developing custom controls/ UI widgets in .Net, are there any sample apps/ prebuilt controls that I can subclass to help make my custom control accessible?

Sunday, June 8, 2008

UIA and 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 four 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 is now called User Interface Automation (UIA). Firefox already implements this translation and IE 8 has announced support for ARIA to UIA translation.
3. UIA: As mentioned above, UIA is the new accessibility framework for Windows applications that replaces Microsoft active accessibility. It provides a managed interface for accessibility while MSAA was just Com. UIA also simplifies the use of automation across multiple UI frameworks.
4. Assistive applications like screen readers: These are the clients ofapplications that expose accessibility related information through UIA and help people with disabilities use those applications.

UIA and MSAA

User Interface Automation or UIA is the new microsoft accessibility framework that replaces Microsoft Active Accessibility (MSAA).
From the overview at UIA fundamentals, it 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.

Thursday, June 5, 2008

accessible ajax update panel

This useful article about an Accessible ajax update panel doesn't just provide a simple trick to make ajax controls more accessible but will also help developers understand how screen readers interact with Web pages and reiterates my point about using headings.

ARIA

A must read for everyone who wants to know about accessibility of Rich Internet Applications - pretty much everything that we see on the Web today.