Skip to content

Commit 104fc46

Browse files
authored
feat(Button): loading sets aria-disabled (#3211)
1 parent fe69516 commit 104fc46

File tree

5 files changed

+19
-1
lines changed

5 files changed

+19
-1
lines changed

.changeset/eleven-hounds-mix.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@digdir/designsystemet-css": patch
3+
---
4+
5+
**Button**: When setting both `aria-busy` and `aria-disabled`, we don't turn down opacity, and show a progress cursor

.changeset/fast-years-push.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@digdir/designsystemet-react": patch
3+
---
4+
5+
**Button**: `loading` now sets `aria-disabled="true"`

packages/css/src/button.css

+6
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,12 @@
9999
&:is(:disabled, [aria-disabled='true']) {
100100
cursor: not-allowed;
101101
opacity: var(--ds-disabled-opacity);
102+
103+
/* When both aria-disabled and aria-busy is true, opacity should be 1 and cursor should be progress */
104+
&[aria-busy='true'] {
105+
opacity: 1;
106+
cursor: progress;
107+
}
102108
}
103109

104110
/* Using :where to prevent adding specificity */

packages/react/src/components/Button/Button.mdx

+2-1
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,11 @@ Ikon skalerer automatisk basert på knappestørrelse, men du endre denne ved å
118118
### Last inn
119119

120120
Når vi skal vise brukeren at knappen laster noe, kan vi kombinere knappen med en `spinner`.
121+
I eksempelet under bruker vi proppen `loading` for å vise at knappen laster.
121122

122123
<Canvas of={ButtonStories.Loading} />
123124

124-
I eksempelet over har vi brukt `aria-disabled` til å deaktivere knappene. Dette er den anbefalte måten for å vise at en knapp er deaktivert. Da kan den fortsatt få fokus når noen navigerer med tastaturet. Slik vil blant annet skjermlesere og andre hjelpemidler bli informert om at knappen finnes, men ikke er aktiv.
125+
I eksempelet over blir `aria-disabled` satt av `loading="true"`. Dette er den anbefalte måten for å vise at en knapp er deaktivert. Da kan den fortsatt få fokus når noen navigerer med tastaturet. Slik vil blant annet skjermlesere og andre hjelpemidler bli informert om at knappen finnes, men ikke er aktiv.
125126

126127
Denne egenskapen stopper ikke automatisk knappen fra å utløse `onClick`.
127128

packages/react/src/components/Button/Button.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
6464
return (
6565
<Component
6666
aria-busy={Boolean(loading) || undefined}
67+
aria-disabled={Boolean(loading) || undefined}
6768
className={cl('ds-button', className)}
6869
data-icon={icon || undefined}
6970
data-variant={variant}

0 commit comments

Comments
 (0)