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

Varianter

Farger (skins)

Progressbar kommer i fire ulike skins:

SkinBeskrivelse
Dark blueStandard
BlueInformativ fremdrift eller nĂžytral verdi
GreenFremdrift mot et positivt mÄl
RedFremdrift 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

Gjþr slik – korte og konsise tekster
Bruk korte og konsise tekster

UnngÄ

UnngĂ„ – lange eller uklare tekster
UnngÄ lange eller uklare tekster

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 tekstHva 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 tekstaria-label=“Du har fullfþrt 3 av 7 steg”

Anatomi

ElementBeskrivelse
Fylt omrÄdeViser faktisk fremgang
Tomt omrÄdeViser gjenvÊrende del av prosessen
TekstValgfri beskrivelse av fremdrift
Etikett/labelValgfri tittel som gir kontekst

Implementasjon i kode

Hvordan ta komponenten i bruk?

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

PropTypeBeskrivelse
skindark-blue
light-blue
green
red
Velg farge pÄ fremdriftslinjen
titlestringTittelen pÄ fremdriftslinjen
valueMinnumberMinimumsverdien for fremdriftslinjen
valueMaxnumberMaksimumsverdien for fremdriftslinjen
ariaLabelstringaria-label for fremdriftslinjen
ariaLabelledbystringaria-labelledby for fremdriftslinjen
ariaValueTextstringaria-valuetext for fremdriftslinjen
valueCurrentnumberNÄvÊrende verdi for fremdriftslinjen
statusTypenone
percentage
fraction
Type statusindikator
statusPlacementleft
following
center
Plassering av statusindikator
idstringid for fremdriftslinjen
titlePositionleft
center
Plassering av tittelen
roleprogressbar
meter
Velg hva fremdriftslinjen skal brukes til
ariaLiveoff
polite
assertive
Velg Þnsket nivÄ av aria-live