Re-thinking Flash…

The very funny Flash Website Flowchart (Should I make a Flash site?) I recently linked to (“elsewhere”) featured an interesting discussion in the comments that made me think about Flash again – when is it best to use Flash, and if you do, how do you do it right?

Generally speaking, I’ve been one to follow the aforementioned flowchart (ie. just say no), but having been in the role of “The company Flash guy” previously, I was used to sprinkling bits of Flash here and there on various websites I worked on. Being a search-friendly, usability and accessibility sort-of-guy, I generally avoided full Flash site development like the plague, but I’ve found some interesting reads on Flash best practices, for those times you choose to use it.

Geoff at Deconcept discusses Flash and search engines, yes those two things can work together:
A modern approach to Flash SEO

Glass Onion (my employer until a few days ago) have been wise to the technique Geoff mentions for a while, using a little JavaScript called SWFObject, which detects the presence of the Flash plugin and replaces a piece of accessible, search-friendly XHTML with your razzle-dazzle Flash piece. It just so happens to also get around the whole EOLAS mess that forces IE users to click on a Flash piece to activate it.

The very wise Bobby van der Sluis, writing for Adobe explains how to similarly do this using his UFO (Unobtrusive Flash Objects) script, and explains the whole technique with examples in this tutorial:
Developing Flash websites using progressive enhancement

The whole concept of progressive enhancement fascinates me – you get the best of both worlds, the accessibility and search engine friendliness of web standards, coupled with the beauty and enhanced user experience of AJAX, or in this case, Flash.

Along with the accessibility features being built into the Flash plugin by Adobe, other flash enhancements are being written in the form of small scripts like SWFObject and UFO. One I’ve just recently seen and found interesting is:
ASUAL’s SWFAddress

SWFAddress is a small script that sits on top of SWFObject and provides deep linking for Flash websites and applications. In other words it enables the Back, Forward and Reload buttons of the browser and creates unique URLs with page titles that can be sent over email or IM.

SWFAddress involves attaching a JavaScript file (after the SWFObject js file) to the head of the page and then adding a little ActionScript to your Flash movies.

The thing to remember with all these techniques is that they still involve building on a base of HTML. We then enhance this basic accessible version with CSS, JavaScript and Flash. It’s a bit of extra work but it’s worth it for the search engine factor as well as accessibility (not just blind people, think about all those mobile devices out there – they’re not all Flash ready yet). If the budget (or inclination) is not there to take these extra steps, refer back to the Flash Website Flowchart