Gå til indhold
SilktideHjælp

Manglende underordnet ARIA-rolle

Silktide tjekker containerwidgets, der er bygget med ARIA-roller, såsom fanelister, menuer og listebokse, og bekræfter, at hver af dem indeholder den slags elementer, den skal indeholde. En faneliste uden faner eller en menu uden menupunkter annonceres som en widget, men tilbyder intet at betjene.

<!-- Problem: en tablist skal indeholde elementer med role="tab" -->
<div role="tablist">
  <button>Oversigt</button>
</div>

<!-- Løsning: giv de underordnede elementer deres påkrævede rolle -->
<div role="tablist">
  <button role="tab">Oversigt</button>
</div>

Hvorfor det er vigtigt

Sammensatte -roller beskriver en widget som helhed: tablist lover faner, listbox lover indstillinger, og menu lover menupunkter. skifter til specialiseret navigation for disse widgets og forventer de lovede underordnede elementer. Når de underordnede elementer mangler deres roller, annoncerer widgetten sig selv og opfører sig derefter som en tom skal – brugere kan nå den, men finder intet indeni, mens seende brugere ser et fuldt fungerende kontrolelement.

Sådan løser du det

  1. Tilføj den påkrævede rolle til hvert element i containeren – for eksempel role="tab" på hvert kontrolelement i en role="tablist".
  2. Hvis elementerne skal ligge et andet sted i koden, skal du forbinde dem med aria-owns på containeren.
  3. Hvis containeren reelt ikke er den type widget, skal du i stedet fjerne eller rette dens rolle.

Almindelige parringer: tablist kræver tab; listbox kræver option; menu og menubar kræver menuitem (eller dens afkrydsningsfelt- og radiovarianter); radiogroup kræver radio; tree kræver treeitem; grid og table kræver row; row kræver celler eller overskrifter.

Sådan tester Silktide dette

  1. Find hvert element, hvis ARIA-rolle kræver specifikke underordnede roller.
  2. Søg i dets efterkommere, herunder elementer, der er knyttet med aria-owns, efter mindst ét element med en påkrævet underordnet rolle.
  3. Rapportér containere, hvor ingen findes.

Fejlfinding

Elementerne indlæses senere af et script

Silktide tester siden, mens den indlæses. Hvis en listeboks eller menu kun udfyldes ved behov, annonceres den som tom indtil da. Vis om muligt mindst de første elementer sammen med siden.

Dette tjek rapporterer intet, selvom jeg forventer fund

ARIA-test kan slås fra pr. website. Tjek de avancerede indstillinger for websitet.

Få mere at vide

Sidst opdateret

Var denne side nyttig?