Jump to main navigation, main content

Archived entry | Matt Wilcox .net

Using Flash, facts and opinions

This post is a follow up to the previous one: ”100% Flash websites, a rant”. In this post I attempt to lay down the factual consequences of using Flash on the web, and then draw from that some personal opinions about its possible uses, suitability for those roles, and the likely future of both Flash and HTML.

Opinion is subjective, and what I feel is right or wrong doesn’t necessarily correlate with other people’s interpretations. Nor does this post deal with the multitude of external considerations which can effect choices of when and how to use Flash. So, if you don’t agree, you’re not wrong - we just assess the values of my arguments differently.

Using Flash on the web: the facts

Flash is a proprietary technology

It is not part of any web standard, the W3C has no input on what Flash is or does. It’s a binary that is created, owned, distributed and maintained by a profit making company. As such, it holds none of the guarantees that open standards technologies do. For all practical purposes, this point is irrelevant. There is only one Flash Player, and only one authoring environment. Because of this it is a de-facto standard, if not an official standard. If you author Flash content, there’s only one type of Flash Player it could be run on (though there are multiple versions), and so as long as you have the most recent Flash Player, Flash files will always work predictably.

Flash content runs in its own process

Flash runs in a separate environment to the rest of the HTML page. This means that the browser has no direct awareness or control over the content of a Flash object. This has a number of consequences…

  • The back/forward buttons in your browser will not work as expected when viewing a Flash site that contains multiple pages/sections.
  • The standard browser context menu (right click) is not available within a Flash object.
  • It is impossible to bookmark a Flash page. You will instead bookmark the Flash root file (the first page that loaded in Flash, and not the one that you are currently viewing).
  • Re-sizing your browser text will not re-size text within the Flash object. This is counter intuitive, from a user perspective Flash is simply part of the page, and this broken behaviour is not what they will expect.
  • Flash content is not indexed by search engines, because crawler bots can not see into the Flash object.
  • Flash is inaccessible to non-sighted users.

I am aware that the most recent version of Flash attempts to address some of these issues, and has been attempting to do so since Flash MX. I am also aware that the resolutions to these problems are not easily implemented, and all require additional work from the author. Most of the solutions don’t actually work very well, and the vast majority of Flash sites don’t even try to resolve these issues.

Flash is invalid

There is no valid way of including Flash into a HTML page. Simply using Flash renders your HTML code invalid. How much this hurts is subjective, and whether it’s the fault of Flash or of HTML is a question without an answer. There are ways around it by using Javascript to insert the Flash object after the DOM has been parsed, but it’s still a hack.

Flash is not as widespread as you might believe

Macromedia claim that 97.7% of web browsers have Flash Player installed. The survey was of 2,000 people, and Macromedia cite a 5% room for error. Worst case scenario, Flash Player is installed on 92.7% of browsers - meaning it’s possible that 7.3% of people don’t have Flash Player installed at all. What is more interesting, and relevant, is the penetration of differing versions of the Flash Player within the sector of people that do have it installed. The most recent version is Flash Player 9. Yet, in Europe, only 76.1% of browsers with Flash Player installed are running even version 8. The figure in the US is only 69.3%. That means between 24.9% and 30.7% of the 92.7% that have Flash Player are not running even the second most recent version. What must also be considered is whether the ‘representative sample’ is truely representative - there is no way to know for sure. But I can tell you that Flash Player 8, 8.5 and 9 are not even available for Linux. So there’s a whole (but admittedly small) user group that immediately don’t have much chance of seeing Flash content. I doubt mobile users were considered as part of the survey either.

Using Flash on the web: my opinion

What’s wrong with Flash for websites

Flash breaks the browser, which is A Bad Thing. If normal browser functions are not available in Flash, then Flash shouldn’t be running inside the browser. It’s counter intuitive behaviour.

Flash is not ubiquitous. If someone doesn’t have the player, or the most recent version, then they can not see the Flash content. When these figures are in the 7%-30% range, this is an issue worth considering. Clearly, a non-flash version of the site is prudent. Arguments can be made about HTML/CSS/JavaScript not being supported at all levels on old browsers or alternative devices such as mobile phones. It’s a fair point, but a Standards based HTML site will degrade gracefully in those browsers and devices, meaning the content is always fully accessible and usable, even if the site doesn’t look quite right. With Flash, you either see it, or you don’t. There is no degradation.

