Wie oft müssen Sie UI-Schaltflächen abfragen, bevor sie als verzögert wahrgenommen werden?

8

Während es möglich und manchmal wünschenswert ist, Pin-Wechsel-Interrupts zum Lesen des Status von Tasten zu verwenden, ist es einfacher, den Status von Tasten abzufragen loop(). Dies ist eine häufig verwendete Technik.

Wenn Sie loop()schnell genug ausführen, werden immer Tastendrücke abgefangen, und der Benutzer kann keine Verzögerung oder Verzögerung feststellen.

Es ist möglich, dass Ihre Schleife so lange dauert, bis eine Verzögerung oder Verzögerung wahrgenommen wird.

Die Frage ist, wie lange es im Allgemeinen dauern würde, bis ein Benutzer dies sieht.

Cybergibbons
quelle
2
Wenn Sie loop()eher langsam sind (ich meine, zu langsam, um dem Endbenutzer schnell genug Feedback geben zu können), können Sie möglicherweise einen ISR für die Änderung der PIN-Ebene verwenden und dem Benutzer sofort Feedback geben (wenn dies schnell berechnet werden kann) oder geben Sie ihm vorübergehend eine Rückmeldung (z. B. LED leuchtet), um ihm mitzuteilen, dass seine Anfrage erkannt wurde und in Kürze (in loop()) bearbeitet wird ; Sie würden lassen, loop()indem Sie eine globale boolVariable in der ISR setzen.
Jfpoilpret
1
Es ist wahrscheinlich eines der wenigen Male, bei denen ein Tastenklick nützlich ist.
Cybergibbons

Antworten:

14

Die kurze Antwort lautet, dass Sie 100 Millisekunden Zeit haben , um dem Benutzer zu antworten, wenn Sie möchten, dass er spürt, dass die Aktion sofort ausgeführt wurde.

Laut Jacob Nielsen in seinem Buch Usability Engineering aus dem Jahr 1993, das als wichtige Referenz für die Benutzerfreundlichkeit und Benutzererfahrung von Systemen gilt:

  • 0,1 Sekunden sind ungefähr die Grenze, an der der Benutzer das Gefühl hat, dass das System sofort reagiert, was bedeutet, dass keine spezielle Rückmeldung erforderlich ist, außer um das Ergebnis anzuzeigen.

Er erwähnt auch, dass dieser grundlegende Rat bezüglich der Reaktionszeiten seit vielen Jahrzehnten ungefähr gleich ist [Miller 1968; Card et al. 1991].

Ich habe dieses Zitat aus diesem Artikel entnommen: Reaktionszeiten: Die 3 wichtigen Grenzen , ebenfalls von Jacob Nielsen geschrieben.

Beachten Sie, dass Sie in dieser Zeit alle Zeit einplanen müssen, die zum Lesen des Tastendrucks und zum Feedback an den Benutzer benötigt wird.

Andere Schwellenwerte für die Antwortzeit, die für die Benutzererfahrung wichtig sind, stammen aus derselben Quelle, wurden jedoch vom OP nicht direkt erwähnt:

  • 1,0 Sekunden sind ungefähr die Grenze für den Gedankenfluss des Benutzers, um ununterbrochen zu bleiben, obwohl der Benutzer die Verzögerung bemerken wird. Normalerweise ist bei Verzögerungen von mehr als 0,1, aber weniger als 1,0 Sekunden keine spezielle Rückmeldung erforderlich, aber der Benutzer verliert das Gefühl, direkt mit den Daten zu arbeiten.

  • 10 Sekunden sind ungefähr die Grenze, um die Aufmerksamkeit des Benutzers auf den Dialog zu lenken. Bei längeren Verzögerungen möchten Benutzer andere Aufgaben ausführen, während sie auf den Abschluss des Computers warten. Daher sollten sie eine Rückmeldung erhalten, die angibt, wann der Computer voraussichtlich fertig sein wird. Feedback während der Verzögerung ist besonders wichtig, wenn die Antwortzeit wahrscheinlich sehr unterschiedlich ist, da Benutzer dann nicht wissen, was sie zu erwarten haben.

Ricardo
quelle
1
Geniale Antwort. Vielen Dank für die zusätzlichen Informationen, es ist auch hilfreich.
Cybergibbons
3

Es ist allgemein bekannt, dass Menschen Veränderungen nicht wahrnehmen können, wenn sie weniger als 10 ms nach ihrer Aktion auftreten. Diese Reaktionsfähigkeit wird zu einer Erfahrung führen, die in letzter Zeit meist als "bissig" beschrieben wurde. Es fällt auf, aber für Benutzer ist es schwierig, einen Namen darauf zu setzen.

Wenn Sie also Perfektion wünschen, nehmen Sie sich etwa 15 ms Zeit. Wenn Sie wirklich gut wollen, nehmen Sie 100 ms Verzögerung. 100 ms sind durchschnittlich 50 ms und werden sicherlich für Menschen gelten.

Die Anwendung und die erwartete Reaktionszeit sind ebenfalls von entscheidender Bedeutung. Eine Schiebetür oder ein Aufzug haben eine sehr große Toleranz (da das physische Objekt immer viel mehr Zeit benötigt), während die Schnittstellen von Ticketautomaten zu keinem Zeitpunkt angegeben werden.

Die Obergrenze für die Abfrage würde bei etwa 1500 ms liegen. Dort werden die Leute immer bemerken, dass es langsam ist.

Diese Daten sind rein persönliche Erfahrungen als Spieler und Programmierer. YMMV und denken Sie daran, dass es der beste Weg ist, herauszufinden, wie es sich anfühlt, wenn Sie es einfach selbst ausprobieren. Die einzige "wissenschaftliche" Antwort sind die <10 Millisekunden. Darüber hinaus geht es um die Fähigkeit, die Verzögerung (die je nach Person und Moment variiert) und die Toleranz des Benutzers wahrzunehmen.

Als Randnotiz können Sie versuchen, die Verzögerungen zu schwanken, um Batterie- oder CPU-Zeit zu sparen, wenn die Schnittstelle nicht verwendet wird. Je Benutzeraktion, desto schneller die Abfrage. Wenn die Anwendung es tut, wählen Sie sehr langsam ab. Besser abstimmen, wenn es darauf ankommt!

Lodewijk
quelle