Progressbar
Release dato: 26.06.2024
Sist oppdatert: 17.01.2025
En progressbar (fremdriftsindikator) gir brukeren visuell tilbakemelding pÄ hvor langt en prosess har kommet. Den brukes til Ä vise fremgang i en oppgave eller handling, for eksempel under lasting, opplasting eller i en stegvis prosess.
Test komponenten
Relaterte komponenter
NÄr du vil vise at en prosess pÄgÄr, men ikke har en tydelig fremdrift
NÄr du vil vise en serie steg og hvor langt brukeren har kommet
NÄr du vil gi en status, f.eks. om fremdriften er fullfÞrt eller feiler
Varianter
Farger (skins)
Progressbar kommer i fire ulike skins:
Skin | Beskrivelse |
---|---|
Dark blue | Standard |
Blue | Informativ fremdrift eller nĂžytral verdi |
Green | Fremdrift mot et positivt mÄl |
Red | Fremdrift mot kritisk grense eller negativ verdi |
Retningslinjer for bruk
Bruk progressbar nÄr
- du har to eller flere steg i en prosess
- brukeren mÄ vite hvor langt de har kommet, og hva som gjenstÄr
- du Ăžnsker Ă„ redusere usikkerhet eller frafall underveis
UnngÄ progressbar nÄr
- prosessen er ett steg, da er den overflĂždig
- rekkefĂžlgen i en prosess ikke er relevant
- du allerede bruker en annen fremdriftsindikator
Progressbar skal vĂŠre tydelig
Det er ikke pÄkrevd Ä ha etikett eller tekst, men det bÞr vÊre klart hva progressbaren representerer. Dersom prosessen bestÄr av flere steg, bÞr teksten forklare hvor i prosessen brukeren er.
GjĂžr slik
UnngÄ
Responsivitet
Progressbar tilpasser seg tilgjengelig plass og fungerer pÄ bÄde store og smÄ skjermer. Den skalerer automatisk i bredde, men du bÞr teste at etiketter og tekster forblir lesbare pÄ alle skjermstÞrrelser.
Universell utforming
Gi skjermleseren riktig informasjon
Skjermlesere mÄ fÄ vite hva progressbaren viser. Bruk riktig kombinasjon av aria-label
, aria-labelledby
eller aria-valuetext
.
- Bruk
aria-label
hvis baren ikke har en synlig etikett - Bruk
aria-labelledby
hvis etiketten stÄr utenfor komponenten - Bruk
aria-valuetext
hvis prosenttall alene ikke gir mening, for eksempel i stegvis fremdrift (â5 av 10â)
Hvis du bruker statusType="fraction"
, kan skjermleser lese â50 %â. Bruk aria-valuetext
for Ă„ si âSpĂžrsmĂ„l 5 av 10â hvis det gir mer mening.
Bruk riktig rolle
Progressbar har to ARIA-roller:
progressbar
: viser fremdrift i en prosess (standard)meter
: viser en verdi innenfor et spenn (for eksempel temperatur eller poengsum)
Etiketten mÄ vÊre tydelig
En progressbar skal alltid ha en forklarende etikett, enten som tittel i komponenten, eller med aria-labelledby
. GjÞr det klart: Hva mÄles? Hva gjenstÄr?
Eksempler
Visuell tekst | Hva skjermleser bÞr fÄ vite |
---|---|
50âŻ% | â50 prosent fullfĂžrtâ (ok hvis konteksten er tydelig) |
5 av 10 spĂžrsmĂ„l | âSpĂžrsmĂ„l 5 av 10â via aria-valuetext |
Ikke synlig tekst | aria-label=âDu har fullfĂžrt 3 av 7 stegâ |
Beskriver hvordan du gjĂžr fremdriftsindikatorer tilgjengelige
Beste praksis for fremdriftsindikatorer
Anatomi
Element | Beskrivelse |
---|---|
Fylt omrÄde | Viser faktisk fremgang |
Tomt omrÄde | Viser gjenvÊrende del av prosessen |
Tekst | Valgfri beskrivelse av fremdrift |
Etikett/label | Valgfri tittel som gir kontekst |
Implementasjon i kode
Hvordan ta komponenten i bruk?
import @oslokommune/punkt-elements/dist/pkt-progressbar.js;
import { PktProgressbar } from '@oslokommune/punkt-react';
<script src="https://punkt-cdn.oslo.kommune.no/latest/elements/pkt-progressbar.js" type="module"></script>
Testing
Elements og React: 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-progressbar");
Dersom du bruker verktÞyene i punkt-testing-utils sÄ kan dette bli gjort automatisk for deg.
Props og tokens
Prop | Type | Beskrivelse |
---|---|---|
skin | dark-blue light-blue green red | Velg farge pÄ fremdriftslinjen |
title | string | Tittelen pÄ fremdriftslinjen |
valueMin | number | Minimumsverdien for fremdriftslinjen |
valueMax | number | Maksimumsverdien for fremdriftslinjen |
ariaLabel | string | aria-label for fremdriftslinjen |
ariaLabelledby | string | aria-labelledby for fremdriftslinjen |
ariaValueText | string | aria-valuetext for fremdriftslinjen |
valueCurrent | number | NÄvÊrende verdi for fremdriftslinjen |
statusType | none percentage fraction | Type statusindikator |
statusPlacement | left following center | Plassering av statusindikator |
id | string | id for fremdriftslinjen |
titlePosition | left center | Plassering av tittelen |
role | progressbar meter | Velg hva fremdriftslinjen skal brukes til |
ariaLive | off polite assertive | Velg Þnsket nivÄ av aria-live |