watercolor-ui
Version:
A modern minimalist cross-framework component library
85 lines • 1.89 kB
TypeScript
/**
* 生成唯一ID
*/
export declare function generateId(prefix?: string): string;
/**
* 焦点管理
*/
export declare class FocusManager {
private previousFocus;
private trapElement;
/**
* 保存当前焦点
*/
saveFocus(): void;
/**
* 恢复之前的焦点
*/
restoreFocus(): void;
/**
* 设置焦点陷阱
*/
trapFocus(element: HTMLElement): void;
/**
* 移除焦点陷阱
*/
removeTrap(): void;
private handleFocusTrap;
private getFocusableElements;
}
/**
* ARIA 工具函数
*/
export declare const aria: {
/**
* 设置ARIA属性
*/
set(element: HTMLElement, attributes: Record<string, string>): void;
/**
* 移除ARIA属性
*/
remove(element: HTMLElement, attributes: string[]): void;
/**
* 切换ARIA属性
*/
toggle(element: HTMLElement, attribute: string, values: [string, string]): void;
};
/**
* 键盘导航支持
*/
export declare const keyboard: {
/**
* 处理Arrow键导航
*/
handleArrowNavigation(event: KeyboardEvent, items: HTMLElement[], currentIndex: number, options?: {
loop?: boolean;
vertical?: boolean;
horizontal?: boolean;
}): number;
/**
* 检查是否为激活键
*/
isActivationKey(event: KeyboardEvent): boolean;
};
/**
* 屏幕阅读器支持
*/
export declare const screenReader: {
/**
* 创建实时通知区域
*/
createLiveRegion(priority?: "polite" | "assertive"): HTMLElement;
/**
* 通知屏幕阅读器
*/
announce(message: string, priority?: "polite" | "assertive"): void;
};
/**
* 颜色对比度检查
*/
export declare function checkContrast(foreground: string, background: string): {
ratio: number;
AA: boolean;
AAA: boolean;
};
//# sourceMappingURL=accessibility.d.ts.map