médias block

<iframe>

Intègre un document HTML externe dans la page courante. Utilisé pour les cartes, vidéos YouTube, widgets tiers et contenus embarqués.

Description

L’élément <iframe> (inline frame) intègre un document HTML séparé dans la page. Chaque <iframe> crée un contexte de navigation imbriqué indépendant. L’attribut sandbox est fortement recommandé pour les contenus tiers car il limite les capacités du document intégré.

Syntaxe

<iframe src="https://example.com" width="600" height="400" title="Description du contenu">
</iframe>

Exemples

Vidéo YouTube embarquée :

<iframe
  src="https://www.youtube-nocookie.com/embed/VIDEO_ID"
  width="560"
  height="315"
  title="Titre de la vidéo YouTube"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
  loading="lazy"
  referrerpolicy="strict-origin-when-cross-origin"
></iframe>

Carte intégrée avec sandbox :

<iframe
  src="https://maps.example.com/embed?q=Paris"
  width="100%"
  height="400"
  title="Carte de localisation Paris"
  sandbox="allow-scripts allow-same-origin"
  loading="lazy"
></iframe>

Attributs spécifiques

AttributTypeDescription
srcURLURL du document à intégrer.
widthintegerLargeur en pixels.
heightintegerHauteur en pixels.
namestringNom du cadre (cible pour <a target> ou <form target>).
sandboxstringRestreint les capacités : allow-scripts, allow-forms, allow-same-origin, allow-popups
allowstringPolitique de permissions : camera, microphone, fullscreen, payment
allowfullscreenbooleanAutorise le plein écran (legacy, préférer allow="fullscreen").
loadingenumlazy (chargement différé) ou eager (immédiat).
referrerpolicystringPolitique d’envoi du Referer.
srcdocstringContenu HTML inline à afficher (prioritaire sur src).

Notes

title obligatoire pour l’accessibilité : toujours fournir un title descriptif sur <iframe>. Les lecteurs d’écran l’annoncent quand l’utilisateur entre dans le cadre.

sandbox pour la sécurité : sans sandbox, le contenu d’une <iframe> a accès à JavaScript, formulaires, fenêtres pop-up, etc. Toujours sandboxer les contenus tiers et n’accorder que les permissions nécessaires.

Performances : loading="lazy" est recommandé pour les <iframe> en bas de page (cartes, vidéos YouTube) — elles ne chargent qu’à l’approche du viewport.

Support navigateurs

Chrome1+ · Firefox1+ · Safari≤4+ · Edge12+