Ogiltigt ARIA-attributvärde
Silktide kontrollerar värdet för varje ARIA-attribut på dina sidor mot de värden som standarden tillåter för det. Ett attribut med ett felaktigt värde, som ett kryssrutstillstånd med "yes" i stället för "true", ignoreras av webbläsare, vilket innebär att tillståndet som det beskriver aldrig meddelas.
<!-- Problem: "yes" är inte ett giltigt värde, tillståndet utelämnas -->
<div role="checkbox" aria-checked="yes">Subscribe</div>
<!-- Lösning: använd den definierade tokenen -->
<div role="checkbox" aria-checked="true">Subscribe</div>
Varför detta är viktigt
Varje -attribut definierar exakt vilka värden det
accepterar, och webbläsare förkastar allt annat i stället för att gissa. Felen
är vanligtvis intuitiva värden – aria-expanded="1",
aria-checked="yes", aria-level="0" – som klarar alla visuella tester,
medan användare av får ett
kontrollelement utan meddelat tillstånd: en meny som aldrig säger om den är
öppen, eller en kryssruta som aldrig säger om den är markerad.
Så här åtgärdar du det
- Ersätt informella värden med de tokenvärden som attributet definierar:
trueochfalsei stället föryes,no,1eller0. - Kontrollera numeriska attribut: räknande attribut som
aria-levelocharia-rowindexbörjar på 1, inte 0. - Ta bort attribut som lämnats tomma, till exempel
aria-checked=""– om det inte finns något tillstånd att förmedla ska attributet inte finnas.
De exakta värden som tillåts för varje attribut finns angivna i MDN:s ARIA-attributreferens.
Så här testar Silktide detta
- Hitta alla element på sidan som har minst ett
aria--attribut. - Kontrollera varje attributs värde mot den typ som ARIA 1.2 definierar för
det: true/false-attribut, trelägesattribut som
aria-checked(true,false,mixed), tal och heltal samt attribut med fasta ordlistor somaria-liveocharia-current. - Rapportera varje värde som inte överensstämmer och ange vad som förväntades.
Attribut som refererar till element-ID:n testas av sina egna kontroller, till
exempel Missing aria-controls ID, och attribut med fri
text som aria-label accepterar valfri text.
Felsökning
Värdet anges av ett ramverk
Komponentbibliotek serialiserar ibland tillstånd felaktigt, till exempel genom
att återge aria-expanded="undefined". Resultatet pekar på elementet, men
åtgärden hör vanligtvis hemma i hur komponenten konfigureras eller i en
uppdatering av biblioteket.
Den här kontrollen rapporterar inget trots att jag förväntar mig resultat
ARIA-testning kan inaktiveras per webbplats. Kontrollera webbplatsens avancerade inställningar.