Skip to content

Commit 9f7c907

Browse files
authored
fix: Use slider role for table column resize controls (#3419)
1 parent 477ba48 commit 9f7c907

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/table/__tests__/resizable-columns.test.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -412,13 +412,13 @@ describe('resize with keyboard', () => {
412412
mockWidth = 80;
413413
const { wrapper } = renderTable(<Table {...defaultProps} />);
414414
const columnResizerWrapper = wrapper.findColumnResizer(1)!;
415-
const columnResizerSeparatorWrapper = wrapper.findColumnHeaders()[0].find('[role="separator"]')!;
415+
const columnResizerSliderWrapper = wrapper.findColumnHeaders()[0].find('[role="slider"]')!;
416416

417417
columnResizerWrapper.focus();
418418
columnResizerWrapper.keydown(KeyCode.enter);
419419
columnResizerWrapper.keydown(KeyCode.left);
420420

421-
expect(columnResizerSeparatorWrapper.getElement()).toHaveAttribute('aria-valuenow', '80');
421+
expect(columnResizerSliderWrapper.getElement()).toHaveAttribute('aria-valuenow', '80');
422422
});
423423
});
424424

src/table/resizer/index.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -234,14 +234,14 @@ export function Resizer({
234234
data-awsui-table-suppress-navigation={true}
235235
ref={resizerSeparatorRef}
236236
id={separatorId}
237-
role="separator"
237+
role="slider"
238238
tabIndex={-1}
239+
aria-labelledby={ariaLabelledby}
239240
aria-hidden={!isKeyboardDragging}
240-
aria-orientation="vertical"
241-
aria-valuenow={headerCellWidth}
242-
// aria-valuetext is needed because the VO announces "collapsed" when only aria-valuenow set without aria-valuemax
243-
aria-valuetext={headerCellWidth.toFixed(0)}
244241
aria-valuemin={minWidth}
242+
// aria-valuemax is needed because the slider is inoperable in VoiceOver without it
243+
aria-valuemax={Number.MAX_SAFE_INTEGER}
244+
aria-valuenow={headerCellWidth}
245245
data-focus-id={focusId}
246246
onBlur={() => {
247247
setResizerHasFocus(false);

0 commit comments

Comments
 (0)