Das Popup-Menü zum Zitieren von Text ist auf Android nicht reagierend

Ich kann im Moment auf Android keinen Text markieren und zitieren. Das ist schon seit einiger Zeit so. Was übersehe ich? (Android 16 & 17, Chrome)

4 „Gefällt mir“

Dies passiert mir hin und wieder. Textmarkierung nicht möglich. Momentan scheint es jedoch zu funktionieren.

1 „Gefällt mir“

Ich gehe davon aus, dass Folgendes nicht hilft?

  1. Neuladen
  2. Reagiere auf einen Beitrag, bis das Reaktions-Popup erscheint, und versuche dann, Text zu markieren
4 „Gefällt mir“

Wow. Das hat es behoben! Was zum … das ist die seltsamste Umgehungslösung, die ich je gesehen habe! Danke!

3 „Gefällt mir“

Ja, das ist mir schon mal passiert, und das hat es immer wieder behoben.

Ich frage mich, ob dies mit veralteten localStorage-Daten zusammenhängt. Sehr interessant.

Hm. Ich habe immer angenommen, dass es mit Zuständen zu tun hat. Als würde das Erzwingen des Reaktions-Popups den Hover-Zustand wieder aktivieren. Aber das ist nur Spekulation.

Ist gerade wieder passiert.

Und die Umgehungslösung hat wieder funktioniert.

Ich werde dies als Contribute > Bug einstufen.

1 „Gefällt mir“

KI-Diagnose (GPT 5.6 Sol Ultra) in Codex (falls nützlich):

Gefunden: Discourse Reactions lässt einen globalen „Keine Textauswahl“-Zustand auslaufen.

  • Beim touchstart einer Reaktion wird discourse-reactions-no-select zu <html> in plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:222 hinzugefügt.
  • Diese Klasse wendet user-select: none an und deaktiviert das Long-Touch-Callout von WebKit für das gesamte Dokument in plugins/discourse-reactions/assets/stylesheets/common/discourse-reactions.scss:1.
  • Wenn ein vertikales Scrollen über dem Reaktions-Button beginnt, ungültigt plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:249 die Geste, entfernt die Klasse jedoch nicht.
  • plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:257 kehrt dann vorzeitig zurück und lässt die Klasse unbegrenzt zurück.
  • Es gibt auch keine Bereinigung bei touchcancel oder Zerstörung der Komponente.

Die einzige Entfernung erfolgt in plugins/discourse-reactions/assets/javascripts/discourse/components/discourse-reactions-actions.gjs:690. Das erklärt den gemeldeten Workaround (The popup menu for quoting text is unresponsive on Android): Das Öffnen und Schließen des Reaktions-Popups ruft collapseAllPanels() auf und stellt die Auswahl wieder her.

Die Zitat-Werkzeugleiste selbst ist nachgelagert – sie lauscht auf selectionchange und erfordert eine echte Browserauswahl in frontend/discourse/app/components/post-text-selection.gjs:58. Bei globalem user-select: none erstellt Android diese Auswahl nie.

Die Historie bestätigt diese Fehlerfamilie: Ein Scrolling-Fix aus 2023 (FIX: prevents triggering a reaction while scrolling (#224) · discourse/discourse-reactions@d1970cf · GitHub) führte die vorzeitige Rückgabe bei ungültigem Touch ein, und ein partieller Fix aus 2024 (FIX: couldn't select text after dismissing a reaction (#296) · discourse/discourse-reactions@c6710ef · GitHub) verlagerte die Bereinigung zum Panel-Collapse, ließ aber Scroll-/Cancel-Pfade unbedeckt.

Die Korrektur sollte die Klasse bei jedem abgeschlossenen, abgelehnten, abgebrochenen oder zerstörten Touch-Lebenszyklus entfernen, zusammen mit Regressionstests für touchstart → touchmove → touchend und touchcancel.

3 „Gefällt mir“

Dieser Bug hat mich schon eine Weile gestört, freut mich, dass du eine Lösung gefunden hast :+1:

3 „Gefällt mir“

@davidb zu Ihrer Aufmerksamkeit

1 „Gefällt mir“

Hi @merefield, ich versuche gerade herauszufinden, ob dies mit der anderen Korrektur zusammenhängt, die ich vor ein paar Wochen veröffentlicht habe. Da sie eigentlich nur iOS betreffen sollte, bin ich neugierig: Wie lange ist „seiner Zeit“? Meinst du damit ein paar Wochen oder länger?

1 „Gefällt mir“

Guten Tag, Entschuldigung, ich kann mich nicht genau erinnern, aber mein Bauchgefühl sagt mindestens ein paar Wochen, obwohl ich mir nicht ganz sicher bin.

Ich bin ziemlich sicher, dass dies ein Problem unter Android 16 war, also vor der Pixel-Veröffentlichung.

Auf jeden Fall ist dies natürlich möglicherweise nicht auf Android beschränkt …

1 „Gefällt mir“

Keine Sorge, ich werde einige Tests lokal ohne die Änderungen durchführen und prüfen, ob meine iOS-Behebung dafür verantwortlich war. Wenn dem so ist, könnte der heute veröffentlichte Patch helfen, aber ich werde das zuerst verifizieren.

2 „Gefällt mir“

Danke, dass du dir das angesehen hast!

1 „Gefällt mir“

Ich habe dieses Problem seit mehreren Monaten auf Android Chrome auf einer Website beobachtet. (Obwohl ich auch keine genaue Aufzeichnung geführt habe, bis eine zweite Website, die ich nutze, vor zwei Tagen aktualisiert wurde.)

2 „Gefällt mir“