Ondersteunde afbeeldingsformaten
De HTML-standaard vermeldt niet welke afbeeldingsformaten ondersteund moeten worden, dus user agents kunnen verschillende formaten ondersteunen.
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
srcofsrcsetzijn leeg ("") ofnull. - 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.
|
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:
In deze gevallen kan de browser de afbeelding vervangen door de tekst in het Als dit attribuut wordt ingesteld op een lege string ( Dit attribuut wordt ook gebruikt wanneer de afbeelding wordt gekopieerd en als tekst geplakt, of wanneer een gelinkte afbeelding als bladwijzer wordt opgeslagen. | |
|
Geeft aan dat je wilt dat de browser een Aan de serverzijde wordt dit gebruikt om het verzenden van een 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:
HTML 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 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. |
|
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 Als het Als het Toegestane waarden:
Als het attribuut een ongeldige waarde heeft, behandelen browsers dit alsof de waarde | |
|
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 ( Het is vaak lastig om een merkbaar effect waar te nemen bij het gebruik van Het gebruik van verschillende Toegestane waarden:
| |
Markeert de afbeelding voor observatie door de PerformanceElementTiming-API. De opgegeven waarde wordt een identificatie voor het geobserveerde afbeeldingselement. Zie ook de elementtiming-attribuutpagina. | |
Geeft een hint over de relatieve prioriteit die gebruikt moet worden bij het ophalen van de afbeelding. Toegestane waarden:
| |
|
De intrinsieke hoogte van de afbeelding, in pixels. Moet een geheel getal zijn zonder eenheid. Opmerking
Door | |
|
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. | |
Geeft aan hoe de browser de afbeelding moet laden:
| |
Een string die aangeeft welke referrer gebruikt moet worden bij het ophalen van de bron:
| |
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.
| |
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:
| |
|
Een of meer door komma's gescheiden strings, die mogelijke afbeeldingsbronnen aangeven die de user agent kan gebruiken. Elke string bestaat uit:
Als er geen descriptor is opgegeven, krijgt de bron de standaarddescriptor 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 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. | |
| De intrinsieke breedte van de afbeelding in pixels. Moet een geheel getal zijn zonder eenheid. | |
|
De gedeeltelijke URL (beginnend met |
Verouderde attributen
| Lijnt de afbeelding uit met de omringende context. Gebruik in plaats van dit attribuut de CSS-eigenschappen float en/of vertical-align. Toegestane waarden:
|
|---|---|
| De breedte van een rand rondom de afbeelding. Gebruik in plaats hiervan de CSS-eigenschap border. |
| Het aantal pixels witruimte links en rechts van de afbeelding. Gebruik in plaats hiervan de CSS-eigenschap margin. |
|
Een link naar een meer gedetailleerde beschrijving van de afbeelding. Mogelijke waarden zijn een URL of een element- 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 |
| Een naam voor het element. Gebruik in plaats hiervan het id-attribuut. |
| 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
<img alt="image" src="penguin.jpg" />Wel doen
<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.
<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.
<img src="/shared-assets/images/examples/favicon144.png" alt="Voorbeeldlogo" />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.
<a href="https://voorbeeld.nl">
<img
src="/shared-assets/images/examples/favicon144.png"
alt="Naar de voorbeeldsite" />
</a>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.
<img
src="/shared-assets/images/examples/favicon72.png"
alt="Voorbeeldlogo"
srcset="/shared-assets/images/examples/favicon144.png 2x" />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.
<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" />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 |
|
| Toegestane ARIA-rollen |
|
| DOM-interface | HTMLImageElement |