Norsk

Sikre inkluderende nettopplevelser for brukere over hele verden ved å implementere tilgjengelige skjemaetiketter. Lær beste praksis for WCAG-samsvar og forbedret brukervennlighet.

Skjemaetiketter: Essensielle tilgjengelighetskrav for inndatafelt

Skjemaer er en fundamental del av nettet. Fra enkle kontaktskjemaer til komplekse kasseløsninger i nettbutikker, lar de brukere samhandle med nettsteder og applikasjoner. Dårlig utformede skjemaer kan imidlertid skape betydelige barrierer for brukere med nedsatt funksjonsevne. Et avgjørende element i å lage tilgjengelige skjemaer er riktig bruk av skjemaetiketter. Denne guiden gir en omfattende oversikt over tilgjengelighetskrav for skjemaetiketter, og sikrer at skjemaene dine kan brukes av alle, uavhengig av deres evner.

Hvorfor er tilgjengelige skjemaetiketter viktige?

Tilgjengelige skjemaetiketter er avgjørende av flere grunner:

Forstå WCAG-krav for skjemaetiketter

WCAG gir spesifikke retningslinjer for å sikre skjematilgjengelighet. Her er de viktigste kravene knyttet til skjemaetiketter:

WCAG 2.1 Suksesskriterium 1.1.1 Ikke-tekstlig innhold (Nivå A)

Selv om dette ikke handler direkte om etiketter, understreker dette kriteriet viktigheten av å tilby tekstalternativer for alt ikke-tekstlig innhold, inkludert CAPTCHAer og bilder som brukes i skjemaer. Et korrekt merket skjema er avgjørende for å gi kontekst til disse alternativene.

WCAG 2.1 Suksesskriterium 1.3.1 Informasjon og relasjoner (Nivå A)

Informasjon, struktur og relasjoner som formidles gjennom presentasjon, skal kunne bestemmes programmatisk eller være tilgjengelig i tekst. Dette betyr at forholdet mellom en etikett og dens tilsvarende inndatafelt må være eksplisitt definert i HTML-koden.

WCAG 2.1 Suksesskriterium 2.4.6 Overskrifter og etiketter (Nivå AA)

Overskrifter og etiketter beskriver emne eller formål. Skjemaetiketter gir beskrivende kontekst for inndatafelt, noe som gjør det lettere for brukere å forstå skjemaets struktur og fylle det ut korrekt.

WCAG 2.1 Suksesskriterium 3.3.2 Etiketter eller instruksjoner (Nivå A)

Etiketter eller instruksjoner gis når innhold krever brukerinput.

WCAG 2.1 Suksesskriterium 4.1.2 Navn, rolle, verdi (Nivå A)

For alle brukergrensesnittkomponenter (inkludert, men ikke begrenset til, skjemaelementer, lenker og komponenter generert av skript), kan navnet og rollen bestemmes programmatisk; tilstander, egenskaper og verdier som kan angis av brukeren, kan angis programmatisk; og varsel om endringer i disse elementene er tilgjengelig for brukeragenter, inkludert hjelpemiddelteknologi.

Beste praksis for implementering av tilgjengelige skjemaetiketter

Her er flere beste praksiser for å lage tilgjengelige skjemaetiketter:

1. Bruk <label>-elementet

Elementet <label> er den primære måten å knytte en tekstetikett til et inndatafelt. Det gir en semantisk og strukturell forbindelse mellom etiketten og kontrollen. for-attributtet til <label>-elementet skal samsvare med id-attributtet til det tilsvarende inndatafeltet.

Eksempel:


<label for="name">Navn:</label>
<input type="text" id="name" name="name">

Feil eksempel (unngå):


<span>Navn:</span>
<input type="text" id="name" name="name">

Å bruke et span-element i stedet for en label skaper ikke den nødvendige programmatiske assosiasjonen, noe som gjør det utilgjengelig for skjermlesere.

2. Knytt etiketter eksplisitt til inndatafelt

Sørg for en klar og eksplisitt assosiasjon mellom etiketten og inndatafeltet ved å bruke for- og id-attributtene som vist i eksemplet ovenfor.

3. Plasser etiketter korrekt

Plasseringen av etiketter kan påvirke brukervennligheten. Generelt bør etiketter plasseres:

Vurder kulturelle normer når du plasserer etiketter. I noen språk plasseres etiketter tradisjonelt etter inndatafeltet. Tilpass designet ditt for å imøtekomme disse preferansene.

