Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Naslag / Afbeeldingen en media

Het element <img>

Het <img>-element van HTML bettet een afbeelding in het document in.

Code
<img
  class="fit-picture"
  src="/shared-assets/images/examples/grapefruit-slice.jpg"
  alt="Grapefruit slice atop a pile of other slices" />
Resultaat in de browser

Ondersteunde afbeeldingsformaten

De HTML-standaard vermeldt niet welke afbeeldingsformaten ondersteund moeten worden, dus user agents kunnen verschillende formaten ondersteunen.

Opmerking

De handleiding voor afbeeldingsbestandstypen en -formaten biedt uitgebreide informatie over afbeeldingsformaten en hun ondersteuning door webbrowsers. Deze sectie is slechts een samenvatting!

De afbeeldingsbestandsformaten die het meest gebruikt worden op het web zijn:

  • APNG (Animated Portable Network Graphics) — Goede keuze voor verliesvrije animatiesequenties (GIF presteert minder goed)
  • AVIF (AV1 Image File Format) — Goede keuze voor zowel afbeeldingen als geanimeerde afbeeldingen vanwege de hoge prestaties.
  • GIF (Graphics Interchange Format) — Goede keuze voor eenvoudige afbeeldingen en animaties.
  • JPEG (Joint Photographic Expert Group image) — Goede keuze voor lossy-compressie van stilstaande beelden (momenteel het populairst).
  • PNG (Portable Network Graphics) — Goede keuze voor verliesvrije compressie van stilstaande beelden (iets betere kwaliteit dan JPEG).
  • SVG (Scalable Vector Graphics) — Vectorafbeeldingsformaat. Gebruik dit voor afbeeldingen die op verschillende groottes nauwkeurig getekend moeten worden.
  • WebP (Web Picture format) — Uitstekende keuze voor zowel afbeeldingen als geanimeerde afbeeldingen

Formaten zoals WebP en AVIF worden aanbevolen omdat ze veel beter presteren dan PNG, JPEG en GIF, zowel voor stilstaande als geanimeerde afbeeldingen.

SVG blijft het aanbevolen formaat voor afbeeldingen die op verschillende groottes nauwkeurig getekend moeten worden.

Fouten bij het laden van afbeeldingen

Als er een fout optreedt tijdens het laden of weergeven van een afbeelding, en er een onerror-eventhandler is ingesteld voor het error-event, wordt die eventhandler aangeroepen. Dit kan zich in verschillende situaties voordoen, waaronder:

  • De attributen src of srcset zijn leeg ("") of null.
  • De src-URL is dezelfde als de URL van de pagina waarop de gebruiker zich momenteel bevindt.
  • De afbeelding is op een of andere manier beschadigd, waardoor deze niet geladen kan worden.
  • De metadata van de afbeelding is zodanig beschadigd dat het onmogelijk is de afmetingen ervan op te halen, en er zijn geen afmetingen opgegeven in de attributen van het <img>-element.
  • De afbeelding heeft een formaat dat niet wordt ondersteund door de user agent.

Attributen

Dit element bevat de globale attributen.

alt

Definieert tekst die de afbeelding op de pagina kan vervangen.

Opmerking

Browsers geven niet altijd afbeeldingen weer. Er zijn verschillende situaties waarin een browser mogelijk geen afbeeldingen weergeeft, zoals:

  • Niet-visuele browsers (zoals die gebruikt worden door mensen met een visuele beperking)
  • De gebruiker kiest ervoor geen afbeeldingen weer te geven (om bandbreedte te besparen, om privacyredenen)
  • De afbeelding is ongeldig of heeft een niet-ondersteund type

In deze gevallen kan de browser de afbeelding vervangen door de tekst in het alt-attribuut van het element. Geef daarom, en om andere redenen, waar mogelijk een nuttige waarde op voor alt.

Als dit attribuut wordt ingesteld op een lege string (alt=""), geeft dit aan dat deze afbeelding geen essentieel onderdeel van de inhoud is (het is decoratie of een trackingpixel), en dat niet-visuele browsers deze mogen weglaten uit de weergave. Visuele browsers verbergen ook het pictogram voor een gebroken afbeelding als het alt-attribuut leeg is en de afbeelding niet kon worden weergegeven.

Dit attribuut wordt ook gebruikt wanneer de afbeelding wordt gekopieerd en als tekst geplakt, of wanneer een gelinkte afbeelding als bladwijzer wordt opgeslagen.

