Hopp til innhold
SilktideHjelp

Gyldige ID-er for etiketter

Silktide kontrollerer skjem etiketter som navngir feltet sitt ved hjelp av en ID, og verifiserer at ID-en finnes på siden og tilhører et element som faktisk kan ha en etikett. En etikett som peker på ingenting, eller på feil type element, gjør at et felt blir stående uten navn uten at det er synlig.

I kobles en <label> til skjemafeltet ved å sette etikettens for-attributt til feltets id. Koblingen brytes når ID-en er skrevet feil, når feltets ID endres, eller når målet ikke er et skjemafelt i det hele tatt.

<!-- Problem: Det finnes ikke noe element med id="fullname" -->
<label for="fullname">Fullt navn</label>
<input type="text" id="full-name">

Hvorfor dette er viktig

Etiketten er det en bruker for å kunngjøre et felt. Når for-referansen er brutt, er etiketten og feltet to urelaterte elementer: Besøkende hører et navnløst «rediger tekst»-felt og må gjette hva som skal skrives inn. Ingenting endres visuelt – etiketten ligger fortsatt ved siden av feltet – så slike brudd blir ikke oppdaget før noen som er avhengig av koblingen, prøver å bruke skjemaet.

Slik løser du det

  1. Finn feltet etiketten var ment for, og sørg for at etikettens for-verdi samsvarer nøyaktig med feltets id (ID-er skiller mellom store og små bokstaver):
<!-- Rettet: Referansen samsvarer med feltets id -->
<label for="full-name">Fullt navn</label>
<input type="text" id="full-name">
  1. Hvis etiketten peker på noe som ikke kan ha en etikett – for eksempel en <div> som fungerer som en egendefinert kontroll – bruker du i stedet: Legg til aria-labelledby på elementet, slik at det peker tilbake på teksten som navngir det.
  2. Hvis etiketten er en rest uten noe felt, fjerner du den.

Slik tester Silktide dette

  1. Finn hvert <label>-element med et for-attributt på hver side.
  2. Slå opp elementet med en id som samsvarer med for-verdien.
  3. Rapporter etiketten hvis et slikt element ikke finnes.
  4. Hvis det finnes, rapporter etiketten hvis målet ikke er et etiketterbart skjemaelement – en knapp, et inndatafelt (bortsett fra skjulte felt), en rullegardinliste, et tekstområde, en måler, et utdatafelt eller en fremdriftsindikator.

Feilsøking

Feltet legges til av skript

Silktide undersøker hver side slik den gjengis. Hvis målfeltet bare finnes i enkelte tilstander på siden – for eksempel etter at et panel er åpnet – kan etikettens mål mangle når kontrollen utføres. Vurder å gjengi etiketten og feltet sammen.

Les mer

Sist oppdatert

Var denne siden nyttig?

Gyldige ID-er for etiketter | Silktide Hjelp