{
  "benchmarkId": "html-presentation-vs-pdf-2026-08-25",
  "title": "HTML presentation vs PDF same-source delivery benchmark",
  "status": "reproducible-same-source-benchmark",
  "testedAt": "2026-08-25",
  "source": {
    "path": "/benchmarks/html-presentation-vs-pdf/source.html",
    "bytes": 4790,
    "sha256": "49efac38a6319102418763567dbf2113cc2be09cca90b25963bf08963c7f6f5f",
    "slides": 3,
    "runtimeDependencies": 0
  },
  "environment": {
    "browser": "Google Chrome 151.0.7922.174",
    "browserEngine": "Chromium",
    "browserAutomation": "Playwright CLI accessibility snapshots",
    "pdfInspector": "pdfinfo",
    "textExtractor": "pdftotext"
  },
  "htmlObservations": {
    "initialProgress": "1 / 3",
    "afterArrowRight": "2 / 3",
    "interactionBeforeClick": "Interactive proof: not activated.",
    "interactionAfterClick": "Interactive proof: activated in the browser.",
    "focusedButtonSpaceProgress": "2 / 3",
    "focusedButtonSpaceState": "Interactive proof: activated in the browser.",
    "result": "slide navigation and focused-control activation passed without key collision"
  },
  "pdf": {
    "path": "/benchmarks/html-presentation-vs-pdf/rendered.pdf",
    "bytes": 192701,
    "sha256": "3f798b46a9262aec2b77090975f837fef3320781f53f8ebc330e99c88cf7e7fc",
    "pages": 3,
    "pageSizePoints": "1152 x 648",
    "tagged": true,
    "encrypted": false,
    "form": "none",
    "javascript": false,
    "textExtraction": {
      "allSlideKickersFound": true,
      "firstSlideTitleFound": true,
      "interactionInitialTextFound": true,
      "thirdSlideBodyFound": true
    },
    "result": "three static, tagged pages with extractable text and no embedded JavaScript"
  },
  "decisionBoundary": {
    "htmlPreserved": [
      "Arrow-key navigation",
      "click-driven state changes",
      "browser runtime behavior"
    ],
    "pdfPreserved": [
      "three fixed 16:9 pages",
      "visible slide content",
      "extractable text in this generated file"
    ],
    "pdfDidNotPreserve": [
      "the source JavaScript runtime",
      "the button state transition",
      "the HTML progress state"
    ]
  },
  "notMeasured": [
    "visual pixel parity",
    "PDF conformance or accessibility compliance",
    "viewer compatibility across every PDF reader",
    "print color accuracy",
    "network performance",
    "recipient engagement or business value"
  ],
  "limitations": [
    "The source includes explicit print CSS so every slide becomes one PDF page; a deck without print rules may export differently.",
    "A tagged PDF is an observed file property, not proof of PDF/UA or WCAG conformance.",
    "PDF generation metadata can change across runs, so a regenerated file may have a different SHA-256 even when visible content is unchanged.",
    "The result applies to this three-slide, zero-dependency fixture and Chrome version only."
  ],
  "officialSources": [
    "https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Media_queries/Printing",
    "https://sli.dev/guide/exporting.html",
    "https://revealjs.com/pdf-export/"
  ]
}