attributionsrc Verouderd Niet-standaard

Geeft aan dat je wilt dat de browser een Attribution-Reporting-Eligible-header meestuurt met het afbeeldingsverzoek.

Aan de serverzijde wordt dit gebruikt om het verzenden van een Attribution-Reporting-Register-Source- of Attribution-Reporting-Register-Trigger-header in het antwoord te activeren, om respectievelijk een op afbeeldingen gebaseerde attributiebron of attributietrigger te registreren. Welke response-header teruggestuurd moet worden, hangt af van de waarde van de Attribution-Reporting-Eligible-header die de registratie activeerde.

Het bijbehorende bron- of triggerevent wordt geactiveerd zodra de browser het antwoord met het afbeeldingsbestand ontvangt.

Opmerking

Zie de Attribution Reporting API voor meer details.

Er zijn twee versies van dit attribuut die je kunt instellen:

  • Boolean, dat wil zeggen alleen de naam attributionsrc. Dit geeft aan dat je wilt dat de Attribution-Reporting-Eligible-header wordt verzonden naar dezelfde server waar het src-attribuut naar verwijst. Dit is prima wanneer je de registratie van de attributiebron of -trigger op dezelfde server afhandelt. Bij het registreren van een attributietrigger is deze eigenschap optioneel, en wordt een boolean-waarde gebruikt als deze wordt weggelaten.
  • Een waarde die een of meer URL's bevat, bijvoorbeeld:
HTML
<img
  src="image-file.png"
  alt="My image file description"
  attributionsrc="https://a.example/register-source
                     https://b.example/register-source" />

Dit is nuttig in gevallen waarin de opgevraagde bron zich niet op een server bevindt die je beheert, of wanneer je gewoon de registratie van de attributiebron op een andere server wilt afhandelen. In dat geval kun je een of meer URL's opgeven als waarde van attributionsrc. Wanneer het bronverzoek plaatsvindt, wordt de Attribution-Reporting-Eligible-header verzonden naar de URL('s) die zijn opgegeven in attributionSrc, naast de bronoorsprong zelf. Deze URL's kunnen vervolgens naar behoefte reageren met een Attribution-Reporting-Register-Source- of Attribution-Reporting-Register-Trigger-header om de registratie te voltooien.

Opmerking

Het opgeven van meerdere URL's betekent dat er meerdere attributiebronnen voor dezelfde functie geregistreerd kunnen worden. Je zou bijvoorbeeld verschillende campagnes kunnen hebben waarvan je het succes probeert te meten, waarbij verschillende rapporten op basis van verschillende gegevens worden gegenereerd.

crossorigin

Geeft aan of het ophalen van de afbeelding moet gebeuren met een CORS-verzoek. Afbeeldingsdata van een CORS-ingeschakelde afbeelding, teruggegeven door een CORS-verzoek, kan opnieuw gebruikt worden in het <canvas>-element zonder als "besmet" te worden gemarkeerd.

Als het crossorigin-attribuut niet is opgegeven, wordt een niet-CORS-verzoek verzonden (zonder de Origin-requestheader), en markeert de browser de afbeelding als besmet en beperkt de toegang tot de afbeeldingsdata, waardoor gebruik in <canvas>-elementen wordt voorkomen.

Als het crossorigin-attribuut wel is opgegeven, wordt een CORS-verzoek verzonden (met de Origin-requestheader); maar als de server niet toestaat dat de site van herkomst cross-origin toegang krijgt tot de afbeeldingsdata (door geen Access-Control-Allow-Origin-responseheader te sturen, of door de herkomst van de site niet op te nemen in een Access-Control-Allow-Origin-responseheader die wel wordt verstuurd), blokkeert de browser het laden van de afbeelding en registreert een CORS-fout in de devtools-console.

Toegestane waarden:

  • anonymous
    • : Er wordt een CORS-verzoek verzonden zonder credentials (dat wil zeggen zonder cookies, X.509-certificaten of de Authorization-requestheader).
  • use-credentials
    • : Het CORS-verzoek wordt verzonden met eventuele credentials (dat wil zeggen cookies, X.509-certificaten en de Authorization-requestheader). Als de server het delen van credentials met de site van herkomst niet toestaat (door de responseheader Access-Control-Allow-Credentials: true niet terug te sturen), markeert de browser de afbeelding als besmet en beperkt de toegang tot de afbeeldingsdata.

