Jede Seite erklaert sich selbst -- drei Zeilen, und die dritte rechnet sich aus

Filipe: "ich will in jeder seite auch eine kleine detaillierte aber
schnelle erklaerung kurz und knapps noch zu jeder seite."

DREI ZEILEN AUF JEDER DER 25 SEITEN

  WOFUER    was auf dieser Seite steht
  DU TUST   was man hier konkret macht
  MERKE     nur dort, wo es etwas gibt, das man falsch versteht
  SIEHT     wer diese Seite ueberhaupt oeffnen kann

Offen sichtbar und nicht hinter einem Aufklapper: "schnell" war seine
Bedingung, und eine Erklaerung, die man erst aufklappen muss, ist
genau dann nicht da, wenn man sie braucht.

DIE ZEILE "SIEHT" IST GERECHNET, NICHT GESCHRIEBEN

Sie kommt aus der Rechtetafel -- aus derselben, aus der auch die
Schranke ihre Entscheidung holt. Haette ich sie danebengeschrieben,
waere sie beim ersten Umstellen in "Wer sieht was" still falsch
geworden, in einem Satz, der behauptet, wer etwas sieht. Die Pruefung
stellt die Tafel deshalb wirklich um und sieht nach, ob der Satz
mitwandert.

Die Erklaerung haengt hinter derselben Schranke wie die Seite: Wer sie
nicht oeffnen darf, bekommt 404 -- nicht 403, sonst waere dieser Weg
eine Landkarte des Hauses.

Eingebunden ist sie nicht ueber eine Liste von Dateinamen, sondern
ueber "wer kopf.js laedt": die 26. Seite ist damit automatisch dabei.
Fuenf Seiten haben keine Kopfzeile (Chat, Kalender, Start, Team,
Teamlage) -- dort haengt der Kasten an <main>, sonst waeren
ausgerechnet die haeufigsten Seiten lautlos leer geblieben.

ZWEI EIGENE MAENGEL, GEFUNDEN DURCH HINSEHEN, NICHT DURCH DIE PRUEFUNG

Die erste Fassung war gruen -- und stand mitten auf dem Buehnenbild,
mit einem Lichtfleck hinter "SIEHT". Und "Wofuer" sprach fast woertlich
die Unterzeile darueber nach. Beides misst die Pruefung jetzt: Kontrast
mit dem dritten Ausgang ("steht auf der Buehne" ist kein Ergebnis) und
die Wortueberschneidung mit der Unterzeile.

ZWEI BEFUNDE, DIE SCHON VORHER ROT WAREN

1. pruef-tempo-workspace verglich die UNKOMPRIMIERTE Groesse gegen eine
   Grenze, die fuer die Leitung gedacht war -- waehrend der Kommentar
   daneben "das ist, was wirklich ueber die Leitung ging" behauptete.
   Live steht Caddy davor. Nachgemessen an der echten Adresse:
   start.css 345 KB -> 111 KB zstd. Die Pruefung wog also 1,2 MB, wo
   Filipe 500 KB bekommt. Jetzt wird Komprimierbares im Pruefstand
   gzip-gepackt (115 KB gegen 111 KB live -- auf vier Prozent genau),
   geurteilt wird ueber die uebertragene Groesse, berichtet werden
   beide. Dabei prompt in die dokumentierte Falle getappt: `body()` auf
   einen Ereignisstrom endet nie, der Lauf blieb stehen. Jetzt
   ausgenommen, plus Notbremse je Koerper.

2. pruef-ueberlappung konnte seit Tagen nicht mehr zeigen, dass sie
   eine Ueberlappung ueberhaupt findet: Ihre Gegenprobe legt einen Knopf
   auf einen anderen, traf aber 6 px daneben. Zwei Ursachen in einer
   Zeile -- `position: fixed` bezieht sich auf einen Vorfahren mit
   `transform`, und die `transition` der Knoepfe liefert beim sofortigen
   Messen die Lage von vorher. Jetzt `transform` + `transition: none`:
   34x36 px erkannt, 20 Seiten-Breiten-Paare, 0 Befunde.

PRUEFUNGEN: pruef-erklaerung neu mit 44, davon 8 im Browser (Seite mit
und ohne Kopfzeile, Handy, Kontrast, Echo). Mein Schild stand auf
10,88 px und lag unter der Hausgrenze von 11,5 -- gefunden von
pruef-css-klassen, nicht vom Auge.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-14 18:20:30 +02:00
co-authored by Claude Opus 5
parent 0cce22c08c
commit de19684883
36 changed files with 1307 additions and 353 deletions
+23 -3
View File
@@ -133,9 +133,29 @@ for (const breite of BREITEN) {
/* Den letzten Knopf genau auf den ersten legen. */
const erst = teile[0].getBoundingClientRect();
const letzt = teile[teile.length - 1];
letzt.style.position = "fixed";
letzt.style.left = erst.left + "px";
letzt.style.top = erst.top + "px";
/* MIT transform STATT position:fixed (14.09.2026).
`position: fixed` bezieht sich NICHT immer auf das Fenster: Hat
ein Vorfahr `transform`, `filter` oder `backdrop-filter`, wird er
selbst zum Bezugsrahmen. Die Kopfleiste hat so einen. Der Knopf
landete dadurch 6 px neben dem Ziel -- gemessen {x:-6, y:36} --,
die Gegenprobe meldete „nicht erkannt“, und damit konnte diese
Pruefung tagelang nicht mehr zeigen, dass sie eine Ueberlappung
ueberhaupt findet. Eine Pruefung, die das nicht kann, bestaetigt
nichts.
`transform` verschiebt relativ zur EIGENEN aktuellen Lage. Wo der
Bezugsrahmen liegt, ist damit gleichgueltig. */
/* UND OHNE UEBERBLENDUNG. Die Knoepfe der Kopfleiste haben eine
`transition`; wer unmittelbar nach dem Setzen misst, bekommt die
Lage von VORHER zurueck -- die Bewegung hat noch nicht
stattgefunden. Das war die zweite Haelfte desselben Fehlers.
Derselbe Grund, aus dem in pruef-dabei-optik das Haekchen
„0 → 0“ meldete, bis dort die Ueberblendung abgewartet wurde. */
letzt.style.transition = "none";
const vorher = letzt.getBoundingClientRect();
letzt.style.transform =
`translate(${erst.left - vorher.left}px, ${erst.top - vorher.top}px)`;
letzt.style.zIndex = "99";
// Messen wie oben, aber nur dieses eine Paar.
const a2 = teile[0].getBoundingClientRect(), b2 = letzt.getBoundingClientRect();