IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

Due to the Eolas patent case , a new update to Internet Explorer will no longer automatically allow user interaction with plugins which are embeded in webpages. Think Flash navigation, music players (Quicktime, Windows Media, Real Audio), Java applets, etc. The applets will be usable, but only once you enable them, usually by clicking on them. (see the demo screencast here ).

The update is already out on Windows Update - it's optional now, but I'm sure it will be mandatory within the next few months. It's described as a minor update, but I think people will be pretty surprised by this one.

Now, I can't say that I'm heartbroken by how this will affect my browsing experience. For one, I don't use IE all that much, and who knows if Eolas will ever enforce this patent against open source browsers since there's no money in it. More than that, though, I dislike most embedded applets that do things I didn't tell them to do . I don't like web pages that start playing music when a page loads. I think Flash navigation is annoying, inaccessible, and completely unnecessary. If a page is going to make good use of Flash or Java - actually do something interesting, like a screencast or a game - then a little click to activate it isn't that big a deal.

As a developer, though, this is kind of a pain. The thing is, there's a legal loophole that will allow automatic activation of applets as long as they're loaded via an external file, so some trivial javascript can load an activated applet without any user interaction. The reason is that the patent only covers automatic applets as long as they are directly included in the HTML file, so loading them via an external javascript file is fair game. So, in reality this is only going to be an inconvenience for web developers. Clients will know that other sites have dancing clowns and disco in their menus, so it can be done. Just do it.1

Now, the code to load Flash files (or other applets) from javascript is pretty simple, but I sure hope professional web developers will put some thought into this and avoid the temptation to just hack a bunch of javascript includes together and call it done. Here are two better solutions:

  1. Get rid of it. This especially applies to Flash navigation, for tons of reasons:
    • It's not cool anymore. Really. It stopped being cool about five years ago, now it just looks amateur. Sure there are exeptions to this rule, but odds are you're not one of them.
    • It's not accessible, and probably not very usable. That could cost you users, but more importantly it could get you in legal trouble.
    • It hurts your search engine rankings and site searchability. Some search engines will index the Flash file, but they don't interpret it. If there's any logic, database action, or external files involved there's a good chance the links won't be followed.
    • It's not very maintainable. Ease of maintenance and updatability is very important. Sites that aren't fixed and updated don't get used. It's easier to fix and deploy a spelling error or address change in a text based HTML file than in a Flash application. With Flash being one big file, you really should retest the whole thing every time you redeploy; with HTML I can make spot changes and be confident I haven't broken anything. A website built with web standards can be redesigned with a CSS file change (ala csszengarden); Flash redesigns are much more work. As a side note, in my experience no one properly versions their Flash source files. It's very rare that anyone can even find their Flash source files a year after the site has gone live.
    • It's almost always totally unnecessary. You can build really nice navigation that's cool, accessible, searchable, and maintainable with CSS and minimal javascript. You can get fancy effects - fades, animation, etc. - with some simple javascript includes and a few minutes enabling the effects via CSS (see my previous article on that here). The point is, if you're using Flash to animate and fade you're doing things wrong.
  2. If you must use Flash, use FlashObject. There are still more more problems with Flash, but FlashObject solves them:
    • There is no way to embed Flash in a page that is (a) cross-browser and (b) valid HTML / XHTML. Macromedia's sample code uses an <EMBED> tag inside an <OBJECT> so it will work in most browsers, but <EMBED> isn't a valid HTML / XHTML tag.
    • Plugin detection isn't handled by browsers. If the user doesn't have Flash installed, or has it disabled, your site looks stupid and isn't usable. Note that Flash won't currently install under non-admin user accounts, so the possbility that your user won't have Flash installed may grow over time.

      FlashObject solves both these problems - plus the disabled by default issue I mentioned before - by replacing HTML content via a javascript include. You build a page in valid (X)HTML and include a placeholder div where your Flash content will go. Then you write two lines of javascript which tells the FlashObject library to replace your div with the Flash content. The div can contain alternative content that's valid, accessible, searchable, etc., which will be be delivered to those who can't or won't view your Flash content (including search engine spiders). Since this solution loads the flash via the external FlashObject javascript include, it will be automatically enabled as well - which means that if you're using another plugin, you should first look for a prewritten include that uses a similar, and if you have to write your own that you follow this model: replace valid HTML via a simple javascript call. Here's some sample code, quoted from the FlashObject page:
<script type="text/javascript" src="flashobject.js"></script>
        
<
div id="flashcontent">
  
This text is replaced by the Flash movie.
</div>

<
script type="text/javascript">
   
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
   fo.write("flashcontent");
</script>

1 All of the major plugin providers have provided references on how to fix this - Apple, Macromedia, Microsoft, and Real. I don't recommend following them, though, which is why they're just in a footnote.

