Eine Nachricht, die nicht ankommt, sieht man jetzt -- und schickt sie neu

DER KOMMENTAR STAND DA, DIE SACHE NICHT. Im Chat stand woertlich:
"NICHT STILL VERSCHWINDEN LASSEN. Wer etwas schreibt und es sieht,
glaubt, es sei angekommen." Gemessen: `markiereAlsGescheitert` setzte
`n.gescheitert = true` -- und gelesen hat das Merkmal NIEMAND, weder
das Skript noch das CSS. Eine gescheiterte Nachricht sah exakt aus wie
eine zugestellte. Im CSS stand an der Stelle eine leere Regel mit dem
Kommentar "Platzhalter, damit :has unterstuetzt bleibt".

Ein Kommentar, der eine Absicht beschreibt, erfuellt sie nicht.

Jetzt: sichtbare Kante an der Blase, blasse Darstellung solange sie
unterwegs ist, und ein Knopf "Nochmal senden" daneben. Der Satz in der
Meldezeile bat vorher ums Kopieren -- fuenf Handgriffe fuer etwas, das
die Seite in einem tun kann; den Text hat sie ja noch.

KEIN ZWEITER SENDEWEG: Der Knopf legt den Text zurueck ins Feld,
stellt das Antwortziel wieder her und ruft `abschicken`. Ein eigener
Weg waere morgen anders als dieser, und der Unterschied fiele erst
auf, wenn er zaehlt.

"ZUM NEUESTEN" STAND AUF EINER RECHNUNG VON GESTERN: `bottom: 96px` --
die Hoehe der Schreibleiste an dem Tag, an dem der Knopf gebaut wurde.
Das Textfeld waechst aber bis 160. Wer lange tippt und gleichzeitig
oben liest, hatte den Knopf HINTER der Leiste. Und darueber koennen
noch das Nachtruhe-Band und der Hochlade-Balken stehen.
Jetzt misst die Seite den ganzen Unterbau selbst -- ueber einen
Beobachter statt einer Liste von Ausloesern, denn das Band erscheint
um Mitternacht von selbst. Kommt morgen ein viertes Bauteil dazu,
rechnet es von allein mit.

NEUE PRUEFUNG FUER EINEN WEG, DEN NIE ETWAS GEPRUEFT HAT:
pruef-chat-optik faengt die Sendeanfrage jetzt einmal ab und geht den
ganzen Fehlerweg durch -- 10 Aussagen, darunter:
  der Unterschied ist auch zu SEHEN, nicht nur im Merkmal (Rand 1px)
  die Nachricht steht danach GENAU EINMAL da, nicht doppelt
  und sie ist beim Gegenueber angekommen
Der letzte ist der eigentliche: Alles davor koennte gut aussehen und
trotzdem nichts zugestellt haben.

pruef-treffchat war seit gestern rot -- 8 Fehler ueber "undefined".
Sie suchte die Kachel mit `ziel === "chat.html"`, seit dem 19.09.
heisst es `chat.html?raum=treff` (sie fuehrt direkt in den Raum). Kein
Befund ueber das Haus, sondern einer ueber sich selbst. Sie sucht
jetzt nach der SEITE und prueft statt des Wortlauts das, worauf es
ankommt: Man erkennt den Chat, und der Name kommt genau einmal vor.
110/0 statt 108 mit 8 Fehlern.

