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;