Die Handgriffe an der Nachricht werden Zeichen -- eine Zeile statt drei

Filipe: "diese optionen im chat. ich will dass du das viel geiler
machst und es soll viel kuerzer gestaltet sein. so dass es nicht zu
viel aufmerksamkeit auf sich zieht aber jeder sieht dass es da ist.
aber kurz und knapp was richtig geiles schnell benutzbar aber nicht zu
viel platzraubend."

HEUTE FRUEH BEKAMEN DIE FUENF WOERTER ZEICHEN DAVOR. Das war der
richtige Schritt und nur der halbe: Gemessen auf 412 px brauchte die
Reihe danach DREI Zeilen -- "23. Sept. antworten reagieren" /
"loeschen (Notfall) anheften" / "kopieren". Unter zwei Zeilen Text
standen drei Zeilen Bedienung.

WOERTER SIND HIER DER FALSCHE MASSSTAB. Man liest sie nicht -- man
sucht das eine, das man gerade braucht. Fuenf Woerter nebeneinander
sind fuenfmal Lesen fuer einen Griff; fuenf Zeichen sind ein Blick.

Nachgemessen: aus ueber 400 px in drei Zeilen werden 123 px in EINER.

DAS WORT IST NICHT WEG, ES IST NUR NICHT ZU SEHEN. Es steht weiter im
Dokument (`clip-path`, nicht `display: none`) und damit:
  * ein Vorleseprogramm liest "antworten", nicht "Schaltflaeche";
  * `textContent` liefert es weiterhin -- daran haengt
    pruef-chat-ausbau, das den Kopierknopf beim Wort nimmt;
  * unter dem Zeiger steht es als `title`.
Ein Knopf ganz ohne Beschriftung waere kuerzer gewesen und schlechter.

KEINE FLAECHE IM RUHEZUSTAND. Fuenf Kreise nebeneinander waeren wieder
ein Balken. Es gibt nur das Zeichen, gedaempft; die Flaeche entsteht
erst unter dem Zeiger. "Jeder sieht, dass es da ist" heisst sichtbar,
nicht laut. Zwei Ausnahmen, und beide sind Zustand statt Griff: Das
Notfall-Loeschen traegt auch im Ruhezustand Farbe (wer fremde Worte
entfernt, soll den Knopf nicht verwechseln), und eine angeheftete
Nachricht zeigt ihre Nadel dauerhaft -- sonst muesste man jede
Nachricht ueberfahren, um zu sehen, welche haengt.

"kopiert" HAT KEIN WORT MEHR, ALSO BRAUCHT ES EIN ZEICHEN: Der Knopf
wird fuer anderthalb Sekunden gruen und traegt einen Haken. Ohne das
waere der Druck folgenlos -- man weiss nicht, ob es geklappt hat.

44 PX AM DAUMEN (Hausregel): Fuenf mal 44 plus Abstaende sind 236 px,
eine Blase hat auf 412 px innen 251. Die Reihe bleibt damit auch auf
dem Handy einzeilig.

pruef-css-klassen hat sofort gemeldet, dass die Uhrzeit auf 11,2 px
stand -- 0,3 unter der Hausgrenze. Das ist heute das dritte Mal
derselbe Reflex ("klein wirkt leise"), und die Pruefung hat ihn
dreimal gefangen. Leise macht die Deckung, nicht die Groesse.

pruef-chat-ausbau bekommt vier neue Punkte, und sie sichern genau das
ab, was sonst als naechstes "aufgeraeumt" wuerde: dass jeder Handgriff
sein Wort und seinen Vorlese-Satz behaelt, dass KEINES davon zu sehen
ist, und dass alles in einer Zeile steht. Der erste Anlauf mass die
Breite des Kastens und meldete 486 px -- das war die Blase, nicht die
Reihe. Gemessen wird jetzt, worum es geht: die Zahl der Zeilen.

