Diagnosis accuracy fixes: override routing, ancestor signals, and wrong-element hint
3 bugs in the diagnosis path were fixed in this batch, all of them causing Lens to route users to “ask a developer” when the problem was actually solvable.
The first: Lens was checking visual properties like box-sizing and transition for override safety, which caused Elementor sites to hit developer handoff on elements that were actually fixable. The check is now scoped to visual properties only.
The second: when a stylesheet’s origin couldn’t be traced, Lens was treating the element as undiagnosable. It wasn’t. The override confidence was raised and the guidance was rewritten without DevTools jargon.
The third: Lens was missing cases where an ancestor element was causing the problem, not the element you clicked. Line-height zero, inline-attribute spacing overrides, and anomalous container heights were added to the ancestor scan, and the Edge Function was updated to surface these as the primary finding when they’re present.
The wrong-element hint was also added: when the captured element has a transparent background or an unresolvable origin, a soft note tells the user the background may be coming from a parent and suggests picking one level up.
What it answers
– why is lens sending simple fixes to a developer
– why does lens say i need a developer when i think i can fix it myself
– why isn’t my elementor element getting a fix suggestion
– how does lens know when the problem is in a parent element
– what does wrong element mean in lens
Why we built it
Diagnosis accuracy is the only thing that matters. Routing a fixable problem to developer handoff is a failed diagnosis.
- Tier-1 ancestor signal pre-ranking added: LINE_HEIGHT_ZERO, INLINE_ATTRIBUTE_OVERRIDE, and ANOMALOUS_HEIGHT now surface as the primary finding when present, before secondary signals
- TOUCH_LIKELY_PROPERTIES expanded to include border-spacing, border-collapse, clip-path, mask, filter, backdrop-filter, transform, and transform-origin
- Context flags added: elementor_editor_active fires when the Elementor editor is open; inside_modal fires when the captured element is inside a dialog or modal ancestor
- SYSTEMIC_ZERO_SPACING pattern detection added: fires when 3 or more consecutive ancestors have vertical spacing zeroed by a plugin-internal rule
- Wrong-element hint added to the confirming state when the captured element has a transparent or unresolvable background
- Override_safe check scoped to visual properties only: box-sizing, transition, and other non-visual properties no longer trigger false developer handoff on Elementor sites
- Origin-unresolvable no longer treated as undiagnosable: override confidence raised to medium, DevTools jargon removed from strategy strings
- Capture_number was never incrementing between captures: storageGetSessionData now writes the next number back to storage after each use