diff --git a/packages/slider/__tests__/slider.test.tsx b/packages/slider/__tests__/slider.test.tsx index 7c33f8df1..a57602af9 100644 --- a/packages/slider/__tests__/slider.test.tsx +++ b/packages/slider/__tests__/slider.test.tsx @@ -110,6 +110,25 @@ describe("", () => { fireEvent.keyDown(handle, { key: "PageDown", code: 34 }); expect(getCurrentValue(handle)).toEqual(min + tenSteps); }); + + it("does not move when disabled", () => { + const { getByRole } = render( + + + + + + + ); + const handle = getByRole("slider"); + + fireEvent.click(handle); + + fireEvent.keyDown(handle, { key: "ArrowRight", code: 39 }); + fireEvent.keyDown(handle, { key: "ArrowRight", code: 39 }); + + expect(getCurrentValue(handle)).toEqual(0); + }); }); }); diff --git a/packages/slider/src/index.tsx b/packages/slider/src/index.tsx index 4b9783f21..4893070a8 100644 --- a/packages/slider/src/index.tsx +++ b/packages/slider/src/index.tsx @@ -393,6 +393,10 @@ const SliderInput = forwardRefWithAs< // https://www.w3.org/TR/wai-aria-practices-1.2/#slider_kbd_interaction let handleKeyDown = useEventCallback((event: React.KeyboardEvent) => { + if (disabled) { + return; + } + let newValue: number; let tenSteps = (max - min) / 10; let keyStep = step || (max - min) / 100;