--- title: ' : l''élément d''image embarquée' slug: Web/HTML/Element/Img tags: - Content - Element - Graphics - HTML - HTML Graphics - HTML Images - HTML Photos - HTML Pictures - HTML embedded content - Image - Image Element - Media - Multimedia - Photos - Pictures - Reference - Web translation_of: Web/HTML/Element/img browser-compat: html.elements.img --- {{HTMLRef}} L'élément HTML **``** intègre une image dans le document. {{EmbedInteractiveExample("pages/tabbed/img.html", "tabbed-standard")}} Dans l'exemple qui précède, on utilise l'élément `` simplement. - L'attribut `src` est obligatoire et contient le chemin de l'image qu'on souhaite afficher. - L'attribut `alt` contient une description textuelle de l'image, qui n'est pas obligatoire mais qui est **incroyablement utile** pour l'accessibilité — les lecteurs d'écran lisent cette description à leurs utilisateurs pour qu'ils sachent ce que signifie l'image. Le texte Alt est également affiché sur la page si l'image ne peut pas être chargée pour une raison quelconque : par exemple, erreurs de réseau, blocage du contenu ou linkrot. Il existe d'autres attributs qui peuvent être utilisés dans différents cas. Ces attributs sont détaillés ci-après. Entre autres, on pourra utiliser : - [Referrer](/fr/docs/Web/HTTP/Headers/Referrer-Policy)/[CORS](/fr/docs/Glossary/CORS) contrôle pour la sécurité et la confidentialité : voir [`crossorigin`](#attr-crossorigin) et [`referrerpolicy`](#attr-referrerpolicy). - [`width`](#attr-width) et [`height`](#attr-height) pour définir la taille intrinsèque de l'image, ce qui lui permet d'occuper de l'espace avant son chargement, afin d'atténuer les décalages de présentation du contenu. - Des indications d'images adaptatives avec [`sizes`](#attr-sizes) et [`srcset`](#attr-srcset). (voir aussi l'élément [``](/fr/docs/Web/HTML/Element/picture) et notre [Tutoriel sur les images adaptatives](/fr/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images)). ## Formats d'image pris en charge La norme HTML ne donne pas de liste des formats d'image qui doivent être pris en charge, de sorte que chaque [agent utilisateur](/fr/docs/Glossary/User_agent) prend en charge un ensemble différent de formats. {{page("/fr/docs/Web/Media/Formats/Types_des_images", "table-of-image-file-types")}} > **Note :** Voir le [Guide des types et formats de fichiers image](/fr/docs/Web/Media/Formats/Image_types) pour des informations plus complètes sur les formats d'image pris en charge par les navigateurs web. Cela inclut les formats d'image pris en charge mais non recommandés pour le contenu web (par exemple, ICO, BMP, etc.). ## Erreurs de chargement des images Si une erreur se produit lors du chargement ou de l'affichage de l'image et qu'un gestionnaire d'événement [`onerror`](/fr/docs/Web/HTML/Global_attributes#attr-onerror) a été paramétré afin d'écouter l'événement [error](/fr/docs/Web/Reference/Events/error), le gestionnaire d'événement sera invoqué. Cela peut se produire lorsque : - L'attribut [`src`](#attr-src) est vide (`""`) ou vaut `null`. - L'[URL](/fr/docs/Glossary/URL) indiquée dans l'attribut `src` est la même URL que celle de la page sur laquelle se trouve l'utilisateur. - L'image indiquée est corrompue et ne peut pas être chargée. - Les métadonnées de l'image sont corrompues et il est impossible de récupérer ses dimensions et aucune dimension n'est indiquée dans les attributs de l'élément ``. - Le format de l'image n'est pas pris en charge par l'agent utilisateur. ## Attributs Cet élément inclut les [attributs globaux](/fr/docs/Web/HTML/Global_attributes). - `alt` - : Cet attribut définit le texte alternatif utilisé lorsqu'il est impossible d'afficher l'image (par exemple si l'URL est incorrecte ou si l'image n'est pas encore téléchargée). > **Note :** > > Les navigateurs n'affichent pas toujours les images. Il existe un certain nombre de situations dans lesquelles un navigateur peut ne pas afficher les images, par exemple : > > - Navigateurs non visuels (tels que ceux utilisés par les personnes souffrant de déficiences visuelles) > - L'utilisateur choisit de ne pas afficher les images (économie de bande passante, raisons de confidentialité). > - L'image n'est pas valide ou le [type n'est pas pris en charge](#supported_image_formats). > > Dans ces cas, le navigateur peut remplacer l'image par le texte de l'attribut `alt` de l'élément. Pour ces raisons et d'autres, fournissez une valeur utile pour `alt` dans la mesure du possible. Omettre complètement `alt` indique que l'image est un élément clé du contenu et qu'aucun équivalent textuel n'est disponible. Définir cet attribut sur une chaîne vide (`alt=""`) indique que cette image n'est _pas_ un élément clé du contenu (il s'agit d'une décoration ou d'un pixel de suivi), et que les navigateurs non visuels peuvent l'omettre au [rendu](/fr/docs/Glossary/Rendering_engine). Les navigateurs visuels masqueront également l'icône d'image brisée si le `alt` est vide et que l'image n'a pas réussi à s'afficher. Cet attribut est également utilisé pour copier et coller l'image dans du texte, ou pour enregistrer une image liée dans un signet. - `crossorigin` - : Indique si la récupération de l'image doit être effectuée à l'aide d'une requête [CORS](/fr/docs/Glossary/CORS). Les données d'image d'une [image compatible avec le système CORS](/fr/docs/Web/HTML/CORS_enabled_image) renvoyées par une requête CORS peuvent être réutilisées dans l'élément [``](/fr/docs/Web/HTML/Element/canvas) sans être marquées « [corrompu](/fr/docs/Web/HTML/CORS_enabled_image#what_is_a_tainted_canvas) ». Si l'attribut `crossorigin` _n'est pas_ spécifié, une requête non-CORS est envoyée (sans l'en-tête de requête [`Origin`](/fr/docs/Web/HTTP/Headers/Origin)), et le navigateur marque l'image comme étant corrompue et restreint l'accès à ses données d'image, empêchant son utilisation dans les éléments [``](/fr/docs/Web/HTML/Element/canvas). Si l'attribut `crossorigin` _est_ spécifié, alors une requête CORS est envoyée (avec l'en-tête de requête [`Origin`](/fr/docs/Web/HTTP/Headers/Origin)) ; mais si le serveur n'autorise pas l'accès croisé aux données de l'image par le site d'origine (en n'envoyant pas d'en-tête de réponse [`Access-Control-Allow-Origin`](/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) ou en n'incluant pas l'origine du site dans l'en-tête de réponse [`Access-Control-Allow-Origin`](/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) qu'il envoie), le navigateur bloque le chargement de l'image et enregistre une erreur CORS dans la console devtools. Valeurs autorisées : - `anonymous` - : Une requête entre deux origines est effectuée (avec l'en-tête [`Origin`](/fr/docs/Web/HTTP/Headers/Origin)) mais aucune information d'authentification n'est transmise (aucun cookie, aucun certificat X.5090, aucune authentification simple par HTTP). Si le serveur ne fournit pas d'informations d'authentification pour le site d'origine (en n'utilisant pas l'en-tête HTTP [`Access-Control-Allow-Origin`](/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin)), l'image sera corrompue et son utilisation sera restreinte. - `use-credentials` - : Une requête entre deux origines est effectuée (avec l'en-tête [`Origin`](/fr/docs/Web/HTTP/Headers/Origin)) avec des informations d'authentification qui sont envoyées (par exemple un cookie, un certificat et une authentification HTTP). Si le serveur ne fournit pas d'informations d'authentification au site d'origine (via l'en-tête HTTP [`Access-Control-Allow-Origin`](/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin)), l'image sera corrompue et son utilisation sera restreinte. Lorsque cet attribut est absent, la ressource est récupérée sans requête _CORS_ (c'est-à-dire sans envoyer l'en-tête HTTP [`origin`](/fr/docs/Web/HTTP/Headers/Origin)) ce qui empêche de l'utiliser dans un [``](/fr/docs/Web/HTML/Element/canvas) sans qu'elle soit considérée comme corrompue. Si la valeur de l'attribut est invalide, elle sera considérée comme **`anonymous`**. Voir la page [réglage des attributs CORS](/fr/docs/Web/HTML/Attributes/crossorigin) pour plus d'informations. - `decoding` - : Cet attribut fournit une indication à l'agent utilisateur pour le décodage de l'information. Les valeurs possibles sont : - `sync` - : L'image est décodée de façon synchrone afin d'être présentée de façon atomique avec le reste du contenu. - `async` - : L'image est décodée de façon asynchrone afin de réduire le temps nécessaire à la présentation du reste du contenu. - `auto` - : Le mode par défaut qui indique l'absence de préférence pour le mode de décodage. Dans ce cas, l'agent utilisateur décide de la meilleure stratégie. - `height` - : La hauteur intrinsèque de l'image, en pixels. Doit être un nombre entier sans unité. - `intrinsicsize` {{deprecated_inline}} - : Cet attribut indique au navigateur d'ignorer la taille intrinsèque réelle de l'image et d'utiliser la taille fournie par les attributs. La matrice contenant l'image aurait donc ces dimensions et calculer `naturalWidth`/`naturalHeight` sur de telles images renverrait les valeurs de cet attribut. [Explications](https://github.com/ojanvafai/intrinsicsize-attribute), [exemples](https://googlechrome.github.io/samples/intrinsic-size/index.html). - `ismap` - : Un attribut booléen dont la valeur indique si l'image fait partie d'une carte cliquable. Si c'est le cas, les coordonnées du clic seront envoyées au serveur. > **Note :** Cet attribut est uniquement autorisé si l'élément `` descend d'un élément [``](/fr/docs/Web/HTML/Element/a) dont l'attribut [`href`](/fr/docs/Web/HTML/Element/a#attr-href) est valide. - `loading` {{experimental_inline}} - : Indique comment le navigateur doit charger l'image : - `eager` : Charge l'image immédiatement, que l'image se trouve ou non dans le viewport visible (c'est la valeur par défaut). - `lazy` : Diffère le chargement de l'image au moment où elle atteint une certaine distance de la fenêtre de visualisation, telle que définie par le navigateur. Le but est d'éviter que le réseau et la zone de stockage nécessaires à la manipulation de l'image ne soient utilisés tant qu'il n'est pas relativement sûr que celle-ci sera nécessaire. Cela permet généralement d'améliorer les performances du contenu dans la plupart des cas d'utilisation typiques. > **Note :** Le chargement n'est différé que lorsque JavaScript est activé. Il s'agit d'une mesure anti-pistage, car si un agent utilisateur prenait en charge le chargement différé lorsque les scripts sont désactivés, il serait toujours possible pour un site de suivre la position de défilement approximative d'un utilisateur tout au long d'une session, en plaçant stratégiquement des images dans le balisage d'une page de sorte qu'un serveur puisse suivre le nombre d'images demandées et le moment où elles le sont. - `referrerpolicy` {{experimental_inline}} - : Une chaîne de caractères indiquant le référent à utiliser lors de la récupération de la ressource : - `no-referrer` : l'en-tête HTTP [`Referer`](/fr/docs/Web/HTTP/Headers/Referer) ne sera pas envoyé. - `no-referrer-when-downgrade` : aucun en-tête HTTP [`Referer`](/fr/docs/Web/HTTP/Headers/Referer) n'est envoyé lorsqu'on navigue vers une origine sans [HTTPS](/fr/docs/Glossary/https). Cette valeur est le comportement par défaut de l'agent utilisateur si aucune valeur n'est fournie. - `origin` : l'en-tête HTTP [`Referer`](/fr/docs/Web/HTTP/Headers/Referer) contiendra le schéma, l'[hôte](/fr/docs/Glossary/Host) et le [port](/fr/docs/Glossary/Port) de la page d'origine. - `origin-when-cross-origin` : lorsque la navigation se fait vers d'autres origines, les données du référent se limiteront au schéma, à l'hôte et au part. Si on navigue sur la même origine, le chemin complet de la ressource sera indiqué. - `unsafe-url` : l'en-tête HTTP [`Referer`](/fr/docs/Web/HTTP/Headers/Referer) incluera l'origine et le chemin mais aucun fragment, mot de passe ou nom d'utilisateur. Ce cas de figure n'est pas sécurisé, car il peut laisser fuire des origines et des chemins de ressources protégées par TLS vers des origines non-sécurisées. - `sizes` - : Une ou plusieurs chaînes de caractères séparées par des virgules, indiquant un ensemble de tailles sources. Chaque taille source est composée de : 1. D'une [condition sur le média](/fr/docs/Web/CSS/Media_Queries/Using_media_queries#syntax). Qui doit être absente pour le dernier élément de la liste. 2. Une valeur de taille de la source. Les conditions de média décrivent les propriétés de la _fenêtre de visualisation_ (ou « viewport »), et non de l'_image_. Par exemple, `(max-height : 500px) 1000px` propose d'utiliser une source de 1000px de largeur, si la _fenêtre de visualisation_ n'est pas supérieure à 500px. Les valeurs de taille de la source spécifient la taille d'affichage prévue de l'image. [Les agents utilisateurs](/fr/docs/Glossary/User_agent) utilisent la taille actuelle de la source pour sélectionner l'une des sources fournies par l'attribut `srcset`, lorsque ces sources sont décrites à l'aide de descripteurs de largeur (`w`). La taille de la source sélectionnée affecte la [taille intrinsèque](/fr/docs/Glossary/Intrinsic_size) de l'image (la taille d'affichage de l'image si aucun style [CSS](/fr/docs/Glossary/CSS) n'est appliqué). Si l'attribut `srcset` est absent, ou ne contient aucune valeur avec un descripteur de largeur, alors l'attribut `sizes` n'a aucun effet. - `src` - : L'[URL](/fr/docs/Glossary/URL) de l'image. Cet attribut est obligatoire pour l'élément ``. Pour les [navigateurs](/fr/docs/Glossary/Browser) qui prennent en charge `srcset`, `src` est considéré comme une image candidate dont la densité de pixel vaut `1x` si aucune autre image avec cette densité n'est définie via `srcset` ou si `srcset` contient des descripteurs « `w` ». - `srcset` - : Une liste de une ou plusieurs chaînes de caractères, séparées par des virgules, qui indiquent un ensemble d'images sources parmi lequel l'agent utilisateur pourra choisir la meilleure image à afficher. Chaque chaîne de caractères se compose : 1. D'une [URL](/fr/docs/Glossary/URL) vers une image, 2. Éventuellement d'un espace suivi : - D'un descripteur de largeur ou un entier positif directement suivi par « `w` ». Le descripteur de largeur est divisé par la taille de la condition de taille définie dans l'attribut `sizes` afin de calculer la densité de pixel réelle. - D'un descripteur de densité de pixel qui est un nombre décimal directement suivi par « `x` ». Si aucun descripteur n'est utilisé, la source aura un descripteur par défaut qui vaut `1x`. Au sein d'un même attribut `srcset`, on ne peut pas mélanger des descripteurs exprimés en densité de pixels et des descripteurs exprimés en largeur. Il est également invalide d'avoir deux sources pour lesquelles le descripteur est le même (par exemple, deux sources décrites par « `2x` »). L'agent utilisateur sélectionne l'une des sources disponibles à sa discrétion. Il dispose ainsi d'une marge de manœuvre importante pour adapter sa sélection en fonction de choses comme les préférences de l'utilisateur ou les conditions de [bande passante](/fr/docs/Glossary/Bandwidth). Voir notre [Tutoriel sur les images responsives](/fr/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) pour un exemple. - `width` - : La largeur intrinsèque de l'image en pixels. Doit être un nombre entier sans unité. - `usemap` - : Le fragment d'URL (commençant avec #) d'une [carte d'images](/fr/docs/Web/HTML/Element/map) associée à cet élément. > **Note :** Cet attribut ne peut pas être utilisé si l'élément `` est un descendant d'un élément [``](/fr/docs/Web/HTML/Element/a) ou d'un élément [`