Gå til indhold
SilktideHjælp

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

  1. Find det felt, som labelen var beregnet til, og sørg for, at labelens for-værdi matcher feltets id præ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">
  1. 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 elementet aria-labelledby, der peger tilbage på teksten, som navngiver det.
  2. Hvis labelen er en rest uden noget felt, skal du fjerne den.

Sådan tester Silktide dette

  1. Find hvert <label>-element med en for-attribut på hver side.
  2. Find det element, hvis id matcher for-værdien.
  3. Rapportér labelen, hvis et sådant element ikke findes.
  4. 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.

Få mere at vide

Sidst opdateret

Var denne side nyttig?