Felix Riesterer: Feature Wunsch um alert-Botschaften abzuschaffen

Liebe Mitlesende, lieber Christian,

könnte man die Sicherheitsabfragen à la window.confirm("Sind sie sicher?") dadurch ersetzen, dass diese Frage neben dem betreffenden Button erscheint, anstatt via alert() den (FF-)Browser zu blockieren?

Auf der Benachrichtigungen-Seite stünde dann so etwas wie:

<p class="form-actions">
    <button
        class="cf-primary-btn"
        data-confirm="Sind Sie sicher?"
        value="yes"
        name="delete"
    >löschen</button>
    <span class="warning">Sind Sie sicher?</span>
</p>

Das fände ich weniger aufdringlich.

Was die Funktionalität angeht, so würde nur das erste Benutzen abgefangen. Wenn die Meldung da steht, dann braucht es keine erneute Abfrage, denn dann kann das Benutzen als "mit Sicherheit" angesehen werden. Aber wenn Du unbedingt die vorherige Funktionalität beibehalten willst, bei der nach "abbrechen" der vorherige Zustand wieder hergestellt wird (also der Button erneut abgefangen werden wird), dann kannst Du ja einen zusätzlichen "nein"-Button implementieren, der die Meldung verschwinden lässt, und den Button wieder sperrt:

<p class="form-actions">
    <button
        class="cf-primary-btn"
        data-confirm="Sind Sie sicher?"
        value="yes"
        name="delete"
    >löschen</button>
    <span class="warning">
        Sind Sie sicher?
        <button>nein</button>
    </span>
</p>

Was meint ihr alle dazu?

@Christian Kruse: Benötigst Du dafür den passenden jQuery-Code von mir, oder machst Du das "mal eben g'schwind" alleine? Muss allerdings dazu sagen, dass ich noch nicht erörtert habe, wo genau Du den Button womit abfängst...

Liebe Grüße,

