The useId
hook in React is a utility that generates a unique ID for each component instance, helping ensure accessible and conflict-free HTML IDs across components.
Why It Matters:
aria-describedby
.useId
helps prevent ID collisions.useId
automatically generates a stable and unique ID string for each component instance.useId
is compatible with server-side rendering, avoiding hydration mismatches.import { useId } from 'react';
function PasswordField() {
const passwordHintId = useId();
return (
<>
<label>
Password:
<input
type="password"
aria-describedby={passwordHintId}
/>
</label>
<p id={passwordHintId}>
The password should contain at least 18 characters
</p>
</>
);
}
In this example, useId
generates a unique ID for the paragraph that describes the password input. This ID is then referenced in the aria-describedby
attribute of the input field, making it accessible to screen readers.
The useId
hook in React ensures that elements have consistent and unique IDs across renders and environments, including server-side rendering. This enhances both accessibility and code robustness when building reusable components.