From d26cdc78ff88ee7edc339883e0d53213ec208fed Mon Sep 17 00:00:00 2001 From: Dogfather Date: Wed, 23 Sep 2026 00:44:07 +0200 Subject: [PATCH] Der Loeschknopf war auf dem Handy unsichtbar -- und mein erster Ersatz unlesbar GEFUNDEN, WEIL ICH MIR DEN CHAT ANGESEHEN HABE Nach dem Umbau von gestern Abend habe ich den Chat im Browser aufgemacht statt nur die Pruefungen zu lesen. Im Bild klaffte zwischen "reagieren" und "anheften" eine Luecke von 87 px, in der nichts stand. Nachgemessen: Der Loeschknopf ist dort -- sichtbar 0. URSACHE: `.chat-nachricht__weg-knopf { opacity: 0 }`, sichtbar erst beim Ueberfahren mit der Maus. Das war vertretbar, solange er nur die EIGENE Nachricht zuruecknahm: ein seltener, absichtlicher Griff. Seit gestern traegt derselbe Knopf das Notfall-Loeschen fuer DogFather und die rechte Hand. Und damit wird es zum Fehler: * AUF EINEM HANDY GIBT ES KEIN UEBERFAHREN. Der Knopf war dort dauerhaft unsichtbar -- eine Funktion, die man auf dem Geraet nicht erreicht, gibt es auf dem Geraet nicht. Filipe besteht bei jedem Auftrag darauf, dass es auf dem Handy genauso gut sein muss. * Er belegte trotzdem Platz. Eine Luecke, die nichts erklaert, sieht nach einem Fehler aus. Was davor schuetzt, versehentlich zu loeschen, ist nicht die Unsichtbarkeit, sondern die Rueckfrage -- die steht seit dem 19.09. als eigener Dialog da. Ein Knopf, den man nicht findet, schuetzt niemanden; er verhindert nur, dass jemand ihn absichtlich benutzt. UND MEIN ERSTER ERSATZ WAR MESSBAR FALSCH Ich gab dem Notfall-Knopf den Warnton, gedaempft gemischt mit der leisen Schrift. Nachgerechnet, bevor ich ihn ausgeliefert habe: auf Babyblau 1,91:1 (noetig 4,5) auf den dunklen Toenen 4,06 bis 4,13 Unlesbar auf der hellen Kachel, zu wenig auf allen anderen. Die leise Schriftfarbe ist nicht irgendein Grau -- sie ist genau der Wert, der auf JEDER Kachel 4,5:1 schafft. Wer daran mischt, gibt diese Zusage auf. DER PUNKT TRAEGT DIE FARBE, NICHT DIE SCHRIFT. Denselben Weg geht das Haus schon beim Namen in der Blase, mit derselben Begruendung: Fuer eine Schriftfarbe laesst sich bei dreizehn waehlbaren Flaechen kein Kontrast garantieren, fuer einen 6-px-Punkt daneben ist das egal. Beim Ueberfahren wird die Schrift HELLER statt bunter -- wer den Knopf anvisiert, soll ihn am besten lesen koennen, nicht am schlechtesten. EIN DRITTER FEHLER, DEN DIE GEGENPROBE GEFANGEN HAT Die neue Pruefung (pruef-loeschen, Abschnitt 5b) sollte zweierlei sichern: kein `opacity: 0`, und die Notfall-Regel setzt keine eigene Schriftfarbe. Ich schrieb dafuer `/\bcolor:/` -- gedacht als Wortgrenze. Geschrieben wurde es durch eine Python-Zeichenkette, und dort ist \b das BACKSPACE-ZEICHEN. In der Datei stand `/<0x08>color:/`, ein Ausdruck, der nie etwas findet. Die Zeile "setzt keine eigene Schriftfarbe" war dadurch GRUEN, ohne je gesucht zu haben. Aufgefallen ist es nur, weil die Gegenprobe daneben dieselbe Suche benutzt und ROT wurde -- sie sollte ja etwas finden. Ohne diese Gegenprobe haette ich eine Pruefung ausgeliefert, die genau den Fehler nicht sieht, fuer den sie gebaut wurde. Jetzt zwei schlichte Textsuchen ohne regulaeren Ausdruck. pruef-loeschen: 25 -> 31, 0 Fehler. Mitgelaufen: pruef-chatkachel (33), pruef-chat-optik. Co-Authored-By: Claude Opus 5 --- server/pruef-loeschen.mjs | 74 +++++++++++++++++++++++++++++++++ workspace/anruf-probe.html | 10 ++--- workspace/app.webmanifest | 8 ++-- workspace/assets/css/chat.css | 74 +++++++++++++++++++++++++++++++-- workspace/aufgaben.html | 36 ++++++++-------- workspace/automation.html | 32 +++++++------- workspace/befinden.html | 32 +++++++------- workspace/bereich.html | 44 ++++++++++---------- workspace/bewerben.html | 36 ++++++++-------- workspace/bewerbungen.html | 34 +++++++-------- workspace/calls.html | 34 +++++++-------- workspace/chat.html | 38 ++++++++--------- workspace/content.html | 34 +++++++-------- workspace/crew-index.html | 12 +++--- workspace/crew.webmanifest | 8 ++-- workspace/dateien.html | 34 +++++++-------- workspace/entwicklung.html | 32 +++++++------- workspace/hilfe.html | 28 ++++++------- workspace/index.html | 10 ++--- workspace/kalender.html | 34 +++++++-------- workspace/leistung.html | 32 +++++++------- workspace/material.html | 32 +++++++------- workspace/personen.html | 32 +++++++------- workspace/profil.html | 36 ++++++++-------- workspace/rechte.html | 32 +++++++------- workspace/report.html | 36 ++++++++-------- workspace/scouting.html | 32 +++++++------- workspace/start.html | 32 +++++++------- workspace/startcheck.html | 34 +++++++-------- workspace/steckbrief.html | 36 ++++++++-------- workspace/talente.html | 34 +++++++-------- workspace/team.html | 32 +++++++------- workspace/teamlage.html | 32 +++++++------- workspace/teilen.html | 28 ++++++------- workspace/treff-moderation.html | 30 ++++++------- workspace/treff-regeln.html | 30 ++++++------- workspace/uebersicht.html | 32 +++++++------- workspace/unsere-seiten.html | 28 ++++++------- workspace/werdegang.html | 30 ++++++------- workspace/willkommen.html | 30 ++++++------- workspace/wissen.html | 34 +++++++-------- 41 files changed, 730 insertions(+), 588 deletions(-) diff --git a/server/pruef-loeschen.mjs b/server/pruef-loeschen.mjs index c9706b0e..8590691c 100644 --- a/server/pruef-loeschen.mjs +++ b/server/pruef-loeschen.mjs @@ -286,6 +286,80 @@ ok(/Nachricht zurückgenommen/.test(chatJs), "Gegenprobe: der Satz kommt in den Kommentaren durchaus vor —" + " die Suche oben unterscheidet also wirklich"); +/* ===================================================================== + 5b. DER LOESCHKNOPF IST ERREICHBAR -- AUCH OHNE MAUS + ===================================================================== + + ZWEI FEHLER AN DERSELBEN STELLE, beide erst im Bildschirmfoto + aufgefallen (23.09.2026): + + (1) `opacity: 0`, sichtbar erst beim Ueberfahren mit der Maus. Das + war vertretbar, solange der Knopf nur die EIGENE Nachricht + zuruecknahm. Seit er auch das Notfall-Loeschen traegt, ist er + auf einem Handy dauerhaft unsichtbar -- und er belegte trotzdem + 87 px, also eine Luecke in der Fusszeile, die nichts erklaert. + + (2) Der Notfall-Knopf bekam den Warnton, gedaempft gemischt mit der + leisen Schrift. Nachgerechnet: 1,91:1 auf Babyblau und 4,06 bis + 4,13 auf den dunklen Toenen -- unlesbar auf der einen, zu wenig + auf allen anderen. Die leise Schriftfarbe ist genau der Wert, + der ueberall 4,5:1 schafft; wer daran mischt, gibt diese Zusage + auf. + + Beides steht in der Stilvorlage und laesst sich dort pruefen. Eine + Messung im Browser waere genauer, braucht aber eine fremde + Nachricht, eine Rolle mit dem Recht und einen Zeiger -- fuer eine + Frage, deren Antwort in zwei Zeilen CSS steht. + ===================================================================== */ +console.log(""); +console.log("--- Der Loeschknopf in der Stilvorlage ---"); +{ + const chatCss = readFileSync( + join(HIER, "..", "workspace", "assets", "css", "chat.css"), "utf8"); + const regel = (wahl) => { + const i = chatCss.indexOf(wahl + " {"); + return i < 0 ? null : chatCss.slice(i, chatCss.indexOf("}", i)); + }; + + const grund = regel(".chat-nachricht__weg-knopf"); + ok(!!grund, "die Regel zum Loeschknopf steht in chat.css"); + ok(!!grund && !/opacity:\s*0/.test(grund), + "er ist nicht auf durchsichtig gesetzt -- auf einem Handy gibt es kein" + + " Ueberfahren, und ein Knopf, den man dort nicht sieht, gibt es dort nicht"); + + const notfall = regel('.chat-nachricht__weg-knopf[data-notfall="ja"]'); + ok(!!notfall, "und die Regel fuer das Notfall-Loeschen"); + /* EIN EINFACHER TEXTVERGLEICH, KEIN REGULAERER AUSDRUCK. + ------------------------------------------------------------------- + Hier stand `/\bcolor:/` -- gedacht als Wortgrenze, damit + `color-mix` nicht mitzaehlt. Geschrieben wurde es aber durch eine + Python-Zeichenkette, und dort ist `\b` das BACKSPACE-ZEICHEN. In + der Datei landete `/<0x08>color:/`, also ein Ausdruck, der nie + etwas findet. + + Die Zeile darunter (die Gegenprobe) wurde dadurch rot -- und nur + deshalb ist es aufgefallen. DIESE Zeile hier war gruen, ohne je + etwas gesucht zu haben: genau der Fehler, vor dem die Hausregel + warnt, und ohne die Gegenprobe haette ihn niemand gesehen. + + Jetzt zwei schlichte Textsuchen: „color:" muss vorkommen, und + Treffer, die zu `color-mix:` gehoeren, gibt es nicht -- die + Eigenschaft heisst `color-mix` nur als WERT, nie als Name vor + einem Doppelpunkt. */ + ok(!!notfall && !notfall.includes("color:"), + "sie setzt KEINE eigene Schriftfarbe -- die Markierung sitzt im Punkt" + + " davor, so wie beim Namen in der Blase"); + ok(!!notfall && /::before/.test( + chatCss.slice(chatCss.indexOf('.chat-nachricht__weg-knopf[data-notfall="ja"]'), + chatCss.indexOf('.chat-nachricht__weg-knopf[data-notfall="ja"]') + 600)), + "der Punkt ist wirklich da (::before)"); + + /* GEGENPROBE: Die Suche muss eine Schriftfarbe auch FINDEN koennen. + Sonst waere „setzt keine" nur die Abwesenheit einer Messung. */ + ok((regel(".chat-nachricht__von") || "").includes("color:"), + "Gegenprobe: in der Regel zum Namen findet dieselbe Suche sehr wohl eine Farbe"); +} + /* ===================================================================== 6. DIE UMSTELLUNG RAEUMT WIRKLICH AUF diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index 4b6ced7f..e9729725 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`. --> - - + + - +