# HTML Quality Probe

These checks are diagnostic and non-gating. A `needs-review` status means the generated artifacts found a likely conversion-quality issue, not that artifact generation failed.

- Status: `needs-review`
- Source PDF: [../source.pdf](../source.pdf)
- Generated HTML: [../semantic-continuous/index.html](../semantic-continuous/index.html)
- Sample notes: Ghent Workgroup press release with embedded fonts, mixed emphasis, links, images, and page decoration.
- Text reference: `pdfbox-net-run-fallback`
- Pages analyzed: 4

## Page Summary

| Page | Status | Source words | HTML words | Token coverage | Long HTML tokens | Foreground delta | Severe color delta | Text/object overlaps |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| 1 | `needs-review` | 130 | 130 | 1 | 0 | 0.028 | 0.013 | 20 |
| 2 | `needs-review` | 198 | 198 | 1 | 0 | 0.024 | 0 | 7 |
| 3 | `needs-review` | 233 | 233 | 1 | 0 | 0.043 | 0 | 6 |
| 4 | `needs-review` | 238 | 240 | 0.992 | 0 | 0.127 | 0 | 14 |

## Issue Categories

| Category | Status | Evidence |
| --- | --- | --- |
| Text reconstruction and word boundaries | `passed` | All analyzed pages passed; lowest token coverage is 0.992 on page 4. |
| Page geometry and text-run structure | `needs-review` | 0 page dimension check(s) and 2 text-run count check(s) need review; max run-count delta is 61. |
| Text wrapping around images and vector objects | `needs-review` | 0 text/image overlap(s) and 47 text/vector overlap(s) were found. |
| Visual foreground parity | `passed` | Max foreground delta is 0.127; max source-only foreground ratio is 0.083; max HTML-only foreground ratio is 0.091. |
| Visual color parity | `passed` | Max mean CIE Lab color delta is 1.303; max severe color-delta ratio is 0.013; minimum compared page-pixel ratio is 0.058. |
| Source fixture expectations (manual review) | `skipped` | The source PDF does not contain recognizable self-describing fixture expectations. |
| Probe setup and tool availability | `passed` | The browser probe and available renderers ran. |

## Current Limitations

- Continuous semantic HTML is evaluated as reflowed content; it may not preserve the original PDF page height, per-glyph run count, or exact page-local geometry.
- Large vector overlays are not semantically attached to nearby content; review whether these are decorative backgrounds, table rules, clipping masks, or true text/object collisions.

## Findings

- Page 1, `text-vector-overlap`: 20 text run(s) overlap large rendered vector boxes.
- Page 2, `text-run-count`: The browser DOM contains 63 text runs, but the extracted layout contains 73.
- Page 2, `text-vector-overlap`: 7 text run(s) overlap large rendered vector boxes.
- Page 3, `text-run-count`: The browser DOM contains 47 text runs, but the extracted layout contains 108.
- Page 3, `text-vector-overlap`: 6 text run(s) overlap large rendered vector boxes.
- Page 4, `text-vector-overlap`: 14 text run(s) overlap large rendered vector boxes.

## Artifacts

- [page-1-html.png](page-1-html.png)
- [page-1-source.png](page-1-source.png)
- [page-1-diff.png](page-1-diff.png)
- [page-1-color-heatmap.png](page-1-color-heatmap.png)
- [page-1-visual-report.html](page-1-visual-report.html)
- [page-2-html.png](page-2-html.png)
- [page-2-source.png](page-2-source.png)
- [page-2-diff.png](page-2-diff.png)
- [page-2-color-heatmap.png](page-2-color-heatmap.png)
- [page-2-visual-report.html](page-2-visual-report.html)
- [page-3-html.png](page-3-html.png)
- [page-3-source.png](page-3-source.png)
- [page-3-diff.png](page-3-diff.png)
- [page-3-color-heatmap.png](page-3-color-heatmap.png)
- [page-3-visual-report.html](page-3-visual-report.html)
- [page-4-html.png](page-4-html.png)
- [page-4-source.png](page-4-source.png)
- [page-4-diff.png](page-4-diff.png)
- [page-4-color-heatmap.png](page-4-color-heatmap.png)
- [page-4-visual-report.html](page-4-visual-report.html)
