aria-checked
Angiver den aktuelle markerede tilstand for et afkrydsningsfelt, en radioknap eller et afkrydsningsmenupunkt. Accepterer "true", "false" eller "mixed". Det native HTML-afkrydsningsfelt håndterer dette automatisk — sæt det kun manuelt på brugerdefinerede widgets.
Hvornår skal det bruges
På widgets med en tri-state eller binær afkrydsningssemantik: role="checkbox", role="radio", role="menuitemcheckbox", role="menuitemradio" og role="switch". Hvis du bruger det native <input type="checkbox"> eller <input type="radio">, eksponerer browseren allerede den markerede tilstand over for hjælpeteknologi — duplikér den ikke med aria-checked.
Adskil det fra nærliggende tilstande:
aria-checked— for “denne mulighed er valgt fra et sæt valg, ofte uafhængigt af andre”. Afkrydsningsfelter og radioknapper.aria-pressed— for skifteknapper (slå lyd fra / til). Elementet er konceptuelt en knap; tilstanden angiver, om handlingen er aktiv.aria-selected— for elementer inde i en enkeltvalg-container som entablist,listboxellertree. Tilstanden hører til containerens udvalgmodel, ikke elementet selv.
Sådan holdes det synkroniseret
Gyldige værdier er "true", "false", "mixed" og "undefined". Brug "mixed" kun på et overordnet afkrydsningsfelt, der opsummerer en gruppe af underordnede afkrydsningsfelter i uoverensstemmende tilstande (det klassiske “vælg alle” indeterminate-mønster). "undefined" er sjælden i praksis; de fleste bruger "false" i stedet.
Attributten skal afspejle, hvad brugeren ser. Uanset hvilken klik- og tastaturhåndtering der opdaterer det visuelle flueben, skal den også skrive den nye aria-checked-værdi i samme kodeafsnit. Stil aldrig et “markeret” udseende fra CSS uden at skifte attributten.
For role="radio" inde i en radiogroup bør nøjagtig én mulighed have aria-checked="true" på et givet tidspunkt; de øvrige skal være "false" (ikke fraværende).
Hyppige fejl
- Udeladelse af
aria-checkedhelt på etrole="checkbox"-element — skærmlæseren annoncerer “afkrydsningsfelt” uden tilstand. - Skiftning af en klasse for at vise fluebenet, men aldrig opdatering af
aria-checked. - Brug af
aria-checked="true"på et native<input type="checkbox">— browseren ignorerer det, og den duplikerede tilstand kan komme ud af synkronisering. - Sætning af
aria-checked="mixed"på et enkelt afkrydsningsfelt i stedet for et overordnet, der opsummerer børn. - Efterladelse af søskenderadioknapper uden
aria-checked="false"— hjælpeteknologi kan ikke udlede den uforkrede tilstand. - Forveksling af
aria-checkedmedaria-selectedpå listbox-muligheder eller faner.
Eksempel
<div role="group" aria-labelledby="prefs-heading">
<h3 id="prefs-heading">E-mail-præferencer</h3>
<div
role="checkbox"
tabindex="0"
aria-checked="false"
onclick="toggle(this)"
onkeydown="if (event.key === ' ') { event.preventDefault(); toggle(this); }"
>
Send mig ugentlige opsummeringer
</div>
</div>