pruef-chat, -anhaenge, -kanaele, -optik, -ausbau gruen,
pruef-start-ansicht 151/0, pruef-tippziele 11/0, pruef-nachfrage 33/0,
pruef-leerzustand 13/0, pruef-meldungen 8/0, pruef-css-klassen gruen.
This commit is contained in:
2026-09-20 12:44:31 +02:00
parent 18148675a9
commit 0a2363374c
41 changed files with 807 additions and 520 deletions
+60 -3
View File
@@ -386,8 +386,12 @@
.chat-nachricht__weg-knopf:focus-visible { opacity: 1; }
.chat-nachricht__weg-knopf:hover { color: var(--warn); }
/* Unterwegs und gescheitert -- der Unterschied muss sichtbar sein. */
.chat-nachricht__blase:has(+ *) { /* Platzhalter, damit :has unterstützt bleibt */ }
/* Unterwegs und gescheitert: siehe ganz unten in dieser Datei.
Hier stand bis zum 20.09.2026 eine Regel ohne Inhalt --
`.chat-nachricht__blase:has(+ *) { }` mit dem Kommentar
„Platzhalter, damit :has unterstützt bleibt". Sie hat nie etwas
getan, und darunter fehlte genau das, was der Kommentar darüber
versprach. */
/* ---------- Das Eingabefeld ---------------------------------------------- */
@@ -946,8 +950,18 @@
.chat__zeichen[data-eng="ja"] { color: var(--warn, #ff9aa2); }
/* ---- Zum neuesten ---------------------------------------------------- */
/* DIE 96 WAR EINE RECHNUNG VON GESTERN (20.09.2026).
Hier stand `bottom: 96px` -- die Höhe der Schreibleiste, gemessen
an dem Tag, an dem sie gebaut wurde. Das Textfeld wächst aber mit
dem Text, bis auf 160 Pixel. Wer einen langen Text tippt und
gleichzeitig weiter oben liest, hatte den Knopf HINTER der Leiste.
Jetzt sagt die Leiste selbst, wie hoch sie ist: `chat.js` schreibt
`--leiste` bei jeder Höhenänderung. Der Rückfallwert gilt nur, bis
das Skript einmal gerechnet hat. */
.chat__zum-neuesten {
position: absolute; left: 50%; bottom: 96px;
position: absolute; left: 50%;
bottom: calc(var(--leiste, 96px) + 12px);
transform: translateX(-50%);
z-index: 4;
padding: 9px 18px;
@@ -1935,3 +1949,46 @@
.anruf__schalter[aria-pressed="false"] { border-style: dashed; border-width: 2px; }
.anruf__auf { border-width: 2px; }
}
/* ---- Unterwegs und gescheitert -------------------------------------
Gemessen am 20.09.2026: BEIDE Zustände waren unsichtbar.
`markiereAlsGescheitert` setzte das Merkmal und zeichnete neu --
gelesen hat es niemand, weder Skript noch CSS. Eine gescheiterte
Nachricht sah genauso aus wie eine zugestellte.
Daneben stand im Code: „NICHT STILL VERSCHWINDEN LASSEN. Wer etwas
schreibt und es sieht, glaubt, es sei angekommen." Genau das ist
trotzdem passiert. Ein Kommentar, der eine Absicht beschreibt,
erfüllt sie nicht.
Unterwegs = blass, es passiert noch etwas.
Gescheitert = eine sichtbare Kante und ein Knopf daneben. Nicht
knallrot: Es ist ein Zustand, kein Alarm -- und meistens ist nur
das Netz kurz weg. */
.chat-nachricht[data-unterwegs="ja"] .chat-nachricht__blase { opacity: .62; }
.chat-nachricht[data-gescheitert="ja"] .chat-nachricht__blase {
border: 1px solid color-mix(in srgb, var(--warn) 52%, transparent);
background: color-mix(in srgb, var(--warn) 9%, transparent);
}
.chat-nachricht__nochmal {
display: block;
margin: 8px 0 0;
/* 44, weil man das hier mit dem Daumen trifft -- und zwar in dem
Moment, in dem man ohnehin schon genervt ist. */
min-height: 44px; padding: 0 14px;
font: inherit; font-size: .82rem; font-weight: 650;
color: var(--text);
background: transparent;
border: 1px solid color-mix(in srgb, var(--warn) 45%, var(--rand));
border-radius: var(--radius, 10px);
cursor: pointer;
}
.chat-nachricht__nochmal:hover:not(:disabled) { border-color: var(--warn); }
.chat-nachricht__nochmal:disabled { opacity: .6; cursor: default; }
@media (forced-colors: active) {
.chat-nachricht[data-gescheitert="ja"] .chat-nachricht__blase {
border: 2px solid CanvasText;
}
}