Posts in Category "Flex"

September 23, 2009

Techshare 2009 presentation

I spoke at the RNIB’s Techshare conference in London last week. The topic was Rich Internet Applications with Flash, Flex, and AIR. The talk was geared to a tech-savvy consumer audience, so was light on coding specifics but highlights the key high-level messages about Flash, Flex, and AIR. If you are interested, take a few minutes to view the presentation and let me know if you have comments.

12:39 AM Permalink
August 24, 2009

Adobe Supports Open-Source Screen Reader NVDA

NVDA is a screen reader offered by NV Access, an Australian non-profit organization. NVDA is open-source and free for users to download and use.

All users encounter Flash-based content and PDF documents regularly, and Adobe wants NVDA users to have a positive experience. Therefore, Adobe is funding NVAccess to help address the goals to “Improve support for Adobe Reader” and “Add support for Adobe Flash embedded in Browsers. This work will benefit not only Flash and PDF, but also help users access content and applications developed with Adobe Flex and interactive forms developed with Adobe LiveCycle.

NVDA developers have already done some work to enhance access to PDF in the current release. We’re looking forward to additional improvements progress that will surely be made in the coming months!

5:00 AM Permalink
June 19, 2009

Evaluating Flash and Flex Content with aDesigner

I asked Jon Avila at SSBBART Group to record a demonstration of the use of the Eclipse tool aDesigner to help evaluate Flash and Flex content for accessibility. He used Adobe Captivate to record his use of the tool and provides useful commentary. aDesigner provides very useful functionality and it is much more user friendly than my old standby, Inspect32. Take a look, and as always, please provide any feedback you have.
aDesigner is a project of the Accessibility Tools Framework (ACTF).
Recorded demonstration
Download aDesigner

12:32 PM Permalink
July 22, 2008

Draft Documentation for Flash Accessibility Implementation

Accessibility in the Flash Player and in products that depend on it is very important, and there is a lot more built in support for accessibility than most people are aware of. The Flash Player supports over 60 different role constants and has mechanisms for developers to set role and state information for controls, has methods for getting and setting values, and allows developers to define the accessibility location information for a control to help screen magnification tools restrict the magnified viewport, control the accessibility API focus and selection, and more.
In the documentation package linked below you’ll find:

  1. Documentation of the flash.accessibility package and AccessibilityImplementation class
  2. Documentation of the mx.accessibility package and accessibility implementation classes for Flex components
  3. Improvements to “getting started” articles about accessibility, including a information about implementing accessibility on a sample component.

Developers have asked for this information, which has been until now not publicly shared. The documentation that we are now providing is a draft that we would love to hear comments on. To comment on this, please either log bugs on our Flex bug database at, orat the Flex Documentation blog entry on this topic, or you can leave comments here.
The documentation is the result of the efforts of the Flash Player, Flex, and Adobe Corporate Accessibility teams – let us know your thoughts!
UPDATE: I’ve modifed the files for download in response to questions from some reviewers. The zips previously contained files for accessibility that had changed in the langref, but this resulted in flash.accessibility.AccessibilityProperties apparently being removed and replaced by flash.accessibility.AccessibilityImplementation. This is not the case, both are present. Sorry for the confusion.
Download the “accessibility-only version of the Flash and Flex accessibility documentation.

10:34 AM Permalink
May 28, 2008

Webmaniacs Talk on Flex Accessibility

I spoke at the Webmaniacs conference in Washington DC last week. My speaking slides are available for download.

11:20 PM Permalink
May 23, 2008 Put to Good Use

Steve Faulkner wrote a good post at The Paciello Group’s blog on screen reader detection ( His points are all quite fair and it is worth noting that what the Flash Player does is detect the presence of a running MSAA client, which is broader than screen readers.
This technique shouldn’t be entirely discounted, however, for certain kinds of use that take advantage of the facts, which are that all Flash-reading screen readers will cause the player to set the property to true, and that there are few MSAA clients that are likely to be running, although some are likely to be non-screen reader assistive technologies.
Here’s a few ways that .active can be used that will benefit screen reader users, and won’t be disruptive to other potential users, or may be beneficial:
1) Replacing inaccessible or difficult to use controls. If using a complex control in a Flex or Flash application, or a control that has not been improved for accessibility, you can swap that control for an equivalent one when .active is true. In one of our Flex 2 sample applications there is a slider control with two slider thumbs that the user uses to set a start and end date for the data being displayed. When an MSAA client is active, this slider is replaced with a pair of combo boxes, one setting the start date and one for setting the end date. The idea of a double-slider makes sense for UI designers, but there isn’t a way in MSAA to express a double-slider, so a simple replacement here is justifyable.
2) Offering users additional options when .active is true that are likely to be beneficial is another possible use. For example, a developer might present a pop-up dialog that asks if the user wants audio description on. There would be a UI control that would allow all users to turn audio description on and off, but this would be an improvement that would be easier for blind or viisually-impaired users and that wouldn’t adversely affect any other user who has a system that uses MSAA in some other way.
3) Pausing video. In a video made in Flash a developer might make the video paused when loaded when .active is true. If a screen reader user needs to navigate to the pause or stop buttons for a video while the video is playing they will find that very difficult due to competing audio tracks from the video and the screen reader. Allowing users the choice of whether video plays by default is nice for other users also, but causes more problems for blind and visuall-impaired users.
These are just examples to show that using .active to make good decisions is not impossible — I agree with Steve’s post that I would distill down to “.actve is not only set to true by screen readers”. Think carefully about how you may use it.
NOTE: .isActive is an AS2 method, .active is an AS3 property – see for migration information

