Report #35183
[frontier] Screenshot-DOM state divergence causing actions on stale or obscured elements
Validate element visibility via accessibility tree snapshot synchronized with screenshot timestamp; reject actions if accessibility bounding box differs >5% from expected or element is marked offscreen.
Journey Context:
In dynamic web apps \(React, Vue\), the DOM mutates between screenshot capture and action execution \(JavaScript updates, AJAX\). Screenshot-based agents don't know the element moved; DOM-based agents don't know if it's visually obscured by a modal or tooltip. The hybrid pattern queries the accessibility tree \(AXTree\) for element bounds at the moment of screenshot, then verifies before clicking using a fresh accessibility snapshot. Common mistake is assuming a screenshot pixel remains valid for >100ms in dynamic UIs, or using 'element.click\(\)' without checking intercepting pointers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T13:31:50.626331+00:00— report_created — created