Published Friday, March 03, 2006 7:58 AM by Jon Galloway

Comments

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.


Microsoft has enough weight to fight Eolas to death. See what they have done to DOJ, what they have done to Massachussetts and what they are doing to the EU. I don't buy that Eolas is genuinely showing the finger to Microsoft. I say Microsoft is deliberately "ending" support for ActiveX as we know them, since their competitors are taking advantage of them. Which is proven by the fact that the next version of Internet Explorer makes ActiveX components less suitable than before (default security settings, scary opt-in warning messages, ability at any point in time for someone to manage them). But the worst part of it is that I believe Microsoft has an agenda with this. See Flash videos. Wonderful technology. Much better than Windows Media et al since it's cross-platform, has a very low latency to play streams and so on. Well, don't you think Microsoft would find a valid reason to stop Flash in their way to become the dominant web-based video player? I think so.

You can be innocent and think Microsoft is acting to do good to their customers. Especially if you are new in this industry.

Friday, March 03, 2006 5:18 AM by Stephane Rodriguez

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

The Ebola visus is deadly... err um, you know what I mean.

On the other hand flash seems to be used to produce some of the most unpleasant and disruptive things on a web site.

I would really like to be able to Stop any flash that is playing the same way I can stop an animated gif. This is "my" computer, do not deny me control of what happens on it.

Stephane: Everyone has an ajenda. If you think Eolas is about being good to consumers, you should have a deeper look into the consequences of denying the real sources of the involved concepts.
MS has the money and resources to find ways to still provide functionality without breaking the patent. What will others do if they are presented with similar terms for using the patent?



Friday, March 03, 2006 12:52 PM by AndrewSeven

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

More info, along with details on user experience, handling techniques, and links to source documents, are at the Adobe Active Content Developer Center:
http://www.macromedia.com/devnet/activecontent/

<em>"I don't recommend following them, though, which is why they're just in a footnote."</em>

Any feedback I can pass to my partners for making this seem at least somewhat useful for you...?

jd/adobe

Friday, March 03, 2006 8:05 PM by John Dowdell

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

John -
Thanks. Your Active Content information is useful as an information resource. The screencast showing how the changes will affect end users is very helpful.

I put it in a footnote because I don't think your guidance on embedding Flash is as effective as the FlashObject approach. I think it would make sense for you to link to FlashObject page. If regulations stand in the way, you could officially promote a similar approach which would encourage developers to write valid HTML documents that render effectively when Flash isn't installed or Javascript is disabled.

Saturday, March 04, 2006 2:12 AM by Jon Galloway

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

"It's not accessible, and probably not very usable. That could cost you users, but more importantly it could get you in legal trouble."

Actually Flash can be very accessible.

In fact, there's a really good rundown of different embed methods and how screen readers handle them here:

http://weblogs.macromedia.com/accessibility/archives/2005/08/in_search_of_a.cfm

Sunday, March 05, 2006 11:58 AM by Geoff

# FLASH SATAY

"There is no way to embed Flash in a page that is (a) cross-browser and (b) valid HTML / XHTML."

Not true.

See:
"Flash Satay: Embedding Flash While Supporting Standards"
http://www.alistapart.com/articles/flashsatay/

Monday, March 06, 2006 10:35 PM by Rick Reilly

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

