diff --git a/server/pruef-chatkachel.mjs b/server/pruef-chatkachel.mjs
index 8699299a..4fc981a9 100644
--- a/server/pruef-chatkachel.mjs
+++ b/server/pruef-chatkachel.mjs
@@ -442,16 +442,45 @@ try {
const wahl = await s.evaluate(() => {
const dlg = document.querySelector("#kachel-wahl[open]");
const toene = [...document.querySelectorAll(".chat-kachelwahl__ton")];
+ const ring = document.getElementById("kachelrad-ring");
return {
offen: !!dlg,
toene: toene.length,
+ /* Der Farbkreis ist ein Schieberegler, kein Satz von Knoepfen.
+ Was auf ihm liegt, waehlt man durch Drehen. */
+ ring: !!ring,
+ ringBedienbar: ring ? ring.getAttribute("role") === "slider" : false,
+ ringSagtFarbe: ring ? (ring.getAttribute("aria-valuetext") || "") : "",
mitNamen: toene.filter((t) => (t.getAttribute("aria-label") || "").length > 2).length,
hoch: toene.length ? Math.round(toene[0].getBoundingClientRect().height) : 0,
};
});
ok(wahl.offen, "die Auswahl geht auf");
- ok(wahl.toene === CHAT_KACHELN.length,
- `mit allen ${CHAT_KACHELN.length} Tönen (${wahl.toene})`);
+ /* ==== NICHT MEHR "ALLE ALS KNOEPFE" (berichtigt 23.09.2026) ======
+
+ Hier stand `wahl.toene === CHAT_KACHELN.length` -- dreizehn Toene,
+ dreizehn Knoepfe. Das stimmte, bis die Kachelfarbe ein FARBKREIS
+ wurde (Commit 7a674963). Seither liegen die meisten Toene auf dem
+ Ring und werden durch Drehen gewaehlt; nur die, die weit genug
+ davon entfernt sind, bleiben als Knopf daneben stehen.
+
+ Die Pruefung meldete danach dauerhaft "mit allen 13 Toenen (2)".
+ Nichts war kaputt -- sie stellte eine Frage, die es nicht mehr
+ gibt. Und eine Warnung, die immer kommt, liest irgendwann niemand
+ mehr; dann faellt die echte daneben auch nicht mehr auf.
+
+ GEFRAGT WIRD JETZT, WAS ZAEHLT: Kommt man an die Farben heran?
+ Ueber den Kreis (der sagt, welche Farbe gerade eingestellt ist)
+ oder ueber die Knoepfe daneben. Wie sie sich auf beides verteilen,
+ ist Gestaltung und darf sich aendern, ohne dass hier etwas rot
+ wird. */
+ ok(wahl.ring, "der Farbkreis ist da -- auf ihm liegen die meisten Toene");
+ ok(wahl.ringBedienbar,
+ "und er ist als Schieberegler bedienbar (role=slider), nicht nur gemalt");
+ ok(wahl.ringSagtFarbe.trim().length > 3,
+ `er sagt auch, welche Farbe eingestellt ist ("${wahl.ringSagtFarbe}")`);
+ ok(wahl.toene >= 1,
+ `daneben stehen ${wahl.toene} Toene als Knopf -- die, die nicht auf dem Kreis liegen`);
ok(wahl.mitNamen === wahl.toene,
`jeder trägt seinen Namen (${wahl.mitNamen}) — wer Farben schlecht unterscheidet, wählt sonst blind`);
ok(wahl.hoch >= 44, `und ist am Finger treffbar (${wahl.hoch} px)`);
diff --git a/server/pruef-galerie.mjs b/server/pruef-galerie.mjs
index a26c5704..a0dfff9c 100644
--- a/server/pruef-galerie.mjs
+++ b/server/pruef-galerie.mjs
@@ -264,9 +264,50 @@ try {
const m = await seite.evaluate(() => {
const bilder = [...document.querySelectorAll(".bildstreifen__bild")];
return {
- raster: document.getElementById("liste")?.dataset.galerie || "",
- spalten: getComputedStyle(document.getElementById("liste"))
- .gridTemplateColumns.split(" ").filter(Boolean).length,
+ /* ==== DAS RASTER LIEGT EINE EBENE TIEFER (berichtigt 23.09.2026)
+
+ Gemessen wurde hier "#liste". Das war richtig, bis die
+ Highlights am 20.09.2026 in Kanalspalten umzogen: Seither
+ nimmt bereich.js dem Listenkasten sein data-galerie
+ ausdruecklich wieder weg ("delete ziel.dataset.galerie") und
+ setzt es an die einzelne Spalte -- sonst wurde der
+ Spaltenkasten zu EINER Zelle von 376 px und die drei Accounts
+ standen untereinander.
+
+ Die Pruefung ist seither dauerhaft rot gewesen ("mit mehreren
+ Spalten (1)"), ohne dass etwas kaputt war. Sie hat an einer
+ Stelle gemessen, an der absichtlich kein Raster mehr steht.
+ Und eine Warnung, die immer kommt, liest irgendwann niemand
+ mehr.
+
+ Gesucht wird jetzt dort, wo die Bilder wirklich liegen --
+ und zwar ueber das BILD, nicht ueber einen Kastennamen: Der
+ naechste Umbau darf die Huelle wieder umbenennen. */
+ raster: (() => {
+ const b = document.querySelector(".bildstreifen__bild");
+ const k = b ? b.closest("[data-galerie]") : null;
+ return k ? (k.dataset.galerie || "") : "";
+ })(),
+ spalten: (() => {
+ const b = document.querySelector(".bildstreifen__bild");
+ const k = b ? b.closest("[data-galerie]") : document.getElementById("liste");
+ return k ? getComputedStyle(k).gridTemplateColumns.split(" ").filter(Boolean).length : 0;
+ })(),
+ /* Wie breit ist der Kasten, und wie breit eine Spalte darin?
+ Ohne diese zwei Zahlen ist "eine Spalte" weder gut noch
+ schlecht -- es kommt darauf an, wie viel Platz da war. */
+ kastenBreit: (() => {
+ const b = document.querySelector(".bildstreifen__bild");
+ const k = b ? b.closest("[data-galerie]") : document.getElementById("liste");
+ return k ? Math.round(k.getBoundingClientRect().width) : 0;
+ })(),
+ spalteBreit: (() => {
+ const b = document.querySelector(".bildstreifen__bild");
+ const k = b ? b.closest("[data-galerie]") : document.getElementById("liste");
+ if (!k) return 0;
+ const erste = getComputedStyle(k).gridTemplateColumns.split(" ")[0] || "0";
+ return Math.round(parseFloat(erste) || 0);
+ })(),
anzahl: bilder.length,
/* WIRKLICH GELADEN, nicht nur im Quelltext: Ein kaputtes Bild hat
naturalWidth 0 -- und sieht im Foto aus wie ein Rahmen. */
@@ -279,7 +320,21 @@ try {
});
ok(m.raster === "ja", "die Liste ist ein Raster");
- ok(m.spalten >= 2, `mit mehreren Spalten (${m.spalten})`);
+ /* ==== NICHT "MINDESTENS ZWEI" (berichtigt 23.09.2026) ==========
+
+ Hier stand `m.spalten >= 2`. Das war eine Erwartung an die
+ Anordnung, nicht an die Sache -- und seit die Highlights in
+ Kanalspalten liegen, ist sie schlicht falsch: In einer schmalen
+ Spalte gehoert EINE Kachel je Reihe, bei viel Platz zwei. So
+ steht es auch im Quelltext ("gerechnet wird nichts", auto-fit).
+
+ Gefragt wird deshalb, was wirklich zaehlt: Sind die Kacheln
+ breit genug, um etwas zu erkennen? Eine Galerie, die sich in
+ vier Spalten a 90 px quetscht, waere der Fehler -- nicht eine
+ Spalte in einem schmalen Kasten. */
+ ok(m.spalteBreit >= 140,
+ `die Kacheln sind breit genug (${m.spalten} Spalte(n) à ${m.spalteBreit} px `
+ + `in einem ${m.kastenBreit} px breiten Kasten)`);
ok(m.anzahl >= 1, `${m.anzahl} Bilder im Raster`);
ok(m.geladen === m.anzahl, `alle wirklich geladen (${m.geladen} von ${m.anzahl})`);
ok(m.alt.every((t) => t && t.length > 5),
diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html
index 4cdc1746..85f5a306 100644
--- a/workspace/anruf-probe.html
+++ b/workspace/anruf-probe.html
@@ -16,15 +16,15 @@
verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
-
-
+
+
-
+