Gå til sidens indhold
Komponenter

Tekstområde (Textarea)

Tekstområder lader brugeren indtaste en længere tekst på flere linjer.

Eksempel på tekstområde

Sådan bruges komponenten

Anvendes til

Brug tekstområder til sammenhængende (mere end 2 linjer) men ustruktureret tekst og sætninger, der har karakter af prosa. Fx en baggrundsfortælling.

Anvendes når der er behov for yderligere sammenhængende information, hvis karakter brugeren ikke kan vælge ud fra et prædefineret sæt værdier.

Anvendes når løsningen stiller et spørgsmål, der ikke kan besvares i et felt.

Anvendes ikke til

Brug ikke tekstområder til struktureret information, hvor datakonsistens har betydning.

Vejledning

Angiv tekstområdets højde, så det modsvarer den tekstmængde, du forventer, at brugeren skal indtaste.

Overvej at begrænse antallet af tegn, hvis det giver mening.

Vis kun fejlmeddelelser, når brugeren har indtastet en ugyldig værdi.

Fejlmeddelelser skal være meningsfulde og hjælpsomme.

Placér fejlmeddelelser mellem label og tekstområde, og markér tekstområdet med rødt.

Sådan (do)

Eksempel på, hvordan et tekstområde kan se ud

Sådan: Tilpas højde og bredde af tekstområdet, så brugerne komfortabelt kan indtaste kommentarer eller redegøre for handlingsforløb. Teksten skal ombryde, så enkeltord ikke bliver delt (ISO, 2012, afsnit 9.1.3). Lad områdets størrelse indikere mængden af indhold, der forventeligt skal skrives i tekstområdet.

