Select

Release dato: 19.09.2023

Sist oppdatert: 07.07.2025

Select (nedtrekksliste) lar brukeren velge ett enkelt alternativ fra en liste. Den brukes nÄr du har mange valg, men ikke plass eller behov for Ä vise alle samtidig.

FormÄlet med komponenten er Ä gjÞre det enkelt Ä velge riktig alternativ uten at det tar unÞdvendig plass i et skjema eller lÞsning.

Test komponenten

Relaterte komponenter

Varianter

Innhold

TypeBeskrivelse
StandardLabel, placeholder og valgliste
Med hjelpetekstKort hjelpetekst under feltet
Med ekspanderende hjelpetekstHjelpetekst bak “Les mer”-knapp
Valgfritt-tag/obligatorisk tagViser enten “Valgfritt” eller “MĂ„ fylles ut” ved siden av label

Select brukes vanligvis sammen med input wrapper, under dokumentasjonen til denne finner du mer om hvordan du skriver gode labels og hjelpetekster, og om funksjonene i input wrapper.

States

Text input har seks ulike states som gir brukeren visuell tilbakemelding i ulike situasjoner:

TypeBeskrivelse
DefaultFeltet vises i normal tilstand, klar til bruk
HoverNÄr brukeren beveger musepekeren over feltet
FocusNÄr brukeren har markert feltet og er klar til Ä skrive
ActiveNÄr brukeren skriver i feltet
ErrorNÄr feltet har en feil, og en forklarende feilmelding vises
DisabledNÄr feltet ikke er tilgjengelig for interaksjon

Retningslinjer for bruk

Bruk select nÄr

  • du skal presentere mange alternativ der bare ett kan velges
  • du Ăžnsker Ă„ unngĂ„ at lange lister med alternativer blir overveldende
  • du trenger Ă„ fĂ„ plass til flere alternativer pĂ„ liten plass

UnngÄ select nÄr

  • du har fĂ„ valg og god plass (bruk heller radio button)
  • brukeren kan velge mer enn ett alternativ (bruk heller checkbox)
  • du har strukturerte alternativer med nok plass er det bedre Ă„ liste ut alle valgene

Antall og tilgjengelighet

Select fungerer best nÄr du har mange alternativer, men bare ett skal velges. Har du fÊrre enn fem valg, er radioknapper ofte bedre fordi valgene blir mer synlige og enklere Ä sammenligne.

Lange lister kan vĂŠre utfordrende for brukere med skjermleser, og det finnes kjente tilgjengelighetsproblemer med select-komponenten (les mer under “Research about this component” pĂ„ gov.uk).

Vurder om du kan forenkle spÞrsmÄlet slik at det blir fÊrre alternativer. Hvis det gir mening, bruk radio button for Ä gi en bedre opplevelse.

GjĂžr slik

GjĂžr slik – bruk select nĂ„r du har mange alternativer
Bruk select nÄr du har mange alternativer

UnngÄ

UnngĂ„ – select ved fĂ„ alternativer
UnngÄ select ved fÄ alternativer

Sortering av alternativer

Det er viktig Ä liste ut elementene dine pÄ en oversiktlig mÄte, om det sÄ er alfabetisk, tidsbasert eller en annen logisk rekkefÞlge.

GjĂžr slik

Gjþr slik – sorter i logisk rekkefþlge
Sorter alternativene i en logisk rekkefĂžlge

UnngÄ

UnngĂ„ – ulogisk rekkefĂžlge og inkonsekvente navn
UnngÄ Ä liste alternativer i ulogisk rekkefÞlge og Ä bruke forskjellige mÄter Ä skrive alternativene

Bruk select til riktig formÄl

Select passer best til ryddige, relaterte lister. Ikke bruk den til Ă„ velge innhold som egentlig krever et annet format, som adresse eller telefonnummer.

GjĂžr slik

