Skip to content

Commit c6ca797

Browse files
committed
feat: improve slider aria & keys
1 parent 895e30a commit c6ca797

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

src/components/ui/Slider.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ export function Slider({ min, max, step = 1, value, onChange, className, lines,
109109
aria-valuemin={min}
110110
aria-valuemax={max}
111111
aria-valuenow={clampedValue}
112+
aria-valuetext={resolvedCenterLabel}
112113
aria-label={ariaLabel}
113114
tabIndex={0}
114115
onPointerDown={(event) => {
@@ -140,6 +141,22 @@ export function Slider({ min, max, step = 1, value, onChange, className, lines,
140141
event.preventDefault()
141142
onChange(snapValue(clampedValue + step))
142143
}
144+
if (event.key === "Home") {
145+
event.preventDefault()
146+
onChange(min)
147+
}
148+
if (event.key === "End") {
149+
event.preventDefault()
150+
onChange(max)
151+
}
152+
if (event.key === "PageDown") {
153+
event.preventDefault()
154+
onChange(snapValue(clampedValue - step * 10))
155+
}
156+
if (event.key === "PageUp") {
157+
event.preventDefault()
158+
onChange(snapValue(clampedValue + step * 10))
159+
}
143160
}}
144161
onDragStart={(event) => event.preventDefault()}
145162
className="relative h-14 cursor-pointer touch-none select-none outline-none active:cursor-grabbing"

0 commit comments

Comments
 (0)