link
Markeert een element als hyperlink — een element dat bij activering naar een nieuwe bron navigeert. Gebruik bij voorkeur het native HTML-element <a href>; gebruik role="link" op een <span> of <div> alleen wanneer het native element absoluut niet mogelijk is.
Wanneer te gebruiken
Vrijwel nooit — gebruik <a href="...">. Het native ankerelement geeft focus, toetsenbordactivering via Enter, de bezochte toestand, rechtsklikken voor openen in nieuw tabblad, slepen naar bladwijzer en een echte URL die de gebruiker kan delen. role="link" op een <div> gooit dit allemaal weg.
De enige legitieme gevallen:
- Een ontwerpsysteem van derden levert een niet-anker-”koppeling”-component die niet kan worden vervangen.
- Een ontoegankelijke
<div onclick>wordt tijdelijk gepatcht terwijl een refactoring wordt uitgevoerd.
Bij gebruik van role="link" moet ook:
- Het element focusbaar worden gemaakt met
tabindex="0". keydownvoorEnterworden gekoppeld (koppelingen activeren NIET op Spatiebalk — dat is het gedrag van een knop).- Een echte manier worden geboden voor de gebruiker om de doel-URL bij hoveren/focussen te zien, omdat er geen
hrefis.
Veelvoorkomende fouten
<a>zonderhref. Zonderhrefstaat het element niet in de tabvolgorde en kondigen schermlezers het niet aan als koppeling.<a href="#" onclick="...">gebruikt als knop. Gebruik in plaats daarvan<button>— koppelingen navigeren, knoppen handelen.role="link"dat activeert op Spatiebalk. Spatiebalk scrollt de pagina; koppelingen activeren alleen op Enter.- Koppelingstekst die “klik hier” of “lees meer” zegt. Schermlezers die een koppelingslijst openen, zien alleen de koppelingstekst — maak deze beschrijvend.
- Ontbrekend
aria-current="page"op de koppeling die de huidige pagina vertegenwoordigt in een navigatie.
Voorbeeld
<!-- Voorkeur -->
<a href="/toolkit/standards/wcag/">WCAG 2.2-naslag</a>
<!-- Alleen wanneer <a href> niet mogelijk is -->
<span
role="link"
tabindex="0"
onclick="location.href='/toolkit/'"
onkeydown="if (event.key === 'Enter') location.href='/toolkit/'"
>
Toolkit
</span>