Macromedia Flash considered harmful

This document is a rant about the diminishing accessibity of many web sites. Its intended audience is people building web sites, as well as people browsing the World Wide Web. I hope it will succeed in getting people reconsider the issues it raises.

Beware! Most of this document was written in May 2002: It's getting obsolete. Comments are welcome.

Recently, the use of Macromedia's Flash, a multimedia file format, has become more popular. A lot of web sites offer on their opening pages a .swf file, the content of which is viewable only with a Flash or Shockwave player from Macromedia. This raises some issues.

A mature flash player is only available for the operating systems Macromedia chooses to support, and only for the browsers Macromedia chooses to support. Of course, due to the graphic-only nature of the flash content, all text oriented browsers like lynx, w3m, and links, are excluded.

I've gotten some responses to above statement. Tim Jones, creator of the WellCare Lifestyle Clinics website claims in an email he wrote me Macromedia does support text-only browsers, by offering the NOOBJECT tag. I didn't check this since I don't have a swf player installed yet. However, I feel the claim doesn't really change anything: I feel it would be pretty absurd to need to install a flash plugin for one's text-only browser in order to extract text from swf files.

In July 2002, Stan "mmlabs" Vassilev wrote me the vast majority of the currently used webbrowsers support flash. I feel this is not totally relevant: Webauthoring is a sort of programming. Good programs behave sanely, even in uncommon circumstances. The fact that visits to your website with a client not supporting flash might be uncommon therefore tells nothing about the question wether it is a good thing to offer flash-only content. (Yes, I am easily convinced more money is made in this world with low quality software than with high quality software.)

Free Software

When downloading a Flash player from Macromedia, one has to agree to Macromedia's license, which reads:

You may not decompile, reverse engineer, disassemble, or otherwise reduce the Macromedia Software to a human-perceivable form.

For me, such a condition is unacceptable. If I install software from other parties on my computer, I want to have the right to change this software. I want to have the right to know the software which runs on my computer.

A discussion on copyrights on flash libraries is archived at the debian bug report database.

Open Standards

The flash application is not based on open standards, as the Internet generally is. This denies the nature of the Internet, in my humble opinion, and leads to a less accessible world wide web.

The Internet is build on open standards, as laid down in a.o. RFC's, after public and open discussion, which makes it possible for different suppliers to ship products to access offered information to end users. This leads to choice for end users, which is a good thing. The use of proprietary and secret protocols enables one supplier to gain a monopoly, which concentrates power at this suppliers' side. A public infrastructure, build on open standards, has a much higher chance to stay public, than one which uses proprietary technology. It is the use of open standards, which has made the Internet to what it is today. If it were not for these standards, the World Wide Web wouldn't exist now. As Tim Berners-Lee, the inventor of the World Wide Web said in July 1996:

Anyone who slaps a 'this page is best viewed with Browser X' label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network.

The World Wide Web Consortium W3C, the publisher of the official HTML guidelines, writes on http://www.w3.org/Consortium/Points/:

Twenty years ago, people bought software that only worked with other software from the same vendor. Today, people have more freedom to choose, and they rightly expect software components to be interchangeable. They also expect to be able to view Web content with their preferred software (graphical desktop browser, speech synthesizer, braille display, car phone...). W3C, a vendor-neutral organization, promotes interoperability by designing and promoting open (non-proprietary) computer languages and protocols that avoid the market fragmentation of the past. This is achieved through industry consensus and encouraging an open forum for discussion.

The Apache project has to say something about open standards:

We believe the tools of online publishing should be in the hands of everyone, and software companies should make their money providing value-added services such as specialized modules and support, amongst other things. We realize that it is often seen as an economic advantage for one company to "own" a market - in the software industry that means to control tightly a particular conduit such that all others must pay. This is typically done by "owning" the protocols through which companies conduct business, at the expense of all those other companies. To the extent that the protocols of the World Wide Web remain "unowned" by a single company, the Web will remain a level playing field for companies large and small. Thus, "ownership" of the protocol must be prevented [...]

(As a side note: When discussing these issues with various people, I found out many consider people who don't use Microsoft's Internet Explorer with a shockwave player to browse the Web old fashioned. I dare to doubt this. I believe the majority of people annoyed by badly accessible web sites are running GNU/Linux or another free operating system. These people are generally very interested in computers and technology, and run very up to date software.)

Alternatives

When building a web site with flash, it is a good thing to offer the same information (as far as possible) also in a different, widely accessible format. One could offer an alternative web page. See also the advice given by Jared Smith in his article Making Flash Accessible.

There are alternatives for flash. SMIL ( http://www.w3.org/AudioVideo/Overview.html ) is an open standard for interactive audiovisual presentations, which is widely supported by popular browsers.

Andreas Neumann wrote a comparison of the SWF file format and the Scalable Vector Graphics format. In 2002, Peter Schonefeld wrote SVG is Real Flash (that's a web.archive.org link), an excellent essay on why one should use SVG over Macromedia Flash. (FYI: Microsofts IE gets shipped with an SVG plugin from Adobe.)

Work is being done on supplying support for SVG in the Mozilla web browser natively. This promisses to become a real and useable alternative to SWF, not suffering from the problems I've listed above.

Links to related information

More information on these issues can be found on the Best Viewed With Any Browser site. I found some valuable guidelines for webmasters on http://www.gnu.org/server/fsf-html-style-sheet.html.

An article called Acid-Free Bits by Nick Montfort and Noah Wardrip-Fruin (June 2004) mentions SWF issues.

The german Wikipedia article on Macromedia Flash (that's in german only) is pretty extensive.

Epilogue, Free alternatives to Macromedia's swf software

Some alternative and Free Software interfaces to flash have been written. I list some of the projects here. However, be sure to check out the list on the excellent Open Source Flash site: it's likely more up to date than what's presented here. The Debian Wiki page on Flash by Paul Wise e.a., might be interesting too.

Gnash, by Rob Savoye e.a., is very actively maintained (as of 2006-09), and supports many SWF v7 features. However, as of 2006-09, Gnash is in a alpha state and under heavy development and although many features work, not all movies play sucessfully.

Paul Haeberli wrote the libswf C library. At one time, it was available (only in binary format I believe) from http://reality.sgi.com/grafica/flash/. However, SGI ceased maintaining reality.sgi.com. (

SGI has changed over the years, and the present management does not see sufficient value in continuing to maintain and support an employee web server which could, if viewed through sufficiently distorted glasses, become a litigation concern.

) Currently, a 1999 binary package is available from ftp://ftp.sgi.com/sgi/graphics/grafica/flash/. Some info on libswf is on http://www.the-labs.com/PerlFlash/libswf.a.html.

A Perl inferface, called perl::flash has been written to Paul Haeberli's LibSWF. However, this hasn't been updated since July, 2000.

Furthermore, a php interface has been written to LibSWF. (Thanks to Wessel Dankers for pointing me to this.)

Another flash tool has been written by Olivier Debon. A Debian package of this library is available since 21 Feb 2002, when licensing problems were solved.

On 13 Sep 2002, David Schleef started writing Swfdec, a LGPL-ed library for rendering Flash animations and games, including a pluging for mozilla based webbrowsers. David maintains a Debian package of this library too. At the time of this writing (April 2005), it still lacked support for some major Flash features. However, this seems to be one of the most promising Free flash player around.

Wolfgang Hamann maintains Ming, an LGPL-ed C library for generating SWF format movies. It includes hooks for PHP, Python and Ruby interfaces.

Thank you for your time.


Joost van Baal

$Id: swf-considered-harmful.html 1268 2007-09-26 06:59:22Z joostvb $