Gyldige label-id'er
Silktide tjekker labels til formularfelter, der angiver deres felt ved hjælp af et id, og bekræfter, at id'et findes på siden og tilhører et element, som faktisk kan have en label. En label, der peger på ingenting eller på den forkerte type element, efterlader ubemærket et felt uden navn.
I forbindes en <label> med sit formularfelt ved at angive labelens for-attribut til feltets id. Forbindelsen brydes, når id'et er stavet forkert, når feltets id ændres, eller når målet slet ikke er et formularfelt.
<!-- Problem: der findes intet element med id="fullname" -->
<label for="fullname">Fulde navn</label>
<input type="text" id="full-name">
Hvorfor det er vigtigt
Labelen er den måde, en annoncerer et felt på. Når for-referencen er brudt, er labelen og feltet to uafhængige elementer: Den besøgende hører et unavngivet "rediger tekst" og skal gætte, hvad der skal indtastes. Intet ændrer sig visuelt – labelen står stadig ved siden af sit felt – så disse fejl forbliver ubemærkede, indtil en person, der er afhængig af forbindelsen, forsøger at bruge formularen.
Sådan løser du det
- Find det felt, som labelen var beregnet til, og sørg for, at labelens
for-værdi matcher feltetsidpræcist (id'er skelner mellem store og små bogstaver):
<!-- Løst: referencen matcher feltets id -->
<label for="full-name">Fulde navn</label>
<input type="text" id="full-name">
- Hvis labelen peger på noget, der ikke kan have en label – f.eks. en
<div>, der fungerer som et brugerdefineret kontrolelement – skal du bruge i stedet: Giv elementetaria-labelledby, der peger tilbage på teksten, som navngiver det. - Hvis labelen er en rest uden noget felt, skal du fjerne den.
Sådan tester Silktide dette
- Find hvert
<label>-element med enfor-attribut på hver side. - Find det element, hvis
idmatcherfor-værdien. - Rapportér labelen, hvis et sådant element ikke findes.
- Hvis det findes, skal du rapportere labelen, hvis målet ikke er et formularfelt, der kan have en label – en knap, et inputfelt (undtagen skjult), en rulleliste, et tekstområde, en måler, et output eller en statuslinje.
Fejlfinding
Feltet tilføjes af scripts
Silktide undersøger hver side, som den gengives. Hvis målfeltet kun findes i nogle tilstande på siden – f.eks. efter åbning af et panel – kan labelens mål mangle på testtidspunktet. Overvej at gengive labelen og dens felt sammen.