Push-Zustand macht der Uebersicht keinen Platz mehr streitig

Ein Gesamtdurchlauf aller Suiten nach dem heutigen Tag hat vier
Fehlschlaege in pruef-handy.mjs gezeigt -- eine Regression aus meiner
eigenen Arbeit.

DIE URSACHE

Die Karte zum Zustand der Benachrichtigung stand als ausgewachsener
Block ganz oben in der Uebersicht. Auf dem Handy schob sie die erste
Kennzahl auf 513 Punkte nach unten: Man oeffnete die Verwaltung und sah
zuerst einen Hinweis, die Arbeit erst nach dem Scrollen.

ZWEI ANLAEUFE, WEIL DER ERSTE ZU KURZ SPRANG

Zuerst wurde nur der GUTE Fall zu einer Zeile. Das half nichts -- im
Pruefbrowser sind Benachrichtigungen blockiert, also griff weiterhin
der Zweig mit der grossen Karte. Eine Aenderung, die nur den Fall
behebt, den man gerade vor Augen hat, ist keine.

Jetzt sind alle drei Zustaende eine Zeile mit Punkt und Kurztext, die
Erklaerung erst beim Aufklappen. Und der gute Zustand steht am ENDE der
Uebersicht statt oben: Eine Bestaetigung, dass nichts zu tun ist,
gehoert nicht an den Anfang. Oben bleibt nur, was Handlung verlangt.

Ergebnis: 513 -> 204 Punkte bis zum Ende des Kopfbereichs, Laenge
2635 -> 2028.

DREI RUNDUNGSFAELLE

.wd-btn--klein und zwei summary-Elemente kamen mit Rahmen und
Zeilenhoehe auf 43,x Punkte. Der Test vergleicht mit "< 44", gibt aber
gerundet "44" aus -- man sucht dann einen Fehler in einer Zahl, die
richtig aussieht. Jetzt 44.5 bzw. 46; optisch aendert das nichts.

ZWEI PRUEFUNGEN PRAEZISIERT, NICHT AUFGEWEICHT

1. "Erste Zahl im oberen Drittel" mass ab dem Seitenanfang und schlug
   damit auch bei einer BERECHTIGTEN Warnung an. Ein Test, der
   Warnungen als Mangel zaehlt, erzieht dazu, sie zu verstecken. Er
   misst jetzt den festen Kopfbereich (Titel, Suche, Reiter) -- also
   das, was man nicht wegbekommt.

2. Die Folgepruefung mass zunaechst Punkte-Abstaende. Das war fragil:
   Der Reiterstreifen klebt beim Scrollen oben fest, eine Messung
   lieferte -204. Sie zaehlt jetzt HINWEISBLOECKE statt Punkte --
   unabhaengig von Scrollposition und Schriftgroesse. Gemeint war
   ohnehin "hoechstens eine Meldung", nicht "hoechstens 140px".

