1- import { ReactElement , useRef } from "react" ;
1+ import { ReactElement , useMemo , useRef } from "react" ;
22import { SliderContainerProps } from "../../typings/SliderProps" ;
3+
34import { createHandleRender } from "../utils/createHandleRender" ;
45import { getStyleProp , isVertical , maxProp , minProp , stepProp } from "../utils/prop-utils" ;
56import { useMarks } from "../utils/useMarks" ;
67import { useNumber } from "../utils/useNumber" ;
8+ import { getSliderLabel } from "../utils/helpers" ;
79import { useOnChangeDebounced } from "../utils/useOnChangeDebounced" ;
10+
811import { Slider as SliderComponent } from "./Slider" ;
912
1013export function Container ( props : SliderContainerProps ) : ReactElement {
@@ -45,6 +48,8 @@ function InnerContainer(props: InnerContainerProps): ReactElement {
4548 } ) ;
4649 // Label generated by systemProperty has the format: {widgetId}-label
4750 const ariaLabelledByForHandle = `${ props . id } -label` ;
51+ const sliderLabel = getSliderLabel ( props . id ) ;
52+ const hasLabel = useMemo ( ( ) => Boolean ( sliderLabel ) , [ sliderLabel ] ) ;
4853
4954 return (
5055 < SliderComponent
@@ -61,7 +66,7 @@ function InnerContainer(props: InnerContainerProps): ReactElement {
6166 step = { props . step }
6267 onChange = { onChange }
6368 marks = { marks }
64- ariaLabelledByForHandle = { ariaLabelledByForHandle }
69+ ariaLabelledByForHandle = { hasLabel ? ariaLabelledByForHandle : undefined }
6570 handleRender = { handleRender }
6671 ref = { sliderRef }
6772 />
0 commit comments