PDF/UA-1-Report-Shadow: Slice-F-Apple-Viewer-Nachweis

  • Datum: 28. August 2026
  • Issue: #333 bleibt offen
  • Entscheidung: ADR-0064
  • Branch: codex/pdf-ua-viewer-slice-f
  • Basis: Slice-E-Evidenz-Merge 969fd4130c359c8ec4c3dc0cbffcfdc56608abda
  • Implementierungscommit: e1e3e587973947d37fbbaada734d27cefb5a936b
  • Pull Request: #543
  • Merge-Commit: e998d3e42886adef491eb489f5c8a874aca652a3
  • Produktionsdeployment: dpl_D4fhMzmmwCDvhGrTcAN3Mm3TMcEL

Aussagegrenze

Slice F ergänzt den bestehenden Vier-Tier-veraPDF-/Poppler-Vertrag um einen automatisierten Lauf durch Apple PDFKit und Quartz. Die Prüfung lädt die vier im selben lokalen QA-Lauf erzeugten synthetischen PDF/UA-Dateien, liest deren Seiten, Text und Linkannotationen und rendert alle Seiten in Graustufen.

Der automatisierte Slice-F-Lauf ist keine manuelle Apple-Vorschau-, Chrome/PDFium- oder VoiceOver-Abnahme. Die nachgelagerte manuelle Prüfung vom 4. September 2026 ist unten getrennt protokolliert. Der Shadow verwendet keine echten Karten oder gespeicherten Nutzerreports, aktiviert keinen öffentlichen PDF/UA-Renderer und behauptet keinen PDF/UA-Produktrollout. Der Release belegt ausschließlich den automatisierten Apple-Stack auf dem synthetischen, previewgeschützten Shadow und dessen unverändert geschlossene Produktionsgrenze.

Implementierter Vertrag

  • macOS-only Zusatzgate innerhalb von npm run qa:pdf:ua-shadow;
  • vier Tiers in fester Reihenfolge: free, standard, premium, planer;
  • je acht Seiten, zwei Linkannotationen und acht seitenspezifische Textmarker;
  • pro Seite mindestens 100 Zeichen aus der von PDFKit gelesenen Textschicht;
  • 32 Quartz-Raster mit 1.190 × 1.684 Pixeln, 8-Bit-Graustufe und weißem Seitenhintergrund;
  • dieselben fail-closed Rastergrenzen wie im Poppler-Vertrag für Helligkeit, helle Ränder, Schwarzflächen und sichtbaren Body-Ink;
  • expliziter Nicht-macOS-Hinweis statt eines fälschlich grünen Apple-Checks;
  • automatische Entfernung aller kurzlebigen PDFs und Rasterdateien.

Lokale Verifikation

Die integrierte Prüfung lief auf:

  • macOS 26.6.2, Build 25G83;
  • Apple Vorschau 11.0 als installierter Systemviewer; die GUI wurde nicht manuell bedient;
  • Apple Swift 6.3.3 auf arm64-apple-macosx26.0;
  • Apple PDFKit und Quartz aus demselben Systemstand;
  • veraPDF 1.30.2 sowie beiden vorhandenen Poppler-Renderern.

npm run qa:pdf:ua-shadow bestand vollständig:

TierSeitenLinkannotationenPDFKit-Textzeichen je SeitePDF-SHA-256
free82749, 1385, 1094, 1380, 597, 487, 1042, 1350655ef939e5b66b7fadd7f976df81346ddfc8b116855491d429f0bc919d2c30ae
standard82757, 1389, 1098, 1384, 601, 853, 1046, 1354bf50ecc776d41d89852af7638d9adf34c96894fdfffb24b569667a1df6ba18df
premium82755, 1388, 1097, 1383, 600, 851, 1045, 135392f41c419732c98e44bf1ce82eec2879eb82f556209d60b9d4a6d1d90ea71079
planer82753, 1387, 1096, 1382, 599, 493, 1044, 1352ded5d8e948f8166653589310470fcb29cad8abaef3f094a7f92203e552f83d07

