Hoppa till innehåll
SilktideHjälp

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

  1. Ersätt informella värden med de tokenvärden som attributet definierar: true och false i stället för yes, no, 1 eller 0.
  2. Kontrollera numeriska attribut: räknande attribut som aria-level och aria-rowindex börjar på 1, inte 0.
  3. 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

  1. Hitta alla element på sidan som har minst ett aria--attribut.
  2. 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 som aria-live och aria-current.
  3. 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.

Läs mer

Senast uppdaterad

Var den här sidan hjälpsam?

Ogiltigt ARIA-attributvärde | Silktide Hjälp