Disclaimer

Before I begin, I'd just like to say that I am not against Flash. I have the plugin installed on both my computers, and I regularly and willfully visit sites with Flash content. However, I have recently noticed that there is a disturbing trend regarding the use of Flash. It is being used in ways it was not intended. It is being used in place of HTML because Flash is shinier. In my opinion, this is a bad thing. That said, here are some reasons why.

  • HTML is Accessible

    Because of the structured nature of HTML, it has been possible to develop user agents for people with disabilities, especially blindness. For example, a screen reader user agent may allow the user to listen first to all the headings (<hn> elements) on a page, rather than reading straight from top to bottom. It requires proper use of HTML elements and attributes, but it is relatively easy to write HTML that can be used effectively by a wide range of user agents. On the other hand, Flash is not structured, and does not offer such benefits. This is becoming more of a concern in recent versions of Flash, but it will be a long time before it will be on equal footing with HTML, which has had such concerns as a priority for many years. Furthermore, HTML is text-based, so it's easy for other programs to interpret. In Flash, text is just another vector graphic, which is not nearly as easy to work with. You can read more about accessibility at http://www.w3.org/WAI/

  • HTML user agents are Widely Available

    There is a user agent which understands basic HTML available for virtually every computer platform in use today; most of them are free. What's more, the most popular platforms have user agents which understand very sophisticated HTML. Recently, an increasing number of mobile devices have user agents capable of displaying HTML. Though the Flash plugin is available for most of the most popular platforms, it doesn't begin to compare to the pervasiveness of HTML-capable user agents.

  • HTML is an Open Standard1

    HTML Standards (http://www.w3.org/MarkUp/) are published by the World Wide Web Consortium. All the decisions are a collaborative effort of numerous computer experts from corporations and institutions all over the world. The W3C's mission is Leading the Web to its Full Potential. That is, they have what's best for the web in mind. Flash, on the other hand, is controlled solely by Macromedia. I have no faith in Macromedia to serve anyone's interests but their own2.

  • HTML in Indexable

    Due to it's text-based structured nature, machines can extract meaningful information from an HTML document. <meta> and <link> elements allow authors to convey what a document is about and how it relates to other available documents. This is a big part of what allows search engines to work as well as they do. Flash is largely image oriented, and as anyone who knows anything about computer vision can tell you, we have a long way to go before computers will be able to extract high level knowledge from images. Google can't direct you to a site where your keyword occurs in a Flash interface.

  • HTML is Linkable

    It's not that you can't have links in Flash, but the system is internal. You can't really have the deep links that a collection of HTML pages allow. And of course, this whole linking thing is what makes the web go round. Link analysis is what makes Google such a good search engine. So, imagine if everyone make their sites with a Flash-only interface. Google's ranking system becomes a lot less useful. Also, this means that you can't bookmark things as easily. When a Flash interface starts, the address stays the same as far as the browser is concerned. After you wade through a flash site to find exactly what you wanted, if you bookmark it, that bookmark will just return you to the beginning of the Flash interface.

  • HTML has Low Bandwidth Requirements

    Just about the only way you can get lower is with plain text. However, it's definitely worth it for the added structure that HTML provides. Flash is actually a very efficient way to transmit vector graphics and animation. However, for standard user interfaces, HTML wins every time. Now, if you design a site with a lot of superfluous images, you can bloat it. Using JPEGs when you should use PNGs3 (and vice versa) will also louse things up.

Conclusion

Flash is a great multimedia extension to HTML. Eventually SVG may be even better. Either way, vector graphics are a fantastic tool, especially for animation. That said, they are not the best way to build user interfaces or deliver most content. As with any technology, people who misuse Flash only serve to tarnish it's reputation and impede its wider acceptance. It's just like anything else: use the right tool for the job.


  1. By "open", I mean "open to contribution" and not privately controlled. The swf specification is available, but Macromedia still is in sole control as far as I know.
  2. Nor would I expect any corporation to.
  3. Use PNG instead of GIF.
While I don't dispute all of the points that cogito makes there are a few things about flash that never were, or are no longer true.

On Accessibility in flash
As far as accesibility goes, flash DOES provide. While it doesn't have tags it does allow you to provide text descriptions of images, text field labels and provide shortcuts for accessing them. IMHO this is better than HTML's accessibility implementation.

On Flash being a closed standard
There is one major advantage to flash's closed development. Those who write the standard, implement it. If only HTML were as simple as reading the W3C's latest standards and implementing them. Flash can safely be deployed using the latest features for many sites because the download/install process is mostly automated and simple, allowing users to upgrade to the latest version. Additionally there are no formatting differences across multiple browsers. Finally it is an OPEN standard in that the full spec with whitepapers is freely available. Macromedia's code may be closed but you're free to make your own competing swf creating program. In fact Adobe already has with Live Motion.

Indexing
While any standard indexing software will not index flash sites that I know of it IS possible. It is possible if you are using a dynamically scripted site with flash. Since you load in the dynamic content with text or CGI you can use your indexing program to index that (which may even contain links), and if you so wish output that as HTML or Flash even. While anything produced in this way would be nonstandard, it IS possible, and no, it's not as much work as you think, as long as you design for it it's easy, in fact even easier since the files are simple text files with Var=Value format. Or, with later versions of flash XML can simply be fed to the flash which is EXTREMELY indexable. Basically flash can be indexable if you plan for it as you build.

Additionally since flash is embedded in HTML you can use META tags to descripbe content for search engines, and even put in links to other flash pages to fool search engines and provide deep linking

Bandwidth
Flash actually uses LESS bandwidth as of flash 6 due to compression of the swf. While gzipped HTML uses less, it is rarely used. I should note that in a test a flash file containing only text was about twice as large without compression but .75 times as large with.

On using JPEGs instead of PNGs
JPEG was the best choice for flash and there is little reason to support GIF. JPEG is much more effective at compressing 24bit images than PNG which, while lossless, sucks at it. It was designed to replaced GIF not JPEG, that's what JPEG2000 is for.

Flash now allows both JPEG AND PNG compression!

Conclusion
With that being said, I would say that flash IS a viable alternative to HTML as long as search engines are not so much an issue. I personally am seeing less and less of a reason to create documents in HTML and more and more in flash, mostly because WYSIWYG developing, while still allowing scripting seems like a better and better idea for me as far as a development approach.



WWWWolf makes the point of flash not being accessible to those who use cell phones and PDAs to browse the web. This is true, I was thinking more in terms of screen readers accessibility.



UPDATE: Macromedia Flash 6 now allows you to use PNG instead of JPEG compression!


UPDATE: I have now been informed that some portable devices can run the flash plugin.
Y'know, if you log in, you can write something here, or contact authors directly on the site. Create a New User if you don't already have an account.