Firefox-Dialog wird geschlossen, wenn außerhalb des Dialogs ein Mausklick erfolgt...

  • Firefox-Version
    116.0.3 & Nightly
    Betriebssystem
    Windows 10

    Ein Klick mit der Maus (Taste egal) in einem bestimmten Bereich außerhalb eines sichtbaren, modalen Dialogfensters, schließt den Dialog wieder. Also das gleiche Verhalten wie bei ESC und 'Abbrechen'. Dieser Bereich nennt sich dialogTemplate dialogOverlay dialogOverlay-window-modal-dialog-subdialog (Klassendefinition). Im Screenshot der blau-selektierte Bereich ohne das sichtbare Dialogfenster selber:

    Zuerst habe ich natürlich an einen Bug gedacht, da es dieses Verhalten früher (102esr) nicht gegeben hat. Aber als ich mir dann den dazugehörigen Event angeschaut habe, dann scheint es ja ganz offensichtlich so gewollt zu sein, siehe Kommentar des Entwicklers :/:?::


    Nur finde ich ehrlich gesagt keinen logischen Grund, wieso das auf diese Weise implementiert wurde. Da ich momentan mit den Dialogen aus der Firefox-Bibliothek herum experimentiere, ging ich zuerst von einem selbst verschuldeten Fehler meinerseits aus, was sich dann aber als das Standard-Verhalten des Firefox entpuppt hat.

    Das 'Overlay' ist ja ein unsichtbarer Rahmen und nur dort, also ca. 50 Pixel rechts/links und im gesamten oberen Bereich reagiert der Firefox mit dem Schließen des Dialogs. Ich verstehe einfach den Sinn nicht. Ich wäre dankbar, wenn jemand eine Erklärung dafür hätte... :/

    Einmal editiert, zuletzt von BrokenHeart (21. August 2023 um 07:10)

  • Hallo,

    Zuerst habe ich natürlich an einen Bug gedacht, da es dieses Verhalten früher (102esr) nicht gegeben hat. Aber als ich mir dann den dazugehörigen Event angeschaut habe, dann scheint es ja ganz offensichtlich so gewollt zu sein

    Hallo,

    das passt beides nicht zusammen, denn der Code, auf den du dich hier beziehst, wurde bereits in Firefox 55 implementiert:

    1358645 - about:preferences subdialog should be dismissable by clicking the overlay background (like a web page lightbox)
    VERIFIED (cpeterson) in Firefox - Settings UI. Last updated 2017-05-24.
    bugzilla.mozilla.org

    Das bezieht sich aber auf Dialoge, die innerhalb von about:preferences geöffnet werden. Außerhalb von about:preferences kann ich das beschriebene Verhalten weder unter Firefox Nightly auf macOS 13.5 noch unter Firefox 116 auf Windows 11 bestätigen (Nachtrag: doch, oberhalb vom Dialog kann ich es bestätigen).

    Nur finde ich ehrlich gesagt keinen logischen Grund, wieso das auf diese Weise implementiert wurde.

    Die Begründung liefert das verlinkte Bugzilla-Ticket: Das ist gängige UX-Konvention für etwas, was man im Website-Kontext gerne Lightbox nennt. Die Seite about:preferences wird in diesem Sinne als „Website“ betrachtet. Klicke hier im Thema mal auf einen deiner Screenshots. Auch hier schließt du die Ansicht per Klick außerhalb des Bereiches, den das Bild einnimmt:

    Das ist kein perfektes Beispiel, weil der Bild-Element hier mehr Platz einnimmt als das, was man vom Bild sieht, was eher eine Eigenheit der hier verwendeten Lightbox ist, aber es deutet zumindest das Prinzip an. Klicke ich links oder rechts von dem in diesem Screenshot eingefärbten Bereich, schließt das Overlay.

  • das passt beides nicht zusammen, denn der Code, auf den du dich hier beziehst, wurde bereits in Firefox 55 implementiert:

    Das bezieht sich aber auf Dialoge, die innerhalb von about:preferences geöffnet werden.

    Hallo,

    das Verhalten innerhalb einer Webseite (hier about:preferences) meinte ich auch nicht. Dort ist das Verhalten nachvollziehbar und vor allem auch einheitlich. Die "Dialogbox" ist da ja Teil der Webseite. Da führt jeder Klick außerhalb der Dialogbox (aber innerhalb der Webseite) zum Schließen des Dialogs, egal wo er ausgeführt wird. Da gibt es keinen eingeschränkten Bereich.

    Ich meinte die 'Fenster-modalen' Dialoge wie im ersten Beispiel z.B. mit dem Dialog für das Löschen der neuesten Chronik, aufgerufen über das Menü. Das sind ja eigentlich Windows-Dialoge. Beim Aufruf des "Fehlerbehebungsmodus" passiert exakt das gleiche.

    Hier mal ein Video:

    Nur in dem Bereich, welches das sogenannte Overlay einnimmt (s.o. blauer Bereich) wird der Dialog geschlossen. Für mich absolut unverständlich. So etwas habe ich unter Windows noch nie gesehen.

    Dieses Verhalten lässt sich auch temporär ein/ausschalten, in dem man in der Entwicklungsumgebung den angegebenen Event abwählt.

    Außerhalb von about:preferences kann ich das beschriebene Verhalten weder unter Firefox Nightly auf macOS 13.5 noch unter Firefox 116 auf Windows 11 bestätigen

    Beide Betriebssysteme laufen hier nicht, so kann ich das weder bestätigen, noch verneinen... :/

    Edit: Der Kommentar im Sourcecode beschreibt genau das, was der Code letztendlich dann auch ausführt (der zugehörige Sourcecode lässt sich von der Entwicklungsumgebung aus über den Eventlink aufrufen).

    Zitat

    // Close the dialog if the user clicked the overlay background, just

    // like when the user presses the ESC key (case "command" below).

    Hier ist, anders als bei einer Webseite, der Overlay-Hintergrund nur ein besserer Rahmen und ich vermute(!) mal, dass man einfach ein ähnliches Verhalten wie bei einem Webseiten-Dialog oder Popup haben wollte, was aber wohl nicht richtig implementiert wurde... :/

    3 Mal editiert, zuletzt von BrokenHeart (21. August 2023 um 13:06)

  • Beide Betriebssysteme laufen hier nicht, so kann ich das weder bestätigen, noch verneinen... :/

    Was Firefox betrifft, gibt es keinen Unterschied zwischen Windows 10 und Windows 11. Aber siehe mein Nachtrag zu dieser Stelle.

    Edit: Der Kommentar im Sourcecode beschreibt genau das, was der Code letztendlich dann auch ausführt (der zugehörige Sourcecode lässt sich von der Entwicklungsumgebung aus über den Eventlink aufrufen).

    Ja. Der Code, auf den du dich beziehst, wurde wie gesagt bereits in Firefox 55 implementiert. Aber ich habe mir mal den Unterschied zwischen Firefox 102 und Firefox 116 angesehen. Und das CSS für die Positionierung hat sich geändert. Der Bereich, indem die hbox das margin gesetzt hat, reagiert auf die Klicks. Und damit wird in dem Bereich der Code ausgeführt, der vorher nicht ausgeführt worden ist.

    Nach einer bewussten Verhaltensänderung sieht das für mich nicht aus, weil ich ansonsten eine deutlich größere Klickfläche erwarten würde. Ich weiß allerdings nicht, ob das eine bekannte, aber akzeptierte Verhaltensänderung ist, weil es ein wichtigeres Problem löst, oder ob es noch niemand bemerkt hat und vielleicht behoben wird, wenn es jemand meldet.

  • Vielen Dank, dass du dir dass nochmal angeschaut hast!

    Ja. Der Code, auf den du dich beziehst, wurde wie gesagt bereits in Firefox 55 implementiert. Aber ich habe mir mal den Unterschied zwischen Firefox 102 und Firefox 116 angesehen. Und das CSS für die Positionierung hat sich geändert. Der Bereich, indem die hbox das margin gesetzt hat, reagiert auf die Klicks. Und damit wird in dem Bereich der Code ausgeführt, der vorher nicht ausgeführt worden ist.

    Ja, so ist es. In FF102 sind die Elternknoten 'dialogOverlay'/'window-modal-dialog'/usw. exakt so groß wie der eigentliche Dialog, in FF116 hat man das nach links/rechts und nach oben hin vergrößert. Ich habe es eben noch mal überprüft: es wird für die 'modalen Windows-Dialoge' exakt der gleiche Event-Code verwendet, wie für die eingebetteten Webseiten-Dialoge (z.B. in about:preferences). Daher auch das gleiche Verhalten. Man wollte wohl den gleichen Code für alle Dialoge verwenden. :/

    Da es aber nicht dem Windows-Standard entspricht, einen allgemeinen window-modalen Dialog auf diese Weise zu beenden und weil es in sich auch nicht logisch erscheint, so einen kleinen Bereich um den Dialog herum, für einen Mausklick zu benutzen, um ihn zu beenden, halte ich das Verhalten zumindest für schlecht implementiert. Vielleicht ist das auch nur eine Vorbereitung dafür, irgendwann alle Windows-Dialoge im 'Webseitenstil' umzugestalten :/ . Von einem Bug kann man wohl nicht sprechen, da es allem Anschein nach so beabsichtigt ist.

    Das ist jetzt alles keine große Sache und stört normalerweise auch nicht, ist mir halt beim herum experimentieren aufgefallen und ich wollte es nicht unerwähnt lassen... ;)

    Einmal editiert, zuletzt von BrokenHeart (21. August 2023 um 22:44)

  • Von einem Bug kann man wohl nicht sprechen, da es allem Anschein nach so beabsichtigt ist.

    Das glaube ich wie gesagt gar nicht mal. Die eigentlichen Änderungen des Codes, klar, für die gab es Gründe. Aber dass man in dem Bereich dann klicken kann, um die Dialoge zu schließen, kann auch einfach nur eine Konsquenz aus diesen Änderungen sein, die nicht beabsichtigt sein muss. Wenn ich mir die Bugzilla-Tickets zu den relevanten Zeilen ansehe, geht es in allen nur um die Positionierung. Von einer Verhaltensänderung zum Schließen erwähnt keines der Tickets, die ich gefunden habe, etwas.

  • Aber dass man in dem Bereich dann klicken kann, um die Dialoge zu schließen, kann auch einfach nur eine Konsquenz aus diesen Änderungen sein, die nicht beabsichtigt sein muss.

    Das denke ich auch. Ich hatte ja auch geschrieben, dass man augenscheinlich den selben Code für zwei unterschiedliche Dinge verwendet hat. Hier müsste man, was das Schließen des Dialogs betrifft, auf jeden Fall eine Unterscheidung im Code machen. So gesehen kann man das natürlich auch als Bug bezeichnen...

    Edit: Auch wenn es jetzt aktuell keine Lösung des Problems gibt, stelle ich den Thread mal auf 'erledigt', da eigentlich alles, was es aus Anwender-Sicht zu diesem Thema zu sagen gibt, gesagt wurde...

    Einmal editiert, zuletzt von BrokenHeart (22. August 2023 um 21:05)