Main

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

April 28, 2009

Firefox Focus and Actual Links

I mentioned at the TPG Webinar on Flash that there is a way around the issues with focus trapping in Firefox. My friend and accessibility-colleague Michael Jordan has developed a simple example that shows how to get focus in and out of Flash content in Firefox (using the SWFFocus class). Also in this example he shows how to make links that are not buttons, but use the MSAA link role. This has always been possible, but usually people use the button role.

Give this a try and let us know if it works for you or if you have any suggestions for improvements.

Demonstration test file

Download demonstration file

March 31, 2009

Flash accessibility webinar recording

The Paciello Group held the Flash accessibility and WCAG 2 webinar today. You can view the recorded event with captioningonline. The Paciello Group will be posting the slides at http://www.paciellogroup.com/blog.

We ran into a couple of technical glitches in the opening minutes - the audio cuts out for most of the first minute introduction, and the captioner had difficulty dialing into the phone bridge so the captions are absent for about the first 8 minutes. In retropect I wish I had pointed this out to the TPG presenters so the event would wait a few minutes to get the captions resolved but I wasn't as on top of that as I will be next time. The remaining 82 minutes is captioned, although live captioning of the screen reader demos is often written as "indistinct audio". Tough work, live captioning.

Hope the webinar is interesting and useful.

March 23, 2009

Accessibility webinars on Flash and PDF

The Paciello Group is doing a series of free webinars on PDF and Flash accessibility. The first webinar on PDF accessibility and WCAG 2.0 was recorded for asynchronous viewing, and the slides from the PDF accessibility talk are available for download.

Next week there are two additional webinars. March 31 the topic is Flash accessibility and WCAG 2.0, and April 1 the topic is PDF forms and WCAG 2.0 (Correction: the PDF Forms webinar is April 8. See the Paciellogroup blog for complete information).

All of the 90-minute webinars are captioned as real-time events (using Adobe Acrobat Connect) and the captions are included in the recorded sessions.

The webinars will be held at noon Eastern time at http://my.adobe.acrobat.com/wcag2. You can find out more about the webinars at the Paciello Group's blog - see the post titled The Paciello Group and Adobe Present WCAG 2.0 Accessibility Webinars for Flash and PDF for more information. Set your calendars!

February 3, 2009

WebAIM Screen Reader Survey: A Closer Look at Flash and PDF Results

WebAIM released the results of a survey of screen reader users and the results are interesting for what they tell us about HTML use, but the commentary around user’s thoughts on Flash content and PDF documents is of particular interest at Adobe. The results state that 71% of screen reader users responding feel that Flash content is very difficult (34%) or somewhat difficult (37%) to use, and 48% of screen reader users responding feel that PDF documents are very difficult (17%) or somewhat difficult (31%) to use. I think that it is worth putting some additional context around these numbers.

