W3docs

Balise HTML <param>

La balise HTML <param> (dépréciée) transmettait des paramètres nommés aux plug-ins intégrés avec <object>. Découvrez son rôle et ses remplaçants modernes.

Déprécié / obsolète. La balise <param> ne fait plus partie du standard HTML et ne doit pas être utilisée dans les nouvelles pages. Elle existait uniquement pour configurer les plug-ins du navigateur, et la technologie de plug-ins qu'elle servait (Flash, Java applets, QuickTime, Silverlight) a été supprimée de tous les navigateurs modernes. Cette page est conservée à titre de référence et pour comprendre le code hérité.

La balise <param> (« paramètre ») transmettait des valeurs de configuration nommées à un plug-in intégré via l'élément <object>. Chaque <param> fournissait un paramètre sous la forme d'une paire name/value — à la manière d'un argument clé/valeur passé au plug-in lors de son chargement.

<object data="movie.swf" type="application/x-shockwave-flash">
  <param name="quality" value="high">
  <param name="bgcolor" value="#ffffff">
</object>

Il était possible de placer plusieurs <param> à l'intérieur d'un <object>. Chacun nécessitait les attributs name et value, et tous devaient apparaître avant tout contenu de repli (le texte ou le balisage affiché lorsque l'objet ne parvenait pas à se charger).

Pourquoi elle existait : les plug-ins et l'NPAPI

Avant que les navigateurs ne disposent d'une prise en charge native des médias et des applications riches, les contenus interactifs — lecteurs vidéo, jeux, visionneuses de documents — s'exécutaient dans des plug-ins externes via une interface appelée NPAPI (Netscape Plugin Application Programming Interface). Les exemples les plus courants étaient Adobe Flash, les Java applets, Microsoft Silverlight et Apple QuickTime.

La page intégrait le plug-in avec <object> (ou l'élément <applet> désormais supprimé), et <param> était le seul moyen de lui transmettre des options au démarrage. Pour un film Flash, on pouvait définir quality, bgcolor, loop ou une chaîne flashvars ; pour une Java applet, on pouvait passer un chemin code ou des paramètres spécifiques à l'applet.

Mise en garde : <param> était également utilisé à l'intérieur de <applet>, mais <applet> a été entièrement supprimé de HTML — il n'est pas seulement déprécié, il n'a aucun comportement défini dans les navigateurs modernes.

Les navigateurs ont commencé à désactiver les plug-ins NPAPI vers 2015 et les ont entièrement supprimés peu après ; Adobe a mis fin à la prise en charge de Flash à la fin de l'année 2020. Sans plug-ins à configurer, <param> n'a plus aucune utilité.

Important : <param> n'a jamais été valide à l'intérieur de <video> ou de <audio>. Ces éléments se configurent via leurs propres attributs et via les éléments enfants <source> et <track> — et non via <param>.

Alternatives modernes

Presque tout ce que les plug-ins faisaient autrefois dispose désormais d'un équivalent natif HTML ou de la plateforme web :

  • Vidéo et audio — utilisez les éléments natifs <video> et <audio> avec leurs propres attributs (controls, autoplay, loop, muted) et les éléments enfants <source>/<track>.
  • Applications interactives et jeux — construits avec HTML, CSS, JavaScript, Canvas, WebGL ou WebAssembly.
  • Intégration d'autres documents — utilisez <object>, <iframe> ou <embed>.
  • Passer une configuration à un contenu intégré — définissez des attributs data-* sur l'élément (ou dans la chaîne de requête de l'<iframe> intégrante) et lisez-les avec JavaScript, au lieu d'utiliser <param>.
<!-- The modern equivalent of "configuring an embed": data-* + JavaScript -->
<div id="player" data-autoplay="true" data-volume="0.5"></div>

<script>
  const el = document.getElementById('player');
  const autoplay = el.dataset.autoplay === 'true';
  const volume = parseFloat(el.dataset.volume);
  // initialize your player with autoplay and volume...
</script>

Syntaxe

La balise <param> est vide, ce qui signifie que la balise de fermeture n'est pas requise. Mais en XHTML, la balise <param> doit être auto-fermante (&lt;param /&gt;).

Balise HTML <param>

<object>
  <param name="..." value="...">
</object>

Exemple de la balise HTML <param>

<!DOCTYPE html>
<html>
  <head>
    <title>The title of the document</title>
  </head>
  <body>
    <p>Embedded object example</p>
    <object width="320" height="240" data="movie.swf" type="application/x-shockwave-flash">
      <param name="quality" value="high">
    </object>
  </body>
</html>

Exemple de la balise HTML <param> avec les attributs "name" et "value"

<!DOCTYPE html>
<html>
  <head>
    <title>The title of the document</title>
  </head>
  <body>
    <p>Embedded object example</p>
    <object width="320" height="240" data="example.pdf">
      <param name="param1" value="value1">
    </object>
  </body>
</html>

Attributs

AttributValeurDescription
namenameSpécifie le nom du paramètre. Obligatoire.
valuevalueSpécifie la valeur du paramètre. Obligatoire.
typemedia_typeLe type MIME de la valeur. Obsolète — utilisé uniquement lorsque valuetype était ref, pour indiquer au plug-in le type de ressource vers laquelle pointait l'URL référencée.
valuetypedata, object, refComment le plug-in doit interpréter value. Obsolète.

Seuls name et value ont été conservés dans HTML5 ; type et valuetype ont été abandonnés.

À propos de type et valuetype

Ces deux attributs n'avaient aucun effet par eux-mêmes — ils décrivaient uniquement comment le plug-in devait lire la value. L'attribut valuetype disposait de trois réglages possibles :

  • data (par défaut) — value est une chaîne simple transmise directement au plug-in.
  • refvalue est une URL pointant vers une ressource que le plug-in devait charger. Dans ce cas, type indiquait au plug-in le type MIME de cette ressource.
  • objectvalue est l'id d'un autre <object> sur la page.

Les plug-ins n'existant plus, aucun de ces attributs n'a d'effet aujourd'hui. Ils sont documentés ici uniquement pour permettre de les reconnaître dans du code ancien.

Remarque : Traitez la balise <param> comme un élément historique. Les nouvelles pages doivent utiliser les éléments natifs <video> / <audio>, l'intégration standard avec <object> ou <iframe>, et des attributs data-* lus par JavaScript pour configurer un contenu intégré.

Entraînement

Pratique
Qu'est-ce que faisait la balise HTML param (désormais dépréciée) ?
Qu'est-ce que faisait la balise HTML param (désormais dépréciée) ?
Was this page helpful?