Als het attribuut een ongeldige waarde heeft, behandelen browsers dit alsof de waarde anonymous werd gebruikt. Zie CORS-instellingsattributen voor meer informatie.

decoding

Dit attribuut geeft de browser een hint of hij het decoderen van de afbeelding moet uitvoeren samen met het weergeven van de overige DOM-inhoud, in één presentatiestap die er "correcter" uitziet (sync), of dat hij eerst de overige DOM-inhoud rendert en presenteert en de afbeelding pas later decodeert en toont (async). In de praktijk betekent async dat de volgende paint niet wacht tot de afbeelding is gedecodeerd.

Het is vaak lastig om een merkbaar effect waar te nemen bij het gebruik van decoding op statische <img>-elementen. Ze worden waarschijnlijk aanvankelijk weergegeven als lege afbeeldingen terwijl de afbeeldingsbestanden worden opgehaald (hetzij van het netwerk, hetzij uit de cache), en vervolgens toch onafhankelijk afgehandeld, waardoor de "synchronisatie" van inhoudsupdates minder merkbaar is. Toch kan het blokkeren van rendering tijdens het decoderen, hoewel vaak vrij klein, worden gemeten — zelfs als het moeilijk is om met het blote oog waar te nemen. Zie What does the image decoding attribute actually do? voor een gedetailleerdere analyse (tunetheweb.com, 2023).

Het gebruik van verschillende decoding-typen kan resulteren in meer merkbare verschillen bij het dynamisch invoegen van <img>-elementen in de DOM via JavaScript — zie HTMLImageElement.decoding voor meer details.

Toegestane waarden:

  • sync
    • : Decodeer de afbeelding synchroon samen met het weergeven van de overige DOM-inhoud, en presenteer alles samen.
  • async
    • : Decodeer de afbeelding asynchroon, na het weergeven en presenteren van de overige DOM-inhoud.
  • auto
    • : Geen voorkeur voor de decodeermodus; de browser bepaalt wat het beste is voor de gebruiker. Dit is de standaardwaarde.

elementtiming

Markeert de afbeelding voor observatie door de PerformanceElementTiming-API. De opgegeven waarde wordt een identificatie voor het geobserveerde afbeeldingselement. Zie ook de elementtiming-attribuutpagina.

fetchpriority

Geeft een hint over de relatieve prioriteit die gebruikt moet worden bij het ophalen van de afbeelding. Toegestane waarden:
  • high
    • : Haal de afbeelding op met een hoge prioriteit ten opzichte van andere afbeeldingen.
  • low
    • : Haal de afbeelding op met een lage prioriteit ten opzichte van andere afbeeldingen.
  • auto
    • : Stel geen voorkeur in voor de ophaalprioriteit. Dit is de standaardwaarde. Deze wordt gebruikt als er geen waarde of een ongeldige waarde is ingesteld.

height

De intrinsieke hoogte van de afbeelding, in pixels. Moet een geheel getal zijn zonder eenheid.

Opmerking

Door height en width op te nemen, kan de browser de aspect ratio van de afbeelding berekenen voordat deze geladen is. Deze verhouding wordt gebruikt om de benodigde ruimte voor het weergeven van de afbeelding te reserveren, waardoor een verschuiving in de pagina-indeling wordt verminderd of zelfs voorkomen wanneer de afbeelding wordt gedownload en op het scherm getekend. Het verminderen van dergelijke verschuivingen is een belangrijk onderdeel van een goede gebruikerservaring en webprestaties.

ismap

Dit boolean-attribuut geeft aan dat de afbeelding deel uitmaakt van een server-side map. Als dit het geval is, worden de coördinaten waarop de gebruiker op de afbeelding klikte naar de server verzonden.

Opmerking

Dit attribuut is alleen toegestaan als het <img>-element een afstammeling is van een <a>-element met een geldig href-attribuut. Dit biedt gebruikers zonder aanwijsapparaat een alternatieve bestemming.

loading