56/56 in pruef-handy, alle uebrigen Suiten unveraendert gruen.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-26 23:01:12 +02:00
co-authored by Claude Opus 5
parent 1c3b3808ba
commit 504965e875
11 changed files with 154 additions and 37 deletions
+60 -6
View File
@@ -531,11 +531,60 @@ console.log("\n=== Verwaltung auf dem Handy ===");
pruefe("und der Streifen laesst sich wischen (sonst waeren sie abgeschnitten)",
reiter.wischbar, "Hoehe " + reiter.hoehe + "px");
/* Der Kopfbereich darf nicht den halben Bildschirm fressen. */
const bisInhalt = await seite.evaluate(() =>
Math.round(document.querySelector(".vw-ub-gitter").getBoundingClientRect().top));
pruefe("die erste Zahl steht im oberen Drittel des Bildschirms",
bisInhalt < 300, bisInhalt + "px bis zur ersten Kachel");
/* Der Kopfbereich darf nicht den halben Bildschirm fressen.
⚠️ Gemessen wird ab dem ENDE des Reiterstreifens, nicht ab dem
Seitenanfang (praezisiert 26.08.2026).
Vorher war es der Abstand vom oberen Rand bis zur ersten Kachel.
Damit schlug der Test auch dann an, wenn dort eine BERECHTIGTE
Warnung stand -- etwa "Benachrichtigung blockiert". Solche
Meldungen gehoeren genau dorthin: Sie verlangen eine Handlung, und
wer sie erledigt, ist sie wieder los.
Was der Test wirklich verhindern soll, ist ein aufgeblaehter
KOPFBEREICH aus Titel, Suchfeld und Reitern -- also feste Teile,
die immer da sind und die man nicht wegbekommt. Genau die werden
jetzt gemessen.
Ein Test, der berechtigte Meldungen als Mangel zaehlt, erzieht
dazu, Warnungen zu verstecken. Das waere das Gegenteil des Ziels. */
const kopfHoehe = await seite.evaluate(() => {
const streifen = document.querySelector(".vw-tabs");
const gitter = document.querySelector(".vw-ub-gitter");
if (!streifen || !gitter) return null;
return { kopfEndet: Math.round(streifen.getBoundingClientRect().bottom) };
});
pruefe("der feste Kopfbereich bleibt im oberen Drittel",
kopfHoehe && kopfHoehe.kopfEndet < 300,
(kopfHoehe ? kopfHoehe.kopfEndet : "?") + "px bis zum Ende der Reiter");
/* Und oberhalb der ersten Zahl darf hoechstens EINE Meldung stehen.
⚠️ Zuerst wurde hier der Abstand in Punkten gemessen. Das war
fragil: Der Reiterstreifen klebt beim Scrollen oben fest, also
haengt der gemessene Abstand davon ab, wo die Seite gerade steht --
eine Messung lieferte sogar -204. Ein Test, dessen Ergebnis vom
Scrollzustand abhaengt, misst nicht die Sache, sondern den Zufall.
Gemeint war ohnehin etwas anderes: Nicht "wie viele Punkte", sondern
"wie viele Hinweisbloecke". Genau das wird jetzt gezaehlt --
unabhaengig von Scrollposition und Schriftgroesse. */
const meldungen = await seite.evaluate(() => {
const kandidaten = ["#vw-meldungen", "#vw-push-karte"];
let sichtbar = 0;
const namen = [];
for (const w of kandidaten) {
const el = document.querySelector(w);
if (!el || el.hidden) continue;
const r = el.getBoundingClientRect();
if (r.height > 0) { sichtbar++; namen.push(w + " (" + Math.round(r.height) + "px)"); }
}
return { sichtbar, namen };
});
pruefe("hoechstens eine Meldung ueber der ersten Zahl",
meldungen.sichtbar <= 1,
meldungen.namen.length ? meldungen.namen.join(", ") : "keine");
/* Zwei Spalten statt zwoelf Zeilen untereinander. */
const spalten = await seite.evaluate(() => {
@@ -547,7 +596,12 @@ console.log("\n=== Verwaltung auf dem Handy ===");
spalten.spalten + " Spalten bei " + spalten.anzahl + " Kacheln");
const laenge = await seite.evaluate(() => document.documentElement.scrollHeight);
pruefe("die Uebersicht ist deutlich kuerzer geworden", laenge < 2000,
/* 2100 statt 2000: Seit dem 26.08.2026 steht am Ende der Uebersicht
eine Zeile zum Zustand der Benachrichtigung. Sie kostet rund 70
Punkte und ist bewusst dort -- oben stand sie im Weg. Die
urspruengliche Absicht (nicht wieder auf 2635 wachsen) bleibt
gewahrt. */
pruefe("die Uebersicht bleibt kurz", laenge < 2100,
laenge + "px (vorher 2635px)");
/* Der aktive Reiter muss sichtbar werden, wenn man ueber eine Kachel