Geoff -
I agree that Flash can be made accessible, and that MX did a lot to make it more automatic (some references: http://www.macromedia.com/resources/accessibility/ and http://www.webaim.org/techniques/flash/). However, it requires effort on the Flash developer's part to make it happen, and I doubt that happens very often. I'd like to see statistics on the percent of sites with embedded Flash navigation (not full Flash applications, which are usually better designed) that are actually accessible.

By contrast, semantic HTML is by its very nature accessible. It just happens, largely because the semantic HTML places content over presentation. Content is easy to present in a variety of formats.

Tuesday, March 07, 2006 12:21 AM by Jon Galloway

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

Rick -
Well, I guess I agree with you, but only technically. Flash Satay requires that you use a stub Flash file to load the real Flash file in some case, which is definitely not a simple HTML only approach. I'll quote the Flash Object propaganda ^H^H^H^H^H information page regarding why they think the Flash Object approach is preferable to the Flash Satay method:

* Accessibility issues. - Using Flash Satay, some screen readers (like JAWS) will ignore your Flash content.

* There is noplugin detection. - Same as above - With no plugin detection, users may see broken or no content. When the Flash player encounters a Flash movie embedded in a page, it will try to play it no matter what the version is. So if you have Flash player 6 installed, and encouter a Flash 7 movie, your plugin will try to play it, possibly causing odd behavior.

* Some methods of Flash satay don't stream the Flash movie to the player - So this method may require 'holder' swf movies that your movie is loaded in to. This makes passing variables from FlashVars parameters a hassle and make it a pain to maintain Flash content as you now have twice as many swf files floating around your web server.

* Older Safari versions ignore param tags - Up until version 2.0 (on Tiger) or 1.3 (on Panther) and possibly 1.2.8 (pre Panther) Safari would completely ignore the param tag. This meant that if you tried to set other options using them, like Flashvars or Align, Salign, etc. Safari would not see those values.

Tuesday, March 07, 2006 12:26 AM by Jon Galloway

# Resistance is futile

One day flash will rule the web it's only a matter of time.

Friday, March 10, 2006 5:05 AM by Apollo

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

It appears that run-on sentences will precede it.

I don't have anything against good Flash sites. I've got some good friends who do amazing things with Flash. Flash is great if you're using it to do things that couldn't be done in HTML, like the Experimental Gameplay Project (http://www.experimentalgameplay.com/). I'm not a fan of dropping a little Flash in a site which is otherwise mostly focused on content delivery, just to give it a little pizzazz. I'm expecially down on using Flash to navigate an HTML site, for all the reasons I detailed above.

I'm a big fan of your work. Say hi to Zeus and Leto for me; it's been quite some time.

Friday, March 10, 2006 11:44 AM by Jon Galloway

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

There is an ASP.NET 2.0 web control wich is compatible with this issue, you can find it there : <a href="http://www.flash-control.net">www.flash-control.net</a>

Thursday, June 08, 2006 9:42 AM by Laurent

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

"

I would really like to be able to Stop any flash that is playing the same way I can stop an animated gif. This is "my" computer, do not deny me control of what happens on it.

"

Don't use the internet.

This in "my" website, do not deny me control of what happens on it.

Monday, July 10, 2006 9:27 PM by MAXpower

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

is

Monday, July 10, 2006 9:29 PM by MAXpower

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

Here's a PHP function that automatically creates the nasty JavaScript necessary to display Flash without those ugly boxes:

http://www.mediajolt.com/blog-2.php

You use it like so:

dispFlash("myfile.swf", "250", "50");

Thursday, July 27, 2006 5:36 PM by Tim Ambler

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

"If a page is going to make good use of Flash or Java - actually do something interesting, like a screencast or a game - then a little click to activate it isn't that big a deal."

i cant believe you wrote that.

Tuesday, August 08, 2006 8:50 PM by m. felix

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

There's always an easy way of identifying someone who is either a)clueless when it comes to flash or b)a javascript/ajax/or even Java fanboy. or c) both. And that is by their opinions regarding Flash. HTML navigation is clunky and sluggish..click button, wait for page to be generated..click again. Ajax/Javascript..as well as XHTML/DHTML is notoriously finiky between browsers..and takes a great deal of testing in at least two main browsers in order to satisfy both. It also has the tendency to be hyper-responsive especially on mouseover/onclick handling. Flash on the other hand works exactly the same in most browsers..(there are a couple minor exceptions but..they are very minor) its smooth, slick, and responsive..and has the ability to communicate with server side scripts for dynamic data.

on the subject of Accessibility, it has the capability of sending alerts/notifications to MSAA and can detect if an Accessibility aid program (such as a screen reader) is communicating with the flash player. Obviously its up to the Flash dev to make use of this, but saying that Flash isn't accessible is highly laughable.

Flash is a wonderful tool for doing all sorts of aditional content from navigation (not the entire site mind you) to a variety of dynamic productive apps to streaming media,text,audio and beyond. complaining that a site starts playing music when you visit it, has nothing to do with flash, but rather the ignorant flash dev who has the content play on load.

you may be a web developer, but it appears like you've spent way too much time cuddling with your javascript and stylesheets to bother learning flash. Maybe in the future you should stick to what you know, and keep your uninformed opinions about flash to yourself ;)

Friday, August 11, 2006 11:31 AM by Sean K.

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

@Sean - We'll have do agree to disagree. You may want to rethink that "those who disagre with me are clueless" policy, though.

Let's look at your arguments:

1) Flash navigation is faster

Most Flash navigation implementations on the web do the exact same thing an HTML menu would do - they hit the server and redraw the page. In those cases, the Flash based page will take longer than a simple HTML / CSS page to load. Sure, you can to the Flash equivalent of AJAX to update your content, but in most cases it's not going to be perceptibly faster than simple HTML. If you're talking about a Flash application that does more than navigate, please re-read the title of my post.

2) AJAX is too hard

I'd agree that AJAX is too hard for a menu, as is Flash. Keep it simple and use HTML the way it was intended - let a link be a link. However, if you're hand-crafting AJAX code you're making it a lot harder than it needs to be. There are plenty of great AJAX libraries that have already been tested on all major browsers and are really easy to implement.

