/** * 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