[BUG] claude-in-chrome: read_page/get_page_text/javascript_tool cannot access content inside shadow DOM (Google Play Console & other Angular SPAs)

Open 💬 0 comments Opened Jun 25, 2026 by Anjos2

Summary

The Claude-in-Chrome browser tools cannot read or interact with page content rendered inside shadow DOM (web components). On SPAs that render their main content in shadow roots — e.g. Google Play Console (Angular / Angular Material) — the tools only see the top-level page chrome (nav bar, footer) and miss the actual content (table rows, forms, buttons).

Combined with the already-reported screenshot document_idle timeout (#49027 — which also triggers on these SPAs because they keep network connections open), this leaves no working way to perceive the page content: the screenshot times out, and read_page / get_page_text / javascript_tool cannot reach the shadow-DOM content either.

Environment

  • Claude-in-Chrome (Claude Code Chrome extension), via the MCP browser tools
  • Browser: Microsoft Edge on Windows 11
  • Target: play.google.com/console (Angular SPA, content in shadow DOM)

Steps to reproduce

  1. Navigate to any Google Play Console app-list or app-content page.
  2. computer { action: "screenshot" } -> fails: Page still loading (executeScript waited 45000ms for document_idle) (this is #49027 — these SPAs keep network connections open).
  3. read_page { filter: "interactive" } -> returns only the top nav/footer links (app-list, policy-center, settings, ...). The app rows and form controls are absent.
  4. get_page_text -> No text content found.
  5. find { query: "<app name> row" } -> not found.
  6. javascript_tool:

``js
document.querySelectorAll('a[href*="/app/"]').length // -> 0
/SomeVisibleText/i.test(document.body.innerText) // -> false
``
Even a recursive walk that pierces open shadow roots finds 0 of the expected content links — the content appears to live in closed shadow roots (or is otherwise unreachable from the page's light DOM via standard DOM APIs).

Expected

read_page / get_page_text / find / javascript_tool should be able to perceive content inside shadow DOM (including closed shadow roots), since the underlying CDP DOM.getDocument({ pierce: true }) and accessibility APIs can traverse shadow trees. Without this, Play Console and similar Angular/Lit/Stencil SPAs are a blind spot.

Impact

Tasks on Google Play Console (and other shadow-DOM-heavy admin consoles) cannot be automated: there is no fallback, because the screenshot path is also blocked (#49027). The only workaround is fully manual operation by the human.

Suggested direction

  • Have read_page traverse shadow trees via CDP Accessibility.getFullAXTree (includes shadow content) or DOM.getDocument({ pierce: true, depth: -1 }).
  • Provide a documented way for javascript_tool to pierce shadow DOM, or expose a deep-query helper.

Related

  • #49027 — screenshot document_idle timeout (also triggers on these SPAs)
  • #52907 — request for DOM/rendering inspection capability

View original on GitHub ↗