/** * tap-targets.ts — WCAG 2.5.5 / Apple 44pt tap-target audit module. * * Two input modes: * url mode — renders a page with Playwright, collects every interactive * element's getBoundingClientRect w/h via page.evaluate. * snapshot mode — accepts a caller-supplied elements[] array (no browser needed). * * For each element: pass = (w >= minSize && h >= minSize). Failures include a * concrete fix suggestion. Results sorted worst-first (largest combined deficit). */ import { CaptureUnavailableError } from "./capture.js"; export { CaptureUnavailableError }; export type TapTargetElement = { selector: string; role?: string; text?: string; w: number; h: number; x?: number; y?: number; }; export type TapTargetRow = { selector: string; role: string; text: string; w: number; h: number; deficit_w: number; deficit_h: number; fix: string; }; export type TapTargetResult = { url?: string; viewport?: { w: number; h: number; }; mobile_emulation?: boolean; minSize: number; total: number; passing: number; failing: number; fix_table: TapTargetRow[]; warnings: string[]; }; export type TapTargetOptions = { viewport?: { w: number; h: number; }; timeoutMs?: number; minSize?: number; }; /** * Score a pre-collected snapshot of interactive elements. No browser required. */ export declare function auditTapTargetsSnapshot(elements: TapTargetElement[], minSize?: number): TapTargetResult; /** * Render a URL in headless Chromium, collect every interactive element's * computed rect and ARIA role, then score with auditTapTargetsSnapshot. */ export declare function auditTapTargetsUrl(url: string, opts?: TapTargetOptions): Promise;