diff --git a/.changeset/violet-rats-reflect.md b/.changeset/violet-rats-reflect.md new file mode 100644 index 0000000000..7122f3907f --- /dev/null +++ b/.changeset/violet-rats-reflect.md @@ -0,0 +1,5 @@ +--- +'@sumup/circuit-ui': patch +--- + +Improved the accessibility of the `ImageInput` component by associating the validation hint with the input and announcing updates to screen reader users. diff --git a/packages/circuit-ui/components/ImageInput/ImageInput.tsx b/packages/circuit-ui/components/ImageInput/ImageInput.tsx index d64943b977..e745d8d2be 100644 --- a/packages/circuit-ui/components/ImageInput/ImageInput.tsx +++ b/packages/circuit-ui/components/ImageInput/ImageInput.tsx @@ -335,6 +335,7 @@ export const ImageInput = ({ const inputRef = useRef(null); const id = customId || uniqueId('image-input_'); + const validationHintId = uniqueId('validation-hint_'); const [isLoading, setIsLoading] = useState(false); const [isDragging, setDragging] = useState(false); const [previewImage, setPreviewImage] = useState(''); @@ -434,6 +435,7 @@ export const ImageInput = ({ onClick={handleClick} disabled={disabled || isLoading} aria-invalid={invalid} + aria-describedby={validationHintId} {...props} /> {loadingLabel} - + ); }; diff --git a/packages/circuit-ui/components/ImageInput/__snapshots__/ImageInput.spec.tsx.snap b/packages/circuit-ui/components/ImageInput/__snapshots__/ImageInput.spec.tsx.snap index e319f093e5..5803e2f77c 100644 --- a/packages/circuit-ui/components/ImageInput/__snapshots__/ImageInput.spec.tsx.snap +++ b/packages/circuit-ui/components/ImageInput/__snapshots__/ImageInput.spec.tsx.snap @@ -289,14 +289,15 @@ exports[`ImageInput styles should render a custom component 1`] = ` >