- Detection is by name and form method. A commit button with only an icon and no accessible name, or an app that commits on
mousedown,pointerupor a custom key, isn’t held. Classifying the button’s name as a write on Tools fixes a known one. - Background writes (
fetch/ XHR not caused by a held click, like autosave) aren’t checked. - The record is what’s next to the button: the nearest container with fields. A search box beside the button would be taken for the record; values only in hidden state aren’t seen.
- One
guard(page)per page. Guard new tabs and popups yourself. - browser-use: main frame only (iframes fail closed); no network check of
form.submit(). - Playwright MCP / browser MCP servers aren’t covered: their calls carry an element ref, not the record. Use the in-page hook with your own Playwright or browser-use.
Browser agents
Browser limits
What the browser hook doesn’t catch yet.