Während ich hart daran gearbeitet habe, die WinForms-Anwendung zu behalten, arbeite ich an einfachen und leicht zu lernenden, die funktionale Domäne, in der ich arbeite (Finanzen) ziemlich reich ist, und ich denke, ich sollte der Benutzer Figur helfen heraus, was als nächstes zu tun ist, sobald das Programm gestartet wird.
Ich muss hinzufügen, dass es in der Software, an der ich gerade arbeite, oft "etwas zu tun" gibt (dh etwas überprüfen, eine Nachricht beantworten usw.)
Ich habe in den letzten Tagen ziemlich viel darüber nachgedacht, und ich habe das Gefühl, dass in diesem Bereich bereits viele Dinge ausprobiert wurden:
Clippy (R.I.P.).
Die Schaltfläche ? in der oberen rechten Ecke (auch "Was ist das?"), die Benutzer ignorieren konnten, indem sie mit ? wird wahrscheinlich einen hilfreichen "Retro-Transponder Amplitude" Tooltip bringen, der den Mausausflug in die obere rechte Ecke nicht wert ist.
Es gibt einige Variationen der ? -Schaltfläche, einschließlich einer kontextabhängigen Hilfezone in der Statusleiste (die sich auf das bezieht, was die Maus gerade schwebt), was das Problem des Klickens löst "?", aber lassen Sie den Benutzer immer noch nicht die gesamte Oberfläche auf einen Blick erfassen. Bearbeiten: Joe's Vorschlag eines kontextabhängigen Hilfefensters ist ein weiteres Beispiel dafür.
Hilfedateien sind hilfreich (sofern sie gut geschrieben sind), aber ihnen fehlt das "unmittelbare Feedback" -Ding - genau das Problem, das Clippy anzugehen versuchte
"Tipp des Tages" werden normalerweise auf Sicht gedreht (normalerweise so schnell, dass manche Benutzer nicht einmal die Zeit haben, das Kontrollkästchen "Tipp des Tages beim Start anzeigen" zu aktivieren). p>
Etwas, das ich in Betracht ziehe, ist ein Overlay-Hilfebildschirm, dh das Drücken von "F1" würde viele Overlay-Tooltips auf dem Bildschirm anzeigen, die alles erklären, mit einem roten Tooltip (statt gelb) für die empfohlene nächste Aktion . Wenn Sie F1 loslassen (oder möglicherweise ein anderes Mal drücken), wird das gesamte Hilfe-Clutter ausgeblendet.
Dies würde die Probleme mit den vier genannten Ansätzen ansprechen:
Hilfe ist nur Popup auf Anfrage (vs clippy)
Sie müssen nicht auf klicken? und dann auf jedes einzelne Label auf dem Bildschirm (vs ? -Schaltfläche)
Sie müssen nicht lange nach den relevanten Informationen in der Hilfedatei suchen. Die Dokumentation ist direkt zur Hand (vs. CHM Hilfedatei)
nützliche Tipps werden zu einem relevanten Zeitpunkt angezeigt (dh Sie erhalten Tipps in Bezug auf Dialog foo, wenn es angezeigt wird, nicht beim Programmstart - eine Zeit, wenn Sie wahrscheinlich nicht wissen, wie der Foo-Dialog aussieht)
Wie schon in einigen Programmen versucht? Denkst du, dass es eine gute Idee ist? Hast du andere Ideen im Kopf, um mein Problem anzugehen?
Haftungsausschluss: Bitte antworten Sie nicht "Sie sollte Ihr wirkliches Problem ansprechen, welches ist, dass Sie UI zu komplex ist. "Bitte gehe davon aus, dass alles erledigt wurde halte die Benutzeroberfläche einfach.
Denken Sie an ein Verkehrsflugzeug-Cockpit. Tonne von Anstrengung ist in die UI gegangen, aber es ist immer noch extrem komplex. Jetzt stell dir vor normale Benutzer sollten in der Lage sein zu verwenden it: Wie würdest du das Problem angehen? Das ist genau mein Problem.
Ableton Live (Ein Musikprogramm) hat ein quadratisches Fenster, das ein paar Zentimeter breit ist und beschreibt, worüber die Maus gerade schwebt. Es ist standardmäßig aktiviert und kann minimiert werden, aber es ist immer nur einen Klick entfernt. Ich fand es nützlich, wenn ich zuerst die Software benutze. Während ich es innerhalb von 5 Minuten minimiert habe, hat es geholfen, einige leicht obskure Funktionen zu erklären und mich an jene Funktionen zu erinnern, die nicht leicht zu finden waren. Und ich wusste immer, wo ich klicken muss, um es zurückzubekommen.
Nun, die meisten Leute mögen keine Paradigmen, die sich wie ein Lehrer verhalten (das ist schlauer als dein Selbst),
Hilfe sollte bereitgestellt werden, wenn der Benutzer danach fragt.
nützliche clippy http://middaysoftware.com/MinhsBlogs/DirectGallery/bad_clippy.gif
Wenn ein Benutzer Hilfe benötigt, ist es normalerweise keine Frage "Was macht Control X?" Es ist "Wie beende ich Aufgabe Y?" Um dies zu unterstützen, können Sie:
Fügen Sie einen ausblendbaren Bereich oder ein Dropdown-Menü hinzu, das eine kontextsensitive Liste mit möglichen Aufgaben (oder nächsten Schritten in Aufgaben) enthält, die der Benutzer vervollständigen möchte. Beschriften Sie sie als Fragen (z. B. "Wie gehe ich mit Krediten um, die nicht zurückgezahlt werden?"). Durch Auswählen einer Frage wird der Bereich ausgefüllt oder ein Hilfefenster geöffnet, in dem beschrieben wird, wie die Aufgabe (oder der Schritt) ausgeführt wird. Machen Sie es so, dass solche Hilfsangebote leicht zu ignorieren sind (im Gegensatz zu Clippy) und auch später leicht abgerufen werden können, etwa durch einen Zurück-Button (anders als bei Clippy). Anstatt Anweisungen in einem separaten Fenster oder Fenster bereitzustellen, können Sie einzelne Schritte einer Aufgabe mit nummerierten Sprechblasen anzeigen, die auf die entsprechenden Steuerelemente im Fenster verweisen. Das ist ein neuartiger Ansatz, von dem ich denke, dass er viel Potenzial hat. Sie müssen jedoch sicher sein, dass Ihr Design und / oder Algorithmus die Möglichkeit berücksichtigt, dass Ballons sich gegenseitig stören oder etwas, das der Benutzer sehen möchte.
Bei der ersten Ausführung des Programms kann dieser Bereich "Erste Schritte" enthalten, die einen konzeptionellen Überblick darüber bietet, was Benutzer tun müssen, um bestimmte nützliche Ergebnisse (Listen) aus der App zu erhalten.
Die Hauptseite der Hilfe sollte die wichtigsten Aufgaben auflisten, die die App unterstützt. Die Auswahl jeder Aufgabe bietet einen konzeptionellen Überblick und unterteilt die Prozedur in Schritte oder Teilaufgaben, die in der App ausgeführt werden.
Beschreiben Sie in Ihrer ausführlichen Hilfe zu Aufgabe oder Schritt sowohl die Mechanismen der Verwendung der Benutzeroberfläche (z. B. "Jetzt Investitionsziele aus der Dropdown-Liste Ziele auswählen") als auch die aufgabenbezogene Domäneninformation (z. B. " Die Festlegung von langfristigen Zielen wird die Titelsuche nach Aktien mit höherem Risiko, aber höheren Renditen beeinflussen. Dies ist geeignet, wenn Sie nicht erwarten, dass Sie das Geld, das Sie investieren, für 10 Jahre oder länger benötigen. ")
Markieren Sie Ihre Hilfedateien, damit die Suche nach Aufgabenname oder Beschreibung nützliche Ergebnisse liefert. Stellen Sie sicher, dass Tags Begriffe enthalten, die ein naive Benutzer wählen kann (z. B. "Gewinn", wenn sie "Kapitalgewinne" bedeuten).
Vielleicht möchten Sie ein umfassendes Tutorial nicht nur für die App, sondern auch für die Taskdomäne in Erwägung ziehen. Betonen Sie, wie die Verwendung des Lernprogramms den Benutzern bei ihren Aufgaben oder Zielen hilft. Wenn Sie beispielsweise den Link oder das Menü "Lernen Sie Invest-o-max zu verwenden" nicht beschriften, beschriften Sie es so, dass Sie das Beste aus Ihren Investitionen herausholen.
Vielleicht möchten Sie in Erwägung ziehen, einige selten verwendete Funktionen oder sogar die gesamte App nach Aufgaben zu strukturieren. Dies ist, was ein Assistent und Microsoft " Induktive Benutzeroberfläche " tut. Wenn die Aufgabe so strukturiert ist, dass Sie wirklich sagen können, was der Benutzer als nächstes tun soll, dann denken Sie über diesen Ansatz nach.
Sie möchten immer noch ein Mittel bereitstellen, um jedes Steuerelement zu erklären, weil manchmal die Frage des Benutzers ist. Balloon-Hilfe ist eine Möglichkeit, dies zu tun, aber wie Sie darauf hinweisen, es tut wenig gut, wenn es nur die Beschriftung oder den QuickInfo des Steuerelements wiederholt. Der Text der Sprechblase sollte viel mehr enthalten, deshalb ist er in einer Sprechblase und nicht permanent auf oder neben dem Steuerelement geschrieben. Die Hilfe für ein Steuerelement sollte erklären, was es tut, wann es zu verwenden ist, was die Werte oder Parameter bedeuten und welche für welches Ziel auszuwählen. Mit anderen Worten, mehr aufgabenbezogene Hilfe. Nur eine Vermutung, aber ich glaube nicht, dass Sie solche Ballons für alle Kontrollen auf einmal zeigen können - sie werden sich gegenseitig in die Quere kommen.
Wenn es normalerweise eine logische "nächste Aktion" gibt, die der Benutzer wahrscheinlich tun sollte, wie wäre es mit dem Pochen / Hervorheben dieses Bereichs, wenn der Benutzer fest zu stecken scheint und versucht, seine nächste Aktion auszuarbeiten? Ein bisschen wie die Office-Welt glüht und pulsiert die ersten Male, wenn Sie Office starten.
Viele Web-Apps haben bei den ersten Besuchen, die Sie besuchen, zusätzliche Tipps. Das ist immer praktisch. Einige haben sogar eine Führung, die Ihre Hand hält und Sie Schritt für Schritt durch die ersten Aufgaben führt. Ein gut durchdachter kann Ihnen dabei helfen, den Boden zu erreichen. Ich habe noch nie so etwas in einer winforms App gesehen, vielleicht könntest du der Erste sein :-)
Ich mag deine F1-Idee, aber das wäre ganz nett zu benutzen. Ich wollte schon oft die alle Tooltips einschalten, damit ich den verdammten Button finden kann, den ich suche. Ich denke, Ihre F1-Idee ist nicht unähnlich.
Nette Frage!
Warum angenommen, dass Clippy niemals funktionieren wird? Lass mich einfach für dumme Tips schlagen, damit er mir die "Brief" -Frage nicht noch einmal stellt. Ein anthropomorpher Assistent sollte sich wie eine echte Person verhalten. Wenn Sie sie ignorieren, ignorieren sie Sie. Und sie geben nicht immer Tipps, die du schon ignoriert hast.
Das Problem war, Clippy sah viel klüger (sozial) aus, als er wirklich war.
Ich stimme dem oben erwähnten "Ableton Hover" -Panel zu. Außerdem könnte es hilfreich sein, beim ersten Start eine UI-Tour anzubieten und sie später zugänglich zu machen. Wie bereits erwähnt, beinhaltet dies eine Menge AI, die die Mühe wert sein kann oder auch nicht.
Übrigens, Clippy war in Ordnung, aber das metallische Klopfen auf dem Monitor war nervig.
Bildschirm wirft. Es ist der schnellste Weg für jemanden zu lernen, wie man ein Programm benutzt.
Auf meiner Olympus-Kamera hat das Modusrad einen Schlitz, der "Guide" genannt wird. Wenn ich das Rad auf diesen Steckplatz drehe, erscheinen eine Reihe häufiger Aufgaben, wie z. B. "Aufnahme in die Hintergrundbeleuchtung", "Verwischen des Hintergrunds" und "Reduzieren des Rote-Augen-Effekts". Dies sind Aufgaben, die mehrere Schritte erfordern (Ändern der Apertur, Lichtempfindlichkeit usw.), aber können in wenigen Worten beschrieben werden und werden vom Benutzer als eine einzige Sache betrachtet. Die meisten Programme haben solche Aufgaben (zB "Schreiben eines Briefes", "Verschieben einer Datei auf ein anderes Gerät", usw.). Das Programm sollte eine einfache Möglichkeit bieten, eine Liste häufiger Aufgaben und deren Ausführung zu sehen.
Ich bin mir nicht sicher, ob eine Neuzuordnung der F1-Schlüsselfunktionalität der beste Ansatz ist, obwohl es mir gefällt, dass Sie "out of the box" denken, um Möglichkeiten zur Benutzerunterstützung zu finden.
Sie haben das Beispiel eines Airline-Cockpits als Beispiel für eine komplexe Benutzeroberfläche verwendet. Aber der Vergleich funktioniert nicht; Piloten der Fluggesellschaft werden trainiert, trainiert und trainiert. Sie wissen, wo jedes Instrument ist und was jeder fast instinktiv macht, und das liegt an diesem Training. Es sei denn, Ihre Benutzer werden gleichwertige Ausbildung haben ...
(Übrigens hat der Pilot, der das Flugzeug im Hudson deponiert hat, Chesley "Sully" Sullenberger, beklagt, dass die Einsparungen im Unternehmensbereich die Entnahme von Registerkarten im Notfallhandbuch erschweren, was es für seinen Copiloten schwieriger macht finde sehr notwendige Informationen sehr schnell.)
Ich führe dies an, um zwei nützliche Konzepte von Benutzerassistenzdesign und -entwicklung zu veranschaulichen: Just-in-Time-Informationen und mehrschichtige Informationen.
Wenn Sie in Ihrer Benutzeroberfläche Bereiche für Informationen finden, sozusagen Hinweise zum richtigen Zeitpunkt und Ort, dann haben die Benutzer möglicherweise gerade genug, um herauszufinden, was mit diesem Oberflächenelement geschehen soll. (Dies ist eigentlich eine Informationsschicht, aber es ist die zweite Schicht. Die erste Schicht ist, was die UI selbst kommuniziert, und deshalb ist das UI-Design ein so wichtiger Teil des Entwicklungsprozesses und einer, der so wichtig ist, um richtig zu machen.)
Der Zugriff auf die nächste Ebene kann auf viele Arten erfolgen, aber normalerweise wird eine Art von Benutzeraktion ausgeführt, entweder indirekt oder direkt. Ein Beispiel für indirekte ist, wenn ein Benutzer einen Feldfokus gibt, erscheinen einige zusätzliche Informationen, möglicherweise in einem abgelegenen Pop-up. Ein Beispiel für "direkt" ist, dass ein Benutzer eine bestimmte Aktion ausführt, um weitere Informationen zu erhalten, entweder durch Drücken von F !, durch Klicken auf ein kleines Fragezeichen oder durch Klicken auf das Menü Hilfe.
Das Interessante ist, dass diese Informationsschichten sich an mehreren Stellen befinden können. Einige Entwicklerteams haben all diesen Inhalt und die Codierung, um es im Produktcode erscheinen zu lassen. Einige haben es in einer Datenbank, andere haben es in einem "traditionellen" Hilfesystem, das in den Programmiercode eingebunden ist.
Alles, was ich gesagt habe, ich schieße eigentlich ein bisschen im Dunkeln und biete eher theoretische als praktische Ideen an. Warum? Weil ich nichts über Ihre Benutzer weiß. Schreiben Sie eine Anwendung für eine interne Zielgruppe, deren Aufgabe es ist, die Software zu verwenden? (In welchem Fall werden sie geschult, und werden sie motiviert sein, etwas über die Verwendung der Software zu lernen?) Oder ist dies für ein "zufälligeres" Publikum, das die Software nur gelegentlich oder sogar selten benutzt? Schreiben Sie für Benutzer, die das zugrundeliegende Thema verstehen, oder für diejenigen, die keine Ahnung haben? Die Bedürfnisse und Ziele der Nutzer zu verstehen, ist der Schlüssel, um ihre Frustration zu reduzieren und sie glücklich zu machen. Dies wird einige der besten Ideen darüber, wie, wann und wo Hilfe angeboten wird, vorantreiben.
Ich denke, Sie haben hier zwei Probleme - eines über die Beschreibung der Schnittstelle zum Benutzer und das andere über den Prozess (die Validierung usw.).
Um das erste Problem anzugehen, gibt es alle möglichen Ansätze, die von anderen erwähnt werden, aber ich mag Joes Lösung der "Kontext-Box" und Mouse-Over. Sicher, es sagt den Leuten nicht, wo sie anfangen sollen, aber oft erkunden die Leute einfach nur für sich selbst.
Was die zweite anbelangt, wäre eine Art Prozessflussdiagramm nützlich, das sichtbar / unsichtbar gemacht werden könnte. Denken Sie daran, wie einige Installationsassistenten es tun - ähnliches Konzept.
z. Schritt 1 - & gt; Schritt 2 - & gt; usw.
Ich habe immer gefühlt, dass Clippy gestorben ist, weil er aufdringlich war und dem, was der Benutzer versuchte, im Weg stand. Wenn ich mit meinen Benutzern zusammensitze, während sie ein Programm lernen, scheinen mir die meisten lieber über die Benutzeroberfläche zu stolpern, bis sie gefunden haben, wonach sie suchen. Um Hilfe zu bitten, war die Methode des letzten Ausweges. Ich habe die Statusleiste für sehr kurze Tipps verwendet, aber ich habe nie einen meiner Nutzer dabei erwischt, wie er die Tipps tatsächlich gelesen hat. Sie haben auf das Hilfe Menü geklickt oder F1 gedrückt, wenn sie genug frustriert waren. Jetzt verwende ich nur das Hilfesystem für meine Programme. Zum größten Teil zeige ich die Hilfedatei zum Thema für das Fenster an, mit dem sie gerade arbeiten. Wenn der Benutzer F1 gedrückt hat und sich in einem Bereich befindet, der weniger ausführliche Hilfe benötigt, verwende ich lieber eine Popup-Hilfe.
Tags und Links user-interface winforms usability