La fin du "Click to activate this control" dans IE

Voilà une excellente nouvelle tant pour nous développeurs Web que pour les utilisateurs et internautes : le blog de l'équipe IE nous apprend que les jours du clic pour activer les contrôles ActiveX et autres objets embarqués dans IE sont comptés.

En effet, Microsoft aurait acquis une licence d'utilisation de cette technologie auprès de la société Eolas (sic!). Bref, peu importe quoi et comment, il n'y a que le résultat qui compte, n'est-ce pas ?

En tous cas, maintenant on peut en parler et en rire : j'avoue que la façon dont la chose a été traitée pour Silverlight m'a bien plu et amusé. Petit rappel...

Au terme d'un jugement, les éditeurs de navigateurs Web sont forcés d'implémenter une action volontaire de l'utilisateur pour activer tout contrôle ou composant permettant d'embarquer des contrôles contenus dans la page HTML. Ceci concerne les tags OBJECT, EMBED et APPLET.

Comme l'indique la page de Wikipedia présentant la société EOLAS, il existe une solution de contournement qui permet de ne pas tomber sous le coup des termes du jugement : il faut pour celà non pas intégrer les tags HTML en question directement dans le code de la page HTML, mais les injecter après le chargement par du code Javascript, en utilisant le DOM de la page, une technique popularisée par les technologies Ajax.

J'ai trouvé ça très amusant de trouver une solution technique pour contourner un avis d'un tribunal.

Plus sérieusement, dans le cas de Silverlight, le code de chargement du plug-in en Javascript remplit d'autres fonctions puisqu'en fonction du User-Agent il va utiliser soit un tag OBJECT soit un tag EMBED, d'une part, et que d'autre part, ce code Javascript permet de gérer correctement le fallback, c'est ça dire ce qui doit ce passer dans le cas où le poste client en question ne comporterait pas le plug-in Silverlight.

Bref...

Ce qu'il faut retenir, c'est que vers le mois d'Avril, au gré d'une mise à jour cumulative pour Internet Explorer, tout ceci ne sera plus qu'un mauvais souvenir.

Voilà en tous cas une Happy End...