/**
* Configuration options for ARIA live region
*/
export interface UseAriaLiveRegionOptions {
/** Politeness level for screen reader announcements */
politeness?: 'polite' | 'assertive' | 'off';
/** Whether to announce all content as one atomic unit */
atomic?: boolean;
/** What type of changes to announce */
relevant?: 'additions' | 'removals' | 'text' | 'all';
/** Custom container element ID (defaults to auto-generated) */
containerId?: string;
}
/**
* Return value from useAriaLiveRegion
*/
export interface UseAriaLiveRegionReturn {
/** Function to announce a message to screen readers */
announce: (message: string) => void;
/** Component to render the live region portal */
LiveRegion: React.FC;
/** Container element ID for aria-describedby if needed */
regionId: string;
}
/**
* useAriaLiveRegion - Creates accessible screen reader announcements
*
* This hook provides a centralized way to make announcements to screen reader users.
* It uses a portal-based live region to avoid multiple aria-live elements on the page.
*
* WCAG References:
* - 4.1.3 Status Messages (Level A - at least AA)
* - WAI-ARIA 1.2 Live Regions
*
* @example
* ```typescript
* const { announce, LiveRegion, regionId } = useAriaLiveRegion({
* politeness: 'polite'
* });
*
* // Announce search results
* useEffect(() => {
* if (totalMatches > 0) {
* announce(`Found ${totalMatches} matches`);
* }
* }, [totalMatches, announce]);
*
* return (
* <>
*
*
* >
* );
* ```
*/
export declare const useAriaLiveRegion: (options?: UseAriaLiveRegionOptions) => UseAriaLiveRegionReturn;
//# sourceMappingURL=useAriaLiveRegion.d.ts.map