@ordojs/forms
Version:
Comprehensive form handling system for OrdoJS
89 lines • 2.92 kB
TypeScript
/**
* Accessibility features for forms with ARIA attributes and screen reader support
*/
import type { AccessibilityConfig, FieldState, FormInstance } from './types.js';
export declare class AccessibilityManager {
private static instance;
private announceElement;
static getInstance(): AccessibilityManager;
constructor();
/**
* Create hidden element for screen reader announcements
*/
private createAnnounceElement;
/**
* Announce message to screen readers
*/
announce(message: string, priority?: 'polite' | 'assertive'): void;
/**
* Generate accessibility attributes for form fields
*/
generateFieldAttributes(fieldName: string, fieldState: FieldState, config?: AccessibilityConfig): Record<string, string>;
/**
* Generate accessibility attributes for form containers
*/
generateFormAttributes(formId: string, formInstance: FormInstance): Record<string, string>;
/**
* Generate error message attributes
*/
generateErrorAttributes(fieldName: string): Record<string, string>;
/**
* Generate help text attributes
*/
generateHelpTextAttributes(fieldName: string): Record<string, string>;
/**
* Generate label attributes
*/
generateLabelAttributes(fieldName: string): Record<string, string>;
/**
* Handle field validation announcements
*/
announceFieldValidation(fieldName: string, fieldState: FieldState): void;
/**
* Handle form submission announcements
*/
announceFormSubmission(formInstance: FormInstance): void;
/**
* Focus management for form navigation
*/
focusFirstError(formInstance: FormInstance): void;
/**
* Create skip links for form navigation
*/
createSkipLinks(formId: string): HTMLElement;
/**
* Enhance form with accessibility features
*/
enhanceForm(formElement: HTMLFormElement, formInstance: FormInstance): void;
/**
* Update error summary
*/
private updateErrorSummary;
/**
* Update field accessibility attributes
*/
private updateFieldAccessibility;
/**
* Create accessible field wrapper
*/
createFieldWrapper(fieldName: string, label: string, helpText?: string): HTMLElement;
/**
* Clean up accessibility resources
*/
cleanup(): void;
}
/**
* Global accessibility manager instance
*/
export declare const accessibility: AccessibilityManager;
/**
* Utility functions for accessibility
*/
export declare const a11y: {
manager: AccessibilityManager;
announce: (message: string, priority?: "polite" | "assertive") => void;
focusFirstError: (form: FormInstance) => void;
enhanceForm: (element: HTMLFormElement, form: FormInstance) => void;
createFieldWrapper: (name: string, label: string, helpText?: string) => HTMLElement;
};
//# sourceMappingURL=accessibility.d.ts.map