Tzipi Livni framed the current conflict in Gaza during her address to the Knesset, “The world is divided between peace-loving moderates, and war-mongering extremists”.
On Saturday the moderates carried out a strike that left over 200 dead in less than 5 minutes. The body count is growing, we are past 300 Gazans killed, Saturday and today brought the first two Israeli civilian casualties. The peace-loving moderates vowed not to stop the overwhelming destruction until “the reality on the ground changes”.
Livni continued and said “We expect the world’s support for those who fight the free world’s struggle”. On this point all agree, Gaza is not part of the free world.
Dalia Itzik, the Knesset chairperson said “this is not a time for politics, we must stand behind the army”. Similar statements were heard across the political spectrum from left to right. Besides a Tel-Aviv minority, the only bitter cries of descent are coming from Palestinian-Israelis. The media has been quick to point it out, and the threat of this fifth column.
The pattern is familiar, the Israeli street is proud of the IDF’s potent use of force: The smart bombs, the effective intelligence gathering, and the cool-headed generals. A true Israeli moment. As Gideon Levy wrote “Operation Cast Lead, it will end with a Kleenex”. In a country where corruption and incompetence reign supreme in the halls of government, it’s citizens trust their future in the professional and war-hardened hands of the defense establishment. The IDF had some low-points, but it never stopped being a winning brand. What pride would we have left without it?
I voted for Labor in ’99, maybe I was foolish. In the last four years I have vowed not to vote for Labor many times, but here is another reason: The few Knesset seats that it will win in the general elections will have been procured with blood.
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:
- It will provide a means of comparison between two static accessible heirarchies of different browsers.
- It will provide a means of comparison between two different event sequences with the same interaction in different browsers.
- It will run automatically, and will be able to flag discrepancies between two browsers.
- There will be a finite set of test cases that will provide a generic benchmark for conformance.
- 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.
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.
- Mozilla.org (comparison)
- 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!
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!