Geeft aan hoe de browser de afbeelding moet laden:
  • eager
    • : Laadt de afbeelding onmiddellijk, ongeacht of de afbeelding zich momenteel binnen de visual viewport bevindt (dit is de standaardwaarde).
  • lazy
    • : Stelt het laden van de afbeelding uit totdat deze een door de browser berekende afstand tot de viewport bereikt.

      Lazy loading vermijdt de netwerk- en opslagbandbreedte die nodig is om de afbeelding te verwerken totdat het redelijk zeker is dat deze nodig zal zijn. Dit verbetert de prestaties in de meeste gangbare gebruikssituaties.

      Hoewel expliciete width- en height-attributen voor alle afbeeldingen worden aanbevolen om verschuivingen in de pagina-indeling te voorkomen, zijn ze vooral belangrijk voor lazy-loaded afbeeldingen. Lazy-loaded afbeeldingen worden nooit geladen als ze geen zichtbaar deel van een element overlappen, zelfs niet als het laden ervan dat zou veranderen, omdat niet-geladen afbeeldingen een width en height van 0 hebben. Dit zorgt voor een nog storendere gebruikerservaring wanneer de zichtbare inhoud in de viewport herschikt terwijl deze gelezen wordt.

      Lazy-loaded afbeeldingen die zich in de visuele viewport bevinden, zijn mogelijk nog niet zichtbaar wanneer het load-event van het Window-object wordt geactiveerd. Dit komt doordat het event wordt geactiveerd op basis van eager-loaded afbeeldingen — lazy-loaded afbeeldingen worden niet meegeteld, zelfs niet als ze zich bij het initieel laden van de pagina binnen de visuele viewport bevinden.

      Het laden wordt alleen uitgesteld wanneer JavaScript is ingeschakeld. Dit is een anti-trackingmaatregel, omdat als een user agent lazy loading zou ondersteunen wanneer scripting is uitgeschakeld, het nog steeds mogelijk zou zijn voor een site om de ongeveer scrollpositie van een gebruiker gedurende een sessie te volgen, door afbeeldingen strategisch in de markup van een pagina te plaatsen, zodat een server kan bijhouden hoeveel afbeeldingen worden opgevraagd en wanneer.

referrerpolicy

Een string die aangeeft welke referrer gebruikt moet worden bij het ophalen van de bron:
  • no-referrer: De Referer-header wordt niet verzonden.
  • no-referrer-when-downgrade: De Referer-header wordt niet verzonden naar origins zonder TLS (HTTPS).
  • origin: De verzonden referrer wordt beperkt tot de oorsprong van de verwijzende pagina: het schema, de host en de port.
  • origin-when-cross-origin: De referrer die naar andere oorsprongen wordt verzonden, wordt beperkt tot het schema, de host en de poort. Navigaties binnen dezelfde oorsprong bevatten nog steeds het pad.
  • same-origin: Er wordt een referrer verzonden voor dezelfde oorsprong, maar cross-origin-verzoeken bevatten geen referrer-informatie.
  • strict-origin: Verzend alleen de oorsprong van het document als referrer wanneer het beveiligingsniveau van het protocol gelijk blijft (HTTPS→HTTPS), maar verzend deze niet naar een minder veilige bestemming (HTTPS→HTTP).
  • strict-origin-when-cross-origin (standaard): Verzend een volledige URL bij een verzoek binnen dezelfde oorsprong, verzend alleen de oorsprong wanneer het beveiligingsniveau van het protocol gelijk blijft (HTTPS→HTTPS), en verzend geen header naar een minder veilige bestemming (HTTPS→HTTP).
  • unsafe-url: De referrer bevat de oorsprong en het pad (maar niet het fragment, wachtwoord of gebruikersnaam). Deze waarde is onveilig, omdat deze oorsprongen en paden van door TLS beschermde bronnen lekt naar onveilige oorsprongen.

sizes

