Skip to content

release: v3.1.0 — clickable naming (text/onclick/icon/role) - #52

Merged
KeyCode17 merged 3 commits into
mainfrom
develop
May 29, 2026
Merged

KeyCode17 merged 3 commits into
mainfrom
develop

Conversation

@KeyCode17

Copy link
Copy Markdown
Owner

Promote v3.1.0 to main. Tagging v3.1.0 after merge triggers the release build and crates.io publish (minor bump satisfies the publish gate).

Includes #51: clickable elements now named from descendant text, onclick handlers, FontAwesome icon classes, and role; CDP-native clickable detection; cap 80→200 with visible-first truncation.

🤖 Generated with Claude Code

KeyCode17 and others added 3 commits May 30, 2026 04:32
Previously the LLM received clickables as bare `[N] tag`, named only when
an aria-label/alt/title/name/placeholder/value attribute was present.
Anchor text, JS click handlers, and icon-only buttons arrived anonymous,
leaving the screenshot as the sole disambiguator.

- Detection unions the attribute heuristic with CDP's native isClickable
  set, catching JS-attached listeners, not just markup.
- ax_name falls back through: aria/alt/title/name/placeholder
  -> descendant text -> onclick handler name (humanized, verb only)
  -> FontAwesome icon class -> role.
- role overrides the displayed tag, so <i role="button"> renders as button.
- clickable_map: raise cap 80 -> 200 and sort visible-first so on-screen
  elements survive truncation.
- Split snapshot_parser into snapshot_parser/clickables/clickable_naming
  to satisfy the 200-LOC module cap.

Verified live against headless Chrome via the new (ignored) e2e test
clickable_names_resolve_text_onclick_icon_and_role.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(dom): name clickables from text, onclick, icon class, role + bump 3.1.0
@KeyCode17
KeyCode17 merged commit cd4ee22 into main May 29, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant