Proper Access Academy

Overige semantische elementen

HTML biedt elementen voor citaten, afkortingen, tijdstippen en meer. Gebruik ze waar ze van toepassing zijn.

Meer dan koppen en lijsten

HTML biedt tientallen semantische elementen die verder gaan dan koppen, lijsten en landmarks. Elementen voor citaten, afkortingen, tijdstippen, nadruk en meer. Ze voegen betekenis toe die CSS niet kan geven.

WCAG succescriterium 1.3.1 (Informatie en relaties) vraagt dat informatie die visueel wordt overgebracht ook programmatisch bepaalbaar is. Als je tekst visueel markeert als citaat, afkorting of nadruk, dan moet die betekenis ook in de code zitten.

In dit hoofdstuk behandelen we de semantische elementen die je in de vorige hoofdstukken nog niet bent tegengekomen.

Citaten: blockquote en q

Gebruik <blockquote> voor blok-citaten en <q> voor inline citaten. Het cite-attribuut kan de bron vermelden.

Voorbeeld: een citaat

Fout

<p class="quote">
  "Het web is fundamenteel ontworpen om voor iedereen te werken."
</p>
<p class="quote-author">— Tim Berners-Lee</p>

Visueel een citaat, maar voor hulpsoftware zijn het gewone alinea’s.

Goed

<blockquote cite="https://www.w3.org/Press/IPO-announce">
  <p>Het web is fundamenteel ontworpen om voor iedereen te werken.</p>
</blockquote>
<p>— Tim Berners-Lee</p>

Een schermlezer herkent het als citaat. Het cite-attribuut is niet zichtbaar maar geeft de bron aan.

Voor korte citaten binnen een lopende tekst gebruik je <q>:

<p>Tim Berners-Lee zei: <q>Het web is fundamenteel ontworpen om
voor iedereen te werken.</q></p>

De browser voegt automatisch aanhalingstekens toe in de juiste taal.

Afkortingen: abbr

Het <abbr>-element markeert een afkorting. Met het title-attribuut geef je de volledige schrijfwijze.

Voorbeeld: afkorting

Fout

<p>De website voldoet aan WCAG 2.2 niveau AA.</p>

Niet iedereen weet wat WCAG betekent. Er is geen programmatische uitleg beschikbaar.

Goed

<p>De website voldoet aan
<abbr title="Web Content Accessibility Guidelines">WCAG</abbr>
2.2 niveau AA.</p>

Bij hover of focus verschijnt de volledige naam. Schermlezers kunnen de uitgeschreven versie voorlezen (afhankelijk van instellingen).

Eerste keer voluit

Een goed alternatief voor <abbr> is de afkorting de eerste keer voluit schrijven: “Web Content Accessibility Guidelines (WCAG)”. Daarna kun je de afkorting zonder uitleg gebruiken. In combinatie met <abbr> bied je maximale duidelijkheid.

Tijd: time

Het <time>-element markeert datums en tijdstippen. Het datetime-attribuut bevat de machine-leesbare versie.

<p>Gepubliceerd op <time datetime="2026-03-20">20 maart 2026</time>.</p>

<p>De workshop begint om <time datetime="14:00">14:00 uur</time>.</p>

<p>De audit duurt <time datetime="P5D">vijf werkdagen</time>.</p>

Dit helpt zoekmachines en hulpsoftware om datums en tijden correct te interpreteren, ongeacht hoe je ze visueel weergeeft.

Nadruk: em en strong

<em> geeft nadruk (emphasis) aan – het verandert de betekenis van een zin. <strong> markeert belang (importance). Beide zijn semantisch, in tegenstelling tot CSS-styling.

Voorbeeld: nadruk vs. styling

Fout

<p>Je moet <span style="font-weight: bold;">altijd</span> een
alt-tekst toevoegen.</p>

Visueel vet, maar hulpsoftware weet niet dat “altijd” benadrukt is.

Goed

<p>Je moet <strong>altijd</strong> een alt-tekst toevoegen.</p>

Een schermlezer kan de nadruk overbrengen (afhankelijk van de instellingen).

Het verschil tussen <em> en <strong>:

ElementBetekenisVoorbeeld
<em>Klemtoon – verandert hoe je de zin leest“Ik zei dat jij het moest doen” (niet iemand anders)
<strong>Belang – dit is belangrijkLet op: dit veld is verplicht”

Markering: mark

Het <mark>-element markeert tekst die relevant is in de huidige context, zoals zoekresultaten of gemarkeerde passages.

<p>Je zoekopdracht <mark>toegankelijkheid</mark> leverde
12 resultaten op.</p>

Schermlezers melden standaard niet dat tekst gemarkeerd is. Voeg eventueel een visueel verborgen tekst toe als de markering betekenisvol is:

<p>Je zoekopdracht
<mark><span class="sr-only">gemarkeerd: </span>toegankelijkheid</mark>
leverde 12 resultaten op.</p>

Wijzigingen: del en ins

<del> markeert verwijderde tekst, <ins> markeert toegevoegde tekst. Gebruik het datetime-attribuut om aan te geven wanneer de wijziging plaatsvond.

<p>De prijs is <del datetime="2026-03-01">€ 49</del>
<ins datetime="2026-03-15">€ 39</ins> per maand.</p>

Doorgestreepte prijzen

Schermlezers geven <del> en <ins> niet altijd door. Bij doorgestreepte prijzen in een webshop is het verstandig om de context ook in tekst te verduidelijken, bijvoorbeeld: “Oude prijs: 49 euro. Nieuwe prijs: 39 euro.” Of gebruik aria-label op een omvattend element.

Technische content: code, pre en kbd

ElementGebruik
<code>Inline codefragmenten
<pre>Voorgeformatteerde tekst (witruimte behouden)
<kbd>Toetsenbordinvoer
<p>Gebruik <code>alt=""</code> voor decoratieve afbeeldingen.</p>

<p>Druk op <kbd>Tab</kbd> om naar het volgende element te gaan.</p>

<pre><code>&lt;img src="foto.jpg" alt="Beschrijving van de foto" /&gt;</code></pre>

Afbeeldingen met bijschrift: figure en figcaption

<figure> groepeert een afbeelding (of ander zelfstandig element) met een bijschrift. <figcaption> bevat het bijschrift.

Voorbeeld: afbeelding met bijschrift

Fout

<img src="grafiek.png" alt="Grafiek met resultaten" />
<p class="caption">Figuur 1: Auditresultaten per kwartaal</p>

De afbeelding en het bijschrift zijn niet programmatisch gekoppeld. Een schermlezer weet niet dat de tekst bij de afbeelding hoort.

Goed

<figure>
  <img src="grafiek.png" alt="Staafgrafiek met auditresultaten.
    Q1: 12 audits, Q2: 18 audits, Q3: 15 audits, Q4: 22 audits." />
  <figcaption>Figuur 1: Auditresultaten per kwartaal</figcaption>
</figure>

De <figure> groepeert de afbeelding en het bijschrift. De alt-tekst beschrijft de data; het bijschrift geeft context.

Uitklapbare content: details en summary

Het <details>-element maakt content uitklapbaar zonder JavaScript. <summary> is de zichtbare kop.

<details>
  <summary>Wat kost een toegankelijkheidsaudit?</summary>
  <p>De kosten hangen af van de complexiteit van de website.
  Een gemiddelde audit kost vanaf ca. 2.100 euro.</p>
</details>

Dit element is standaard toegankelijk: het is focusbaar, activeerbaar met Enter en spatie, en de status (open/dicht) wordt doorgegeven aan hulpsoftware.

details vs. custom accordions

Een <details>/<summary>-element is standaard toegankelijk. Een custom accordion met divs en JavaScript moet je zelf toegankelijk maken met role, aria-expanded, toetsenbordafhandeling en focusbeheer. Gebruik <details> als het kan.

Adres: address

Het <address>-element markeert contactinformatie voor de auteur of eigenaar van het document (of een <article>).

<address>
  <p>Proper Access</p>
  <p>Telefoon: <a href="tel:+31855055890">085 5055 890</a></p>
  <p>E-mail: <a href="mailto:[email protected]">[email protected]</a></p>
</address>

Gebruik <address> niet voor willekeurige adressen in de content – alleen voor contactinformatie van de auteur of organisatie.

WCAG-succescriteria

SuccescriteriumNiveauToelichting
1.3.1 Informatie en relatiesAAlle visuele structuur en betekenis moet programmatisch bepaalbaar zijn
1.3.2 Betekenisvolle volgordeADe volgorde van content (bijvoorbeeld figure met figcaption) moet logisch zijn

Quiz

Vraag 1. Een webshop toont een doorgestreepte prijs en een nieuwe prijs. De code is: <span class="old-price">€ 49</span> <span class="new-price">€ 39</span>. Wat ontbreekt er?
Vraag 2. Wat is het verschil tussen <em> en <strong>?
Vraag 3. Een afbeelding heeft een bijschrift eronder. In de code staan ze als losse elementen: een <img> en een <p>. Wat is het probleem?
Vraag 4. Waarom heeft <details>/<summary> een voordeel boven een custom accordion met divs en JavaScript?
Vraag 5. De afkorting "EAA" staat op meerdere plekken op een pagina. Hoe maak je de betekenis duidelijk?