Een of meer waarden gescheiden door komma's, die bronformaten (source sizes) of het sleutelwoord auto kunnen zijn. De specificatie vereist dat het sizes-attribuut alleen aanwezig is wanneer srcset breedtedescriptoren gebruikt.
  • bronformaat (source size)

    • : Een bronformaat bestaat uit:

      1. Een media-conditie, weggelaten voor het laatste item in de lijst.
      2. Een bronformaatwaarde.

      Het volgende bronformaat stelt bijvoorbeeld voor een 1000px brede afbeeldingsbron te gebruiken als de breedte van de viewport 500px of minder is.

      CSS
      (width <= 500px) 1000px

      Media-condities beschrijven eigenschappen van de viewport, niet van de afbeelding. Omdat een bronformaatdescriptor de breedte specificeert die tijdens de layout voor de afbeelding gebruikt moet worden, is de media-conditie doorgaans (maar niet noodzakelijk) gebaseerd op @media/width.

      Bronformaatwaarden specificeren de beoogde weergavegrootte van de afbeelding. User agents gebruiken het huidige bronformaat om een van de bronnen te selecteren die door het srcset-attribuut worden opgegeven, wanneer die bronnen beschreven zijn met breedtedescriptoren (w). De w-waarde die in sizes is gedefinieerd, bepaalt de standaard layoutbreedte van de afbeelding. Bij afwezigheid van CSS rendert de browser de afbeelding op deze grootte, ongeacht de fysieke pixelafmetingen van het gedownloade bestand.

      Een bronformaatwaarde kan elke niet-negatieve lengte zijn. Er mogen geen CSS-functies gebruikt worden anders dan de wiskundige functies. Eenheden worden op dezelfde manier geïnterpreteerd als bij media queries, wat betekent dat alle relatieve lengte-eenheden relatief zijn aan de document-root en niet aan het <img>-element. Een em-waarde is bijvoorbeeld relatief aan de root-lettergrootte, niet aan de lettergrootte van de afbeelding. Percentage-waarden zijn niet toegestaan. Als het sizes-attribuut niet is opgegeven, heeft het een standaardwaarde van 100vw (de breedte van de viewport).

  • auto

    • : Het sleutelwoord auto geeft aan dat de browser de verwachte layoutbreedte van het element moet gebruiken om te bepalen welke afbeelding weergegeven wordt. Dat wil zeggen, hij moet de concrete grootte van de afbeelding gebruiken, berekend na toepassing van de layout op basis van HTML en CSS. Dit is alleen geldig in combinatie met loading="lazy", omdat verwacht wordt dat de pagina op het moment dat de afbeelding wordt geladen al beschikt over CSS en andere layoutinformatie.

      Door auto te gebruiken, hoef je je layout-media-condities niet twee keer op te geven: één keer voor de layout en één keer voor het selecteren van een geschikte afbeelding om op te halen en weer te geven.

      Als auto niet kan worden opgelost — hetzij omdat de browser het niet ondersteunt, hetzij omdat de afbeelding nog geen layoutgrootte heeft — valt de browser terug op de bronformaten in de lijst om de breedte te bepalen, vervolgens op de width/height-attributen die op het element zijn gedefinieerd, en ten slotte op de standaard intrinsieke grootte voor <img>-elementen die is gedefinieerd in het stylesheet van de user agent (300px bij 150px).

      Voor betere achterwaartse compatibiliteit met browsers die auto niet ondersteunen, kun je terugvalformaten na auto in het sizes-attribuut opnemen. Je zou ook de width- en height-attributen van het element moeten instellen op de intrinsieke afmetingen van de grootste afbeelding in je srcset, zodat de browser ruimte kan reserveren met de juiste beeldverhouding:

      HTML
      <img
        loading="lazy"
        width="200"
        height="200"
        sizes="auto, (max-width: 30em) 100vw, (max-width: 50em) 50vw, calc(33vw - 100px)"
        srcset="
          swing-200.jpg   200w,
          swing-400.jpg   400w,
          swing-800.jpg   800w,
          swing-1600.jpg 1600w
        "
        src="swing-400.jpg"
        alt="Kettlebell Swing" />

src

De URL van de afbeelding. Voor een <img>-element is ten minste een van src en srcset vereist. Als srcset is opgegeven, wordt src op een van twee manieren gebruikt:
  • als terugval voor browsers die srcset niet ondersteunen.
  • als srcset de "x"-descriptor gebruikt, dan is src gelijkwaardig aan een bron met de dichtheidsdescriptor 1x; dat wil zeggen, de door src opgegeven afbeelding wordt gebruikt op schermen met een lage pixeldichtheid (zoals gebruikelijke 72 DPI- of 96 DPI-schermen).

srcset

Een of meer door komma's gescheiden strings, die mogelijke afbeeldingsbronnen aangeven die de user agent kan gebruiken.

