@ordojs/accessibility
Version:
Comprehensive accessibility system for OrdoJS with ARIA generation, automated testing, and screen reader support
138 lines (134 loc) • 3.69 kB
TypeScript
import { EventEmitter } from 'events';
import { S as ScreenReaderConfig, L as LiveRegion, g as ScreenReaderAnnouncement } from '../index-C9qyHjXw.js';
/**
* @fileoverview OrdoJS Accessibility - Screen Reader Module
*
* Screen reader support with announcements and live regions.
*/
/**
* Screen reader manager for handling announcements and live regions
*/
declare class ScreenReaderManager extends EventEmitter {
private config;
private announcements;
private liveRegions;
private isInitialized;
/**
* Create a new ScreenReaderManager instance
*
* @param config - Screen reader configuration
*/
constructor(config: ScreenReaderConfig);
/**
* Initialize the screen reader manager
*/
initialize(): Promise<void>;
/**
* Announce message to screen readers
*
* @param message - Message to announce
* @param options - Announcement options
* @returns Announcement ID
*/
announce(message: string, options?: {
priority?: 'polite' | 'assertive';
type?: 'status' | 'alert' | 'log' | 'timer' | 'marquee' | 'progressbar';
duration?: number;
element?: string;
context?: string;
}): string;
/**
* Create live region
*
* @param regionId - Region ID
* @param element - Element selector
* @param options - Region options
* @returns Live region
*/
createLiveRegion(regionId: string, element: string, options?: {
type?: 'status' | 'alert' | 'log' | 'timer' | 'marquee' | 'progressbar';
priority?: 'polite' | 'assertive';
atomic?: boolean;
relevant?: 'additions' | 'removals' | 'text' | 'all';
busy?: boolean;
expanded?: boolean;
controls?: string;
describedBy?: string;
label?: string;
}): LiveRegion;
/**
* Update live region content
*
* @param regionId - Region ID
* @param content - New content
* @param options - Update options
*/
updateLiveRegion(regionId: string, content: string, options?: {
busy?: boolean;
expanded?: boolean;
}): void;
/**
* Remove live region
*
* @param regionId - Region ID
*/
removeLiveRegion(regionId: string): void;
/**
* Get live region by ID
*
* @param regionId - Region ID
* @returns Live region or undefined
*/
getLiveRegion(regionId: string): LiveRegion | undefined;
/**
* Get all live regions
*
* @returns Array of live regions
*/
getAllLiveRegions(): LiveRegion[];
/**
* Get announcement by ID
*
* @param announcementId - Announcement ID
* @returns Announcement or undefined
*/
getAnnouncement(announcementId: string): ScreenReaderAnnouncement | undefined;
/**
* Get all announcements
*
* @returns Array of announcements
*/
getAllAnnouncements(): ScreenReaderAnnouncement[];
/**
* Clear announcements
*/
clearAnnouncements(): void;
/**
* Get screen reader manager statistics
*
* @returns Statistics
*/
getStats(): {
totalAnnouncements: number;
totalLiveRegions: number;
announcementsByType: Record<string, number>;
liveRegionsByType: Record<string, number>;
};
/**
* Initialize screen reader support
*/
private initializeScreenReader;
/**
* Setup announcements
*/
private setupAnnouncements;
/**
* Setup live regions
*/
private setupLiveRegions;
/**
* Setup ARIA support
*/
private setupARIASupport;
}
export { ScreenReaderManager };