3) Accessibility

Sure, Flash can be made Accessible - I stated that in my post. HTML is automatically accessibly since it's simple marked up text. So, 100% of HTML based sites are at least minimally accessible, and some smaller percentage of Flash based sites have been made Accessible. What's that percentage? 10%? 20%? You didn't leave a link with your name, but maybe you'd like to include some links to the accessible Flash sites you've developed?

4) Flash is a wonderful tool for doing things beyond navigation

Re-read the post title, then the post. We agree there. Flash is a great tool for building interactive internet applications. It's the wrong tool for adding a fade in effect or a menu dropdown animation.

5) Namecalling ("stick to what you know")

My first production Flash application was deployed in 2000. It used a webservice to update content (before the term AJAX had been coined), included credit card processing, and was for a national brand (you'd recognize the name). I'm familiar with how Flash works, and I think it's great in the right circumstances. A good carpenter knows better than to hammer nails with a screwdriver just because they've got a great screwdriver.

6) Maintainable

Got anything to say on that one? That Flash app I built back in 2000 was replaced with something totally new after about a year. It wasn't easy to upgrade or enhance, and some changes that would have been simple enough in an HTML application required a re-write in Flash. They had it re-written in HTML with a little Javascript here and there. It's not quite as sexy, but the client and customers are both happier with the application now. Isn't that what it's really all about?

Friday, August 11, 2006 1:19 PM by Jon Galloway

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

While most of your information was interesting I felt you were a bit over the top on your hatred of flash. As a developer, if my clients want it after I tell them the reasons against it... if they still feel the same way, I use it. I understand that you don't want your browser doing something that you don't want it to. However,  what about those of us who have to deal with a browser not doing what we tell it to do. I think that any browser that implements rules that limit the way it handles certain programs will be setting itself up for problems later. Granted- You are 100% correct on the fact that flash can destroy your ratings and no one SHOULD design a site entirely in flash…however, to tell someone they CAN’T design a flash site or to tell them they can but it won’t work like they want it to, That is just as obnoxious.

To me, It appears you are speaking from the point of a developer to another developer and considering that 80% of the market share still uses ie… I would say that there aren’t that many people as technically savvy as you are that just want to look at pretty pictures. I personally work in the entertainment industry…if I were to quit using flash…I would get fired.

Friday, August 11, 2006 1:29 PM by Dwall

# re: all this, just to read e-mail

Thursday, October 05, 2006 7:24 PM by myname

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

now, when I finaly made my own http-cookie backup-to-flash-cookie, Microsoft will make it unuseful !

There are two logical ways to implement a persistent-User-marking system:

1. the www servers marks them and those marks stays persistent..

2. We get from them some unique ID like the MAC address..

-- solution 1. = flashcookies

-- solution 2. it doesn't exist (dom does not expose the MAC..)

So any ideas?

by Vali Leso

Saturday, October 28, 2006 10:35 AM by I hate flash but love it's flash cookie.. :)

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

I thought that I may add my 2 cents. I am a website designer, and to me, adding flash is what sets good websites apart from the rest. Everyone has a basic html site these days, "wow, big deal you can do a little bit of html". It really gets old. If you have some cool animations, and interactive content, users acutally want to come back and visit more frequently. Why do you think that all the big websites have atleast a little flash in them if not completely flash. For example: fantasy interactive, roadrunner, 2advanced studios, the FWA (All flash and completely dynamic) and not to mention almost all movie sites. Flash is a very powerfull web tool. The fact is, learn it or get left in the dust. Because like a previous poster posted, it is the future whether you like it or not.

Tuesday, November 28, 2006 2:09 PM by Austin

# www dot james mckay dot net &raquo; Using Flash? Check out FlashObject&#8230;

# The Weblog of Ean Bowman &raquo; Blog Archive &raquo; Not so &#8220;Flashy&#8221; anymore&#8230;

# Silverlight doesn't require any JavaScript

Summary It's easier to understand Silverlight when you understand that, at its heart, it's a simple browser

Wednesday, October 31, 2007 5:30 AM by Jon Galloway

# re: IE Update disables Flash. Flash navigation is stupid. If you have to embed Flash, use FlashObject.

I have been a web developer for more than 10 years now and I remember listening to the same discussion, in 1997, about using jpegs. I guess jpegs are still around and my bet is that flash will be around in 10 years from now also. Personally, I think that flash can be great in the right place. While, I try to stay away from flash navigation, I think that flash can be great as a background, and in some cases, awesome as a "foreground".

Tuesday, January 08, 2008 2:03 AM by Psungee

Leave a Comment

(required) 
(required) 
(optional)
(required)