Ontbrekende aria-owns-ID
Silktide controleert elk aria-owns-attribuut op je pagina's en verifieert of de element-ID's die het vermeldt daadwerkelijk bestaan. Dit attribuut voegt elementen van elders op de pagina toe als onderliggende elementen van een widget, ook al plaatst de code ze ergens anders.
<!-- Probleem: geen enkel element op de pagina heeft id="menu-items" -->
<div role="menu" aria-owns="menu-items">…</div>
Waarom dit belangrijk is
Het -attribuut aria-owns wijzigt de : elementen waarnaar het verwijst, worden behandeld als onderliggende elementen van het element dat er eigenaar van is, ongeacht waar ze in de code staan. Wanneer een verwijzing niet klopt, mislukt deze koppeling stilletjes — een menu of boomstructuur kan voor een volledig leeg lijken, ook al zijn de items duidelijk zichtbaar op het scherm. Omdat er visueel niets mis lijkt te zijn, blijven deze fouten vaak onopgemerkt totdat iemand test met .
Zo los je het op
- Zorg dat elke ID die in
aria-ownswordt vermeld, overeenkomt met deidvan een echt element op dezelfde pagina. - Als de inhoud waarvan het element eigenaar is, is verplaatst of hernoemd, werk dan de verwijzing in dezelfde wijziging bij — of, beter nog, structureer de code zo dat de onderliggende elementen van nature binnen hun bovenliggende element staan en
aria-ownsniet nodig is. - Zorg dat geen enkel element twee keer als eigendom wordt toegewezen: een
idmag maar in éénaria-ownsop de pagina voorkomen.
Hoe Silktide dit test
- Zoek elk element op de pagina met een
aria-owns-attribuut. - Controleer elke ID waarnaar wordt verwezen aan de hand van de element-ID's die op de pagina aanwezig zijn.
- Rapporteer elke verwijzing die met geen enkel element overeenkomt.
Problemen oplossen
Het element waarvan het widget eigenaar is, wordt later door een script gemaakt
Silktide test de pagina tijdens het laden. Als de inhoud waarvan het widget eigenaar is pas na interactie met de gebruiker bestaat, kondigt de widget tot dat moment aan dat deze leeg is — render de inhoud vanaf het begin verborgen, of stel aria-owns in zodra de inhoud bestaat.
Deze controle rapporteert niets, ook al verwacht ik bevindingen
ARIA-testen kunnen per website worden uitgeschakeld. Controleer de geavanceerde instellingen voor de website.