Felix Riesterer.

  1. Hallo Felix,

    könnte man die Sicherheitsabfragen à la window.confirm("Sind sie sicher?") dadurch ersetzen, dass diese Frage neben dem betreffenden Button erscheint, anstatt via alert() den (FF-)Browser zu blockieren?

    Das ist keine schlechte Idee und ein guter Kompromiss. Ja, das setze ich so um.

    LG,
    CK

    1. Lieber Christian,

      Das ist keine schlechte Idee und ein guter Kompromiss. Ja, das setze ich so um.

      :-)

      Liebe Grüße,

      Felix Riesterer.

    2. Tach!

      könnte man die Sicherheitsabfragen à la window.confirm("Sind sie sicher?") dadurch ersetzen, dass [...]

      Das ist keine schlechte Idee und ein guter Kompromiss. Ja, das setze ich so um.

      Und bitte dabei gleich das "Sind sie sicher?" durch einen kontextbezogenen Text austauschen, der mir auch dann die Konsequenzen der Bestätigung aufzeigt, wenn ich versehentlich auf den Button geklickt habe und deshalb gar nicht weiß, wessen ich mir sicher sein soll.

      Das Problem entschärft sich vermutlich etwas, wenn der Text statt unabhängig von allem anderen in der Mitte aufzupoppen in der Nähe des auslösenden Elements auftaucht und damit der Kontext ersichtlich wird.

      dedlfix.

  2. @@Felix Riesterer

    könnte man die Sicherheitsabfragen à la window.confirm("Sind sie sicher?") […]

    Was meint ihr alle dazu?

    System: Sind Sie sicher?
    Nutzer: Moment, ich denk nochmal drüber nach. (Kein Nutzer, jemals.)

    Ich bin sicher, dass Sind-Sie-sicher?-Fragen schlechte UX sind und ein sicheres Zeichen dafür, dass Entwickler ihre Probleme auf den Nutzer abwälzen anstatt sie zu lösen.

    Natürlich machen Nutzer hin und wieder Fehler. Diese wird man durch „Sind Sie sicher?“ kaum vermeiden, sondern das führt lediglich dazu, dass die Nutzer genervt sind und bedenkenlos „Ja, bin ich“ sagen.

    Sollen Nutzer doch ihre Fehler machen – und berichtigen können! Undo. Statt. Sind Sie sicher? Implementieren. S.a. ISO 9241-110.

    LLAP 🖖

    --
    „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
    „Hat auf dem Forum herumgelungert …“
    (Wachen in Asterix 36: Der Papyrus des Cäsar)
    1. Hallo Gunnar,

      System: Sind Sie sicher?
      Nutzer: Moment, ich denk nochmal drüber nach. (Kein Nutzer, jemals.)

      in einer idealen Welt magst du recht haben. Aber ich habe schon zahlreiche UIs erlebt, die so unklar und mehrdeutig waren, dass ich über eine solche Rückfrage froh war, weil sie mir überhaupt erstmal einen Hinweis gegeben hat, was der Button überhaupt bedeutet, den ich eben völlig fehlinterpretiert hatte.

      Ich bin sicher, dass Sind-Sie-sicher?-Fragen schlechte UX sind und ein sicheres Zeichen dafür, dass Entwickler ihre Probleme auf den Nutzer abwälzen anstatt sie zu lösen.

      Vor allem, dass die UI-Entwickler nicht in der Lage waren, die tatsächliche Funktion klar, geschweige denn intuitiv zu vermitteln.

      Natürlich machen Nutzer hin und wieder Fehler. Diese wird man durch „Sind Sie sicher?“ kaum vermeiden, sondern das führt lediglich dazu, dass die Nutzer genervt sind und bedenkenlos „Ja, bin ich“ sagen.

      ACK. Das ist besonders ärgerlich, wenn die Abfrage fast(!) immer dieselbe ist. Dann drückt man nämlich auch dann reflexartig auf "Ja" oder "OK", wenn der Wortlaut der Rückfrage mal ein anderer ist. Und das kann ärgerlich sein.

      Sollen Nutzer doch ihre Fehler machen – und berichtigen können! Undo.

      Das ist natürlich der Königsweg.

      So long,
       Martin

    2. Lieber Gunnar,

      sag doch gleich, dass Du im Falle der "gelöschten" Benachrichtigungen oder Post ein "undelete" haben möchtest. CK bräuchte dann wesentlich mehr Daten in der DB, denn er kann dann ja nur auf "unsichtbar" schalten, anstatt die Einträge wirklich aus der DB zu entfernen.

      Aber dann könnte man die Wirkung des Buttons durch ein Undo revidieren.

      Liebe Grüße,

      Felix Riesterer.

      1. Aloha ;)

        sag doch gleich, dass Du im Falle der "gelöschten" Benachrichtigungen oder Post ein "undelete" haben möchtest. CK bräuchte dann wesentlich mehr Daten in der DB, denn er kann dann ja nur auf "unsichtbar" schalten, anstatt die Einträge wirklich aus der DB zu entfernen.

        Dieser Weg mag im UI-Sinne der bessere sein, das Mehr an Datenhaltung ist aber damit nicht zu rechtfertigen. Mag sein, dass ein Entwickler "sein" Problem auf den User abwälzt, aber im vorliegenden Fall ist der Einschnitt wohl doch eher gering. So gering, dass dadurch keine Haltung größerer Datenbestände zu rechtfertigen ist, die sich im Zweifelsfall auf die Server-Performance auswirkt und dadurch, gesetzt den Fall, dass diese nicht durch mehr Hardware und Moneten wieder ausgeglichen wird, automatisch doch wieder auf den User zurückfällt, der nun größere Wartezeiten hat.

        UI-Optimierung ist grundsätzlich sinnvoll, es gibt aber auch Grenzen.

        Ganz abgesehen davon ist das "Bitte bestätigen Sie die Löschung" ein bewährtes Mittel, das an vielen Stellen zum Einsatz kommt (und daher vom Nutzer, gerade bei Löschoperationen, aus Erfahrung auch erwartet wird), und es ist fraglich, ob es angemessen ist, für eine Löschfunktion eine "Undo" anzubieten, gemessen daran, dass der User bei Klick auf "Löschen" auch erwarten können sollte, dass tatsächlich gelöscht wird. Es würde doch seltsam anmuten, wenn ich zuerst den Papierkorb leeren, es mir dann wieder anders überlegen und die Dateien dann doch wiederherstellen kann, oder?

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar unter: # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
      2. @@Felix Riesterer

        sag doch gleich, dass Du im Falle der "gelöschten" Benachrichtigungen oder Post ein "undelete" haben möchtest.

        Ja, mit dem Löschen ist das so ein Ding.

        Frag Nutzer, ob sie wollen, dass sie die gelöschten Dateien wiederherstellen können. Frag Nutzer, ob sie wollen, dass gelöschte Dateien auf dem Server auch wirklich weg sind. Sie werden beide Fragen mit ja beantworten. Frag sie, welches der beiden Features ihnen lieber ist. Sie werden sagen: ich will beides.

        Nutzer sind das Konzept Papierkorb gewöhnt. „Gelöschte“ Dateien landen dort und können wiederhergestellt werden.

        Aus Systemsicht ist der Papierkorb natürlich nur ein Ordner und es ist nichts gewonnen, wenn der Nutzer keinen Anreiz hat, den Papierkorb zu leeren (und damit die Dateien endgültig zu löschen).

        Was ich mir vorstellen könnte, wäre ein sich selbst leerender Papierkorb. Nutzer löscht Datei und bekommt eine Meldung wie „Die Datei befindet sich jetzt im Papierkorb und wird nach 24 Stunden automatisch endgültig gelöscht.“ (Je nach Tonalität der Website vielleicht auch „Die Datei ist jetzt im Mülleimer. Nach 24 Stunden kommt die Müllabfuhr und nimmt sie unwiederbringlich mit.“)

        Der Nutzer hat dann genügend Zeit, irrtümlich gelöschte Dateien wiederherzustellen. Und dem Systemadmin ist auch geholfen, dass der Müll auch wirklich entsorgt wird.

        LLAP 🖖

        --
        „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
        „Hat auf dem Forum herumgelungert …“
        (Wachen in Asterix 36: Der Papyrus des Cäsar)
        1. Hallo,

          nach 24 Stunden automatisch endgültig gelöscht.

          Freitag nachmittag im Büro: mal ein bisschen aufräumen.
          Montag früh: Ach je, da hab ich wohl zuviel gelöscht vorhin, Arbeitszeitmäßig sind ja höchstens drei Stunden vergangen. Wieso kann ich da jetzt nix zurückholen??ßßßszsz

          Gruß
          Kalk

          1. @@Tabellenkalk

            … da jetzt nix zurückholen??ßßßszsz

            Wo manche so ihre Fragezeichen herholen!!111elf

            Alternativ-Text

            LLAP 🖖

            --
            „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
            „Hat auf dem Forum herumgelungert …“
            (Wachen in Asterix 36: Der Papyrus des Cäsar)
            1. Hallo,

              Wo manche so ihre Fragezeichen herholen!!111elf

              Alternativ-Text

              Mit anderen Worten: wer gelernt hat, mit 10 Fingern zu schreiben, sollte einen großen Bogen um Apple-Produkte machen, da sind ja sämtliche Satzzeichen woanders ;P

              öh, nichtmal Umläüte gibs...

              Gruß
              Kalk

              1. @@Tabellenkalk

                Mit anderen Worten: wer gelernt hat, mit 10 Fingern zu schreiben, sollte einen großen Bogen um Apple-Produkte machen, da sind ja sämtliche Satzzeichen woanders ;P

                öh, nichtmal Umläüte gibs...

                Mit anderen Worten: wer gelernt hat, mit 2 Augen zu sehen, sollte einen großen Bogen um Kalk-Postings machen...

                Alternativ-Text

                LLAP 🖖

                --
                „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
                „Hat auf dem Forum herumgelungert …“
                (Wachen in Asterix 36: Der Papyrus des Cäsar)
                1. Hallo,

                  Mit anderen Worten: wer gelernt hat, mit 2 Augen zu sehen, sollte einen großen Bogen um Kalk-Postings machen...

                  na siehste, geht doch! Wie war das jetzt nochmal mit dem Fragezeichen??ßßszszs

                  Gruß
                  Kalk

                  1. @@Tabellenkalk

                    Mit anderen Worten: wer gelernt hat, mit 2 Augen zu sehen, sollte einen großen Bogen um Kalk-Postings machen...

                    na siehste, geht doch! Wie war das jetzt nochmal mit dem Fragezeichen??ßßszszs

                    Um diese Frage mach ich jetzt mal einen großen Bogen. 😜

                    LLAP 🖖

                    --
                    „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
                    „Hat auf dem Forum herumgelungert …“
                    (Wachen in Asterix 36: Der Papyrus des Cäsar)
        2. Lieber Gunnar,

          Ja, mit dem Löschen ist das so ein Ding.

          richtig, es ist ein Problem des Entwicklers (Datenmengen erhalten und speichern), der das Problem des Users (sich festlegen müssen ob weg oder behalten) lösen soll, obwohl er es nicht kann. Dass er des Users Problem dann auf diesen abwälzt, wir dann von Dir als ungenügende UX bewertet.

          Daher mein Vorschlag: User dazu zwingen, sich festzulegen.

          "Sind Sie sich sicher?" ist vielleicht nicht günstig, denn da könnte man mit einem "ach, ich weiß noch nicht so recht..." antworten. Blendet man dagegen einen Hinweis á la "durch nochmaliges Klicken werden die Daten unwiderruflich gelöscht" ein, so muss sich der User dazu bequemen nun endlich eine Entscheidung zu treffen, und der Entwickler (oder sogar der schöne Designer) muss nicht das Problem des DAUs unter größten Kraftanstrengungen (Undelete von Daten bei Bedarf, nach 7 Tagen selbstentleerender Mülleimer etc.) für ihn ungelöst lassen.

          @Christian Kruse, was sagst Du dazu?

          Liebe Grüße,

          Felix Riesterer.

    3. @@Gunnar Bittersmann

      Ich bin sicher, dass Sind-Sie-sicher?-Fragen schlechte UX sind und ein sicheres Zeichen dafür, dass Entwickler ihre Probleme auf den Nutzer abwälzen anstatt sie zu lösen.

      Hier hätte „Designer/Entwickler“ stehen sollen.

      LLAP 🖖

      --
      „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
      „Hat auf dem Forum herumgelungert …“
      (Wachen in Asterix 36: Der Papyrus des Cäsar)
  3. Hallo Ingrid,

    könnte man die Sicherheitsabfragen à la window.confirm("Sind sie sicher?") dadurch ersetzen, dass diese Frage neben dem betreffenden Button erscheint, anstatt via alert() den (FF-)Browser zu blockieren?

    gerade heute, als ich mein Voting zu einem Zitat abgab, erschien das visuelle Feedback im oberen Fenster, wo es wichtige Links verdeckte, anstatt dass es genau zu dem Zitat erschien, zu dem ich mein Voting abgegeben hatte.

    @Christian Kruse: Benötigst Du dafür den passenden jQuery-Code von mir, oder machst Du das "mal eben g'schwind" alleine?

    Das Angebot steht weiterhin... wenn Du mir die dazu wesentlichen Pointer (wo lese ich das Konzept der UI-Verbesserung via JS nach?) geben könntest.

    Liebe Grüße,

    Felix Riesterer.

    1. Hallo Felix,

      gerade heute, als ich mein Voting zu einem Zitat abgab, erschien das visuelle Feedback im oberen Fenster, wo es wichtige Links verdeckte, anstatt dass es genau zu dem Zitat erschien, zu dem ich mein Voting abgegeben hatte.

      Da wird es auch erstmal bleiben, das zu ändern wäre einerseits sehr viel Arbeit und andererseits gibt es durchaus auch Gründe, warum es immer an dieser Stelle ist, egal wie im Dokument gescrollt wird.

      @Christian Kruse: Benötigst Du dafür den passenden jQuery-Code von mir, oder machst Du das "mal eben g'schwind" alleine?

      Das Angebot steht weiterhin...

      Das ist nett, aber das zieht grössere Änderungen nach sich. Ich möchte auf Dauer ganz auf jquery-ujs (das ist eine Sammlung von unobstrusive JS-Erweiterungen von Rails) verzichten und ersatzlos streichen bzw im Falle von data-confirm ersetzen durch etwas eigenes. Das ist aber einiges an Arbeit.

      wenn Du mir die dazu wesentlichen Pointer (wo lese ich das Konzept der UI-Verbesserung via JS nach?) geben könntest.

      Ich bin mir nicht sicher, was du von mir erwartest. Ein allgemeiner Artikel zu unobstrusive JS? Das erscheint mir nicht sinnvoll, darüber wirst du doch sicher schon gelesen haben. Wie das data-confirm funktioniert? Das wird von jquery-ujs gemacht. Etwas anderes? Bitte erläutern :)

      LG,
      CK

      1. Lieber Christian,

        Da wird es auch erstmal bleiben, das zu ändern wäre einerseits sehr viel Arbeit und andererseits gibt es durchaus auch Gründe, warum es immer an dieser Stelle ist, egal wie im Dokument gescrollt wird.

        ist das eine vorübergehende Notlösung, da für etwas besseres gerade die Zeit und die Priorität fehlt? Das könnte ich nachvollziehen. Als endgültige Entscheidung hätte ich ein Problem damit.

        Das ist nett, aber das zieht grössere Änderungen nach sich. Ich möchte auf Dauer ganz auf jquery-ujs (das ist eine Sammlung von unobstrusive JS-Erweiterungen von Rails) verzichten und ersatzlos streichen bzw im Falle von data-confirm ersetzen durch etwas eigenes. Das ist aber einiges an Arbeit.

        Hmm. Warum möchtest Du auf ein Framework verzichten? Um ein anderes einzusetzen? Um das alles mit Vanilla-JS zu lösen? Oder aus einem noch ganz anderen Grund?

        Ich bin mir nicht sicher, was du von mir erwartest.

        Welche strukturellen Vorgaben muss ich beachten, damit ich Deine Lösung "verbessern" kann, um Dir zuarbeiten zu können? Mit JS habe ich schon etwas Erfahrung, mit jQuery auch, mit jQuery-ujs zwar noch nicht, aber das wäre nicht das große Problem für meine Absichten.

        Es ist mein Credo, dass visuelles Feedback im Dokument an die Stelle sollte, an der sich auch die Bedienelemente der dieses Feedback erzeugenden Aktion befinden. Das wollte ich erreichen.

        Wenn Du sagst, "schau ins Dokument, da findest Du das Markup, den Rest musst Du selbst herausfinden", dann mache ich das. Wenn Du aber sagst, "hier ist die Kommunikationslogik für die Forensoftware und hier ist die Logik für die DOM-Manipulationen, werde selber schlau daraus", dann kann ich das auch.

        Liebe Grüße,

        Felix Riesterer.

        1. Hallo Felix,

          Da wird es auch erstmal bleiben, das zu ändern wäre einerseits sehr viel Arbeit und andererseits gibt es durchaus auch Gründe, warum es immer an dieser Stelle ist, egal wie im Dokument gescrollt wird.

          ist das eine vorübergehende Notlösung, da für etwas besseres gerade die Zeit und die Priorität fehlt? Das könnte ich nachvollziehen. Als endgültige Entscheidung hätte ich ein Problem damit.

          Das ist eine Lösung in Ermangelung einer besseren. Und nein, ich halte es nicht für besser die Alerts an irgendwelchen Elementen festzumachen.

          Das ist nett, aber das zieht grössere Änderungen nach sich. Ich möchte auf Dauer ganz auf jquery-ujs (das ist eine Sammlung von unobstrusive JS-Erweiterungen von Rails) verzichten und ersatzlos streichen bzw im Falle von data-confirm ersetzen durch etwas eigenes. Das ist aber einiges an Arbeit.

          Hmm. Warum möchtest Du auf ein Framework verzichten?

          Welches Framework? Ich möchte nur auf jquery_ujs verzichten, weil mir das zu unflexibel ist und ich eh nur zwei Funktionen daraus benutze.

          Um ein anderes einzusetzen? Um das alles mit Vanilla-JS zu lösen?

          Ohjemine, nein! Ich bin ein absoluter Befürworter der Verwendung von Tools wie jQuery.

          Ich bin mir nicht sicher, was du von mir erwartest.

          Welche strukturellen Vorgaben muss ich beachten, damit ich Deine Lösung "verbessern" kann, um Dir zuarbeiten zu können?

          JS-Code ist in app/assets/javascript. Wesentlich mehr fällt mir jetzt nicht ein.

          Wenn Du sagst, "schau ins Dokument, da findest Du das Markup, den Rest musst Du selbst herausfinden", dann mache ich das. Wenn Du aber sagst, "hier ist die Kommunikationslogik für die Forensoftware und hier ist die Logik für die DOM-Manipulationen, werde selber schlau daraus", dann kann ich das auch.

          Nun, wie ich bereits schrieb: um das so einzusetzen wie ich mir das vorstelle (data-confirm bleibt, wird aber durch einen Button, der inline eingeblendet wird, abgelöst) muss auf jquery_ujs verzichtet werden. Um darauf zu verzichten müssen alle JS-Targets abgeschafft werden, an vielen Stellen verwende ich noch link_to "Target", url, method: :delete. Bei dieser Art Link wird durch das UJS der Klick dann abgefangen und zu einem POST mit den notwendigen CSRF-Tokens und einem Feld _method=delete umgeformt. Das zu ändern ist aber eine grössere Sache, ich muss halt alle stellen finden und durch ein button_to ersetzen, dass ein Formular generiert.

          Alternativ könnte man auch den „kleinen“ Weg gehen und data-confirm durch data-cf-confirm ersetzen und das durch das neue JS abfangen. Das halte ich aber für eine unschöne, temporäre Lösung.

          LG,
          CK

  4. Hallo Felix,

    das ist jetzt implementiert.

    LG,
    CK

    1. Lieber Christian,

      das ist jetzt implementiert.

      JA!! So gefällt mir das sehr! Aber...

      ;-)

      ... muss die Erfolgsmeldung am Seitenkopf stehen? Könnte sie nicht unterhalb der Überschrift stehen, unter der meine Liste an Benachrichtigungen ist, die gerade geleert wurde? Diese Meldungsfläche oben verdeckt in meiner Ansicht wesentliche Bediener-Links, die erst wieder nutzbar werden, wenn sich die Erfolgsmeldung von selbst entfernt hat, oder wenn ich sie wegklicken kann. Das fände ich noch verbesserungsfähig.

      Liebe Grüße,

      Felix Riesterer.