# Rendering-Beleg für Topic 031 Dieser **kontrollierte lokale Funktionstest** trennt ursprünglich ausgeliefertes HTML, automatisch ergänzten Browserinhalt und Inhalt nach einer Benutzeraktion. Die Beispieltexte sind erfunden. Die Beobachtungen wurden am **13. September 2026 tatsächlich mit dem beiliegenden Testaufbau gemessen**. Es handelt sich weder um einen Googlebot-/KI-Crawler-Test noch um eine Messung von Indexierung, Ranking oder Zitierungen. ## Dokumentierter Lauf - Beginn: `2026-09-13T15:12:03.487Z` (17:12:03 Europe/Berlin) - Ende: `2026-09-13T15:12:05.476Z` - Node.js: `v26.4.0`; Playwright: `1.55.1` - Installiertes Chrome: `152.0.7977.83`, Kanal `chrome`, headless - Viewport: `1280 × 1060`; Sprache `de-DE`; Browser-Zeitzone `Europe/Berlin` - Lokaler Testserver: `http://127.0.0.1:61137/`; bei jeder Wiederholung wird ein neuer zufälliger Port gewählt. Nach dem Test beendet das Skript Server und Browser. - Jeder Zustand erhält einen frischen isolierten Browserkontext. Nur „vor Klick“ und „nach Klick“ teilen ihren eigenen Kontext. Keine Produktkonten, übernommenen Cookies oder gespeicherten Sitzungsdaten. - `Cache-Control: no-store`, deaktivierter Browser-HTTP-Cache durch Playwright-Routing, blockierte Service Worker. Jede Webseitenanfrage außerhalb der Test-Origin wird abgebrochen; **keine solche Anfrage wurde beobachtet**. - Navigation wartet auf `load`; ergänzter Text wird anhand seines tatsächlich sichtbaren Elements abgewartet. Keine pauschale Wartezeit. Alle Assertions sind bestanden. Die vollständigen Bedingungen einschließlich tatsächlicher User-Agents, HTTP-Header, Requestzeitpunkte, SHA-256-Prüfsummen der drei Fixturedateien, Fehlersammlungen und Zustände stehen in `results.json`. ## Beispielmarker | Marker | Vollständiger Beispieltext | Bereitstellung | | --- | --- | --- | | A | MARKER-A: Der Beispielservice ist für kleine Redaktionsteams gedacht. | Vom lokalen Server im ursprünglichen HTML ausgeliefert | | B | MARKER-B: Der Beispielservice zeigt Entwürfe in einer gemeinsamen Übersicht. | Durch die externe `fixture.js` automatisch als Absatz in den DOM eingesetzt | | C | MARKER-C: Für das fiktive Team gilt eine individuell vereinbarte Freigaberegel. | Erst nach echtem Playwright-Button-Klick von `/detail.json` angefordert und eingesetzt | | D | MARKER-D: Die Beispielredaktion prüft jeden Entwurf vor der Veröffentlichung. | Im ursprünglichen HTML innerhalb eines während aller Messungen geschlossenen `details`-Elements | ## Tatsächliches Ergebnis „Vorhanden“ bedeutet Text im ursprünglichen HTML beziehungsweise im DOM. „Sichtbar“ wird zusätzlich am Browser-Element geprüft. Die Rohtextauswertung entfernt `script`, `style`, `template` und `noscript`; ein bloßer Treffer in einem Skriptliteral zählt nicht als Inhalt. | Zustand | A | B | C | D | Anfragen an `/detail.json` in der jeweiligen Sitzung | | --- | --- | --- | --- | --- | --- | | HTTP-Antwort, ohne Rendering | vorhanden | fehlt | fehlt | vorhanden | 0 | | Browser, JavaScript deaktiviert | vorhanden und sichtbar | fehlt | fehlt | vorhanden, verborgen | 0 | | Browser, JavaScript aktiv, vor Interaktion | vorhanden und sichtbar | vorhanden und sichtbar | fehlt | vorhanden, verborgen | 0 | | Derselbe Browser nach Button-Klick | vorhanden und sichtbar | vorhanden und sichtbar | vorhanden und sichtbar | vorhanden, verborgen | 1 | | Frischer Browser, nur `fixture.js` gezielt blockiert | vorhanden und sichtbar | fehlt | fehlt | vorhanden, verborgen | 0 | Die letzte Variante hat JavaScript grundsätzlich aktiviert. Nur die konkrete Skriptdatei wurde durch die Testroute abgebrochen. Der Ladebutton bleibt dadurch deaktiviert. Das ist ein gezielter lokaler Fehlerfall, keine Aussage über jede mögliche Produktionsstörung. Marker D bleibt in allen Browseraufnahmen verborgen, obwohl er schon im ursprünglichen HTML und in jedem DOM vorhanden ist. Ein geschlossener Abschnitt ist deshalb in diesem Aufbau **etwas anderes als erst nachgeladener Text**. Der Test trifft keine Aussage darüber, wie eine Suchmaschine diesen Abschnitt wertet. ## Dateien - `fixture.html`, `fixture.js`, `detail.json`: vollständiger unabhängiger Testaufbau; ohne externe Ressourcen. - `run-evidence.mjs`: startet ausschließlich auf `127.0.0.1`, misst Zustände, prüft Erwartungen und beendet alle gestarteten Ressourcen. - `results.json`: strukturierte Messung und Requestprotokoll; `endpointRequestsThisSession` bezeichnet nur die jeweilige Sitzung. `endpointRequestsSoFar` ist der kumulative Zähler über den gesamten Lauf. - `http-original.html`, `http-original-text.txt`: tatsächlich abgerufene HTTP-Antwort und aus deren HTML extrahierter Körpertext. - `javascript-disabled.*`, `browser-before-click.*`, `browser-after-click.*`, `javascript-file-blocked.*`: DOM-HTML, semantischer Text, sichtbarer Text (`-visible.txt`) und PNG-Screenshot je Browserzustand. ## Reproduzieren im vorhandenen Projekt Im Verzeichnis `apps/frontend-signalscope4` mit dem bereits installierten Playwright und Chrome: ```bash node docs/blog-daily/2026-09-13-topic-031-evidence/run-evidence.mjs ``` Das Skript überschreibt die erzeugten Messdateien in seinem eigenen Ordner mit dem neuen Lauf. Bewahren Sie für einen Vergleich deshalb zuvor eine Kopie des ursprünglichen Belegordners auf. Fixturedateien und README werden vom Skript nicht verändert; bei späteren Läufen gelten die neuen Bedingungen in `results.json`, nicht automatisch das oben dokumentierte Datum oder die ursprüngliche Browserversion. ## Separat entpackten Test ausführen Benötigt wird eine aktuelle Node.js-Version mit eingebautem `fetch` (ab Node.js 20) und Playwright. Im entpackten Ordner: ```bash npm install --no-save playwright@1.55.1 node run-evidence.mjs ``` Die Standardvariante nutzt ein bereits installiertes Google Chrome. Alternativ lässt sich Playwright-Chromium ausdrücklich auswählen: ```bash npx playwright install chromium EVIDENCE_BROWSER_CHANNEL=chromium node run-evidence.mjs ``` Die Installation lädt Abhängigkeiten aus dem Internet; **der eigentliche Fixturetest verwendet ausschließlich seinen lokalen Testserver**. Ohne Paket- oder Browserinstallation im lokalen Netz kann der Test mit bereits vorhandenen Abhängigkeiten ausgeführt werden. Eine Sandbox muss das Starten des Browsers und das Binden an einen lokalen Port erlauben. Das Skript benötigt weder den Transparion-Frontendserver noch ein Backend oder Zugangsdaten. ## Aussagegrenzen Dieser kleine deterministische Aufbau belegt nur, **wann diese vier Marker in dieser Seite vorhanden beziehungsweise sichtbar waren**. Er zeigt keine Verteilung über Websites oder Frameworks und misst keine Abruf-, Rendering- oder Auswahlfähigkeit eines konkreten Such- oder KI-Dienstes. Auch ein vollständig gerenderter Text ist damit nicht nachweislich indexiert, berücksichtigt oder zitiert. User-Agent, Cachezustand und Ressourcenzugriff einer realen Prüfung können abweichen und müssen dort separat dokumentiert werden.