Manglende ID for aria-controls
Silktide kontrollerer alle aria-controls-attributter på sidene dine og bekrefter at element-ID-ene de viser til, faktisk finnes. Dette attributtet angir hvilken del av siden en kontroll fungerer på, for eksempel panelet en fane viser, eller menyen en knapp åpner.
<!-- Problem: ingen elementer på siden har id="filter-panel" -->
<button aria-expanded="false" aria-controls="filter-panel">Filtre</button>
Hvorfor dette er viktig
Attributtet aria-controls lar
koble en
kontroll til innholdet den påvirker – enkelte
tilbyr en snarvei for å hoppe
direkte til det kontrollerte elementet. Når referansen er brutt, forsvinner
denne forbindelsen uten at det er synlig. Brutte referanser betyr vanligvis at
en ID har blitt endret, eller at en komponent er fjernet. De er derfor også et
tidlig varsel om at selve widgeten kanskje ikke lenger fungerer som tiltenkt.
Slik løser du det
- Sørg for at hver ID som er oppført i
aria-controls, samsvarer medid-en til et faktisk element på samme side. Attributtet kan inneholde flere ID-er atskilt med mellomrom. Kontroller hver enkelt. - Hvis det kontrollerte elementet legges til dynamisk, kan du enten gjengi det skjult
fra starten av eller angi
aria-controlsnår det finnes. - Hvis det kontrollerte elementet er fjernet permanent, fjerner du attributtet.
Slik tester Silktide dette
- Finn hvert element på siden som har et
aria-controls-attributt. - Kontroller hver ID det viser til, mot element-ID-ene som finnes på siden.
- Rapporter hver referanse som ikke samsvarer med noe element.
Feilsøking
Målet opprettes senere av et skript
Silktide tester siden mens den lastes inn. Hvis det refererte panelet først vises etter en brukerhandling, er referansen brutt frem til det skjer – det er best å beholde målet på siden (skjult), slik at referansen alltid løses.
Denne kontrollen rapporterer ingenting, selv om jeg forventer funn
ARIA-testing kan slås av for hvert nettsted. Sjekk avanserte innstillinger for nettstedet.