Dear Dan: why is using Flash for navigation a bad idea?

Posted on Mon 03 November 2008 in misc

I received the following email late last week, and took the time to reply to it tonight. I had originally been asked by a friend to help diagnose why his organization's site navigation wasn't working in some of his browsers. I noticed that the navigation bar was implemented in Flash, and suggested that the Flash be replaced with plain old HTML, CSS, and perhaps some JavaScript as Flash for navigation is generally a bad idea. My friend's response last week was:

Dan, I would be interested to know why the flash is a bad idea. ...Our [website] designer seems to think otherwise.

Uh-oh: getting into it with the designer via proxy can't be good. But here's what I wrote in response - feel free to set me straight if I've gone off-track:


Jakob Neilsen said it best back in 2000 - and all of his concerns still hold up: http://www.useit.com/alertbox/20001029.html

To which I would add several more reasons:

  • Flash is not a native part of the Web, it's a third party browser plug-in; HTML + CSS and arguably JavaScript are the core parts of the Web. Anything as basic as navigation should not have to rely on a

    third-party plug-in to function.

  • How do you expect a person using a screen reader (due to visual impairment) to navigate through the site? With HTML/CSS/JavaScript, they can tab through the links on the page; with Flash, they hit something that forces them to use the mouse.

  • Until very recently, Google could not navigate through Flash to crawl pages - and even now it's capabilities are subject to some limitations (http://googlewebmastercentral.blogspot.com/2008/06/improved-flash-indexing.html).

  • On breaking the Web experience - if you try to right-click on the Flash navigation, you don't get the option to open the link in a new tab or window, or add a bookmark to the page that link represents. And I bet the links would work for you everywhere :-)

  • For the paranoid, Flash is a proprietary format and therefore requires you to trust that the content that is being served up isn't doing something nefarious while appearing innocuous. A small percentage

    of people use plug-ins like NoScript to block Flash content and only enable Flash for specific pages when necessary. Having to enable it for navigation is annoying.

If your designer really, really wants to keep the Flash experience, the

least they could do would be to put a plain HTML navigation menu inside

the <noscript>...</noscript> section rather than the "Get Flash!" thing

that currently appears.