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
- Tilføj den påkrævede rolle til hvert element i containeren – for eksempel
role="tab"på hvert kontrolelement i enrole="tablist". - Hvis elementerne skal ligge et andet sted i koden, skal du forbinde dem med
aria-ownspå containeren. - 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
- Find hvert element, hvis ARIA-rolle kræver specifikke underordnede roller.
- Søg i dets efterkommere, herunder elementer, der er knyttet med
aria-owns, efter mindst ét element med en påkrævet underordnet rolle. - 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.