In response to the ruling in the patent case from Eolas Technologies against Microsoft Corporation, Microsoft has published information for web developers who use ActiveX controls and Java Applets in their website and developers who host the Web Browser OC or MSHTML. As I don’t use Web Browser OC or MSHTML technology, I will only discuss the changes for ActiveX Objects and Java Applets here.

The ruling affects every page that uses ActiveX controls or Java Applets, unless they are dynamically created or don’t reference remote data.

In that case the new or updated Internet Explorer will show a pop-up asking the user if he wants to continue loading the page. Also an extra option in the Advanced section of Internet Options will allow users to select if they want to disable these controls by default.

This leaves the web developer of affected sites with 2 options:

1. Do nothing and loose site visitors as they run away from pop-ups and unrendered content.

2. Create pages that are not affected, meaning either replacing the ActiveX objects and Java applets with alternative content, or having them meeting 1 of the 2 exceptions.

Of course, you should go for number 2:

This might be a good occasion on refreshing your site and removing all the ‘fancy’ and ‘flashy’ stuff with real content that doesn’t scare the users. This might in a lot of cases be a good thing, as sites need updates from time to time and you should try to avoid animations and Flash effects if they don’t add any real value to the user experience.

Now, howto?

Again, Microsoft leaves us 2 options:

1. Provide data inline.

2. Create controls in script.

The first one is, technically spoken, the safest, but could again affect the user experience. Internet Explorer determines if an object uses external data. For OBJECT tags with no PARAM this is always the case. But this means that the required object has to be available on the user’s system, either provided by the operating system or installed with software. If the OBJECT tag uses PARAM, you can add an extra attribute to the OBJECT tag, NOEXTERNALDATA, and set its value to “true” resulting in the browser not loading any external data. As an alternative to this, you can provide the data inline, which is no alternative to remote loaded dynamic data. This option is only valuable in controlled user bases, like intranet environments.

The second option is the easiest one: Just place your HTML tags in document.write() JavaScript code and you’re safe. This gives you the extra possibility to provide alternative content if scripting is disabled (what you should always do if you use JavaScript).

I think most developers that use affected objects in their pages will go for this solution as it’s the easiest one, without major changes to their pages. Even more, it won’t take long until anybody writes a script or small program that replaces the OBJECT tags inside JavaScript document.write()’s. So the transition will take just a few mouse clicks (and some testing of course).

The last solution really surprised me as in essence both are the same: OBJECT tags in HTML code or so called ‘dynamic’ OBJECT tags in JavaScript document.write() code, resulting in the same HTML source code.

I also think that this might convince the few users that have JavaScript disabled in their browsers to enable it and not only give them the full user experience of ‘fixed’ pages, but also a lot of other features that are provided by JavaScript. But that are usability issues I don’t want to discuss now.

The documentation:

Information for Developers about Changes to Internet Explorer

Changes to the Default Handling of ActiveX Controls by Internet Explorer

Handling ActiveX Controls in WebOC and MSHTML Hosting Applications

Test the Pre-Release bits: IE 6 Update v.01

Other companies have also published information and guidelines on how to implement the changes:

– Apple Computer Inc for QuickTime:

Apple recommends the JavaScript solution as well, and also an improved JavaScript solution for multiple occurrences of embedded content. You can download ready made JavaScript files. They also mention that if users have JavaScript turned off, they won’t see anything at all, but they add that (mainly Internet Explorer) users who have JavaScript turned off, most of the time also have ActiveX disabled. So they aren’t affected by the changes at all.

Creating the Best User Experience for Active Web Content

Preparing Websites with Active Content for Upcoming Changes to Internet Explorer for Windows

Authoring Websites for Compatibility with Internet Explorer for Windows FAQ

– Macromedia for Flash:

Macromedia also recommends the easy JavaScript solution for a small amount of embedded objects. For a larger amount of embedded objects, they also provide you with a small JavaScript library that you can download. Macromedia have the same remarks of the ‘JavaScript Turned Off’ problem but they add their concerns for people who have disabled JavaScript, but have ActiveX enabled, who will see nothing.

And, as I suggested above, Macromedia is working on a set of tools that will do the transition for you, including command line tools, GUI tools and web server plug-ins. They are developing these tools under Open Source license, so you can change and extend them as you want.

Active Content Developer Center

Preparing Websites with Active Content for Browser Changes

Summary of Solutions to Update Websites with Active Content

Information for Hosting Providers

Active Content FAQ

– RealNetworks: RealAudio and RealVideo:

And surprise, surprise RealNetworks recommends the same solutions as Microsoft, Macromedia and Apple and also provide a small JavaScript library and example files.

RealNetworks also promises to provide additional suggestions for handling cases where JavaScript is not available.

Internet Explorer Changes

The first user/web developer comments:

Comments vary depending on the mailing list or group you’re reading. But some laugh you in the face when you experience troubles using ActiveX or Java Applets. Wake up “Martin van Dijken” , not only Microsoft lost the patent ruling case, but all web developers are taken the freedom to choose which technology to use in their web pages to and the freedom to choose how to interact with their users. Some people are able to develop advanced applications that only need a web browser to run in and take the user experience far beyond static web pages only text and hyperlinks.

My opinion, and some others, is that we will see a lot of ‘OK’ boxes pop-up in the near future and that those home-made websites with nifty-nafty effects will loose their visitors in no time, unless they fix their pages (if they can to) or throw away the effects and show us what it’s all about: content.

Quote: “Microsoft expects that new computers and retail purchases of Microsoft Windows XP will have this behavior sometime early next calendar year. Microsoft also expects that new service packs of Windows XP and Internet Explorer will have this behavior starting sometime after that.”

Be prepared!

[UPDATE: Wed Oct 08, 12:54:17 AM]

Peter-Paul Koch has written a test page to test the proposed solutions and the proposed update to Internet Explorer. He also added some of his own comments too.