Ikke sådan (don't)

Eksempel på, hvordan et tekstområde ikke bør se ud

Ikke sådan: Gør ikke tekstområder så små, at brugerne bliver nødt til at scrolle for at kontrollere almindelige mængder tekst. Undgå helt horisontal scroll.

Fejlmeddelelse

Læs mere om korrekt brug af fejlmeddelelser og deres formuleringer.

Når der vises en fejlmeddelelse, vis da også fejlopsummering.

Eksempel på tekstområde med fejlmeddelelse
Fejl: Hjælpsom fejlmeddelelse

Varianter

Karakterbegrænsning

Karakterbegrænsning sætter et maksimalt antal af tegn, som brugeren kan indtaste i et tekstområde. Karakterbegrænsning indikerer løbende overfor brugeren, hvor mange tegn der er tilbage, og hvor mange tegn de evt. har overskredet med.

Vis altid antallet af tegn, der er til rådighed i tekstområdet, inden brugeren begynder at skrive.

Stop ikke indtastningen, når brugeren overskrider antallet af tegn. Vis i stedet løbende med rød tekst under tekstområdet, hvor mange tegn der er overskredet med.

Eksempel på tekstområde med karakterbegrænsning
Du kan indtaste op til 60 tegn Du har 60 tegn tilbage

Deaktiveret

Eksempel på deaktiveret tekstområde

Bemærk, at deaktiverede tekstområder hverken har kontrastkrav eller kan få fokus og dermed kan være svære at opdage, fx når man anvender en skærmlæser. Det anbefales derfor, at man helt undlader tekstområdet i stedet for at deaktivere det.

Se komponenten i eksempelløsninger

Trinformular til ansøgning: Ansøgningens type

Referencer

ISO 9241-143: Forms (2012)

Installation

HTML Struktur

Kodeeksempel
<div class="form-group">
    <label class="form-label" for="input-textarea">Tekstområde med label</label>

    <textarea class="form-input" id="input-textarea" name="input-textarea" rows="5" required></textarea>

</div>

Sørg for at rette værdierne i følgende attributter, så de svarer til din løsning:

  • for
  • id
  • name
  • rows

Sæt højden på et tekstområde ved brug af rows attributten. Sæt højden, så det svarer til den mængde tekst, der forventes indtastet.

Fejlmeddelelse

Læs mere om korrekt brug af fejlmeddelelser og fejlmeddelelser’s implementering med tekstområde.

Når der vises en fejlmeddelelse, vis da også en fejlopsummering.

Karakterbegrænsning

Kodeeksempel
<div class="form-group form-limit" data-maxlength="60">
    <label class="form-label" for="textarea-limit">Tekstområde med karakterbegrænsning</label>

    <textarea class="form-input" id="textarea-limit" name="textarea-limit" rows="5" required aria-describedby="textarea-limit-limit-message"></textarea>
    <span id="textarea-limit-limit-message" class="sr-only">Du kan indtaste op til 60
        tegn</span>
    <span class="form-hint character-limit" aria-hidden="true">Du har 60 tegn tilbage</span>
    <span class="character-limit-sr-only sr-only" aria-live="polite">Du har 60 tegn
        tilbage</span>
</div>

Javascript

Karakterbegrænsning kræver JavaScript for at fungere. Man kan enten gøre brug af DKFDS.init() eller initiere komponenten manuelt med init().

Funktioner

Funktion Beskrivelse
init() Sørger for at beskederne med antal tegn tilbage opdateres.
charactersLeft() Returnerer det antal tegn, der lige nu kan indtastes i tekstområdet. Tallet er negativt, hvis antallet af tegn er overskredet.
updateMessages() Fremtvinger en opdatering af beskederne med antal tegn tilbage. Dette kan være nyttigt, hvis eksempelvis værdien i tekstområdet ændres programmatisk.
silentUpdateMessages() Fungerer på samme måde som updateMessages(), bortset fra at ændringen ikke læses højt i skærmlæsere. Anvend kun, når ændringer i tekstområdet er meningsforstyrrende for skærmlæserbrugere.

Eksempel på anvendelse:

const form_limit = new DKFDS.CharacterLimit(document.getElementsByClassName('form-limit')[0]);
form_limit.init();
form_limit.charactersLeft();

Sprog

Hvis du ønsker at anvende et andet sprog end dansk i JavaScript-koden til karakterbegrænsning, skal du selv give din oversættelse med og derefter initiere komponenten manuelt. Husk at opdatere værdien i attributten “lang” i din sides html-tag. Indholdet i krøllede parenteser {...} nedenunder skal ikke oversættes eller ændres.

new DKFDS.CharacterLimit(document.getElementById('FORM-LIMIT-ID'), {
  "character_remaining": "Du har {value} tegn tilbage",
  "characters_remaining": "Du har {value} tegn tilbage",
  "character_too_many": "Du har {value} tegn for meget",
  "characters_too_many": "Du har {value} tegn for meget"
}).init();

Deaktiveret

Kodeeksempel
<div class="form-group">
    <label class="form-label  disabled" for="textarea-disabled">Deaktiveret
        tekstområde</label>

    <textarea class="form-input" id="textarea-disabled" name="textarea-disabled" rows="5" disabled>Låst indhold</textarea>

</div>

Husk at medtage de to beskeder skjult med klassen sr-only. Disse anvendes af skærmlæsere til at give info og status på indtastningen til brugeren.

Web Component-koden er i beta

Læs mere om Web Components i beta-version. Hvis du har forslag til forbedringer eller kommentarer, kan du oprette et issue på GitHub eller sende en e-mail til FDS-teamet.

Web Component Genereret HTML
<fds-textarea>
    <label>Label</label>
    <textarea id="input-textarea-example" name="input-textarea" rows="5"></textarea>
</fds-textarea>
<fds-textarea>
    <label for="input-textarea-example">Label</label>
    <textarea id="input-textarea-example" name="input-textarea" rows="5"></textarea>
</fds-textarea>

Om denne komponent

Denne komponent anvender light DOM. Det betyder, at komponenten genererer HTML, der kan tilgås ligesom al anden HTML på siden. Du kan som udvikler vælge mellem at tage Web Component-koden, hvis du vil lade komponenten generere HTML’en, eller tage versionen med den genererede kode, hvis du har brug for at ændre i HTML’en først. Begge muligheder vises i fanebladene i komponentens eksempler.

Uanset hvilken kode du tager, vil komponenten stadig aktivere den nødvendige JavaScript. Bemærk, at udvalgte light DOM-komponenter har en ready-attribut, du som udvikler kan bruge, hvis du i dit framework har behov for at udskyde initialisering af komponenten.

Læs mere på Web Components i beta-version om komponenternes anvendelse af light DOM og shadow DOM samt vores ønsker til feedback.

Varianter

Fejl

Dette er en fejl
Web Component Genereret HTML
<fds-textarea>
    <label>Tekstområde med fejl</label>
    <textarea id="input-textarea-error" name="input-textarea" rows="5"></textarea>
    <fds-error-message id="error77d50f3d">Dette er en fejl</fds-error-message>
</fds-textarea>
<fds-textarea>
    <label for="input-textarea-error">Tekstområde med fejl</label>
    <textarea id="input-textarea-error" name="input-textarea" rows="5" aria-describedby="error77d50f3d" aria-invalid="true"></textarea>
    <fds-error-message id="error77d50f3d">
        <svg class="icon-svg alert-icon" aria-label="Fejl" focusable="false"><use href="#error"></use></svg>
        <span class="visible-message">Dette er en fejl</span>
    </fds-error-message>
</fds-textarea>

Hjælpetekst

Fx 12345678
Web Component Genereret HTML
<fds-textarea>
    <label>Tekstområde med hjælpetekst</label>
    <fds-help-text id="helpTextIdefew3">Fx 12345678</fds-help-text>
    <textarea id="input-textarea-help" name="input-textarea" rows="5"></textarea>
</fds-textarea>
<fds-textarea>
    <label for="input-textarea-help">Tekstområde med hjælpetekst</label>
    <fds-help-text id="helpTextIdefew3" class="help-text">Fx 12345678</fds-help-text>
    <textarea id="input-textarea-help" name="input-textarea" rows="5" aria-describedby="helpTextIdefew3"></textarea>
</fds-textarea>

Karakterbegrænsning

Web Component Genereret HTML
<fds-textarea>
    <label>Tekstområde med karakterbegrænsning</label>
    <textarea id="input-textarea-limit" name="input-textarea" rows="5"></textarea>
    <fds-character-limit limit="40" limit-id="lim9ef8bf53v6"></fds-character-limit>
</fds-textarea>
<fds-textarea>
    <label for="input-textarea-limit">Tekstområde med karakterbegrænsning</label>
    <textarea id="input-textarea-limit" name="input-textarea" rows="5"></textarea>
    <fds-character-limit limit="40" limit-id="lim9ef8bf53v6">
        <span class="sr-only" id="lim9ef8bf53v6">Du kan indtaste op til 40 tegn</span>
        <span class="sr-only" aria-hidden="true" aria-live="polite"></span>
        <span class="visual-message" aria-hidden="false">Du har 40 tegn tilbage</span>
    </fds-character-limit>
</fds-textarea>

Obligatoriske og frivillige tekstområder

Tekstområde markeret obligatorisk

Web Component Genereret HTML
<fds-textarea show-required-status>
    <label>Label</label>
    <textarea id="5695ee72" name="5695ee72" rows="5" required></textarea>
</fds-textarea>
<fds-textarea show-required-status="">
    <label for="5695ee72">Label<span class="weight-normal"> (*skal udfyldes)</span>
    </label>
    <textarea id="5695ee72" name="5695ee72" rows="5" required=""></textarea>
</fds-textarea>

Tekstområde markeret frivilligt

Web Component Genereret HTML
<fds-textarea show-required-status>
    <label>Label</label>
    <textarea id="732e3ad2" name="732e3ad2" rows="5"></textarea>
</fds-textarea>
<fds-textarea show-required-status="">
    <label for="732e3ad2">Label<span class="weight-normal"> (frivilligt)</span>
    </label>
    <textarea id="732e3ad2" name="732e3ad2" rows="5"></textarea>
</fds-textarea>

Ændret tekst

Det er muligt at ændre teksten, der markerer tekstområdet enten obligatorisk eller frivilligt. Dette kan fx være nødvendigt i løsninger på andre sprog end dansk.

Web Component Genereret HTML
<fds-textarea show-required-status="required">
    <label>Label</label>
    <textarea id="74576ebc" name="74576ebc" rows="5" required></textarea>
</fds-textarea>
<fds-textarea show-required-status="required">
    <label for="74576ebc">Label<span class="weight-normal"> (*required)</span>
    </label>
    <textarea id="74576ebc" name="74576ebc" rows="5" required=""></textarea>
</fds-textarea>

Deaktiveret

Web Component Genereret HTML
<fds-textarea>
    <label>Deaktiveret tekstområde</label>
    <textarea id="input-textarea5" name="input-textarea" rows="5" disabled></textarea>
</fds-textarea>

<fds-textarea>
    <label for="input-textarea5">Deaktiveret tekstområde</label>
    <textarea id="input-textarea5" name="input-textarea" rows="5" disabled=""></textarea>
</fds-textarea>

Konfiguration

fds-textarea

Attributter

Attribut Beskrivelse
show-required-status Viser om tekstområdet er obligatorisk eller frivilligt baseret på required-attributten. Indsæt en tekst i attributten for at overskrive default-teksten.

fds-help-text

Attributter

Attribut Beskrivelse
id ID for hjælpeteksten. Hvis denne er udeladt, genereres et tilfældigt ID.
hidden Skjuler hjælpeteksten. Skal sættes til true eller være tom for at tage effekt.

Events

Event Beskrivelse
help-text-callback Udløses på det omsluttende element, når hjælpeteksten tilføjes, fjernes, eller dens hidden-attribut ændres.
help-text-visibility-changed Udløses på det omsluttende element, når hidden-attributten ændres. event.detail.helptextId indeholder hjælpetekstens ID, og event.detail.isHidden angiver, om den er skjult.

fds-error-message

Attributter

Attribut Beskrivelse
id ID for fejlbeskeden. Hvis denne er udeladt, genereres et tilfældigt ID.
icon-text Skærmlæsertekst for ikonet. Default er Fejl.
hidden Skjuler fejlbeskeden. Skal sættes til true eller være tom for at tage effekt.
targets Bruges kun af fds-date-input. Angiv ID'er eller navne på de inputfelter, fejlbeskeden er relateret til, separeret med komma.
message Teksten der skal vises i fejlbeskeden. Kan også angives som indhold i elementet.

Events

Event Beskrivelse
error-message-callback Udløses på det omsluttende element, når fejlbeskeden tilføjes, fjernes, eller en af dens attributter ændres.
error-message-visibility-changed Udløses på det omsluttende element, når hidden-attributten ændres. event.detail.errorId indeholder fejlbeskedens ID, og event.detail.isHidden angiver, om den er skjult.

fds-character-limit

Attributter

Attribut Beskrivelse
limit Angiv det maksimale antal tegn, der kan indtastes.
limit-id ID for elementet, der viser den maksimale grænse til skærmlæserbrugere. Hvis denne er udeladt, genereres et tilfældigt ID.
one-character-remaining-text Overskriv teksten, der vises, når der er ét tegn tilbage. Default er Du har {value} tegn tilbage.
several-characters-remaining-text Overskriv teksten, der vises, når der er flere tegn tilbage. Default er Du har {value} tegn tilbage.
one-character-too-many-text Overskriv teksten, der vises, når grænsen er overskredet med ét tegn. Default er Du har {value} tegn for meget.
several-characters-too-many-text Overskriv teksten, der vises, når grænsen er overskredet med flere tegn. Default er Du har {value} tegn for meget.
max-limit-text Overskriv teksten, der annonceres til skærmlæserbrugere om den maksimale grænse. Default er Du kan indtaste op til {value} tegn.

Events

Event Beskrivelse
character-limit-callback Udløses på det omsluttende element, når en af komponentens attributter ændres.

Vi indsamler statistik ved hjælp af tredjepartscookies til at forbedre brugeroplevelsen.

Alle indsamlede data anonymiseres.

Læs mere om vores brug af cookies