# Finding 004: OpenClaw Web Fetch Reads HTML, Not Rendered Page State

## Summary

OpenClaw `web_fetch` reads server-rendered HTML and extracts readable text, but
in this baseline it did not execute JavaScript, fetch fixture image resources,
or send client capability beacons.

This is not a ChatGPT browsing result. It is a useful control case for a
lightweight fetch-and-read pipeline.

## Test Setup

- Public lab URL: `http://ai-crawler-lab.kaistone.ai:8787/`
- Run id: `openclaw-webfetch-001`
- Surface label: `openclaw-web_fetch`
- Fixtures:
  - `/lab/reading/visible-html`
  - `/lab/reading/js-rendered`
  - `/lab/reading/image-text`

## Observed Result

The lab recorded one `server_page` event for each attempt:

- `openclaw-webfetch-001-visible-html`
- `openclaw-webfetch-001-js-rendered`
- `openclaw-webfetch-001-image-text`

For all three attempts:

- `serverPageCount`: `1`
- `resourceFetchCount`: `0`
- `clientCapabilityCount`: `0`

The extracted text included the visible HTML code `HTML-ALPHA-17` on the
visible HTML fixture.

The extracted text did not include the JavaScript-rendered code `JS-ORCHID-42`.
It only saw the placeholder text from the initial HTML.

The extracted text did not include the image-only code `IMAGE-TURQUOISE-73`.
It saw the surrounding text, but did not fetch or interpret the PNG image.

## Interpretation

This behavior matches a non-rendering HTML fetcher:

- can read ordinary server-rendered text
- cannot observe client-rendered content without executing JavaScript
- cannot answer image-only content unless it fetches and interprets image pixels
- does not produce subresource or client capability events

## Confidence

High for this exact surface and run. The lab saw matching attempt ids and the
event grouping is direct.

## Next Step

Run the same fixture set through ChatGPT browsing and compare:

- whether ChatGPT fetches the same URLs
- whether it loads image resources
- whether it executes JavaScript
- whether its answer comes from visible text, source text, metadata, image
  pixels, or a model guess
