Auf dem Handy steht jetzt da, wer reagiert hat

VanVan (Support): „Wenn man auf dem Handy auf die Reaktionen unter einer
Nachricht geht, dann sieht man nicht wer darauf reagiert hat. Auf dem PC
funktioniert es."

DIE URSACHE STAND IM QUELLTEXT, mit Kommentar und allem:

    b.title = `${r.wer.join(', ')} · ...`

Ein `title` erscheint beim UEBERFAHREN MIT DER MAUS. Auf einem Finger
gibt es kein Ueberfahren -- und das Antippen schaltet stattdessen die
eigene Reaktion um. Die Auskunft war also nicht versteckt, sondern an
ein Geraet gebunden, das die Haelfte des Teams nicht benutzt. „Auf dem
PC funktioniert es" war der entscheidende Satz ihrer Meldung.

GEAENDERT: Unter den Kacheln steht auf Fingergeraeten eine Zeile mit
den Namen -- je Zeichen, mit dem Zeichen davor:

    👍 Patrick · ❤️ VanVan, Miss

WARUM EINE ZEILE UND KEIN LANGDRUECKEN. Ein langer Druck ist die
uebliche Antwort und die schlechteste: Man muss wissen, dass es ihn
gibt. Hier sind es Leute aus EINEM Raum, also kurze Listen -- sie
passen hin. Was dasteht, muss niemand finden.

WARUM NUR AUF DEM FINGER. Am Rechner funktioniert das Ueberfahren, und
eine Dauerzeile unter jeder zweiten Nachricht waere dort Unruhe ohne
Gewinn. Der `title` bleibt unveraendert.

ZWEI KLEINIGKEITEN, DIE KEINE SIND:
 · `aria-hidden="true"` an der Zeile. Jede Kachel traegt ihre Namen
   schon im `aria-label`; ohne das hoerte ein Vorleseprogramm alles
   doppelt.
 · Die Farbe ist die der Blase (`--blase-leise`), nicht eine feste.
   Derselbe Grund wie bei der Sprachnachricht: Jede Blase traegt die
   Farbe ihres Absenders, und eine feste Schrift ergaebe auf Babyblau
   wieder 1,91:1.

GEPRUEFT AUF BEIDEN GERAETEN, sonst beweist es nichts (pruef-chat-optik,
62 -> 71). Am Handy MUSS die Zeile da sein, am Rechner MUSS sie fehlen
und der Titel die Namen tragen. Ohne die zweite Haelfte waere eine
Regel, die immer gilt, genauso gruen -- und haette am Rechner eine
Zeile angehaengt, die niemand bestellt hat.

    auf dem Handy steht die Zeile da (true)
      und sie nennt den Namen: „👍 Patrick"
      und ein Vorleseprogramm hoert sie nicht doppelt (aria-hidden)
    am Rechner bleibt sie weg — dort funktioniert das Überfahren
      und die Namen stehen wie bisher im Titel

Gemessen wird mit einem FREMDEN Namen (DogFather schreibt, Patrick
reagiert). Mit der eigenen Reaktion staende „Du" da, und die Pruefung
haette den Fall nicht gemessen, um den es geht.

GEPRUEFT: pruef-chat-optik 71 ok · pruef-chat 63 ok ·
pruef-chat-aufloesen 126 ok.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-02 14:17:51 +02:00
co-authored by Claude Opus 5
parent b808171704
commit 58911d7c4f
48 changed files with 844 additions and 670 deletions
+32
View File
@@ -2055,6 +2055,38 @@
b.addEventListener('click', () => reagieren(n.id, r.zeichen));
reihe.append(b);
}
/* ==== WER ES WAR -- AUCH OHNE MAUS (02.10.2026) =================
VanVan: „Wenn man auf dem Handy auf die Reaktionen unter einer
Nachricht geht, dann sieht man nicht wer darauf reagiert hat.
Auf dem PC funktioniert es."
Sie hat recht, und der Grund steht drei Zeilen weiter oben: Die
Namen stehen im `title`. Ein `title` erscheint beim UEBERFAHREN
MIT DER MAUS. Auf einem Finger gibt es kein Ueberfahren -- und
das Antippen schaltet stattdessen die eigene Reaktion um. Die
Auskunft war also nicht versteckt, sondern an ein Geraet
gebunden, das die Haelfte des Teams nicht benutzt.
WARUM EINE ZEILE UND KEIN LANGDRUECKEN: Ein langer Druck ist
die uebliche Antwort und die schlechteste -- man muss wissen,
dass es ihn gibt. Hier sind es Leute aus EINEM Raum, also kurze
Listen; sie passen hin. Was dasteht, muss niemand finden.
NUR AUF FINGERGERAETEN (siehe chat.css). Am Rechner bleibt der
`title`, weil dort das Ueberfahren funktioniert und eine
Dauerzeile unter jeder zweiten Nachricht nur Unruhe waere.
`aria-hidden`, WEIL ES SIE SCHON GIBT: Jede Kachel traegt ihre
Namen im `aria-label`. Ohne diese Zeile hoerte ein
Vorleseprogramm alles doppelt. */
if (n.reaktionen.length) {
const wer = el('div', 'reaktionen__wer',
n.reaktionen.map((r) => `${r.zeichen} ${r.wer.join(', ')}`).join(' · '));
wer.setAttribute('aria-hidden', 'true');
reihe.append(wer);
}
return reihe;
}