Is Adobe Flex Really Accessible? You bet your robot voice it is!

Aaron Cannon over at NorthTemple recently posted the following on his blog:

Is Adobe Flex Really Accessible? Short answer: no, at least not as far as I can tell.

Aaron doesn't allow for commenting on his blog but I thought this topic deserved a decent reply. Before joining Adobe I spent several years working in the public sector and got my start in public speaking covering the subject of 508 and accessibility.

Speaking as developer whose built large scale .gov websites and applications that met the US government's eGov and section 508 standards, building accessible applications for the flash player is a heck of a lot easier that building for the browser. Of course, there isn't anything inherent to Flex that just auto-magically makes you applications more accessible just because they are in the Flash player. It's still up to us as developers to code our applications in a responsible manner that inter operates well with the existing tools like JAWS (the leading screen reading software). However, there are some things about Flex that make our lives a lot easier. When asked about Flex accessibility (which comes up quite frequently) it's almost a joke to point out that it's as easy as 'accessible = true'.

To get started (and leap right past HTML/AJAX) all you need to do is import the accessibility scripts into your project and then enable accessible=true on the various display components. Because these objects can add a bit to the swf file size they aren't included by default. Of course all components are not made equal, but as of today there are at least 23 different components that support accessibility out of the box. Don't expect to drop a video component on the stage and magically have the audio captioned. Flex also has a much more elegant and powerful way to handle keyboard and tab navigation. The tools are all there, we just need to use em. Beyond the built-in tools, we should also embrace the rich media aspects of the Flash Player and start thinking outside of the proverbial HTML-accessibility box. For blind users, why not record an audio introduction to application that details the keyboard navigation controls?

I think where Aaron had a rough time is that most of the accessibility information on Adobe.com for Flex needs to be updated. It looks like all of the information is based off of Flex 1.5. It's definitely something that needs to be addressed and our accessibility team is working on it. I'm also willing to bet that all the applications Aaron tested weren't the best examples of applications designed to be accessible.

The other big issue here is JAWS. For those who haven't had the pleasure of developing for JAWS before... it's 'rough' to put it mildly. The first time I ever needed to install JAWS I wrestled with it for nearly a week before I could successfully navigate my site with the monitor off (a great test of an accessible app). At the time I was reminded by a blind colleague who used JAWS extensively that it took a lot of getting used to and has it's own set of quirks. For flex there are even special scripts that should be installed that extend JAWS to work better with the Flash Player. We should remember that as developers who don't rely on JAWS, it can seem harder for us to use than it is for the people who are familiar with it. Finally, we are working very closely with the JAWS team at Freedom Scientific to enhance interoperability with Adobe products.

Is Adobe Flex really accessible? My short answer is Yes. Very much so. Is accessibility in Flex as good as it could be? Definitely not. Is Accessibility in Flex a giant step forward compared to HTML/AJAX-based applications? A resounding yes.

The bottom line: If I was tasked to build an accessible application, I wouldn't use anything else other than Flex. And not just because Adobe funds my drinking habits. From a RIA perspective, developing an accessible AJAX-based application could be considered one of the levels of Buddhist hell. I shudder to think about the enormous complications involved there. From a general web perspective, the browsers were never built with accessibility in mind and screen readers like JAWS are really band-aids the to problem. They rely on screen scraping and parsing HTML to transform non-accessible content into something usable (and don't have much of any support for JavaScript or DHTML). Flex/Flash offers developers a rich set of tools to make this job easier. At the end of the day, I'm sure we would all love to build fully accessible applications, but it's time and budget that normally prevents it. Flex is a step in the right direction. It's easy now, but hopefully we'll get to a point where it's so simple that it would be unheard of to build a non-accessible application.

Comments

Aaron Cannon

Aaron Cannon wrote on 02/08/08 5:21 PM

Thanks Adam for your reply. My reply to your reply is at http://www.northtemple.com/1291

Also, sorry about the lack of comments. I've been bugging the admins, so hopefully we'll get them soon.
oto kiralama

oto kiralama wrote on 07/14/08 2:30 AM

Robably the best pot from you. Thank you.
tony

tony wrote on 07/31/08 2:49 AM

But why would you use flex if you can do anything and better in ajax. Thats why flex ajax bridge not making much of a sense.

As for the price you really can't beat ajax
Michael

Michael wrote on 02/17/09 2:41 PM

I've been trying to get a basic Flex app up and running with JAWS. One major problem I'm seeing with Adobe Flex is that if I localize any forms by pulling in the strings from locale properties files using the resource manager, JAWS no longer reads these. So now I'm at a crossroad - localized app, or accessible app - can't seem to have both. Please correct me if I'm wrong...
du

du wrote on 02/18/09 2:46 AM

1. Please visit www.busycode.com or www.flexdeveloper.com.cn
2. Low cost high quality.
3. Best Adobe Flex outsourcing service provider.
4. More than 60 full time in-house Flex developers.
5. Our company Busycode Inc. was registered in San Francisco, Beijing and Nanning.
6. Our skill set is "Adobe Flex/AIR/Flash + .NET/Java/PHP + SQL Database".
7. Our keywords are Flex developer, Flex coder, Flex programmer, Flex expert, Flex engineer, Flex specialist and Flex outsourcing service provider.