La seule et unique façon d’intégrer une animation Flash…

Je suis actuellement en train de développer un VideoBlog où je pourrai placer mes vidéos favorites provenant de YouTube, Dailymotion et Google Video.

J’ai donc étudié le code source prêt à être copié/collé qu’offrent ces différents services. De manière générale, c’est du grand n’importe quoi !

YouTube ne s’en sort pas encore trop mal :

<object width="425" height="350">
	<param name="movie" value="http://www.youtube.com/v/MENw0zD1F2I"></param>
	<param name="wmode" value="transparent"></param>
	
</object>

Dailymotion fait plus ou moins pareil (sauf qu’il rajoute plein de truc inutiles autour) :

<div>
<object width="425" height="335">
	<param name="movie" value="http://www.dailymotion.com/swf/3kprUGk68vsgB4Zqv"></param>
	<param name="allowfullscreen" value="true"></param>
	http://www.dailymotion.com/swf/3kprUGk68vsgB4Zqv
</object>
<br /><b><a href="http://www.dailymotion.com/video/xphrz_pub-audi">Pub AUDI</a></b>
<br /><i>envoyé par <a href="http://www.dailymotion.com/nice_">nice_</a></i>
</div>

Google, par contre, livre un code plus que catastrophique :

http://video.google.com/googleplayer.swf?docId=5366818355418627155&hl=fr
</embed>

Pour rappel, embed est une balise obsolète depuis des siècles. Celle-ci a été inventée par Netscape pour jouer des animations Flash, car à l’époque, c’était le seul moyen de le faire. Elle ne fait pas partie de la recommandation XHTML, donc son utilisation menera inévitablement à une erreur du validateur.

Pour en finir avec tous ces bricolages de code que l’on voit partout, je vous présente la seule et unique façon d’intégrer une animation de façon standard et accessible :

<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.dailymotion.com/swf/3kprUGk68vsgB4Zqv">
	<param name="movie" value="http://www.dailymotion.com/swf/3kprUGk68vsgB4Zqv" />
	<param name="wmode" value="transparent" />
	<p><!-- image ou texte alternatif --></p>
</object>

Seuls les attributs width, height, type et data sont nécessaires dans la balise object. Le paramètre movie est également nécessaire contrairement au paramètre wmode qui sert ici à donner un fond transparent à l’animation. Notez aussi l’importance d’une image ou d’un texte alternatif pour l’accessibilité.

Pour aller plus loin, je vous recommande la lecture de cet article de “A List Apart”

12 Comments

  1. Unknown's avatar katsoura says:

    Sauf que la balise object utilisée seule risque de poser des problèmes pour les versions d’internet explorer. Et comme c’est quand même le leader, il y a lieu de trouver un compromis: couple object et embed comme le font la plupart des webmasters.

    Like

  2. vinch's avatar Vinch says:

    Oui tu as raison, mais l’article que j’évoque à la fin de mon billet propose des solutions pour IE. Ils appellent ça : “la méthode Satay”. Cela permet d’oublier la vieille balise embed.

    Like

  3. Monique's avatar Monique says:

    Bonjour,

    Pour ceux qui sont un peu brouillés avec l’anglais, une traduction de la méthode Satay par Antoine

    Amicalement,
    Monique

    Like

  4. Monique's avatar Monique says:

    Aïe… l’URL n’est pas complète 😦
    La fin c’est -en-respectant-les-standards

    Like

  5. vinch's avatar Vinch says:

    Merci pour le lien. J’ai corrigé ton commentaire 😉

    Like

  6. Unknown's avatar katsoura says:

    Voilà qu’il est intéressant. Merci Monique.

    Like

  7. Marin's avatar Marin says:

    Pourquoi ne pas passer par swfObject qui a aussi l’avantage de contourner le problème de l'”active content” sur Internet Explorer.

    Un autre avantage est aussi de pouvoir mettre du contenu alternatif pour les navigateur non-équipés de javascript/flashplayer.

    Like

  8. vinch's avatar Vinch says:

    C’est vrai, je n’avais pas pensé à SWFObject qui est également une solution très élégante… Minuscule hic, ça nécessite d’avoir le JavaScript activé.

    Like

  9. Unknown's avatar alibabaG says:

    une autre solution est de placer tes videos favorites sur SaneScreen : http://en.sanescreen.org

    Like

  10. Cuzajero's avatar Cuzajero says:

    camera casio digital ex exilim z1000 zoom camera canon digital eos rebel slr xt

    Like

  11. twist's avatar twist says:

    J’utilise la même méthode. Malheureusement, le paramètre “allowFullscreen” n’est pas récupéré par Firefox, donc impossible de passer en plein écran.

    Like

Leave a reply to Marin Cancel reply