GUIs sollten vollständig per Tastatur bedienbar sein
GUIs should be fully keyboard-driven
In einer Reaktion auf einen Hacker-News-Beitrag, der die Entwicklung von TUIs (Terminal User Interfaces) kritisiert, argumentiert der Autor, dass das Argument „TUIs sind besser, weil sie tastaturgesteuert sind“ nicht stichhaltig ist. Er zeigt, dass GUIs ebenso vollständig per Tastatur bedienbar sein können – und verweist auf Richtlinien wie die GNOME Human Interface Guidelines, die dies explizit fordern. Anhand seiner eigenen GUI-Anwendung Klisi demonstriert er, dass die Umsetzung machbar ist und die Benutzererfahrung verbessert. Sein Fazit: Entwickler sollten sich nicht mit unzureichender Tastaturnavigation abfinden, sondern sie als integralen Bestandteil ihrer Anwendungen betrachten.
Es ist keine Frage der Machbarkeit, sondern eine Frage des Willens auf Seiten des Anwendungsentwicklers.
- rootedbox
Ich arbeite bei meiner Firma viel mit ADA. Bitte setz dir Kopfhörer auf, schalte den Sprachassistenten deines Betriebssystems ein, zieh dir eine Augenbinde über und starte deine App oder Website … keine Maus, nur Tastatur.
1. Demokratie bedeutet Zugang; stelle sicher, dass jeder Zugang zu deiner Software hat.
2. Die Tastatur ermöglicht es Menschen mit Behinderungen und Power-Usern, durch deine Website/App zu fliegen … das heißt … sobald ein Tab daneben liegt, fliegt die Person mit Behinderung gegen eine Wand.
- cosmic_cheese
Tastaturzugänglichkeit ist eines dieser Dinge, die oft unter den Teppich gekehrt oder komplett vergessen werden, zusammen mit Barrierefreiheit im Allgemeinen. Das Lustige ist, dass Ersteres normalerweise aus Letzterem folgt.
Ein Teil der Schuld liegt bei den beliebten UI-Frameworks (oder bei den Entwicklern, die sich gegen solche entscheiden). Die älteren Frameworks machen das ziemlich einfach; zum Beispiel kann man in Cocoa/AppKit (dem nativen Mac-UI-Framework) die gesamte UI ziemlich einfach rein visuell für eine ordentliche Tastaturnavigation verdrahten (hauptsächlich besteht es darin, die nextKeyView-Outlets zwischen den Steuerelementen zu verbinden, um eine logische Kette für den Tab-Fokus zu erzeugen). Auch das Definieren von Tastenkürzeln ist einfach; füge einen Menüpunkt für einen Befehl hinzu und weise ihm das entsprechende Kürzel zu (was dem Benutzer wiederum erlaubt, das Kürzel in den Systemeinstellungen nach Belieben neu zu belegen).
Diese Art von Design ist bei neueren Frameworks leider aus der Mode gekommen. Der neue bevorzugte Stil scheint ein Drahtmodell zu sein, bei dem der Entwickler wählt, welche Teile ausgefüllt werden, und oft schafft es nur das Allernötigste.
- manlymuppet
Power-User-Erfahrung ist nicht dasselbe wie Benutzererfahrung im Allgemeinen. Wenn du argumentieren willst, dass alle Entwicklerwerkzeuge tastaturgesteuert sein sollten, bitte, nur zu. Aber die meisten Leute sind nicht bereit, die Lernkurve tastaturgesteuerter GUIs in Kauf zu nehmen, und das ist in Ordnung. Wir sollten es nicht erzwingen.
Das Beharren von HN darauf, so zu tun, als wären alle Benutzer Arch-Linux-Effizienz-Perfektionist-Hacker-Typen, ist schmerzhaft albern.
(Das klingt härter, als ich beabsichtigt habe. Tut mir leid. Ich liebe Arch-Linux-Leute. Ich denke nur, es ist nicht weniger edel, dem Durchschnittsbürger zu dienen, als das perfekte Werkzeug für Power-User zu schaffen.)
- YmiYugy
Was bedeutet es aber für eine GUI, tastaturgesteuert zu sein?
Der offensichtliche Weg ist, dass jede Aktion einfach ein Tastenkürzel zugewiesen bekommt.
Mein Gegenargument wäre, dass das nicht wirklich tastaturgesteuert ist, sondern nur tastaturkompatibel. Es gibt das Problem der Auffindbarkeit. Die derzeitige Best Practice scheint zu sein, die Tastenkürzel von Schaltflächen in Tooltips, Menüpunkten oder beim Drücken eines anderen Kürzels anzuzeigen.
Ich würde behaupten, dass Schaltflächen grundsätzlich nicht zur Tastatur passen. Eine tastaturgesteuerte UI sollte keine Schaltflächen haben.
Das Problem ist, dass wirklich tastaturgesteuerte UIs wie CLI oder TUI unter einer schrecklichen Auffindbarkeit leiden, was der Grund ist, warum mausgesteuerte UIs überhaupt existieren. Können wir also eine tastaturgesteuerte UI haben, die so intuitiv ist wie das Klicken mit der Maus?
- a-dub
Als ich das letzte Mal eine CRUD-App gebaut habe (oh, vielleicht vor etwa 24 Jahren), habe ich mir vorgenommen, genau das zu tun. Ich erinnere mich, wie ich den Lohnbuchhaltern dabei zusah, wie sie mit einer solchen Geschwindigkeit und Geschicklichkeit durch ihre Terminal-VAX-VMS-Anwendungen flogen, dass jeder Unix-Admin, der sich mit der Kunst der Kommandozeile auskennt, errötet wäre, und es brachte mich zum Nachdenken: "Oh ja, all diese Point-and-Click-GUIs der 90er haben es völlig falsch gemacht. Wenn Leute gezwungen sind, ein System bei der Arbeit intensiv zu nutzen, ziehen sie eine Lernkurve gefolgt von Geschwindigkeit, Komfort und Geschicklichkeit einer einfacheren Lernkurve vor, die Geschicklichkeit gegen Auffindbarkeit eintauscht."
Es war ein Web-App-Framework, aber ... alle Browser-/Listenbildschirme enthielten Zeilen-IDs und ein fokussiertes Textfeld – so dass das Tippen der Zeilen-ID und Enter zur Auswahl führte. Alle Aktionsschaltflächen hatten eine Unterstreichung, um anzuzeigen, welches Strg-Umschalt-Tastenkürzel sie auslöste. Alle Bearbeitungsbildschirme setzten den Fokus standardmäßig auf das erste bearbeitbare Textfeld, und zu keinem Zeitpunkt war die Maus tatsächlich notwendig. Schließlich wurden die Ladezeiten auf 75 ms optimiert.
Komischerweise war das Benutzerfeedback: "Die Tastatursteuerung ist ziemlich gut, aber kannst du es bitte schneller machen."
Was ich für Chrom hielt, erwies sich als entscheidend dafür, dass die Benutzer nicht unglücklich waren.
- marklar423
Ich stimme zu, aber ich denke, dass die Bedienung per Tastatur nicht ausreicht, weil die Tastenkürzel oft schwer zu entdecken und zu merken sind. Ich denke, das Ideal wäre – wie bei guten TUIs –, dass GUIs offensichtliche Hinweise auf dem Bildschirm anzeigen, wie man per Tastatur navigiert.
Es wäre wirklich großartig, einige GUI-Frameworks für die gängigen Plattformen (einschließlich Web!) zu haben, die darauf ausgelegt sind und Meinungen zu gängigen Tastenkürzeln für gängige Aktionen haben, damit wir etwas standardisieren können.
- minimeow
Der Autor hat einen ausgezeichneten Punkt. Es gibt zu viele schlechte Terminal-UIs, die nur um der TUI willen erstellt werden. Oft sind diese nicht gut konstruiert oder es fehlt ihnen an durchdachtem Design, um effektiv/produktiv zu sein.
Aber der breitere Trend bei GUI-Apps war es, Marktanteile zu erobern, nicht Produktivität für Tastaturnutzer zu liefern. In den 80er und 90er Jahren wurden Photoshop, Illustrator usw. zu den Kraftpaketen, die sie heute sind, weil sie sich darauf konzentrierten, Profis zu ermöglichen, mit ihren beeindruckenden Tastenkürzeln äußerst effizient zu arbeiten. Im Jahr 2026, wenn Softwareunternehmen an KPIitis sterben und ihr Produktmanagement danach bewerten, überzeugende Abonnementmodelle zu entwickeln, um Kunden zu binden, ist die Aufmerksamkeit für die tatsächliche Produktivität von Tastaturnutzern oft ein nachträglicher Gedanke. Mobile Apps haben keine Tastenkürzel, und Desktop-Apps scheinen zunehmend als schmaler "Randfall" behandelt zu werden, mit nur ein paar hundert Millionen Zielnutzern gegenüber den Milliarden auf Mobilgeräten. Es ist eine Chance für diejenigen, die es ernst meinen, Wert zu liefern, indem sie die Kraft von Tastenkürzeln nutzen, um ihre GUIs hochproduktiv und umfassend per Tastatur bedienbar zu machen. Bei allen Fehlern hat Microsoft das mit VSCode richtig gemacht.
- aristofun
Die moderne Computertastatur ist eines der besten und brillantesten UI-Geräte, die je erfunden wurden.
Weit über Maus und Stift, die selbst unendlich besser sind als Touchscreens.
- eviks
> Tatsächlich ermutigen viele GUI-Framework-Anwendungsrichtlinien ausdrücklich GUI-Anwendungsentwickler
Stattdessen sollten sie so konstruiert sein, dass Benutzer diese Entwickler auf eine (zumindest) framework-konsistente Weise umgehen können, da es nie einen Zeitpunkt geben wird, an dem sie kollektiv "tastaturbewusst" werden.
- iammattmurphy
Ich hatte kürzlich eine Offenbarung, als ich eine erweiterte QWERTY-MIDI-Controller-App entwickelte, die dauerhaft die Zustände und Funktionen aller Tasten anzeigt, auch wenn Modifikatoren gehalten werden.
Mir wurde klar, dass dies eine wunderbare Art ist, Software zu entwerfen: Man kennt sofort die Tastenkürzel, weil man sie bereits sieht. Ich arbeite daran, das, was ich für den QWERTY-MIDI-Keyboard-Controller (der auf Hammerspoon basiert) gebaut habe, zu nehmen und es zu einer generischen Schnittstelle für jede Art von App zu machen.
Wenn das Endziel darin besteht, die App über Tastenkürzel zu navigieren und zu steuern, warum also nicht das in das Design der GUI selbst einbauen?
Mein Projekt, falls du neugierig bist: https://github.com/mattdanielmurphy/qwerty-midi-hammerspoon