From 8c524348c371d228abda081ff0e972386635f931 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=A5=BF=E6=B1=9F=E6=9C=88?= <2533643340@qq.com>
Date: Sun, 27 Sep 2026 01:14:24 +0800
Subject: [PATCH 1/2] ProgressBar: Fix inconsistent aria-valuenow rounding for
decimal strings
---
packages/react/src/ProgressBar/ProgressBar.test.tsx | 8 ++++++++
packages/react/src/ProgressBar/ProgressBar.tsx | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/packages/react/src/ProgressBar/ProgressBar.test.tsx b/packages/react/src/ProgressBar/ProgressBar.test.tsx
index 80abd803f46..72b31d35905 100644
--- a/packages/react/src/ProgressBar/ProgressBar.test.tsx
+++ b/packages/react/src/ProgressBar/ProgressBar.test.tsx
@@ -82,6 +82,14 @@ describe('ProgressBar', () => {
expect(getByRole('progressbar')).toHaveAttribute('aria-valuenow', '50')
})
+ it.each([33.8, '33.8'])('rounds decimal progress %j consistently for `aria-valuenow`', progress => {
+ const {getByRole} = render()
+ const progressBar = getByRole('progressbar')
+
+ expect(progressBar).toHaveAttribute('aria-valuenow', '34')
+ expect(progressBar.style.getPropertyValue('--progress-width')).toBe('33.8%')
+ })
+
it('applies `0` as a value for `aria-valuenow`', () => {
const {getByRole} = render()
diff --git a/packages/react/src/ProgressBar/ProgressBar.tsx b/packages/react/src/ProgressBar/ProgressBar.tsx
index 579779f8f5f..0825e0196eb 100644
--- a/packages/react/src/ProgressBar/ProgressBar.tsx
+++ b/packages/react/src/ProgressBar/ProgressBar.tsx
@@ -33,7 +33,7 @@ export const Item = forwardRef(
},
forwardRef,
) => {
- const progressAsNumber = typeof progress === 'string' ? parseInt(progress, 10) : progress
+ const progressAsNumber = typeof progress === 'string' ? parseFloat(progress) : progress
const ariaAttributes = {
'aria-valuenow':
From c1ccb6197f1e14e76818043d980293ff701b5121 Mon Sep 17 00:00:00 2001
From: Siddharth Kshetrapal
Date: Wed, 7 Oct 2026 15:05:53 +0200
Subject: [PATCH 2/2] Add ProgressBar changeset
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.changeset/fix-progressbar-decimal-aria.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .changeset/fix-progressbar-decimal-aria.md
diff --git a/.changeset/fix-progressbar-decimal-aria.md b/.changeset/fix-progressbar-decimal-aria.md
new file mode 100644
index 00000000000..665253ba4ca
--- /dev/null
+++ b/.changeset/fix-progressbar-decimal-aria.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': patch
+---
+
+ProgressBar: Fix `aria-valuenow` rounding for decimal string progress values