11:40 AM Permalink
March 20, 2008

CSUN 2008 Talks

Last week, members of the Adobe accessibility team attended the California State University’s “Technology and Persons with Disabilities Conference” – aka CSUN. This is a big event in accessibility each year and if you are interested in accessibility you should consider attending in 2009.
Adobe participated in four talks at CSUN:

  1. IAccessible2 Development: An Accessibility API that Works for Assistive Technologies and Applications. This was a panel discussion involving IT and assistive technology companies.
  2. Accessible PDF Authoring Techniques. This was a talk by Greg Pisocky and Pete DeVasto from Adobe and Brad Hodges from the American Foundation for the Blind. The presentation slides are available.
  3. Rich Internet Applications with Flash and Dreamweaver. This was a talk by Matt May and Andrew Kirkpatrick discussing Flash and AJAX accessibility, related to Adobe’s SPRY framework, Flash and Flex. The presentation slides are available.
  4. Accessible Internet Video. This was a talk by Andrew Kirkpatrick on how you can deliver the most accessible experience in video online using Flash. The presentation slides
    are available. I’m going to post the main demonstration example shortly.

Please take a look and let us know if you have any comments.

9:16 AM Permalink
December 11, 2007

Introducing AIA

A group of IT and assistive technology companies have formed a group designed to address engineering challenges around accessibility issues. The group’s name is the Accessibility Interoperability Alliance, or AIA. Adobe is part of this group because it is important to have improved methods to provide straightforward interoperability between IT products and assistive technology tools.
Of particular interest is the project that seeks to harmonize existing accessibility APIs such as IAccessible2 and UIAutomation. With the wide variety of assistive technologies available today, both these tools and Adobe’s players need reliable and standard methods to participate in information exchanges with assistive tools. There are too many tools for Adobe’s players to support directly through customization and similarly the assistive technology tools have too many IT products that they need to support so they too cannot provide custom solutions across the board. The way forward is through better and harmonized (or converged) APIs.
The AIA press release is at:
The AIA group web site is

12:43 PM Permalink
August 15, 2007

Demo of JAWS with Flex 2 TabNavigator Control

I wanted to post a quick demonstration (using Adobe Captivate) to show how JAWS interacts with a Flex 2 TabNavigator component. This was a one-off demo – the kind I wish I could do without saying “uh” so often!
TabNavigator Example
TabNavigator example MXML source
Flex Scripts for JAWS (JAWS 8.0 coming soon)

11:02 PM Permalink
July 5, 2006

IE Security, JAWS, and Flash Issues

By now, almost everyone has heard about the IE Security Update and how it impacts ActiveX control interaction. With the release of JAWS 7.1, there are additional reasons to make sure that you add the HTML Object element in the way suggested at the Active Content Developer Resource site (
If you don’t, here’s an example of the badness that you’ll inflict on your screen reader users. In JAWS there are two modes that you need to think about – Virtual PC Cursor mode, which allows the user to read through the document line by line or using several shortcuts; and Forms mode, which allows users to interact with controls and type information into editable controls. There are two modes because keystrokes that are needed to navigate (e.g. “f” takes you to the first form control on a page in HTML or Flash) may also be needed in a control (e.g. Frank needs to enter his name in a TextInput). When a user locates a form control in HTML or Flash, they hit ‘enter’ and JAWS says “”forms mode on” and the user can interact with the control.
In JAWS 7.1 there are bugs that will cause difficulties with this process. I’ve made a simple test file — here’s what happens with JAWS 7.1 (I’ve put keystrokes in braces):
Flash movie start {down arrow}
Accessible Flash. Learn more at the the {down arrow}
Adobe Accessibility button {down arrow}
Resource center {down arrow}
Resource center Edit {enter – to switch to forms mode}
Enter, forms mode on. Resource center button, to activate press space bar {space}
At this point, everything is fine. The user should expect that they can now type in the edit — except that they can’t. Focus has been moved to the top of the FLash content, away from the TextInput used to enter forms mode. The user needs to again navigate to the correct TextInput. This might not be a big issue if the TextInput is the first control in the Flash content, but it is a usability problem and can be a huge source of confusion.
A second issue with JAWS 7.1 is that when you tab through a web page in Virtual PC Cursor mode and tab to the not-yet-activated ActiveX control you might expect that you’d hear the same information that is available visually (“Press SPACEBAR or ENTER to activate and use this control”), but you don’t. You hear nothing. If the user is aware that they’ve tabbed onto something they might hit ins+tab to read that item and then they will hear “Flash movie start”. If the use is familiar with what is going on they might hit enter or space, but neither will work. The user needs to use the arrow keys to navigate into the flash content and if they need to enter forms mode deal with repositioning their focus.
All of this is a consequence of changes made to JAWS for version 7.1. If you enable “legacy Internet Explorer Support” in the JAWS Configuration Manager’s HTML Options dialog all of these issues go away, but you can’t count on users doing that.
Avoid all this by using the method recommended at the Active Content Developer Resource site (

1:26 PM Permalink