Komponenter
Radio
Radio er et alternativ brukeren kan velge. Bruk flere Radio for å vise en liste med alternativer. Brukerne kan bytte mellom alternativene, men kan kun velge ett.
React
Unable to parse html
const Preview = () => { return <Radio label='Radio' value='value' name='name' />; }; render(<Preview />)
Bruk Radio når
- brukeren skal velge ett av flere alternativer i skjemaer
Unngå Radio når
- brukeren skal kunne velge flere alternativer, bruk heller
Checkbox
Eksempel
Gruppering
Bruk ledetekst til å stille spørsmålet og legg eventuelt ved beskrivelse der det er nødvendig.
React
Unable to parse html
const Group = () => { return ( <Fieldset> <Fieldset.Legend>Hvordan ønsker du at vi kontakter deg?</Fieldset.Legend> <Fieldset.Description> Velg metoden som passer best for deg. Vi bruker dette kun til å sende viktig informasjon om saken din. </Fieldset.Description> <Radio label='E-post' description='Vi bruker e-postadressen du har oppgitt tidligere (navn@epost.no)' value='epost' name='kontakt' /> <Radio label='SMS' description='Vi bruker telefonnummeret du har oppgitt tidligere (99 99 99 99)' value='sms' name='kontakt' /> <Radio label='Brev' description='Levering kan ta 3-5 virkedager, avhengig av posttjenesten.' value='brev' name='kontakt' /> </Fieldset> ); }; render(<Group />)
Med feil
Hvis brukeren prøver å gå videre uten å svare på et obligatorisk spørsmål, skal feilmeldingen gjelde for hele gruppen med alternativer.
React
Unable to parse html
const WithError = () => { return ( <Fieldset> <Fieldset.Legend>Hvilken bydel bor du i?</Fieldset.Legend> <Fieldset.Description> Trondheim er delt inn i fire bydeler </Fieldset.Description> <Radio label='Østbyen' value='ostbyen' name='city' aria-invalid='true' /> <Radio label='Lerkendal' value='lerkendal' name='city' aria-invalid='true' /> <Radio label='Heimdal' value='heimdal' name='city' aria-invalid='true' /> <Radio label='Midtbyen' value='midtbyen' name='city' aria-invalid='true' /> <ValidationMessage data-color='danger'> Du må velge en bydel før du kan fortsette. </ValidationMessage> </Fieldset> ); }; render(<WithError />)
Retningslinjer
Vi bruker Radio når vi skal gi brukerne mulighet til å velge kun ett alternativ. Skal de kunne velge flere, bruker du Checkbox.
Vi bør ikke ha mer enn syv alternativer i en gruppe. Trenger vi å gi brukerne flere valg, bør vi heller bruke Suggestion eller Select. Hvis vi bare skal gi brukerne ett valg, kan en Switch eller Checkbox passe bedre.
Sortering
Sorter svaralternativene alfabetisk hvis det ikke er en god grunn til å gjøre noe annet. Vær forsiktig med å la det mest brukte svaralternativet stå først hvis det er et personlig spørsmål eller et verdispørsmål, som for eksempel legning eller partitilhørighet.
Plassering
Plasser helst radioknapper vertikalt. Da blir det lettere å skanne listen og lese alternativene. For brukere som må forstørre teksten, er horisontale lister utfordrende.
Ved horisontal visning må det være klart hvilken tekst som hører til hvilken knapp. Du kan bruke horisontal visning når det bare er to alternativer med korte tekster som "Ja" og "Nei", eller i en vurderingsskala som går fra «helt uenig» til «helt enig». Likert-skala (snl.no).
React
Unable to parse html
const Inline = () => { return ( <Fieldset> <Fieldset.Legend>Kontaktes på e-post?</Fieldset.Legend> <Fieldset.Description> Bekreft om du ønsker å bli kontaktet per e-post. </Fieldset.Description> <div style={{ display: 'flex', flexWrap: 'wrap', gap: 'var(--ds-size-6)' }} > <Radio name='my-inline' label='Ja' value='ja' /> <Radio name='my-inline' label='Nei' value='nei' /> </div> </Fieldset> ); }; render(<Inline />)
Vær forsiktig med forhåndsvalgt alternativ
Vurder ut fra konteksten om det er riktig å ha et forhåndsvalgt alternativ. Et forhåndsvalgt alternativ kan påvirke brukerens mulighet til å ta et bevisst valg, og noen kan oppleve det som manipulerende eller diskriminerende.
Tekst
En gruppe med flere alternativer bør alltid ha ledetekst (legend) og svaralternativ (label). Begge kan ha en beskrivelse (description) for mer forklaring. Beskrivelsen skal komme like etter ledeteksten når den skal hjelpe brukerne med å forstå spørsmålet og gi brukeren nødvendig informasjon før de tar et valg.
Beskrivelsen etter label skal hjelpe brukerne å forstå svaralternativet.
Gjør slik
Unngå dette
Svaralternativene skal være så korte som mulig, og hvert alternativ bør ha samme språklige form.
Rediger denne siden på github.com (åpnes i ny fane)