4. Gi klare og konsise etiketter

Etiketter bør være korte, beskrivende og enkle å forstå. Unngå sjargong eller tekniske termer som kan forvirre brukere. For eksempel, i stedet for "BrukerID", bruk "Brukernavn" eller "E-postadresse". Tenk på lokalisering. Sørg for at etikettene dine enkelt kan oversettes til forskjellige språk samtidig som de beholder sin betydning.

5. Bruk ARIA-attributter når det er nødvendig

ARIA (Accessible Rich Internet Applications)-attributter kan forbedre tilgjengeligheten til skjemaelementer, spesielt i komplekse scenarier. Bruk imidlertid ARIA med omhu og bare når native HTML-elementer og -attributter er utilstrekkelige.

Eksempel med aria-label:


<input type="search" aria-label="Søk på nettstedet">

Eksempel med aria-labelledby:


<h2 id="newsletter-title">Nyhetsbrevabonnement</h2>
<input type="email" aria-labelledby="newsletter-title" placeholder="Skriv inn e-postadressen din">

6. Grupper relaterte skjemaelementer med <fieldset> og <legend>

Elementet <fieldset> grupperer relaterte skjemakontroller, og <legend>-elementet gir en bildetekst for fieldset. Dette forbedrer skjemaets struktur og gjør det lettere for brukere å forstå relasjonene mellom forskjellige inndatafelt.

Eksempel:


<fieldset>
  <legend>Kontaktinformasjon</legend>
  <label for="name">Navn:</label>
  <input type="text" id="name" name="name"><br><br>
  <label for="email">E-post:</label>
  <input type="email" id="email" name="email">
</fieldset>

7. Gi klare feilmeldinger

Når brukere gjør feil mens de fyller ut et skjema, gi klare og informative feilmeldinger som forklarer hva som gikk galt og hvordan feilen kan rettes. Knytt disse feilmeldingene til de tilsvarende inndatafeltene ved hjelp av ARIA-attributter som aria-describedby.

Eksempel:


<label for="email">E-post:</label>
<input type="email" id="email" name="email" aria-describedby="email-error">
<span id="email-error" class="error-message">Vennligst skriv inn en gyldig e-postadresse.</span>

Sørg for at feilmeldingen er visuelt tydelig (f.eks. ved bruk av farge eller ikoner) og programmatisk tilgjengelig for hjelpemiddelteknologi.

8. Bruk tilstrekkelig fargekontrast

Sørg for tilstrekkelig fargekontrast mellom etiket-teksten og bakgrunnsfargen for å oppfylle WCAG-kravene. Bruk et verktøy for fargekontrastanalyse for å verifisere at kontrastforholdet oppfyller minimumskravene (4,5:1 for normal tekst og 3:1 for stor tekst). Dette hjelper brukere med nedsatt syn med å lese etikettene lettere.

9. Sørg for tastaturtilgjengelighet

Alle skjemaelementer skal være tilgjengelige kun ved hjelp av tastaturet. Brukere skal kunne navigere gjennom skjemaet med Tab-tasten og samhandle med skjemakontroller med mellomromstasten eller Enter-tasten. Test skjemaene dine grundig med et tastatur for å sikre riktig tastaturtilgjengelighet.

10. Test med hjelpemiddelteknologi

Den beste måten å sikre at skjemaene dine er tilgjengelige, er å teste dem med hjelpemiddelteknologi som skjermlesere (f.eks. NVDA, JAWS, VoiceOver). Dette vil hjelpe deg med å identifisere eventuelle tilgjengelighetsproblemer som kanskje ikke er åpenbare under visuell inspeksjon. Involver brukere med nedsatt funksjonsevne i testprosessen din for å få verdifull tilbakemelding.

Eksempler på implementeringer av tilgjengelige skjemaetiketter

Eksempel 1: Enkelt kontaktskjema (internasjonalt perspektiv)

Tenk deg et kontaktskjema for et globalt publikum. Etiketter bør være klare, konsise og enkle å oversette.


<form>
  <label for="name">Fullt navn:</label>
  <input type="text" id="name" name="name"><br><br>

  <label for="email">E-postadresse:</label>
  <input type="email" id="email" name="email"><br><br>

  <label for="country">Land:</label>
  <select id="country" name="country">
    <option value="">Velg land</option>
    <option value="us">USA</option>
    <option value="ca">Canada</option>
    <option value="uk">Storbritannia</option>
    <option value="de">Tyskland</option>
    <option value="fr">Frankrike</option>
    <option value="jp">Japan</option>
    <option value="au">Australia</option>
    <!-- Legg til flere land -->
  </select><br><br>

  <label for="message">Melding:</label>
  <textarea id="message" name="message" rows="4" cols="50"></textarea><br><br>

  <input type="submit" value="Send">
