Hopp til innhold
SilktideHjelp

Manglende ARIA-underordnet rolle

Silktide kontrollerer widgeter som fungerer som beholdere og er bygget med ARIA-roller, for eksempel fanestriper, menyer og listebokser, og verifiserer at hver av dem inneholder den typen elementer den skal inneholde. En fanestripe uten faner, eller en meny uten menyelementer, blir annonsert som en widget, men tilbyr ingenting å bruke.

<!-- Problem: en tablist må inneholde elementer med role="tab" -->
<div role="tablist">
  <button>Oversikt</button>
</div>

<!-- Løsning: gi de underordnede elementene den nødvendige rollen -->
<div role="tablist">
  <button role="tab">Oversikt</button>
</div>

Hvorfor dette er viktig

Sammensatte -roller beskriver en widget som helhet: tablist lover faner, listbox lover alternativer, og menu lover menyelementer. går over til spesialisert navigasjon for disse widgetene og forventer de lovede underordnede elementene. Når de underordnede elementene mangler rollene sine, annonserer widgeten seg selv og oppfører seg deretter som et tomt skall – brukere kan nå den, men finner ingenting inni, mens seende brukere ser en kontroll som fungerer fullt ut.

Slik løser du det

  1. Legg til den nødvendige rollen på hvert element inne i beholderen – for eksempel role="tab" på hver kontroll inne i en role="tablist".
  2. Hvis elementene må ligge et annet sted i koden, kobler du dem sammen med aria-owns på beholderen.
  3. Hvis beholderen egentlig ikke er denne typen widget, fjerner eller korrigerer du rollen i stedet.

Vanlige kombinasjoner: tablist trenger tab; listbox trenger option; menu og menubar trenger menuitem (eller variantene for avmerkingsboks og alternativknapp); radiogroup trenger radio; tree trenger treeitem; grid og table trenger row; row trenger celler eller overskrifter.

Slik tester Silktide dette

  1. Finn alle elementer der ARIA-rollen krever bestemte underordnede roller.
  2. Søk gjennom etterkommerne, inkludert elementer som er tatt med ved hjelp av aria-owns, etter minst ett element med en nødvendig underordnet rolle.
  3. Rapporter beholdere der ingen slike elementer blir funnet.

Feilsøking

Elementene lastes inn senere av et skript

Silktide tester siden mens den lastes inn. Hvis en listeboks eller meny bare fylles ut ved behov, blir den annonsert som tom frem til det skjer. Der det er mulig, bør du gjengi minst de første elementene sammen med siden.

Denne kontrollen rapporterer ingenting selv om jeg forventer funn

ARIA-testing kan deaktiveres for hvert nettsted. Sjekk avanserte innstillinger for nettstedet.

Les mer

Sist oppdatert

Var denne siden nyttig?