/** * Browser a11y collection, ported from mirofish/gui-use (ends/browser/actions.py). * These are browser-DOM specifics and belong ONLY to BrowserDriver — never promote * anything here into the platform-neutral layer. * * Each constant is a JS function source string, injected via page.evaluate on a single * frame. Cross-frame aggregation and coordinate translation happen in TypeScript * (browser/driver.ts). Placeholders `__ROLES__` / `__TEXT_NAME__` are substituted below, * so the exported strings are ready to evaluate. * * Every non-obvious rule below was paid for by a real failure; the comments are the * record. The most important invariant: the *display* name may include inferred icon * hints, but the *identity* name (used to verify a ref hasn't moved) must be only text * that literally exists on the page. Never let an inferred name veto a click. */ /** Per-viewport element cap. Dense pages hit ~130 real controls; leave headroom. */ export declare const MAX_REFS = 320; /** Identity-caliber name, standalone — used by the locator to verify a ref hasn't moved. */ export declare const ELEM_NAME_JS: string; /** * Enumerate actionable elements in one frame: pierce shadow DOM, tag hits with * data-mfref="eN", return frame-relative rects + nextK (cross-frame continuous numbering). * Viewport filtering and iframe offset translation are done in TypeScript. */ export declare const VIEWPORT_JS: string; /** Body-text excerpt: direct text nodes in the viewport, top-to-bottom, deduped of parent/child overlap. */ export declare const EXCERPT_JS: string; /** Full readable page text, for gui_read. */ export declare const FULL_TEXT_JS: string;