Gjþr slik – relaterte lister
Bruk select til lister med relatert innhold

UnngÄ

UnngĂ„ – postnummer og tall som krever annet format
UnngÄ select for innhold som bÞr velges pÄ en annen mÄte

Label, hjelpetekst og plassholder

En label skal vÊre kort og presis, helst mellom ett og tre ord. UnngÄ kolon pÄ slutten og bruk verken kun store eller kun smÄ bokstaver.

Plassholder skal aldri vÊre eneste instruksjon. Den forsvinner nÄr brukeren gjÞr et valg, og er ikke alltid tilgjengelig for skjermlesere. Bruk heller label og/eller hjelpetekst for Ä gi nÞdvendig veiledning.

Les mer om innhold i skjemaelementer i input wrapper-dokumentasjonen og om god praksis for skjemaer.

Responsivitet

Select tilpasser seg automatisk tilgjengelig plass og bryter linjer der det er nÞdvendig. Test alltid pÄ ulike skjermstÞrrelser og zoom-nivÄer at det fortsatt er enkelt Ä navigere med tastatur og skjermleser.

Universell utforming

  • Alle felt skal ha en tilknyttet label, ogsĂ„ hvis den skjules visuelt (pkt-sr-only).
  • Feilmeldinger skal vĂŠre kodet som tekst og knyttet til det spesifikke feltet.
  • Select kan vĂŠre utfordrende for skjermlesere ved veldig lange lister, vurder alternativer som radio button eller combobox om det gir bedre opplevelse.

Anatomi

ElementBeskrivelse
Label (etikett)Kort og tydelig ledetekst som beskriver hva brukeren skal velge
Valgfritt-/obligatoriskMerker feltet som valgfritt eller obligatorisk
HjelpetekstKort forklaring under label som hjelper brukeren Ä forstÄ hvordan de skal fylle ut feltet
Ekspanderende hjelpetekst“Les mer”-knapp som viser mer utfyllende informasjon nĂ„r brukeren trenger ekstra forklaring
InputfeltSelve nedtrekkslisten der brukeren velger et alternativ
PlassholdertekstMidlertidig tekst i feltet som indikerer at brukeren mÄ gjÞre et valg, skal ikke erstatte label

Implementasjon i kode

Hvordan ta komponenten i bruk?

Testing

Elements: Dersom du skal skrive tester med JSDOM eller liknende er det viktig at du lar komponenten bli rendret ferdig fĂžr du tester den. Dette kan gjĂžres ved Ă„ kjĂžre denne kodelinjen fĂžr testene kjĂžres:

await window.customElements.whenDefined("pkt-select");

Props and tokens

PropTypeBeskrivelse
labelstringTekst som vises over feltet
requiredTagbooleanViser en merking som indikerer at feltet er pÄkrevd
requiredTextstringTekst som vises i pÄkrevd-merkingen
optionalTagbooleanViser en merking som indikerer at feltet er valgfritt
optionalTextstringTekst som vises i valgfritt-merkingen
tagTextstringTekst som vises i en tag ved siden av label
hasErrorbooleanAngir om feltet har feil
errorMessagestringFeilmelding som vises under feltet
helptextstringHjelpetekst som vises over feltet
helptextDropdownstringHjelpetekst som vises i en lukket boks man kan Äpne
helptextDropdownButtonstringTekst som vises pÄ knappen for Ä Äpne/lukke utvidet hjelpetekst
namestringNavn pÄ feltet
idstringId pÄ feltet
valuestringVerdi pÄ feltet
disabledbooleanAngir om feltet er disabled
inlinebooleanAngir om feltet skal vises i en linje
fullwidthbooleanAngir om feltet skal ta full bredde
ariaDescribedBystringSpesifiserer ID-en til elementet som beskriver feltet
ariaLabelledbystringSpesifiserer ID-en til elementet som navigerer til feltet
Slot (children)Beskrivelse
defaultOption elements for select component