Skip to content

Commit 3d392fe

Browse files
DiljohnSinghgjulivan
authored andcommitted
fix: adding aria-labelled by only when label is present
1 parent 92b0533 commit 3d392fe

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

packages/pluggableWidgets/slider-web/src/components/Container.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
import { ReactElement, useRef } from "react";
1+
import { ReactElement, useMemo, useRef } from "react";
22
import { SliderContainerProps } from "../../typings/SliderProps";
3+
34
import { createHandleRender } from "../utils/createHandleRender";
45
import { getStyleProp, isVertical, maxProp, minProp, stepProp } from "../utils/prop-utils";
56
import { useMarks } from "../utils/useMarks";
67
import { useNumber } from "../utils/useNumber";
8+
import { getSliderLabel } from "../utils/helpers";
79
import { useOnChangeDebounced } from "../utils/useOnChangeDebounced";
10+
811
import { Slider as SliderComponent } from "./Slider";
912

1013
export 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
/>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const getSliderLabel = (sliderId: string): Element | null => document.querySelector(`label[for="${sliderId}"]`);

0 commit comments

Comments
 (0)