# agent axe run on prerendered html missed client-only violations - how to fix it

## TL;DR

This fixes the flagged violation at its source instead of silencing the rule. The agent ran axe on prerendered HTML and missed every client-only violation, because the DOM it scanned was not the DOM users get. Follow the steps, re-run the scan, and gate the rule in CI so it stays fixed.

## The error, verbatim

```text
agent axe run on prerendered html missed client-only violations
```

## Fix it step by step

### Step 1

Run axe after hydration: wait for network idle and the framework's ready state before injecting axe.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 2

For SPAs, scan post-route-change too; prerender covers the shell, not the app.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 3

Compare violation counts prerender vs post-hydration; the gap is what the agent was missing.

Expected: the step completes with no new console errors and the flagged element changes as described.

### Step 4

Pin the wait strategy in the agent's scan script so it cannot regress.

Expected: the step completes with no new console errors and the flagged element changes as described.

## When to use this skill

- Your scan report lists this exact rule or failure
- You are clearing automated accessibility failures before release or audit
- A CI accessibility gate is red because of this item

## When NOT to use this skill

- Prerender scans are fine for static content; they are not a substitute for the hydrated app.
- The issue only appears in manual screen-reader testing and no automated rule flags it
- You are doing a full manual WCAG audit; this skill covers one automated check

## Compatibility

Agent workflow guardrail; verify with axe-playwright post-hydration scan.

## Variant phrasings

### agent axe run on prerendered html missed client-only violations

Same underlying issue and the same fix. Searchers phrase it different ways; the remediation does not change.

## Why it happens

The agent ran axe on prerendered HTML and missed every client-only violation, because the DOM it scanned was not the DOM users get. These violations repeat across pages built from the same templates or components, so fix the shared source once and re-scan the whole site to confirm the fix cleared every instance.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_oP1KRKa3VMB-VIyyt1ax4A
