» direct naar zoek en menu

Tijdschrift voor webwerkers » Artikel #123

Flash op je website na Eolas -

Microsoft heeft recent laten weten dat ze Internet Explorer gaat aanpassen: op korte termijn zal het gedrag van alle ActiveX plugins veranderen. Dus ook het gedrag van Flash in IE zal anders worden.

Dit doet Microsoft naar aanleiding van de rechtzaak die het bedrijf Eolas tegen hen heeft aangespannen. Gelukkig is het vrij eenvoudig te zorgen dat de bezoeker van je website hier niets van merkt. En de oplossingen die ik je zal aanreiken zijn eigenlijk nog handiger dan de huidige werkwijzen.

Eolas vs Microsoft

Ergens begin jaren negentig hadden een aantal mensen bij de universiteit van Californië een slim idee. Ze vonden het zelfs zo goed dat ze patent aanvroegen op “A system allowing a user of a browser program on a computer connected to an open distributed hypermedia system to access and execute an embedded program object.” Ofwel gewoon een internet plugin als Flash, Java of Quicktime. In de jaren erna groeit het internet explosief en wordt daarmee het idee van de plugins een groot succes. En iedereen leek het patent te zijn vergeten, tot een paar jaar geleden. Het bedrijf Eolas had het patent in licentie van de universiteit en ging verhaal halen bij Microsoft. Tenslotte hadden ze recht op compensatie voor het landurige gebruik van hun patent, menen ze. En een langdurige rechtzaak volgt.

Tot zover lijkt het op een van de vele patentrechtzaken die er de afgelopen jaren zijn geweest, zoals SCO versus Linux en het komische hoogtepunt: British Telecom die geld wou hebben voor het gebruik van de hyperlink. Maar tot verbazing van velen geeft de rechter Eolas in deze zaak gelijk en (misschien nog wel verbazingwekkender) geeft Microsoft toe. Met het aanpassen van Internet Explorer lijkt Microsoft voornamelijk te willen voorkomen dat ze in de toekomst een nóg grotere claim krijgen van Eolas.

Aanpassingen aan Internet Explorer

De claim lijkt voornamelijk te draaien om het automatisch activeren van een plugin. De recent uitgebrachte patch van Internet Explorer 6 (en de beta van IE 7) zorgt er dan ook voor dat een plugin pas actief wordt nadat een bezoeker er op heeft geklikt.

screenshot IE7: Click to activate and use this control

De eerste klik op een object gaat dus verloren in het activeren van de plugin, wat voor de gebruiker die bijvoorbeeld in een Flash-site op een link klikt een wat vreemde ervaring, aangezien de eerste klik geen effect lijkt te hebben. Dit geldt niet alleen voor Flash, maar voor alles wat met de <applet>-, <object>- of <embed>-tag in de pagina is geplaatst.

In het laatste zit ook de oplossing. Aangezien het patent gaat om alles wat ‘embedded’ in de pagina zit, geldt het niet voor alles wat er later aan toegevoegd wordt. De oplossing is dus het niet gebruiken van de betreffende elementen, maar de elementen toevoegen en activeren via JavaScript. Microsoft geeft hier al de algemene instructies voor.

Velen zullen een kreet van opluchting slaken als het embed-element van het internet verdwijnt. Dit niet-valide (X)HTML elementen was voor volgers van de webstandaarden al tijden een doorn in het oog. En zo waren er dus ook al een aantal alternatieven ontwikkeld. Deze voldoen wél aan de webstandaarden en zijn bovendien ook toegankelijker voor degenen die de plugins niet hebben geïnstalleerd.

Flash op je pagina

Voor Flash bestaan er al een tijdje een aantal standaardvriendelijke manieren van toevoegen aan een pagina. Twee populaire zijn de Unobtrusive Flash Objects (UFO) van Bobby van der Sluis en het soortgelijke FlashObject van Geoff Stearns. Beide zijn voorzien van uitgebreide documentatie en voorbeelden. Ze hebben het grote voordeel dat ze niet alleen valide (x)html opleveren, maar ook op eenvoudige wijze alternatieve inhoud laten zien aan de bezoekers die geen Flash of Javascript hebben. Hiermee krijgen zoekmachines dus ook leesbare inhoud gepresenteerd. Verder is het ook mogelijk om gebruik te maken van de Express install functie van Flash om een oude versie eenvoudig te laten detecteren en updaten.

Dit is hoe de webpagina er bijvoorbeeld uitziet wanneer UFO wordt gebruikt (voorbeeld van bobbyvandersluis.com):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
  <head> 
    <title>Unobtrusive Flash Objects (UFO) | Voorbeeld pagina</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <script type="text/javascript" src="ufo.js"></script> 
    <script type="text/javascript"> 
      var FO = { movie:"swf/myMovie.swf", width:"300", height:"120", majorversion:"6", build:"40" }; 
      UFO.create(FO, "ufoDemo"); 
    </script> 
  </head> 
  <body> 
    <div id="ufoDemo"> 
      <p>Inhoud voor bezoeker zonder Flash</p> 
    </div> 
  </body> 
</html>

De stappen

In het kort werkt het als volgt:

  1. Zet ufo.js op de server
  2. Include ufo.js in iedere pagina met Flash-elementen:
    <script type="text/javascript" src="ufo.js"></script>
  3. In de body wordt op de plaats van ieder Flash-element de alternatieve inhoud geplaatst in een <div> met een unieke id:
    <div id="ufoDemo">
     <p>Inhoud voor niet bezoeker zonder Flash</p>
    </div>
  4. Voor ieder Flash-element worden de standaard parameters in het script in <head> gezet:
    var FO = { movie:"swf/myMovie.swf", width:"300", height:"120", majorversion:"6", build:"40" };
  5. Vervolgens vervangt UFO de inhoud van de <div> door de verwijzing naar het Flash document:
    UFO.create(FO, "ufoDemo");

(De FlashObject implementatie is overigens soortgelijk). Aangezien dit alles gebeurt nadat de pagina geladen is, valt dit niet onder het patent en zijn de elementen direct actief. En in valide xhtml, met leesbare alternatieve inhoud en versiedetectie. Veel beter eigenlijk ook.

Andere plugins

Voor andere plugins lijken op dit moment nog niet veel standaardoplossingen voor handen te zijn. Wel heeft Geoff Stearns van FlashObject een versie voor Quicktime gemaakt. En ook Apple beschrijft een mogelijke oplossing.

Als je niet op iedere pagina wilt aanpassen is het natuurlijk ook mogelijk dit op de server te doen. Bijvoorbeeld met Java Server Filters.

Auteur

Bob Corporaal

voormalig vliegtuig ontwerper, werkt graag op het punt waar vormgeving, technologie en interactie elkaar raken. Sinds 2004 doet hij dit als freelancer.

Zijn werk is te vinden is zijn portfolio en op zijn persoonlijke site.

Publicatiedatum: 29 maart 2006

Let op

Naar Voren is op 18 juli 2010 gestopt met publiceren. De artikelen staan als een soort archief online. Het kan dus zijn dat de informatie verouderd is en dat er inmiddels veel betere of makkelijkere manieren zijn om je doel te bereiken.

Copyright © 2002-heden » NAAR VOREN en de auteurs