Geprueft: pruef-chat-ausbau (68), pruef-chat-optik, pruef-chat-aufloesen
(126), pruef-chat-kanaele (81), pruef-tippziele (11), pruef-css-klassen,
pruef-lesbarkeit.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-25 03:58:43 +02:00
co-authored by Claude Opus 5
parent b3d3714efd
commit 7099d53da0
44 changed files with 907 additions and 657 deletions
+69
View File
@@ -212,6 +212,75 @@ melde("\n=== 2. Kopieren ===");
".chat-nachricht:first-of-type .chat-nachricht__kopie-knopf", (b) => b.textContent);
ok(zurueck === "kopieren", `und fällt danach zurück ("${zurueck}")`);
/* ==== DIE WOERTER SIND NICHT WEG, NUR NICHT ZU SEHEN (25.09.2026) ==
Filipe: „ich will dass du das viel geiler machst und es soll viel
kuerzer gestaltet sein ... aber jeder sieht dass es da ist."
Aus den fuenf Woertern unter jeder Nachricht wurden fuenf Zeichen.
Das Wort steht weiter im Dokument -- nur fuers Auge weggeschnitten.
Ohne diese Pruefung waere der naechste Schritt, es „aufzuraeumen",
und dann waeren die Knoepfe fuer ein Vorleseprogramm fuenf leere
Felder. Das faellt niemandem auf, der sehen kann.
DREI DINGE, UND JEDES EINZELN:
1. Jeder Knopf hat ein Wort (textContent) und einen Satz fuer
Vorleseprogramme (aria-label).
2. KEINES der Woerter ist zu sehen -- sonst waere „kuerzer"
nicht eingehalten.
3. Die Reihe ist schmaler als vorher. Eine Zusage ueber Platz,
die man nicht misst, ist keine.
DIE ANZAHL STEHT IN DER BEDINGUNG: Faende der Selektor nichts,
waeren „alle 0 haben ein Wort" sonst gruen. */
const griffe = await luna.seite.evaluate(() => {
const knoepfe = [...document.querySelectorAll(
".chat-nachricht:first-of-type .chat-nachricht__fuss button")];
const fuss = document.querySelector(".chat-nachricht:first-of-type .chat-nachricht__fuss");
return {
zahl: knoepfe.length,
mitWort: knoepfe.filter((b) => (b.textContent || "").trim().length > 1).length,
mitSatz: knoepfe.filter((b) => (b.getAttribute("aria-label") || "").trim().length > 1).length,
/* Sichtbar heisst: es nimmt Flaeche ein. `clip-path` laesst die
Breite stehen, deshalb wird die HOEHE gemessen -- sie ist bei
einem weggeschnittenen Stueck Text 1 px. */
sichtbareWoerter: [...document.querySelectorAll(
".chat-nachricht:first-of-type .chat-nachricht__wort")]
.filter((e) => e.getBoundingClientRect().height > 4).length,
/* NICHT DIE BREITE DES KASTENS -- die ist die der Blase, weil
der Fuss ein Block ist. Beim ersten Anlauf stand hier 486 px
und sah aus wie ein Befund; gemessen war die Blase.
GEMESSEN WIRD, WORUM ES GEHT: wie viele ZEILEN die Reihe
braucht. „Nicht zu viel platzraubend" ist eine Aussage ueber
Hoehe, nicht ueber Breite. Vor dem Umbau waren es auf 412 px
drei Zeilen; eine ist das Ziel.
Ueber die y-Werte und nicht ueber die Hoehe des Kastens: Die
Hoehe haengt auch an Polsterung und Zeilenabstand, die
verschiedenen y-Werte sagen genau eines -- hier ist umgebrochen
worden. */
zeilen: new Set(knoepfe.map((b) => Math.round(b.getBoundingClientRect().top))).size,
hoehe: fuss ? Math.round(fuss.getBoundingClientRect().height) : 0,
inhalt: knoepfe.length
? Math.round(knoepfe.at(-1).getBoundingClientRect().right
- knoepfe[0].getBoundingClientRect().left)
: 0,
};
});
ok(griffe.zahl >= 3 && griffe.mitWort === griffe.zahl,
`jeder der ${griffe.zahl} Handgriffe hat weiterhin sein Wort (${griffe.mitWort})`);
ok(griffe.zahl >= 3 && griffe.mitSatz === griffe.zahl,
`und einen Satz für Vorleseprogramme (${griffe.mitSatz})`);
ok(griffe.sichtbareWoerter === 0,
`Gegenprobe: zu SEHEN ist keines davon (${griffe.sichtbareWoerter})`);
ok(griffe.zeilen === 1,
`und alle stehen in EINER Zeile (${griffe.zeilen})`);
/* Die Zeichen zusammen brauchen rund 150 px. Vor dem Umbau standen
dort fuenf Woerter mit Zeichen -- deutlich ueber 400. */
ok(griffe.inhalt > 0 && griffe.inhalt < 220,
`und nehmen zusammen nur ${griffe.inhalt} px Breite`);
/* GEGENPROBE, NEU GEFASST (22.09.2026 abends).
------------------------------------------------------------------
Hier wurde geprueft, dass an einer ZURUECKGENOMMENEN Nachricht kein