Elke string bestaat uit:

  1. Een URL naar een afbeelding
  2. Optioneel, witruimte gevolgd door een van de volgende:
    • Een breedtedescriptor (een positief geheel getal direct gevolgd door w). Deze moet overeenkomen met de intrinsieke breedte van de gerefereerde afbeelding. De breedtedescriptor wordt gedeeld door het bronformaat dat is opgegeven in het sizes-attribuut om de effectieve pixeldichtheid te berekenen. Gebruik bijvoorbeeld de breedtedescriptor 450w om een afbeeldingsbron op te geven die gebruikt moet worden wanneer de renderer een 450 pixel brede afbeelding nodig heeft. Wanneer een srcset "w"-descriptoren bevat, gebruikt de browser die descriptoren samen met het sizes-attribuut om een bron te kiezen.
    • Een pixeldichtheidsdescriptor (een positief drijvendekommagetal direct gevolgd door x). Deze specificeert de voorwaarde waaronder de bijbehorende afbeeldingsbron gebruikt moet worden als de pixeldichtheid van het scherm. Gebruik bijvoorbeeld de pixeldichtheidsdescriptor 2x of 2.0x om een afbeeldingsbron op te geven die gebruikt moet worden wanneer de pixeldichtheid dubbel de standaarddichtheid is.

Als er geen descriptor is opgegeven, krijgt de bron de standaarddescriptor 1x. Het is onjuist om breedtedescriptoren en pixeldichtheidsdescriptoren te mengen in hetzelfde srcset-attribuut. Dubbele descriptoren (bijvoorbeeld twee bronnen in dezelfde srcset die beide met 2x zijn beschreven) zijn ook ongeldig.

Spatietekens, anders dan de witruimte die de URL van de bijbehorende conditiedescriptor scheidt, worden genegeerd; dit geldt zowel voor voorloop- als volgspaties, als voor spaties vóór of na elke komma. Als een afbeeldingskandidaat-string echter geen descriptoren en geen witruimte na de URL bevat, moet de volgende afbeeldingskandidaat-string, indien aanwezig, beginnen met een of meer witruimtetekens, anders wordt de komma als onderdeel van de URL beschouwd.

Wanneer de srcset van het <img>-element x-descriptoren gebruikt, beschouwen browsers ook de URL in het src-attribuut (indien aanwezig) als een kandidaat, en kennen deze de standaarddescriptor 1x toe. Als het srcset-attribuut daarentegen breedtedescriptoren gebruikt, wordt src niet meegenomen en wordt in plaats daarvan het sizes-attribuut gebruikt.

De user agent kiest naar eigen goeddunken een van de beschikbare bronnen. Dit geeft hen aanzienlijke vrijheid om hun selectie af te stemmen op zaken zoals gebruikersvoorkeuren of bandbreedte-omstandigheden. Zie onze tutorial Responsieve afbeeldingen voor een voorbeeld.

width

De intrinsieke breedte van de afbeelding in pixels. Moet een geheel getal zijn zonder eenheid.

usemap

