Dynamic Flash

Confessions of a serial code abuser
  • rss
  • Home
  • MTASC
  • Archives
  • About me
  • Goodies
    • Base64 encoder/decoder class
  • My Bookshelf
  • My Talks

Flash/flex accessibility and wmode

Tuesday, 03 October 2006

The Flash Player has supported the wmode parameter since version 3 or so, but I didn’t realise until recently that setting wmode to ‘opaque’ or ‘transparent’ causes the Flash movie to be completely invisible to assistive technologies such as screen readers.

The default value for wmode is ‘window’, which causes the Flash movie to be rendered in its own invisible window floating above all the content in the browser window. This causes problems with DHTML menus and the like, and the common solution offered is to set wmode to ‘opaque’, instructing the Flash Player to render its content directly onto the browser’s window. This means that CSS styles such as z-index are respected, allowing you to place DHTML content over the top of the Flash movie. Perfect, right? Apparently not.

The first drawback, and one that’s been known for a while, is that performance degrades when wmode is set to ‘opaque’ and even more so with ‘transparent.’ However, a bigger concern is that if wmode is set to anything other than ‘window’ the Flash movie will be completely inaccessible to screen readers, undoing any good work you may have done with the accessibility properties.

Of course, this can have its uses. If your Flash movie is purely a visual thing and doesn’t actually contain any content, you can use the wmode parameter to hide it completely from screen readers. Just be sure that’s what you want to do.

For more information on wmode, see the How to make a Flash movie with a transparent background TechNote. For more information on how screen readers interact with Flash movies, see Andrew Kirkpatrick’s excellent ‘In search of… a perfect plugin technique’ article

Update: I’ve updated the article to reflect the additional information and clarification provided by John Dowdell - see comments.

Categories
Flash, Flex 2
Comments rss
Comments rss
Trackback
Trackback

« ActionScript 3.0 Logging API + LunimicBox.Log FlashInspector ActionScript 3.0 and Flex 2 cheatsheets »

4 responses

And it screws up textfields and keyboard mappings in firefox

nicolas | Tuesday, 03 October 2006 | 1:28 pm

And it screws up textfields and keyboard mappings in firefox

In the default state, browser extensions (Netscape Plugins & ActiveX

John Dowdell | Tuesday, 03 October 2006 | 4:07 pm

In the default state, browser extensions (Netscape Plugins & ActiveX Controls) render directly to the screen.

Many browsers and extensions now support the ability to pipe the extension’s output directly into the browser’s compositing buffer. This is triggered by WMODE. (Macromedia Flash Player introduced WMODE support as soon as some browsers offered it, towards version 3 or so.)

But… the browser owns the final rendering then, because we don’t go direct-to-screen. Different browsers have different behavior… some print upside-down, some don’t pass MSAA calls through, and so on.

Like other browser differences, there are few resources on the exact ways each of the various browsers handle things differently. Andrew Kirkpatrick has one of the most intensive tests of how different browsers change assistive abilities in response to different scripts and tags:
http://weblogs.macromedia.com/accessibility/archives/2005/08/in_search_of_a.cfm

Thanks John for the extra information. I've updated the article

Steve | Tuesday, 03 October 2006 | 4:33 pm

Thanks John for the extra information. I’ve updated the article to include the information you’ve provided.

[...] Flash/flex accessibility and wmode [...]

wmode 三選一 « 就是愛程式 | Thursday, 20 September 2007 | 9:56 am

[...] Flash/flex accessibility and wmode [...]

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

About Dynamic Flash

Steve Webster is a Senior Web Developer for Yahoo! in London, UK.

He is more than a little concerned that he defines himself in terms of his career, and that he talks about himself in the third person.

Find out more

Recent Posts

  • FotB ‘08 Schedule: iCal feeds
  • Read and write local files with Flash Player 10
  • The problem with SproutCore
  • Yahoo! London seeks Junior Developers
  • I am Singularity

Tags

Accessibility ActionScript actionscript3 actionscript 3.0 air apple astro book calendar conference designer filereference file upload Flash flex fotb08 framework ical internet internet explorer JavaScript jobs junior microsoft opportunities ria schedule singularity08 skin tutorial urlrequest web developer web development Web Standards Yahoo!

del.icio.us-ed

Stuff

Singularity?
Flex.org - The Directory for Flex
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox