Archive for the 'FlashAid' Category

FlashAid version 1.0 released

FlashAid logo

Executive Summary: FlashAid enables Ajax/JavaScript to find out if a user's screen reader is currently communicating with the browser and turn off the JavaScript functionality accordingly to make their sites accessible. It only works on Internet Explorer on Windows.

And now the full story...

I just released an update to FlashAid that, well, actually makes FlashAid useful.

You can see a live demo of FlashAid here.

(FlashAid only works on Internet Explorer on Windows. Make sure you have your screen reader on before testing.)

Version 0.1, the previous release, was a proof-of-concept that I hacked together after a talk with Jeremy. All it did was pass the value of the System.capabilities.hasAccessibility property from Flash to JavaScript.

The Adobe Flash docs for System.capabilities.hasAccessibility states the following:

A Boolean value that is true if the player is running in an environment that supports communication between Flash Player and accessibility aids; false otherwise.

What the documentation should state, is:

A Boolean value that is true if the player is running in Internet Explorer on Windows.

Essentially, that's all hasAccessibility appears to show. The Flash player uses MSAA to talk to screen readers but it only works in Internet Explorer (FireFox has MSAA support but the Flash player returns false for hasAccessibility on that platform, for example.)

So, the FlashAid proof-of-concept was essentially useless (you can check for IE on Windows with one line of code in JavaScript.)

Version 1.0, though, does have an important use. It's a one trick pony that communicates the value of Flash's Accessibility.isActive property to JavaScript. This one's useful because, on Internet Explorer on Windows, it tells you whether the user's screen reader is actually communicating with the browser.

Why is this important? Because it allows Ajax developers using progressive enhancement to detect whether the user is using a screen reader and turn off the Ajax/JavaScript functionality to allow these users to access their sites and applications.

Again, keep in mind that this only works for Internet Explorer on Windows but it's still an improvement on what was previously possible.

I hope you find FlashAid v1.0 useful.

d.construct interview podcast

While I was busy meeting a deadline on my latest project, my friends at ClearLeft released the podcast of my interview for this year's d.construct web applications conference in Brighton, UK. In the podcast we talk about smashing myths about Flash usability and accessibility, touch on FlashAid, explore OSFlash and Flex 2, and discuss common issues and concerns shared by the web standards and Flash communities.

You can listen to interviews with d.construct speakers on the d.construct web site.

Introducing FlashAid: Using Flash to improve accessibility in Ajax

This post is out of date: See my post on the latest version of FlashAid (1.0) for up-to-date information.

We were having a barbeque on the beach on Saturday night when Jeremy Keith from Clearleft told us of an idea he had had for improving accessibility in Ajax applications by exposing, from a Flash application, the ability to detect whether accessibility features are installed on the user's computer. I had taken this feature for granted and didn't realize that the Ajax world was forced to live without it. Jeremy was surprised that no one had implemented this yet and we agreed that it was not rocket science by any means. In fact, I got a little time today to develop it and the result is FlashAid, which I've released under the open source MIT license on OSFlash!

FlashAid allows JavaScript to check if accessibility features exist on the user's computer by using a hidden (1 pixel x 1 pixel) Flash application. It requires Flash 8 and should be compatible with every browser supported by ExternalInterface (for a full list, see the FlashAid web page.)

Usage instructions

  1. Include the js/flashAid.js script
  2. Include the js/swfobject.js script (for embedding the Flash file)
  3. Create a
    with id="flashAid". If you want alternative content to display if Flash cannot be loaded, place it into this div.
  4. Inside your div, call the flashAid() method and pass in the name (string) of a method that will be called for success and one for failure. The method signature of the flashAid() method is:

    [js]flashAid ( successHandlerNameStr, failureHandlerNameStr, displayVersionMessageBool )[/js]

    Where displayVersionMessageBool is a boolean that determines whether or not a message will be displayed in the flashAid div if the user has the wrong version of the Flash Player. (FlashAid requires Flash Player 8 and above.)

  5. Code sample

    [js]
    [/js]

    Download FlashAid

    FlashAid v0.1 Preview is ready for download.

    This is a very early, proof-of-concept release. Please join the mailing list and give us feedback. It would be especially useful to hear from Ajax developers working on implementing accessibility in their applications.

    See the FlashAid web site for more information on FlashAid.

    Want to help spread the word? Digg this!






Bad Behavior has blocked 0 access attempts in the last 7 days.