De gedeeltelijke URL (beginnend met #) van een afbeeldingskaart die aan het element gekoppeld is.

Opmerking

Je kunt dit attribuut niet gebruiken als het <img>-element zich binnen een <a>- of <button>-element bevindt.

Verouderde attributen

align Verouderd

Lijnt de afbeelding uit met de omringende context. Gebruik in plaats van dit attribuut de CSS-eigenschappen float en/of vertical-align. Toegestane waarden:
  • top
    • : Gelijkwaardig aan vertical-align: top of vertical-align: text-top
  • middle
    • : Gelijkwaardig aan vertical-align: -moz-middle-with-baseline
  • bottom
    • : De standaardwaarde, gelijkwaardig aan vertical-align: unset of vertical-align: initial
  • left
    • : Gelijkwaardig aan float: left
  • right
    • : Gelijkwaardig aan float: right

border Verouderd

De breedte van een rand rondom de afbeelding. Gebruik in plaats hiervan de CSS-eigenschap border.

hspace Verouderd

Het aantal pixels witruimte links en rechts van de afbeelding. Gebruik in plaats hiervan de CSS-eigenschap margin.

longdesc Verouderd

Een link naar een meer gedetailleerde beschrijving van de afbeelding. Mogelijke waarden zijn een URL of een element-id.

Opmerking

Dit attribuut wordt als verouderd beschouwd in de HTML-specificatie. De toekomst ervan is onzeker; auteurs zouden een WAI-ARIA-alternatief moeten gebruiken, zoals aria-describedby of aria-details.

name Verouderd

Een naam voor het element. Gebruik in plaats hiervan het id-attribuut.

vspace Verouderd

Het aantal pixels witruimte boven en onder de afbeelding. Gebruik in plaats hiervan de CSS-eigenschap margin.

Stylen met CSS

<img> is een replaced element; het heeft standaard een display-waarde van inline, maar de standaardafmetingen worden bepaald door de intrinsieke waarden van de ingesloten afbeelding, alsof het inline-block was. Je kunt eigenschappen zoals border/border-radius, padding/margin, width, height, enz. op een afbeelding instellen.

<img> heeft geen baseline, dus wanneer afbeeldingen worden gebruikt in een inline-formatteringscontext met vertical-align: baseline, wordt de onderkant van de afbeelding op de tekstbaseline geplaatst.

Je kunt de eigenschap object-position gebruiken om de afbeelding binnen het vak van het element te positioneren, en de eigenschap object-fit om de grootte van de afbeelding binnen het vak aan te passen (bijvoorbeeld of de afbeelding in het vak moet passen of het moet vullen, ook als bijsnijden nodig is).

Afhankelijk van het type kan een afbeelding een intrinsieke breedte en hoogte hebben. Voor sommige afbeeldingstypen zijn intrinsieke afmetingen echter niet nodig. SVG-afbeeldingen hebben bijvoorbeeld geen intrinsieke afmetingen als hun root-<svg>-element geen width of height heeft ingesteld.

Toegankelijkheid

Betekenisvolle alternatieve beschrijvingen schrijven

De waarde van een alt-attribuut moet een duidelijke en beknopte tekstuele vervanging bieden voor de inhoud van de afbeelding. Het mag niet de aanwezigheid van de afbeelding zelf of de bestandsnaam van de afbeelding beschrijven. Als het alt-attribuut bewust wordt weggelaten omdat de afbeelding geen tekstueel equivalent heeft, overweeg dan alternatieve manieren om weer te geven wat de afbeelding probeert over te brengen.

Niet doen

HTML
<img alt="image" src="penguin.jpg" />

Wel doen

HTML
<img alt="A Penguin on a beach." src="penguin.jpg" />

Een belangrijke toegankelijkheidstest is om de inhoud van het alt-attribuut samen met de voorafgaande tekstuele inhoud te lezen om te zien of het dezelfde betekenis overbrengt als de afbeelding. Als de afbeelding bijvoorbeeld werd voorafgegaan door de zin "Tijdens mijn reizen zag ik een schattig klein dier:", zou het Niet doen-voorbeeld door een schermlezer kunnen worden voorgelezen als "Tijdens mijn reizen zag ik een schattig klein dier: afbeelding", wat geen zin heeft. Het Wel doen-voorbeeld zou door een schermlezer kunnen worden voorgelezen als "Tijdens mijn reizen zag ik een schattig klein dier: Een pinguïn op een strand.", wat wel zin heeft.

Overweeg voor afbeeldingen die gebruikt worden om een actie te activeren, bijvoorbeeld afbeeldingen genest binnen een <a>- of <button>-element, om de geactiveerde actie te beschrijven in de waarde van het alt-attribuut. Je zou bijvoorbeeld alt="volgende pagina" kunnen schrijven in plaats van alt="pijl rechts". Je zou ook kunnen overwegen een optionele verdere beschrijving toe te voegen in een title-attribuut; dit kan worden voorgelezen door schermlezers als de gebruiker daarom vraagt.

Wanneer een alt-attribuut niet aanwezig is op een afbeelding, kunnen sommige schermlezers in plaats daarvan de bestandsnaam van de afbeelding aankondigen. Dit kan verwarrend zijn als de bestandsnaam niet representatief is voor de inhoud van de afbeelding.

SVG identificeren als afbeelding

Vanwege een VoiceOver-bug kondigt VoiceOver SVG-afbeeldingen niet correct aan als afbeeldingen. Voeg role="img" toe aan alle <img>-elementen met SVG-bronbestanden, om ervoor te zorgen dat ondersteunende technologieën de SVG correct aankondigen als afbeeldingsinhoud.

HTML
<img src="logo.svg" alt="Voorbeeldlogo" role="img" />

Het title-attribuut

Het title-attribuut is geen acceptabele vervanging voor het alt-attribuut. Vermijd bovendien het dupliceren van de waarde van het alt-attribuut in een title-attribuut dat op dezelfde afbeelding is gedeclareerd. Dit kan ertoe leiden dat sommige schermlezers dezelfde tekst twee keer aankondigen, wat een verwarrende ervaring oplevert.

Het title-attribuut mag ook niet worden gebruikt als aanvullende bijschriftinformatie bij de alt-beschrijving van een afbeelding. Als een afbeelding een bijschrift nodig heeft, gebruik dan de elementen figure en figcaption.

De waarde van het title-attribuut wordt gewoonlijk aan de gebruiker getoond als een tooltip, die kort verschijnt nadat de cursor is gestopt met bewegen boven de afbeelding. Hoewel dit de gebruiker extra informatie kan bieden, moet je er niet van uitgaan dat de gebruiker dit ooit zal zien: de gebruiker heeft mogelijk alleen een toetsenbord of touchscreen. Als je informatie hebt die bijzonder belangrijk of waardevol is voor de gebruiker, presenteer deze dan inline met een van de hierboven genoemde methoden in plaats van title te gebruiken.

Voorbeelden

Alternatieve tekst

Het volgende voorbeeld sluit een afbeelding in op de pagina en bevat alternatieve tekst voor toegankelijkheid.

HTML
<img src="/shared-assets/images/examples/favicon144.png" alt="Voorbeeldlogo" />
Resultaat in de browser

Afbeeldingslink

Dit voorbeeld bouwt voort op het vorige en laat zien hoe je de afbeelding in een link kunt veranderen. Nest hiervoor de <img>-tag binnen het <a>-element. Zorg ervoor dat de alternatieve tekst de bron beschrijft waar de link naartoe verwijst, alsof je in plaats daarvan een tekstlink zou gebruiken.

HTML
<a href="https://voorbeeld.nl">
  <img
    src="/shared-assets/images/examples/favicon144.png"
    alt="Naar de voorbeeldsite" />
</a>
Resultaat in de browser

Het srcset-attribuut gebruiken

In dit voorbeeld nemen we een srcset-attribuut op met een verwijzing naar een hoge-resolutieversie van het logo; deze wordt in plaats van de src-afbeelding geladen op apparaten met een hoge resolutie. De afbeelding waarnaar in het src-attribuut wordt verwezen, telt als een 1x-kandidaat in user agents die srcset ondersteunen.

HTML
<img
  src="/shared-assets/images/examples/favicon72.png"
  alt="Voorbeeldlogo"
  srcset="/shared-assets/images/examples/favicon144.png 2x" />
Resultaat in de browser

De attributen srcset en sizes gebruiken

Het src-attribuut wordt genegeerd in user agents die srcset ondersteunen wanneer w-descriptoren zijn opgenomen. Wanneer de media-conditie (width <= 600px) overeenkomt, wordt de 200 pixel brede afbeelding geladen (dit is degene die het dichtst bij 200px in de buurt komt), anders wordt de andere afbeelding geladen.

HTML
<img
  src="clock-demo-200px.png"
  alt="The time is 12:45."
  srcset="clock-demo-200px.png 200w, clock-demo-400px.png 400w"
  sizes="(width <= 600px) 200px, 50vw" />
Resultaat in de browser
Opmerking

Om het herschalen in actie te zien, , zodat je het inhoudsgebied daadwerkelijk kunt vergroten of verkleinen.

Beveiligings- en privacyoverwegingen

Hoewel <img>-elementen onschuldig gebruikt kunnen worden, kunnen ze ongewenste gevolgen hebben voor de beveiliging en privacy van gebruikers. Zie Referer header: privacy and security concerns voor meer informatie en manieren om dit te beperken.

Technische samenvatting

Inhoudscategorieën Flow content, phrasing content, embedded content, palpable content. Als het element een usemap-attribuut heeft, maakt het ook deel uit van de categorie interactieve inhoud.
Toegestane inhoud Geen; het is een void element.
Weglaten van tags Moet een begintag hebben en mag geen eindtag hebben.
Toegestane ouders Elk element dat embedded content accepteert.
Impliciete ARIA-rol
  • met niet-leeg alt-attribuut of zonder alt-attribuut: img
  • met leeg alt-attribuut: presentation
Toegestane ARIA-rollen
  • met niet-leeg alt-attribuut:
    • button
    • checkbox
    • switch
    • tab
  • met leeg alt-attribuut, none of presentation
  • zonder alt-attribuut, geen role toegestaan
DOM-interface HTMLImageElement

Zie ook

Verwante elementen