Saknat ID för aria-owns
Silktide kontrollerar varje aria-owns-attribut på dina sidor och verifierar att de element-ID:n som anges faktiskt finns. Attributet lägger till element från andra delar av sidan som underordnade element i en widget, även om koden placerar dem någon annanstans.
<!-- Problem: inget element på sidan har id="menu-items" -->
<div role="menu" aria-owns="menu-items">…</div>
Varför detta är viktigt
ARIA-attributet aria-owns kopplar om
: de element som
refereras behandlas som underordnade element till det ägande elementet,
oavsett var de finns i koden. När en referens är bruten misslyckas denna
koppling i tysthet – en meny eller ett träd kan verka helt tomt för en
, även om dess objekt är
tydligt synliga på skärmen. Eftersom inget ser fel ut visuellt tenderar dessa
fel att finnas kvar tills någon testar med .
Så här åtgärdar du det
- Se till att varje ID som anges i
aria-ownsöverensstämmer medidför ett verkligt element på samma sida. - Om det ägda innehållet har flyttats eller fått ett nytt namn uppdaterar du referensen i
samma ändring – eller ännu bättre: strukturera om koden så att de underordnade elementen
placeras naturligt inuti sitt överordnade element och
aria-ownsinte behövs. - Se till att inget element ägs två gånger: ett
idfår bara förekomma i en endaaria-ownspå sidan.
Så testar Silktide detta
- Hitta alla element på sidan som har ett
aria-owns-attribut. - Kontrollera varje ID som attributet refererar till mot de element-ID:n som finns på sidan.
- Rapportera varje referens som inte matchar något element.
Felsökning
Det ägda elementet skapas senare av ett skript
Silktide testar sidan när den läses in. Om det ägda innehållet bara finns efter
användarinteraktion meddelar widgeten att den är tom fram till dess – rendera
innehållet dolt från början eller ange aria-owns när innehållet finns.
Den här kontrollen rapporterar inget trots att jag förväntar mig resultat
ARIA-testning kan stängas av för varje webbplats. Kontrollera de avancerade inställningarna för webbplatsen.