PDFKit lud damit 4/4 Dateien und 32/32 Seiten. Quartz erzeugte 32/32 Graustufenraster. Die mittlere Seitenhelligkeit lag zwischen 245,13 und 251,63; der sichtbare Body-Ink zwischen 2,800 % und 7,428 %. Alle vorhandenen Grenzen für helle Seitenränder und Schwarzflächen bestanden ebenfalls.

Die drei gezielten Script-Testdateien bestanden mit 28/28 Tests. Sie binden Plattformgate, Swift-Quelle, Parser, fehlende Tiers, Seiten, Linkannotationen und Textschicht sowie den prozesslosen Nicht-macOS-Pfad.

Release-Verifikation

Der Implementierungs-CI-Lauf 33166935667 lief exakt auf e1e3e587973947d37fbbaada734d27cefb5a936b vollständig grün: verify (Job 98834480435), PDF-UA-Feasibility (Job 98834480234) und PDF-Poppler-Regression (Job 98834480477) bestanden. Der geschützte Preview dpl_5NCcXGThbbpocRGCsfhS2VsZMg5H lieferte denselben Commit.

Alle sechs aktualisierten Dokuportalseiten antworteten im Preview mit HTTP 200, private, no-store, noindex und den erwarteten Slice-F-Markern. Die vier Tier-POSTs lieferten application/pdf, private, no-store, slice-e-1, keine Auth.js-Cookies und je acht Seiten. veraPDF 1.30.2 bestand je Datei 106/106 Regeln. Die gemessenen Preview-Dateien waren:

TierBytesChecksPDF-SHA-256Renderer / Finalisierung / GesamtVercel-Request-ID
free130.16224.130977cedff43ccb0138f920f2e3ccc21c0289a17ba64732b17750751ea80b845e41.120,5 / 220,5 / 1.341,2 msfra1::iad1::2sm2x-1787916464857-0a6bda2f0850
standard131.72724.990083ea21590fd84957b6a77651d0c5af342f7b68206261ef8280df180af7f540b848,3 / 177,4 / 1.025,8 msfra1::iad1::gzv9l-1787916469460-6b8067d782be
premium131.74224.9100a01e513ef7559059b14e14e61ac6c7daaa09f6112045297e22b26f9e544916b705,4 / 93,9 / 799,4 msfra1::iad1::7b4nr-1787916473282-8328fa0900c1
planer130.16124.25570b018ebdb006bb6e0205d9fe41263f3ac128179c9b135383babeddfa976127a720,1 / 117,2 / 837,3 msfra1::iad1::p27xs-1787916476735-0a8b72928c68

Apple PDFKit und Quartz prüften anschließend genau diese vier deployten Preview-Dateien: 4/4 PDFs, 32/32 Seiten, je zwei Linkannotationen und dieselben seitenspezifischen Textzeichen wie im lokalen Lauf. Die mittlere Helligkeit lag erneut zwischen 245,13 und 251,63, der sichtbare Body-Ink zwischen 2,800 % und 7,428 %; helle Ränder und Schwarzflächen bestanden ebenfalls. Damit ist der Apple-Viewercheck nicht nur gegen lokal erzeugte, sondern auch gegen tatsächlich aus Vercel ausgelieferte Shadow-Dateien belegt.

PR #543 wurde als e998d3e42886adef491eb489f5c8a874aca652a3 gemergt. Das produktive Deployment dpl_D4fhMzmmwCDvhGrTcAN3Mm3TMcEL ist READY, trägt exakt diesen Commit und beliefert www.landnutzen.at. Dort antworteten Entscheidung, Nachweis, Report-Output, Report-Contract, Feature-Seite und Status mit HTTP 200, private, no-store, noindex und den erwarteten Slice-F-Markern. Alle vier Tier-POSTs sowie ein GET der internen Shadow-Route blieben leer 404, private, no-store und ohne Cookies. Der schreibfreie öffentliche Guard POST /api/v1/report mit {} blieb bei 400 address_missing und trug denselben X-Deploy-Commit.

