Radio button
Release dato: 04.10.2023
Sist oppdatert: 07.07.2025
Du bruker radio button nÄr brukeren skal velge én av flere forhÄndsdefinerte alternativer. Radio button fungerer best nÄr det er fem eller fÊrre valg, og nÄr du Þnsker at alle alternativene skal vÊre synlige samtidig slik at brukeren enkelt kan sammenligne dem.
Radio buttons brukes ofte i skjemaer og spĂžrreskjemaer der valget er gjensidig utelukkende.
Test komponenten
Relaterte komponenter
NÄr brukeren kan velge flere alternativer.
NÄr det er mange valg (flere enn fem).
NÄr valget er binÊrt og kan endres med ett klikk.
Varianter
Varianter | Beskrivelse |
---|---|
Standard | Viser ett eller flere valg som radio buttons |
Med ramme | Radio button plassert i âtileâ-layout for tydelig gruppering |
Radio button skal alltid brukes sammen i grupper, og helst med inputwrapper (kalt âradio button groupâ i Figma). Gruppen kan inneholde:
- Label (etikett)
- Valgfritt-/obligatorisk-tag
- Hjelpetekst eller ekspanderende hjelpetekst
- Feilmelding
Retningslinjer for bruk
Bruk radio button nÄr
- brukeren skal velge én av flere alternativer
- valgene utelukker hverandre
- det er viktig at alle alternativene vises samtidig
UnngÄ radio button nÄr
- brukeren kan velge flere alternativer (bruk da checkbox)
- det er fÄ alternativer og kun én innstilling skal slÄs av/pÄ (bruk switch)
- du har mange valg (bruk da select)
Skriv tydelige etiketter og hjelpetekst
Skriv klare og konkrete etiketter som beskriver hva valget innebĂŠrer, ikke bare âJaâ eller âNeiâ. UnngĂ„ kolon etter label og store bokstaver i hele ordet, skriv slik at brukeren forstĂ„r hva du spĂžr etter.
Hjelpetekster skal vĂŠre hele setninger. Du kan legge hjelpetekst over gruppen eller under hvert valg. Bruk ekspanderende hjelpetekst ved behov for mer informasjon eller lenker.
GjĂžr slik
UnngÄ
Ikke bruk radio button om brukeren skal kunne velge flere valg
Radio buttons skal kun brukes dersom det ene valget utelater det andre.
GjĂžr slik
UnngÄ
Antall valg
Radio button skal ha minst to alternativer. Har du mer enn fem valg, bĂžr du vurdere Ă„ bruke select for bedre oversikt og brukervennlighet.
GjĂžr slik
UnngÄ
Plassering
Plasser radio button vertikalt for best lesbarhet. Horisontal plassering kan brukes hvis det kun er to til tre korte valg. Hvis etikettene er lange eller bryter linjer, bruk vertikal plassering.
PĂ„ mobil skal radio buttons alltid ligge vertikalt.
Responsivitet
Radio button tilpasser seg skjermstĂžrrelse automatisk, men
- bruk vertikal plassering pÄ smÄ skjermer
- test linjebryting, lesbarhet og fokushÄndtering
Universell utforming
Radio buttons skal kunne brukes med tastatur og skjermleser:
- Bruk
fieldset
oglegend
for Ă„ gruppere radio buttons, elleraria-labelledby
- Naviger mellom valg med âpil oppâ og âpil nedâ
- Velg med âmellomromâ
- SĂžrg for tydelig fokusring ved tabbing
- UnngÄ disabled-tilstand. Hvis du mÄ deaktivere noe, forklar hvorfor og hva som kreves for Ä aktivere det
Beskriver hvordan du gjĂžr radio buttons tilgjengelige
Anatomi
Element | Beskrivelse |
---|---|
1. Etikett | Overskrift for gruppen |
2. Valgfritt-/obligatorisk | Tilleggsinfo om feltets krav |
3. Hjelpetekst | Utfyllende forklaring |
4. Ekspanderende hjelpetekst | For mye info eller lenker |
5. Radio buttons | Alternativene brukeren kan velge mellom |
6. Radio button hjelpetekst | Hjelpetekst under en enkelt radio button |
Implementasjon i kode
Hvordan ta komponenten i bruk?
import @oslokommune/punkt-elements/dist/pkt-radiobutton.js;
import { PktRadioButton } from '@oslokommune/punkt-react';
<script src="https://punkt-cdn.oslo.kommune.no/latest/elements/pkt-radiobutton.js" type="module"></script>
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-radiobutton");
Props og tokens
Prop | Type | Beskrivelse |
---|---|---|
id | string | Unik ID for radiobutton |
name | string | Navn for radiobutton |
label | string | Tekst i label for radiobutton |
checked | boolean | Er radiobutton valgt? |
defaultChecked | boolean | Skal radiobutton vĂŠre valgt som standard? |
hasTile | boolean | Boks (tile) |
disabled | boolean | Er radiobutton deaktivert? |
checkHelptext | string | Hjelpetekst som vises under radiobutton |
value | string | Verdien som sendes nÄr radiobutton er valgt |
hasError | boolean | Indikerer om radiobutton har en feil |
requiredTag | Boolean | Viser en merking som indikerer at feltet er pÄkrevd |
requiredText | string | Tekst som vises i pÄkrevd-merkingen |
optionalTag | boolean | Viser en merking som indikerer at feltet er valgfritt |
optionalText | string | Tekst som vises i valgfritt-merkingen |
tagText | string | Tekst som vises i en tag ved siden av label |
Event | Beskrivelse |
---|---|
change | Hendelse som utlÞses nÄr radiobutton endres |