Main

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 04, 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 03, 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 07, 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 08, 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 07, 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 05, 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