Rolle Widget
link
Markerer et element som et hyperlink — en kontrol, der navigerer til en ny ressource ved aktivering. Brug det native HTML-element <a href> først; brug kun role="link" på en <span> eller <div>, når det ikke er muligt at bruge det native element.
Hvornår bruges det
Næsten aldrig — brug <a href="...">. Det native ankerelement giver dig fokus, tastaturaktivering med Enter, besøgt-tilstanden, højreklik for at åbne i ny fane, træk-til-bogmærke og en rigtig URL, brugeren kan dele. role="link" på en <div> smider alt det ud.
De eneste legitime tilfælde:
- Et tredjeparts designsystem leverer en ikke-anker-”link”-komponent, du ikke kan erstatte.
- Du lapper en utilgængelig
<div onclick>, mens en refaktorering er undervejs.
Bruger du role="link", skal du også:
- Gøre elementet fokuserbart med
tabindex="0". - Håndtere
keydownforEnter(links aktiveres IKKE med Space — det er knappeadfærd). - Give brugeren en reel mulighed for at se destinations-URL’en ved hover/fokus, da der ikke er noget
href.
Hyppige fejl
<a>udenhref. Udenhrefer elementet ikke i tabrækkefølgen, og skærmlæsere annoncerer det ikke som et link.<a href="#" onclick="...">brugt som en knap. Brug<button>i stedet — links navigerer, knapper handler.role="link"der aktiveres med Space. Space scroller siden; links aktiveres kun med Enter.- Linktekst som “klik her” eller “læs mere”. Skærmlæserbrugere, der trækker en linkliste frem, ser kun linkteksten — gør den beskrivende.
- Manglende
aria-current="page"på linket, der repræsenterer den aktuelle side i en navigation.
Eksempel
<!-- Foretrukket -->
<a href="/toolkit/standards/wcag/">WCAG 2.2-reference</a>
<!-- Kun når <a href> er umulig -->
<span
role="link"
tabindex="0"
onclick="location.href='/toolkit/'"
onkeydown="if (event.key === 'Enter') location.href='/toolkit/'"
>
Toolkit
</span>