Before you report
Current vs. Expected behavior
On a Google Search AI Overview, hovering a citation after page translation is enabled permanently appends another copy of the same bilingual translation. Repeating the hover keeps increasing the number of .read-frog-translated-content-wrapper elements by one.
Expected: citation hover UI must not change the number of page-translation wrappers.
Observed in a live DOM trace:
before hover: 18 wrappers
after hover: 19 wrappers
existing wrappers still connected: 18
new wrappers: 1
The added wrapper follows this mutation sequence:
inserted empty inside span.yADgie
translated content inserted
removed from span.yADgie
inserted as a direct child of the original paragraph
Google temporarily moves the existing source Text node into span.yADgie while rendering citation hover UI. The page mutation handler treats that temporary element as newly added translatable content. Read Frog translates it, then Google unwraps the decorator while preserving its children, leaving the new translation wrapper behind permanently.
To Reproduce
- Open Google Search and search for
openai ipo.
- Enable Read Frog page translation in bilingual mode.
- Find the first paragraph of the AI Overview and its
Yahoo Finance +1 citation.
- Move the pointer over the citation source.
- Move away and hover the citation repeatedly.
- Observe that the same translated paragraph is appended once per hover.
Which area(s) are affected? (Select all that apply)
Browser Extension
Extension version (if applicable)
1.46.9; the implicated mutation/traversal code is unchanged on main at 1.47.1.
Provide environment information
- OS: macOS
- Browser: Google Chrome
- Website: https://www.google.com/search?q=openai+ipo
- Translation mode: bilingual
Additional context
This differs from #1096/#1686: the duplicate is not an independent double insertion during infinite scroll. It is caused by a site-created temporary wrapper around already translated, unchanged host text.
A generic fix is to skip re-walking child-list additions inside a bilingual layout source whose host text and translation wrapper are still current. Genuine text additions make the state stale and continue through the existing retranslation path.
Before you report
Current vs. Expected behavior
On a Google Search AI Overview, hovering a citation after page translation is enabled permanently appends another copy of the same bilingual translation. Repeating the hover keeps increasing the number of
.read-frog-translated-content-wrapperelements by one.Expected: citation hover UI must not change the number of page-translation wrappers.
Observed in a live DOM trace:
The added wrapper follows this mutation sequence:
Google temporarily moves the existing source Text node into
span.yADgiewhile rendering citation hover UI. The page mutation handler treats that temporary element as newly added translatable content. Read Frog translates it, then Google unwraps the decorator while preserving its children, leaving the new translation wrapper behind permanently.To Reproduce
openai ipo.Yahoo Finance +1citation.Which area(s) are affected? (Select all that apply)
Browser Extension
Extension version (if applicable)
1.46.9; the implicated mutation/traversal code is unchanged on main at 1.47.1.
Provide environment information
- OS: macOS - Browser: Google Chrome - Website: https://www.google.com/search?q=openai+ipo - Translation mode: bilingualAdditional context
This differs from #1096/#1686: the duplicate is not an independent double insertion during infinite scroll. It is caused by a site-created temporary wrapper around already translated, unchanged host text.
A generic fix is to skip re-walking child-list additions inside a bilingual layout source whose host text and translation wrapper are still current. Genuine text additions make the state stale and continue through the existing retranslation path.