Given that the Flash player has supported accessibility since 2001 when Player 6 was released, and the Flash authoring tool provides support for developers to add accessibility to Flash content, why are Flash developers not adding necessary information to their projects? Some are, to be certain -- there are examples of Flash being used properly such as what is offered at Social Security (http://ssa.gov/pgm/flash/overviewcaptioned.htm) and the U.S. Department of Education (http://federalstudentaid.ed.gov/mystory/index.html) web sites, but you don’t need to look too far to find inaccessible examples.

Flash is a tool to make content, but many developers aren’t providing the necessary information. We’ve published books with information relevant to the topic such as Web Accessibility: Web Standards and Regulatory Compliance which I contributed chapters to and Universal Design for Web Applications: Web Applications that Reach Everyone which Matt May on the Adobe accessibility team co-authored with Wendy Chisholm. We also have information available at the Adobe Accessibility web site -- please point these resources out to Flash developers who don’t make their content accessible.

The story is similar for PDF documents – there is tooling readily available to make PDF documents and forms accessible, and many authors do take the time to add necessary accessibility information, but not everyone does. For PDF, please point authors to the Acrobat 9 accessibility guides at http://www.adobe.com/accessibility/products/acrobat/ or to the Web Accessibility: Web Standards and Regulatory Compliance book chapter on PDF.

I feel that it is important to not over generalize from the WebAIM survey data for Flash and PDF. It is fair to say that users are rating these formats less favorably than any of us would like to see but that does not mean that the formats are not accessible. Users have interacted with examples in these formats from which they have formed impressions but that does not mean that developing accessible content in Flash or PDF is impossible. This idea is echoed in Adrian Higginbotham’s comments to the WebAIM blog announcement of the survey results where he acknowledges challenges with some Flash content but finds success with others.

Flash and PDF are tools and the accessibility of the content depends on whether the developer is making an effort to produce accessible content. Please encourage authors and developers to handle accessibility properly.

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 http://bugs.adobe.com/jira, 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.

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.

May 23, 2008

Accessibility.active Put to Good Use

Steve Faulkner wrote a good post at The Paciello Group's blog on screen reader detection (http://www.paciellogroup.com/blog/?p=61). 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 Accessibility.active 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 http://livedocs.adobe.com/flex/201/langref/migration.html for migration information

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.

December 17, 2007

Captions on CNET TV

CNET TV is providing captioning for the videos on their site as of last week. The video is in Flash and uses the DFXP caption support we put into Flash CS3. Check it out yourself at http://www.cnettv.com/9742-1_53-31702.html.

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: http://www.accessinteropalliance.org/newsevents/pr121007.html.

The AIA group web site is http://www.accessinteropalliance.org/.

December 4, 2007

New Flash Player with MSAA on Firefox and H.264 Video

In case people haven't heard, we have a new version of the Flash Player available as of last night. The features that I'm most excited about are the support for H.264 video - so now you can have high-definition video and you can provide captions using the caption support released in Flash CS3 - and the addition of MSAA support for Firefox so users of screen readers such as JAWS and Window-Eyes that use Firefox for browsing the web can interact with Flash content. The new player version is 9,0,115,0 and you can get it at http://www.adobe.com/go/getflashplayer.

July 3, 2007

Flash Captioning Seminar

I (Andrew Kirkpatrick) am delivering a seminar on Flash captioning Tuesday, July 10. See details below and sign up on our website.

Title: Captioning in Flash
Tuesday, July 10th, 2007 11:00 A.M. PDT
Adding captions to video in Flash is essential to ensure that users who are deaf or hard of hearing can access Flash video content. Adobe Flash CS3 includes a new component to make captioning easy and effective, and a variety of captioning tools are available to help developers define a process that fits into their existing workflow. This session will share best practices for Flash 9 swfs, Flex applications, and older Flash 8 swfs and will show you how to get captions in your video step by step.

June 22, 2007

The Librarian of Congress and more

With the new features in Flash CS3 for captioning, the skins we've made available for accessible video presentations, our support for the DFXP caption data format, and new work on CC for Flash by NCAM I'm seeing a lot of new captioning examples. Someday there will be too many to point out when new ones come available, but in the meantime, here's another. This one is also by the Library of Congress and relates to the 2007 National Book Festival and uses the FLVPlayback skins.

The example is at http://www.loc.gov/bookfest/. It includes captions and is screen reader and keyboard accessible, and also offers a transcript.

May 7, 2007

Captioning Article and Examples

We've got a great article on the Adobe Developer Center: Captioning Flash video with Captionate and the captioning-supported FLVPlayback component skins
by Michael Jordan, who added support for captioning to the set of ActionScript 2.0 FLVPlayback video component skins. This is an eight-page article, and by page three you'll have captions. Pages four through eight provide more in-depth information for developers who want to make additional modifications to the user interface.

The beauty of the skins is that they complement the built-in ActionScript 3.0 FLVPlaybackCaptioning component that comes with Flash CS3 and allow authors who want to publish video files to support Flash Player 8 to add captions with ease, and provide an accessible interface to control the video for keyboard and screen reader users at the same time.

The Library of Congress is using the skins for their online exhibition on the MacDowell Colony, but they aren't using Captionate - they have a DFXP XML file from MAGpie. These skins also support external caption data in DFXP. We have our list of caption vendors who create DFXP caption files, including Caption Colorado, Automatic Sync Technologies, the Media Access Group at WGBH for developers who don't want to caption video themself.

As always, I'm interested in any feedback on the skins or the article, but first go check out the MacDowell Colony videos!

April 16, 2007

Captioning in Flash CS3

I want to highlight my favorite new feature in Flash CS3 - Flash captioning. There is a new component, named FLVPlaybackCaptioning, which works in cooperation with the FLVPlayback component to make delivering captioning in Flash really easy.

Ordinarily a Flash developer drags a FLVPlayback component onto the stage in the Flash authoring tool, sets a variety of parameters including identifying the video source, and publishes the video. The additional steps for adding captioning are to drag the FLVPlaybackCaptioning component onto the stage, reference the caption data file, choose a FLVPlayback skin that includes a captioning toggle button, and publish. The captions will appear over the video.

Beyond this basic process, there are many additional options that allow complete control over the location and appearance of the captions. The captions can appear in a separate area adjacent to the video (or where ever is deemed best) and with a variety of font characteristics including different font faces which can be embedded into the Flash movie and shown even on user's systems that don't have that particular font installed.

The captioning data file needs to be in the W3C's DFXP (Timed Text) format. There are already tools that help you create a DFXP caption file. MAGpie already supports this format, and other tools such as Captionate and HiCaption Studio have plans to support DFXP in the coming weeks and months. If you prefer to have the captioning work done for you, there are services that can deliver the DFXP file, including the Media Access Group at WGBH, Automatic Sync technologies, and Caption Colorado, and more providers are expected soon.

More information to come - let us know how you use this exciting new feature!

March 8, 2007

New Captioning in Flash Component

WGBH's National Center for Accessible Media (NCAM) is providing a new component that allows Flash developers to add captions to video in Flash. "cc for Flash" is a free download and is available at the NCAM web site (http://ncam.wgbh.org/webaccess/ccforflash/). This component helps developers use captions in QuickTime's QTtext format or in the new W3C Timed Text format called DFXP.

MAGpie's export menu, showing the DFXP output option.
Also announced is an update to MAGpie, NCAM's free closed captioning tool. This update adds a new export item to MAGpie's export menu to allow for the output of DFXP caption files.

To use MAGpie to caption an FLV, you'll need to use a file in a media type that is supported by QuickTime, so if your video starts out as an MPG or MOV just use that for the captioning, and then use the XML file generated by MAGpie. It won't matter as long as the timeline for the FLV is the same as the timeline for the original video. If you create the FLV from a portion of a larger file you'll want to get a QT-compatible file that has the same timeline for the captioning.

I'm really excited about this new development - send links to captioned video if you use cc for Flash. Thanks to NCAM for the great work!

October 24, 2006

FLVPlayback skins with Captionate captioning support

Providing captions in Flash just got easier. Adobe is making skins for the FLVPlayback component available for use. The skins were crated by Michael Jordan and are being provided by Adobe for developers to use.
To use these skins:


  1. Download the caption skin MXP file

  2. Run the MXP file to install the extension

  3. once installed, you simply select a skin from the 'Select Skin' dialog that is displayed when changing the FLVPlayback skin in Flash 8, as shown in the image below. Selecting a caption-enabled skin from the 'select skin' dialog

  4. the FLV file that you display in your movie must have caption data to display. These skins are designed to work with FLV files that have captioned added by Captionate.

Please let us know how these skins work for you - we'd love to point to examples!

Update: We've uploaded a new version of the skins with the following issues addressed:


  1. The updated skins now support the FLVPlayback Custom UI Controls, with a CaptionsButton symbol to the FLVPlayback Custom UI.fla library.

  2. bug fixed where the skins cause the FLVPlayback component to throw an “Invalid contentPath” error when the FLVPlayback component instance appeared after the first frame of the swf and the contentPath url was set in the components panel.


August 24, 2006

Cool Captioning Examples

I've seen a couple of interesting examples of captioning this week.

http://www.planetinneed.com/ - It's hard to believe at first, but this is a commercial for milk. The captions are hard to read but there is a cool telepromptor-like effect. A funny site, although not a good example of screen reader access.

http://www.vikingkittens.com/ - A feline-based music video with subtitles. I kept watching longer than I wanted to because I realized that I never learned the lyrics to Led Zepplin's "The Immigrant Song" (because Robert Plant's singing in this song is nearly unintelligible, at least to me). Accessibility to the rescue of Led Zepplin fans everywhere...

August 23, 2006

Another Solution to EOLAS Issue

Jason Garber of sixtwothree.org has a post discussing another way to avoid the "click to activate and use this control" issue. His method uses Javascript to rewrite the DOM with the same object and param elements, and apparently it works.

He has an updated version (less discussion of how it works) at: http://sixtwothree.org/blog/archives/2006/05/20/activateactivex-11.

I need to run another set of tests to see how it works with diffferent screen readers, but the Hangman game in the last post uses it and it seems OK at first blush.

August 22, 2006

Two Accessible Flash Games – Which is Better?

Net Systems Solutions created a Hangman-game in Flash, and made it accessible for screen reader and keyboard users. I encouraged them to try to develop a second version of the game, but with some differences in the way accessibility is implemented.

I'd like to hear from users some of their thoughts on these two versions. There is much to be learned about accessible rich internet applications, and this is a quick and unscientific test to see what people's reactions are to each of these versions. Please give these a try, with a screen reader of your choice or with just the keyboard, and let us know what you think. Response content will be shared for all to see.

Example 1.1: http://www.n-syst.com/hangman1.htm
Example 1.2: http://www.n-syst.com/Hangman2.html

August 7, 2006

Moving Screen Reader Focus in Flash

I've been asked various forms of the question "how can I make JAWS move the focus for my Flash application?" recently and decided to create a quick post. The answer: sometimes you can, sometimes you can't.

Test files:
Test file
Source FLA

When a JAWS user reaches the page containing a Flash (or Flex) application the screen reader is in what JAWS calls Virtual PC Cursor mode (Window-Eyes calls it Browse mode). In this mode the user is navigating through the screen reader's off-screen model of the Flash application. Starting reading at the top of the page (hit ctrl+home to go to the top), the user might arrow down line by line to reach the button labeled "move focus". The user hits enter or space and visually you can see that the focus has moved, but the virtual focus is not in the same place. Arrowing down again shows that the Virtual PC Cursor focus stayed on the button.

If the user is in Forms mode in JAWS (Browse mode off in Window-Eyes) there is no off-screen model. In this circumstance the screen reader focus is the system focus so moving it happens just as it does in a standard desktop application. For this and other reasons (that I'll talk about in upcoming posts) we recommend that complex Flash and all Flex applications should be used in Forms mode on. This does present some other problems (reading text that is not focusable is a big one) but there are good solutions to address these concerns, but that is for another post.

It merits mention that make the focus move around within an application may not be the right thing to do for a user who can't view the screen. However, it may save time and facilitate easy use. Move focus only when you really need to, and test with screen reader users.

In general, if you need to move the focus for a screen reader user, make sure you advise the user that they need to be in forms mode for your application.

July 31, 2006

New Accessibility Book

A new accessibility book hit the shelves last Monday. Web Accessibility: Web Standards and Regulatory Compliance is the collective work of several well-known names in accessibility, including Jim Thatcher. This is the new version of the standard reference "Constructing Accessible Websites" that Jim and others wrote a few years back, so the format and cover image are similar, but with updated and new content.

I wrote chapters on PDF accessibility and an overview of accessible technologies and co-authored/updated the chapter on Flash accessibility with Bob Regan. I'm very happy with the book, and I'm sure you'll find it invaluable.

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 (http://www.adobe.com/devnet/activecontent/).

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 (http://www.adobe.com/devnet/activecontent/).

June 28, 2006

Flash Player 9, Flex 2.0 released

We released the latest version of the Flash player and the new version of Flex today, and I recommend checking them out. You can get the Flash player at http://www.adobe.com/go/getflashplayer and the free Flex 2.0 SDK is available at http://www.adobe.com/cfusion/tdrc/index.cfm?product=flex.

Flex 2.0 helps enable the creation of accessible rich internet applications, and this version adds to the level of suppot that existed in previous versions.

To support people becoming familiar with Flex and what is possible, I'll be posting a series of small sample applications, test files, and other resources over the next few weeks. As always, please share any feedback or questions along the way...

June 18, 2006

Testing keyboard access in Flash and Flex

Testing for keyboard access is probably the first test that should be performed when evaluating the accessibility of Flash and Flex content and applications. Many developers are not familiar with the ways that users are able to interact with applications when using only the keyboard, so it is important that time is taken learn about how keyboard access should work.

For Windows, a useful resource is Microsoft’s Windows User Experience Guidelines, and in particular the section on controls (http://msdn.microsoft.com/library/en-us/dnwue/html/ch08c.asp). This document provides detailed information about keyboard access, and is worth reading. In Flex and Flash components, keyboard accessibility is designed into the components, but for developers creating new components or customizing controls it is crucial to keep the expected keyboard access requirements in mind.

A good starting point for testing keyboard access is the following basic test plan:

  1. Put the mouse away. Turn it upside down, unplug it, whatever it takes to not use it.

  2. Open the application or web page containing the Flash or Flex content.

  3. Tab through the application without interacting with any controls. Make sure that you can follow the focus visually and that it follows an expected path.
    If you have difficulty locating the focus, this is a problem that needs to be addressed. Tools such as Inspect32 (http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=3755582a-a707-460a-bf21-1373316e13f0) can be used to assist testers in locating the focus when it is hard to see – this is just to assist in development; don’t expect your users to use this tool.

  4. Tab in reverse. Shift+tab is used to tab backwards through the tab order. Occasionally there are issues in tabbing that are made apparent by reverse tabbing.

  5. Tab to specific controls and check the behavior of each. For example, if you tab to a ComboBox in a Flex 1.5 application make sure that the behavior of the ComboBox matches your expectations and the documentation for the ComboBox keyboard navigation at http://livedocs.macromedia.com/flex/15/flex_docs_en/00000232.htm.
    The big challenge here is when you are using controls that you’ve made in a Flash movie (e.g. a simple tab navigator, made from scratch and possibly without much attention to proper keyboard support) or in a custom control for Flex — make sure that when you make or significantly modify a control that you determine what type of control it is and make it conform to expected keyboard conventions.

  6. If the Flash content has specific keyboard shortcuts to perform functions, make sure that these don’t interfere with the keystrokes defined for specific controls. Most keystroke conflicts that I see occur when a screen reader is running, so that will be a necessary testing step for another phase of testing.

Did I mention that tab order is important?

The tab order is really, really important, because it not only affects the logical usage order of the application’s controls, but it also affects the reading order for assistive technologies. This means that you need to set the tab order for everything that will be read unless your application is very simple and only has object in a single vertical or horizontal group.

There has been a positive change in the way that the Flash player handles tab order issue since Flash Player 8 which is that items with no tabIndex property defined are put at the end of the tab order. Prior to this version, if a single object didn’t have a tabIndex the default tab order for the player was used instead.

If you haven’t tested the keyboard access on your Flash or Flex applications yet, give it a shot. Like most testing, you’ll get faster the more you do it and be a better developer for it.

References

Flash 8 Documentation – components language reference http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/js/html/wwhelp.htm?href=Part6_Component_Reference.html

Flex 1.5 Documentation – see keyboard access information associated with different control types
http://livedocs.macromedia.com/flex/15/flex_docs_en/wwhelp/wwhimpl/js/html/wwhelp.htm

Flex ActionScript and MXML API Reference Version 1.5
http://livedocs.macromedia.com/flex/15/asdocs_en/

Flex 2.0 Documentation (link to be updated after Flex 2.0 release) http://livedocs.macromedia.com/labs/1/flex20beta3/00001046.html