Der Main-CI-Lauf 33167769423 bestand vollständig auf exakt diesem Merge-Commit: verify (Job 98837184168, 11:53 Minuten), PDF-UA-Feasibility (Job 98837183958, 1:47 Minuten) und PDF-Poppler-Regression (Job 98837184138, 0:51 Minuten) waren grün.

Manuelle Apple-Vorschau- und VoiceOver-Abnahme

Am 4. September 2026 wurde exakt die bereits aus dem geschützten Preview geladene Premium-Datei manuell mit Apple Vorschau 11.0 auf macOS 26.6.2 (Build 25G83) geprüft:

  • Datei: landnutzen-pdf-ua-slice-f-premium.pdf;
  • Größe: 131.742 Byte;
  • SHA-256: 0a01e513ef7559059b14e14e61ac6c7daaa09f6112045297e22b26f9e544916b;
  • alle acht A4-Seiten im Einzelseitenmodus vollständig sichtbar, ohne leere, abgeschnittene oder überlagerte Inhalte;
  • Seite 1 bis 8 mit aktivem VoiceOver per Tastatur erreichbar;
  • nativer Accessibility-Baum mit 19 Überschriften, sieben Tabellen samt Zellen, sechs Listen, drei informativen Abbildungen mit inhaltlichen Alternativtexten und zwei benannten Links;
  • die Links wurden als „LandNutzen-Methodik zur Standortprüfung öffnen“ und „LandNutzen-Datenschutzerklärung öffnen“ exponiert; sie wurden nicht aktiviert, damit die Prüfung keine externe Navigation auslöst;
  • VoiceOver wurde unmittelbar vor der Prüfung aktiviert und danach wieder auf den vorherigen Zustand aus zurückgestellt.

Damit sind die manuelle Apple-Vorschau-Prüfung und die VoiceOver-Stichprobe für den synthetischen Premium-Shadow abgeschlossen. Der Nachweis ist weiterhin keine Chrome/PDFium-Abnahme, kein Test echter Karteninhalte, kein kontrollierter Produktrollout und kein PDF/UA-Live-Readback eines echten Nutzerreports.

Die Dokumentation dieser manuellen Abnahme wurde mit PR #545 als 2e3f10b0ddab12df0977894f8b50ea9dd8d67b02 nach main gemergt. Der Main-CI-Lauf 33903176899 bestand auf diesem Merge-Commit vollständig: verify (Job 101121813336), PDF-UA-Feasibility (Job 101121813243) und PDF-Poppler-Regression (Job 101121812926) waren grün. Das produktive Deployment dpl_BjuqsrnJrhT5AG2C1U8WQJ9tCq3Z war READY, trug exakt denselben Commit und belieferte www.landnutzen.at.

Entscheidung, Nachweis, Report-Output, Report-Contract, Feature-Seite und Status antworteten dort mit HTTP 200, private, no-store, noindex und den erwarteten Markern „4. September 2026“, „VoiceOver“ und „Chrome/PDFium“. Damit ist auch der veröffentlichte Dokumentationsstand der manuellen Abnahme commitgebunden rückgelesen.

Offene Produktabnahme

BereichStand
Apple PDFKit / Quartz, automatisiert, vier Tiersabgeschlossen: lokal und Preview 32/32 grün
veraPDF und beide Poppler-Rendererlokal, Preview und CI grün
manuelle Apple-Vorschau-Abnahme, synthetischer Premium-Shadowabgeschlossen: 8/8 Seiten am 4. September 2026
manuelle VoiceOver-Stichprobe, synthetischer Premium-Shadowabgeschlossen: Semantik und 8/8 Seiten
Chrome/PDFium-Abnahmeoffen
echte Karteninhalte und kontrollierter Produktrolloutoffen
PDF/UA-Live-Readback eines echten Nutzerreportsoffen

Issue #333 bleibt bis zum Abschluss der Produktgates offen.