UNPKG

@feedal/embed

Version:

Feedal embed script to load feedback forms via JS or NPM

33 lines (32 loc) 2.09 kB
export interface AccessibilityOptions { ariaLabel?: string; ariaDescribedBy?: string; role?: string; focusTrap?: boolean; announceOnOpen?: boolean; announceOnClose?: boolean; highContrast?: boolean; reducedMotion?: boolean; } export declare class AccessibilityManager { private element; private options; private originalFocus; private focusableElements; private isTrappingFocus; private isHandlingFocus; constructor(element: HTMLElement, options?: AccessibilityOptions); private setupAccessibility; private respectUserPreferences; enableFocusTrap(): void; disableFocusTrap(): void; private updateFocusableElements; private handleKeyDown; private handleEscapeKey; private handleTabKey; private handleFocusIn; announceToScreenReader(message: string, priority?: 'polite' | 'assertive'): void; addKeyboardShortcuts(): void; destroy(): void; } export declare const ACCESSIBILITY_STYLES = "\n/* Accessibility styles */\n.feedal-reduced-motion * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n}\n\n.feedal-high-contrast {\n border: 2px solid #000 !important;\n background: #fff !important;\n color: #000 !important;\n}\n\n.feedal-high-contrast button {\n border: 2px solid #000 !important;\n background: #fff !important;\n color: #000 !important;\n}\n\n.feedal-high-contrast button:hover,\n.feedal-high-contrast button:focus {\n background: #000 !important;\n color: #fff !important;\n}\n\n/* Focus indicators */\n.feedal-widget *:focus {\n outline: 2px solid #4A90E2;\n outline-offset: 2px;\n}\n\n.feedal-widget *:focus:not(:focus-visible) {\n outline: none;\n}\n\n/* Screen reader only text */\n.feedal-sr-only {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n";