</form>

Legg merke til bruken av "Fullt navn" i stedet for bare "Navn" for klarhet, spesielt for kulturer der etternavn kommer før fornavn.

Eksempel 2: Kassesjema for nettbutikk

Kassesjemaer for nettbutikker krever ofte sensitiv informasjon. Tydelige etiketter og instruksjoner er avgjørende for å bygge tillit og sikre tilgjengelighet.


<form>
  <fieldset>
    <legend>Leveringsadresse</legend>
    <label for="shipping_name">Fullt navn:</label>
    <input type="text" id="shipping_name" name="shipping_name"><br><br>

    <label for="shipping_address">Adresse:</label>
    <input type="text" id="shipping_address" name="shipping_address"><br><br>

    <label for="shipping_city">By:</label>
    <input type="text" id="shipping_city" name="shipping_city"><br><br>

    <label for="shipping_zip">Postnummer:</label>
    <input type="text" id="shipping_zip" name="shipping_zip"><br><br>

    <label for="shipping_country">Land:</label>
    <select id="shipping_country" name="shipping_country">
      <option value="">Velg land</option>
      <option value="us">USA</option>
      <option value="ca">Canada</option>
      <!-- Legg til flere land -->
    </select>
  </fieldset>

  <fieldset>
    <legend>Betalingsinformasjon</legend>
    <label for="card_number">Kredittkortnummer:</label>
    <input type="text" id="card_number" name="card_number"><br><br>

    <label for="expiry_date">Utløpsdato (MM/ÅÅ):</label>
    <input type="text" id="expiry_date" name="expiry_date" placeholder="MM/ÅÅ"><br><br>

    <label for="cvv">CVV:</label>
    <input type="text" id="cvv" name="cvv"><br><br>
  </fieldset>

  <input type="submit" value="Fullfør bestilling">
</form>

Bruken av fieldsets og legends organiserer skjemaet tydelig i logiske seksjoner. Placeholder-tekst gir ytterligere veiledning, men husk at placeholder-tekst ikke skal brukes som erstatning for etiketter.

Eksempel 3: Registreringsskjema med ARIA-attributter

Tenk deg et registreringsskjema der et kallenavn er valgfritt. Ved hjelp av ARIA-attributter kan vi gi ytterligere kontekst.


<form>
  <label for="username">Brukernavn:</label>
  <input type="text" id="username" name="username" required><br><br>

  <label for="password">Passord:</label>
  <input type="password" id="password" name="password" required><br><br>

  <label for="nickname">Kallenavn (valgfritt):</label>
  <input type="text" id="nickname" name="nickname" aria-describedby="nickname-info">
  <span id="nickname-info">Dette kallenavnet vil bli vist offentlig.</span><br><br>

  <input type="submit" value="Registrer">
</form>

Attributtet aria-describedby kobler kallenavn-inndatafeltet til et span-element som gir tilleggsinformasjon om hvordan kallenavnet vil bli brukt.

Verktøy for å teste skjematilgjengelighet

Flere verktøy kan hjelpe deg med å evaluere tilgjengeligheten til skjemaene dine:

Konklusjon

Tilgjengelige skjemaetiketter er essensielle for å skape inkluderende nettopplevelser. Ved å følge beste praksis som er beskrevet i denne guiden, kan du sikre at skjemaene dine kan brukes av alle, uavhengig av deres evner. Å prioritere tilgjengelighet gagner ikke bare brukere med nedsatt funksjonsevne, men forbedrer også den generelle brukervennligheten til nettstedet ditt for alle brukere. Husk å teste skjemaene dine konsekvent med hjelpemiddelteknologi og involvere brukere med nedsatt funksjonsevne i testprosessen din for å få verdifull tilbakemelding og kontinuerlig forbedre nettstedets tilgjengelighet.

Å omfavne tilgjengelighet er ikke bare et spørsmål om samsvar; det handler om å skape et mer inkluderende og rettferdig nett for alle. Ved å investere i tilgjengelig skjemadesign, viser du en forpliktelse til inkludering og skaper en bedre brukeropplevelse for alle.