Flash, by virtue of running in it’s own process and being isolated from the browser, requires the author to design all the User Interface elements that are otherwise default to the browser. In itself, this is not a problem, given that the designer is any good and the user is able to easily distinguish the UI elements. Trouble arises when the designed UI elements are not readily understood by the user. I have been on countless Flash sites where the UI is entirely alien, and unworkable. Scroll bars that look nothing like scroll bars, and navigation systems that work on the principle of ‘move your mouse over everything and see what it does’. The approach was once popular in adventure gaming, but soon got dumped for more intuitive techniques. This is a design issue, rather than a Flash issue, but it’s a problem that occurs much more often in Flash websites than in HTML websites. The freedom that Flash allows in design is too often used poorly.

Creating a Flash website which consists of pages of text, hyperlinks, and a little video/animation is dumb. It is dumb because all these things can be achieved in HTML, without taking the hit required when using 100% Flash. If the website boils down to a set of text pages linked together with a little multimedia, then use the right tool for the job - HTML. It’s more accessible and advantageous on a whole host of levels. The question to ask when considering whether to use Flash or HTML for a website are:

  • Are those sexy inter-page animations really worth losing 7%-30% of your possible audience? If so, why?
  • Is that animation worth not getting your content indexed by Google, Yahoo and all the other search engines?
  • Is it worth your content not being accessible to the disabled? (I’ll leave the legality and morality of whether this is even a choice as an exercise for the reader)

For me, the answer to those questions is always “no”, no matter how sexy, shiny or adventurous that Flash site might seem, it is not worth the price. My bottom line is that the best tool for creating a website is HTML. If video or audio needs embedding, then embed a small Flash file into the HTML page (as is the case with Google Video, or YouTube). That way, only the video takes the hit of using Flash, and the rest of the site doesn’t.

When to use Flash

I firmly believe that Flash isn’t for websites. I believe it is for applications. Flash is extremely powerful and flexible, it allows you to do many things that are impossible in any other way. It is an application environment. If your site needs to open video connections to webcams, talk asynchronously to other computers, manage and edit multi-media - that’s a job for Flash. It’s the sort of thing that Flash is perfect for.

Flash - HTML - why the heartache? Can’t we just do whatever works?

Standards are good. Standards are important. Standards are an ideal worth aiming at and working toward. But right now, they not always a practicable reality.

Here’s how I see it. Flash does a lot of things that HTML doesn’t. HTML was designed for a World Wide Web that was nothing but inter-linked documents. It’s been adapted for a variety of other uses, and that has made things like validation all but impossible at times. It’s a language that’s been bent, shimmied, and plain broken so it performs a different task from its design. Flash was created as an answer to the limitations of HTML, but it’s flawed by running on top of a HTML environment. It’s flawed because it isn’t part of the browser, because it isn’t ubiquitous, and because it’s not a true standard. Neither Flash, nor HTML can be the future of the web. As internet access becomes ever more popular, and bandwidth becomes ever higher, the document-based nature of the web will start to diminish. It will always be an important and major part, and it will always be based on some form of XML, of that I’m certain - but the need for a browsing environment that also does what Flash can do, but without the limitations, will only increase. At the moment, web applications are an industry that’s growing fast, and to do that some very clever people are abusing the letter and the spirit of Web Standards. They are fighting to make technologies do something they were never intended to do, because there is a demand for web based applications. Gmail, Google Maps, Google Calendar, Windows Live and a host of other applications are crying out for an environment which is better suited to their needs than HTML, CSS and JavaScript. None of those applications use Flash, which is telling in and of itself. This despite Flash being a technically more appropriate platform to use. We can be sure that some very clever people have considered this carefully, and rejected Flash with the understanding that it is inappropriate for the job.

The future of the web will be a browser that integrates the functionality of Flash, not as an applet, but natively. Not as Flash itself, but as a Web Standard. Imagine the possibilities of a truly ubiquitous, cross-platform, standards based Flash-like environment, that had none of the major downsides of Flash. Almost all of which are due to Flash’s reliance upon being embedded as an applet, and it’s ignorance of the browser it’s running inside.

I can’t wait!

From the archives

Other enteries filed under:

Web Development

Site information

Built with valid XHTML and CSS, designed with web standards and accessibility in mind. Best viewed in a modern browser [Firefox, Safari, Opera]

This domain and all content is a copy of my old website, for historical purposes only.