Loading...
Please waitLoading...
Please waitpnpm dlx uselab@latest add use-a11y-announcer
import * as React from "react"
import { useA11yAnnouncer } from "@/hooks/use-a11y-announcer"
export function Component() {
const { announce } = useA11yAnnouncer()
const [message, setMessage] = React.useState("Form submitted successfully")
return (
<div>
<input
value={message}
onChange={(e) => setMessage(e.target.value)}
aria-label="Announcement text"
/>
<button onClick={() => announce(message, "polite")}>
Announce (polite)
</button>
<button onClick={() => announce(message, "assertive")}>
Announce (assertive)
</button>
</div>
)
}useA11yAnnouncer():
polite and assertive) appended to document.body.announce(text, politeness) to announce messages for screen readers."polite". Use "assertive" for urgent messages.Behavior:
announce briefly clears then sets text to ensure it is read.| Name | Type | Description |
|---|---|---|
announce | (text: string, politeness?: "polite" | "assertive") => void | Announces text via the chosen politeness live region. |
No announcements yet.
This uses shared ARIA live regions (polite and assertive) to announce screen reader messages globally.