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

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

6 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 [...]

9at6mfkz8kh4vunl

Joaquin Schmidt | Thursday, 13 November 2008 | 12:15 am

9at6mfkz8kh4vunl

[...] http://dynamicflash.com/2006/10/flash-accessibility-and-wmode/ [...]

Flash Windowless Mode (wmode) « On the Edge | Sunday, 09 August 2009 | 4:57 pm

[...] http://dynamicflash.com/2006/10/flash-accessibility-and-wmode/ [...]

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

del.icio.us-ed

  • samuel's squawk at master - GitHub
  • Pixelwave - A native 2D iPhone framework, based on the Flash API
  • Pixelwave - A native 2D iPhone framework, based on the Flash API
  • mnot’s Weblog: Are Resource Packages a Good Idea?
  • Download details: IE App Compat VHD
  • ZSync
  • jQuery source viewer
  • Penetration testing tools - Stack Overflow
  • Logrep
  • DOM Window (jquery.DOMWindow.js)

Recent Posts

  • Moving on
  • iPhone / iPod Touch Development Resources
  • Upgrading your app to AIR 1.5
  • Motivate yourself by doing it in public
  • The trouble with Flash and REST
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox