@ordojs/accessibility
Version:
Comprehensive accessibility system for OrdoJS with ARIA generation, automated testing, and screen reader support
206 lines (202 loc) • 5.76 kB
text/typescript
import { EventEmitter } from 'events';
import { A as AccessibilityConfig, a as AccessibilityAudit } from './index-C9qyHjXw.mjs';
export { b as ARIAAttribute, c as ARIARole, e as AccessibilityTestResult, d as AccessibilityViolation, C as ColorContrast, F as FocusConfig, f as FocusInfo, K as KeyboardNavigation, L as LiveRegion, g as ScreenReaderAnnouncement, S as ScreenReaderConfig, h as SemanticElement, T as TestingConfig } from './index-C9qyHjXw.mjs';
export { ARIAManager } from './aria/index.mjs';
export { FocusManager } from './focus/index.mjs';
export { ScreenReaderManager } from './screen-reader/index.mjs';
export { TestingManager } from './testing/index.mjs';
/**
* @fileoverview OrdoJS Accessibility - Accessibility Manager
*
* Central manager for coordinating all accessibility functionality.
*/
/**
* Accessibility manager for coordinating all accessibility functionality
*/
declare class AccessibilityManager extends EventEmitter {
private config;
private isInitialized;
private auditResults;
private violations;
/**
* Create a new AccessibilityManager instance
*
* @param config - Accessibility configuration
*/
constructor(config?: Partial<AccessibilityConfig>);
/**
* Initialize the accessibility system
*/
initialize(): Promise<void>;
/**
* Run accessibility audit
*
* @param url - URL to audit
* @param options - Audit options
* @returns Audit result
*/
runAudit(url: string, options?: {
level?: 'A' | 'AA' | 'AAA';
rules?: string[];
ignoreRules?: string[];
timeout?: number;
}): Promise<AccessibilityAudit>;
/**
* Generate ARIA attributes for an element
*
* @param element - Element to generate ARIA for
* @param context - Element context
* @returns Generated ARIA attributes
*/
generateARIA(element: string, context?: {
role?: string;
label?: string;
description?: string;
state?: Record<string, any>;
properties?: Record<string, any>;
}): Record<string, string>;
/**
* Check color contrast
*
* @param foreground - Foreground color
* @param background - Background color
* @returns Color contrast information
*/
checkColorContrast(foreground: string, background: string): {
ratio: number;
wcagAA: boolean;
wcagAAA: boolean;
largeText: boolean;
uiComponent: boolean;
suggestions: string[];
};
/**
* Generate semantic HTML
*
* @param content - Content to make semantic
* @param options - Semantic options
* @returns Semantic HTML
*/
generateSemanticHTML(content: string, options?: {
headingLevel?: number;
listType?: 'ul' | 'ol';
tableHeaders?: string[];
formLabels?: Record<string, string>;
}): string;
/**
* Get accessibility statistics
*
* @returns Statistics
*/
getStats(): {
totalAudits: number;
totalViolations: number;
averageScore: number;
complianceRate: number;
config: AccessibilityConfig;
};
/**
* Update accessibility configuration
*
* @param newConfig - New configuration
*/
updateConfig(newConfig: Partial<AccessibilityConfig>): void;
/**
* Get audit result by ID
*
* @param auditId - Audit ID
* @returns Audit result or undefined
*/
getAuditResult(auditId: string): AccessibilityAudit | undefined;
/**
* Get all audit results
*
* @returns Array of audit results
*/
getAllAuditResults(): AccessibilityAudit[];
/**
* Clear audit results
*/
clearAuditResults(): void;
/**
* Initialize ARIA system
*/
private initializeARIA;
/**
* Initialize testing system
*/
private initializeTesting;
/**
* Initialize focus management
*/
private initializeFocusManagement;
/**
* Initialize screen reader support
*/
private initializeScreenReader;
/**
* Run accessibility tests
*
* @param url - URL to test
* @param options - Test options
* @returns Test results
*/
private runAccessibilityTests;
/**
* Check if violations are compliant with WCAG level
*
* @param violations - Violations to check
* @param level - WCAG level
* @returns True if compliant
*/
private isCompliant;
/**
* Create audit summary
*
* @param violations - Violations
* @param testResults - Test results
* @returns Audit summary
*/
private createAuditSummary;
/**
* Calculate contrast ratio
*
* @param foreground - Foreground color
* @param background - Background color
* @returns Contrast ratio
*/
private calculateContrastRatio;
/**
* Add heading structure
*
* @param content - Content
* @param level - Heading level
* @returns Content with heading structure
*/
private addHeadingStructure;
/**
* Add list structure
*
* @param content - Content
* @param type - List type
* @returns Content with list structure
*/
private addListStructure;
/**
* Add table structure
*
* @param content - Content
* @param headers - Table headers
* @returns Content with table structure
*/
private addTableStructure;
/**
* Add form structure
*
* @param content - Content
* @param labels - Form labels
* @returns Content with form structure
*/
private addFormStructure;
}
export { AccessibilityAudit, AccessibilityConfig, AccessibilityManager };