--- title: Ajouter du contenu Flash dans une page web slug: conflicting/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies tags: - Accessibility - Advanced - Flash - Guide - HTML translation_of: >- Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies#The_%3Cembed%3E_and_%3Cobject%3E_elements translation_of_original: Learn/HTML/Howto/Add_Flash_content_within_a_webpage original_slug: Apprendre/HTML/Comment/Ajouter_contenu_Flash_dans_page_web ---

Cet article illustre pourquoi il est nécessaire que le contenu d'une page web soit accessible sans plugin. Si vous avez besoin de tels plugins (pour un cas bien spécifique ou pour des raisons historiques), nous illustrerons également un cas expliquant comment intégrer du contenu de cette façon.

Prérequis : Vous devez savoir comment créer un document HTML basique.
Objectifs : Cet article aborde les méthodes pour insérer du contenu, dépendant d'extensions tierces, dans une page web.

Résumé : Des plugins comme Flash représentent une technologie passée, notamment sur les appareils mobiles où ils ne sont pas disponibles. Les navigateurs destinés aux ordinateurs de bureau vont également abandonner leur support.

Tourner son clavier sept fois sur son bureau avant de dépendre de plugins tiers

Un plugin est un logiciel qui permet d'accéder à un contenu que le navigateur ne peut pas lire/décoder nativement. Il était une fois, les plugins étaient indispensables sur le Web. Il y a quelques années, installer Adobe Flash Player était un passage obligé pour regarder un film en ligne. À cette époque, on avait également de (trop) nombreuses alertes pour mettre à jour Flash Player ou Java Runtime Environment.

Depuis, les technologies web ont grandi et aquis une certaine maturité et une certaine robustesse. Pour la plupart des application, il est donc temps d'arrêter de dépendre de ces plugins et de tirer parti des technologies web. Cela permettra :

Que faire ? Si vous avez besoin d'une certaine intéractivité sur votre page, {{glossary("JavaScript")}} vous permettra sans aucun doute d'accomplir ce dont vous avez besoin, sans avoir à utiliser d'applets Java ou de composants ActiveX/BHO. Plutôt que d'utiliser Adobe Flash, vous pouvez utiliser la vidéo HTML5 pour les cas où vous avez besoin de médias, SVG pour les graphiques vectoriels et Canvas pour réaliser des images et animations complexes. Plusieurs années auparavant, Peter Elst écrivait déjà qu'Adobe Flash était rarement le meilleur outil pour développer sur le Web, notamment pour les jeux et les applications d'entreprises. En ce qui concerne ActiveX, même le navigateur de Microsoft, {{glossary("Microsoft Edge","Edge")}}, ne le supporte plus.

L'histoire de deux balises

Si vous devez dépendre de plugins pour un cas spécifique ou lié au cadre d'une entreprise donnée, HTML fournit deux élément pour intégrer du contenu provenant d'un plugin : {{htmlelement("embed")}} et {{htmlelement('object')}}. Il faut noter qu'<embed> est un élément vide, à la différence de <object>.

Il faudra donc utiliser les attributs pour fournir certaines informations :

  {{htmlelement("embed")}} {{htmlelement("object")}}
L'{{glossary("URL")}} du contenu à intégrer {{htmlattrxref('src','embed')}} {{htmlattrxref('data','object')}}
Le type {{glossary("MIME")}} précis du contenu à intégrer {{htmlattrxref('type','embed')}} {{htmlattrxref('type','object')}}
La hauteur et la largeur, exprimées en pixels CSS, de la boîte contrôlée par le plugin {{htmlattrxref('height','embed')}}
{{htmlattrxref('width','embed')}}
{{htmlattrxref('height','object')}}
{{htmlattrxref('width','object')}}
Les noms et valeurs à founir comme paramètres au plugin Des attributs ad hoc avec les noms et les valeurs Des éléments sur une seule balise {{htmlelement("param")}} contenus dans la balise <object>
Du contenu HTML indépendant à utiliser en secours au cas où la ressource à intégrer n'est pas disponible Non supporté (<noembed> est obsolète) Contenus dans la balise <object>, après les éléments <param>

<object> a besoin d'un attribut data ou d'un attribut type ou des deux. SI vous utilisez les deux, il faudra peut être utiliser l'attribut  {{htmlattrxref('typemustmatch','object')}} (uniquement implémenté dans Firefox à l'heure où cet article est écrit). typemustmatch permet au contenu intégré de ne pas être lancé tant que l'attribut type ne correspond pas au type du média. typemustmatch permet ainsi d'apporter beaucoup plus de sécurité lorsqu'on intègre du contenu provenant d'une autre {{glossary("origine")}} (cela peut empêcher des attaquants malveillants de lancer des scripts modifiés au travers du plugin).

Les deux exemples utilisent chacun <embed> ou <object> pour insérer un film Flash, <object> permet également de gérer un contenu à utiliser en cas de secours :

<embed
  src="explosion.swf"
  type="application/vnd.adobe.flash-movie"
  width="500"
  height="300"
  bgcolor="#ff7f00"
  allowfullscreen="true"
/>
<object
  data="explosion.swf"
  type="application/vnd.adobe.flash-movie"
  width="500"
  height="300"
  typemustmatch>
    <param name="bgcolor" value="#ff7f00" />
    <param name="allowfullscreen" value="true" />

    <p>Le film Flash n'a pu être trouvé.</p>
</object>

Afin d'être tout à fait complet, voici deux exemples supplémentaires. Encore une fois, il est (de loin) préférable d'utiliser JavaScript que des applets Java car le navigateur exécutera directement le code JavaScript sans passer par un environnement tiers, lourd. Ceci étant dit, voilà comment utiliser l'élément <object> pour insérer une applet Java :

<object
  data="mon_applet.jar"
  type="application/x-java-applet">
    <param name="code" value="MaClasseJava">

    <p>Java n'est pas disponible ou est désactive.</p>
</object>

Un autre cas où on a besoin de faire appel à <object> : les fichiers PDF. Ces fichiers posent de nombreux problèmes d'accessibilité, notamment pour les utilisateurs qui utilisent un petit écran. Il ne devrait pas être absolument nécessaire de lire un PDF pour consulter un site web (imaginez si tous les sites web étaient uniquement disponibles en largeur fixe). Toutefois, si vous avez besoin d'intégrer un contenu PDF, voici comment le faire dans votre page web :

<object
  data="mon_fichier.pdf"
  type="application/pdf"
  width="100%"
  height="100%"
  typemustmatch>
    <p>Vous n'avez pas de plugin pour lire des fichiers PDF mais vous pouvez
    <a href="mon_fichier.pdf">télécharger le fichier PDF correspondant.</a></p>
</object>

En savoir plus