Skip to content

Commit 34dfbce

Browse files
committed
fix(ui-progress): add aria-label to ProgressBar via the screenReaderLabel prop
INSTUI-4599
1 parent b71277b commit 34dfbce

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

packages/ui-progress/src/ProgressBar/__tests__/ProgressBar.test.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,19 @@ describe('<ProgressBar />', () => {
5555
expect(progress).toHaveAttribute('value', '30')
5656
})
5757

58+
it('should render a progress element with an aria-label attribute', async () => {
59+
const { container } = render(
60+
<ProgressBar
61+
screenReaderLabel="Chapters read"
62+
valueMax={60}
63+
valueNow={30}
64+
/>
65+
)
66+
const progress = container.querySelector('progress')
67+
68+
expect(progress).toHaveAttribute('aria-label', 'Chapters read')
69+
})
70+
5871
it('should format the displayed text', async () => {
5972
const current = 30
6073
const max = 60

packages/ui-progress/src/ProgressBar/index.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,6 @@ class ProgressBar extends Component<ProgressBarProps> {
103103
typeof formatScreenReaderValue === 'function'
104104
? formatScreenReaderValue({ valueNow: valueNow!, valueMax: valueMax! })
105105
: undefined
106-
// consolidating the label and aria-valuetext to put in aria-label because
107-
// NVDA does not read aria-valuetext: https://github.com/nvaccess/nvda/issues/913
108-
// But leaving aria-valuetext because JAWS ignores aria-label
109-
const labelAndValueText = `${screenReaderLabel} ${valueText}`
110106

111107
const value = callRenderProp(renderValue, {
112108
valueNow: valueNow!,
@@ -126,7 +122,8 @@ class ProgressBar extends Component<ProgressBarProps> {
126122
css={styles?.htmlProgress}
127123
max={valueMax}
128124
value={valueNow}
129-
aria-valuetext={labelAndValueText}
125+
aria-valuetext={valueText}
126+
aria-label={screenReaderLabel}
130127
/>
131128

132129
<span css={styles?.track} role="presentation" aria-hidden="true">

0 commit comments

Comments
 (0)