Go Use It!

The Mozilla Foundation has supported my work on Speclenium, an effort to create a test framework for web accessibility, and a browser benchmark tool, that will allow us to easily spot discrepancies between different browser implementations.

When I originally proposed this project, with the help of Aaron Leventhal, the uses and goals branched out in many directions, so when I finally started work I consolidated the specification to five main points:

  1. It will provide a means of comparison between two static accessible heirarchies of different browsers.
  2. It will provide a means of comparison between two different event sequences with the same interaction in different browsers.
  3. It will run automatically, and will be able to flag discrepancies between two browsers.
  4. There will be a finite set of test cases that will provide a generic benchmark for conformance.
  5. A user should be able to throw it at any URL or interaction script, two browsers, and do a more interactive comparison (without preset rules).

In the hopes of building as much as possible on existing stuff, I used Selenium, a mature automated web test framework to drive the automation, both for launching browsers scripting user interaction. Selenium was perfect because it supported all mainstream browsers, and is cross-platform. By expanding Selenium I made it possible to check for certain accessible objects, subtrees, events or event sequences, both on Linux and Windows.

I also took advantage of the Codetalks test cases that were being written to provide requirement number 4, a set of finite tests.

As for requirement number 5. It took a lot of effort to find a way to make a comprehensible comparison between two complex accessible object trees. Ultimately I think that the end result was worth the effort, which consisted of algorithmic work based on a paper titled Change detection in hierarchically structured information, and of UI work.  You could see the results in my previous post.

I think an important achievement in this project has been the fact that this framework is cross-platform. I did this by utilizing pyatspi for Linux accessibility, and pyia for Windows, the two libraries are similar, and allowed easy cross-platform support.

Pyia is a Python MSAA client library that I wrote early on to get acquainted as quickly as possible with Windows APIs. I got a lot of working code snippets from NVDA when I started working on it. The end result is a fairly straight forward, easy to use library. So if you are planning to do any Windows AT development in Python, I would recommend giving this library a spin. You could download the latest version here.

To conclude, I hope I layed down a foundation for plenty of AT-side testing and conformance benchmarks. I pretty much kept the work browser neutral, so I hope that browser developers across the board will feel comfortable picking this up and using it in their accessibility testing.

A big thanks to Marco, Aaron and Frank for supporting me on this one, and I really hope my work makes a difference.

Go Use It!

Apples And Pairs

Speclenium has come of age…

It is now possible to extract pretty interesting comparisons of browser accessibility API implementations.
Here are a two comparisons between Firefox nightly builds, and Internet Explorer 8 beta 2.

The comparison view only works on Firefox, I do not dare try it on anything else.

  1. Mozilla.org (comparison)
  2. WAI-ARIA tree example (comparison)

Here is comparison of the browser chrome between Firefox 3.0.4 and Firefox nightly.

I hope you have as much fun comparing as I did!

Apples And Pairs

Speclenium 0.0.5

I just released Speclenium 0.0.5.

One of the bigger stuff I worked on was setting up a proper tree diff view that allows the user to grasp quickly how the two accessible object trees differ. So here is an example page. It represents the accessible tree differences between Firefox 3 and IE 8 Beta 2. The page they are both rendering is an ARIA  slider example.

I only tested this with Firefox, so it probably does not yet work on anything else. I also tested it with Orca, NVDA and Fire Vox.

Let me know what you think!

Speclenium 0.0.5

Scripting Enabled Seattle

Spending two full weekend days here in Adobe’s conference center with a group of web accessibility folks.

The Google guys seem to have a lot of fun, their effort is to bring usability to the web now. As opposed to spending all their energy evangelizing and wagging their fingers at access issues they find in house and on the wide web. The UW folks here got straight to work on a Facebook AXSJAX extension, and the Amazon.com guys started debugging and improving the existing Amazon.com AXSJAX extension.

Ryan Benson pointed out some Facebook keyboard navigation issues, and showed some tips for making Firefox more keyboard friendly, for example, making the focus rectangle more visible, and enabling caret mode.

Jeff Bigham and other UW folks presented their current projects. I thought the different web usability research metrics were interesting. I have yet to try WebAnywhere.

There was a large representation of Amazon.com folks, which was great. Especially since accessibility is not in their job descriptions. It is really wonderful seeing them invest a weekend in this.

I am happy to meet Wendy and Matt. It is good to know local a11y professionals. I’ll be sure to get thier book when it comes out this November.

I got to introduce Specular with a full 25 slide presentation, I breezed through most of it. And there is a new release today!

Scripting Enabled Seattle