Viele Benutzer meiner Website haben nach Tastaturkürzeln gefragt, um auf häufig besuchte Seiten zuzugreifen. Ich weiß, dass Links möglicherweise vorhanden sind, accesskeyaber der Zugriff darauf ist zwischen den Browsern inkonsistent . Ich werde JavaScript verwenden, um Verknüpfungen zu erkennen, und ich möchte Ihre Eingaben dazu, wie die Modifizierertaste (n) lauten soll (en). Ich neige zu Ctrl+ Shift.
Zwei Beispiele reichen wahrscheinlich nicht aus, um es als "etablierte Praxis" zu bezeichnen, aber es sind mindestens zwei große Beispiele: Sowohl Google als auch Twitter verwenden keine. Oder, wenn Sie es so sehen möchten, lautet die Modifikationstaste für die Navigation G.
Um zu Ihren Twitter-Favoriten zu gelangen, drücken Sie Gdann F. Um zu Ihrem gmail Entwurfsordner, drücken Gdann D.
Verknüpfungen ohne Navigation verwenden auch einfache Buchstaben. zB Jzum Vorwärtsbewegen in einer Liste (Tweets, E-Mails usw.), Kzum Rückwärtsbewegen. *
* In meinem Buch ist das absolut falsch. Für mich bedeutet "J" links von "K", dass "J" "zurück" und "K" "weiter" sein sollte. Es scheint jedoch der Standard zu sein, es anders herum zu machen.
Keiner der beiden verwendet eine "echte" Modifikationstaste. Wir fangen auch an, Tastaturkürzel für die Stack Exchange-Sites zu untersuchen, und wir werden wahrscheinlich dasselbe tun. Zwei weitere Gründe, warum ich überhaupt keine Modifikatortaste benutze:
Es ist weniger wahrscheinlich, über etwas zu stolpern, das bereits verwendet wird. Jede Kombination von Strg, Alt, Meta, Befehl, Umschalttaste mit einem Buchstaben wird wahrscheinlich bereits von einem Betriebssystem, Fenstermanager, Browser, Browser-Plugin oder Greasemonkey-Skript verwendet. Nur Brief? Nicht so viel.
Einfacher zu bedienen. "Drücken Sie Strg-Alt-Q, um die Registerkarte Foo zu öffnen, und dann Meta-Shift-F12, um die Balkenaktion auszuführen" - das macht mein Leben nicht einfacher / schneller.
Auf der anderen Seite sind hier zwei Vorbehalte zu beachten:
Sie müssen die Tastenanschläge natürlich ignorieren, wenn sie auftreten, während der Benutzer ein Textfeld eingibt. Dies ist kein technisches Problem, aber es bedeutet, dass der Benutzer die Verknüpfungen dann nicht verwenden kann.
Wenn Ihre Seite beispielsweise das Suchfeld automatisch fokussiert oder Ihre Web-App sehr textintensiv ist, kann dies ein Problem darstellen.
Möglicherweise möchten Sie über das Aktivieren / Deaktivieren nachdenken. Tastaturkürzel sind eine Power-User-Funktion. Ein "normaler" Benutzer kann überrascht sein, wenn er versehentlich eine Tastenkombination auslöst (offensichtlich würde eine Änderungstaste dies weniger wahrscheinlich machen).
In Google Mail sind Tastaturkürzel standardmäßig deaktiviert , mit der Ausnahme, ?dass (natürlich) die Tastaturkürzel-Hilfe angezeigt wird - einschließlich eines Links zum Aktivieren / Deaktivieren von Tastaturkürzeln . Ich denke, dass Tastaturkürzel ein Bereich sind, in dem Sie sagen können, dass es in Ordnung ist, eine Einstellung vorzunehmen (Benutzereinstellungen werden auf Stack Exchange-Sites im Allgemeinen vermieden), und die Lösung von Google dafür scheint dies zu unterstützen.
"Standardmäßig deaktiviert" verbirgt jedoch die Erkennbarkeit, die möglicherweise ein Problem darstellt oder nicht.
- Aber alles in allem scheint mir "no modifier key" eine gute Lösung zu sein.
Ein weiterer Punkt bei Combos mit zusammengesetzten Modifikatoren (Drücken Sie Strg-Alt-Q, um die Registerkarte Foo und dann Meta-Shift-F12 zu öffnen) - dies ist aus Sicht der Barrierefreiheit eigentlich ziemlich umständlich. Oder selbst wenn Sie nur eine ausgeflippte Tastatur haben (Husten), können einige Kombinationen Fingerturnen erfordern. Einzeltasten: mühelos.
Marc Gravell
2
Das ist ein ausgezeichneter Beitrag @balpha. Ich möchte darauf hinweisen, dass J "down" und K "up" ist. Der VIM-Texteditor verwendet dieselbe Logik
Mikhail
@Mikhail: Mir ist das bewusst, aber ich stimme dieser Logik nicht zu - schließlich steht J links von K. Wenn J für mich "down" ist, muss U "up" sein . Aber ich nehme an, ich werde mich daran gewöhnen :)
Es gibt keine Wahl zwischen "besten" oder universellen Tastenmodifikatoren
Ihre besten Möglichkeiten sind:
Verwenden Sie keine Änderungstaste (nur einmaliges Drücken) und hören Sie dann auf, Tastendrücke zu erkennen, wenn sich der Cursor des Benutzers in einem Eingabefeld oder Textbereich befindet, wie dies bei Google Mail-Verknüpfungen der Fall ist .
-- oder --
Wählen Sie basierend auf den Betriebssystemstatistiken Ihrer Analytics-Daten einen Standard aus, der für die Mehrheit Ihrer Besucher geeignet ist. Ermöglichen Sie Hauptbenutzern, die Verknüpfungen aktivieren möchten, und überschreiben Sie die Modifizierertaste in ihren Benutzereinstellungen auf die gleiche Weise wie bei der Desktop-Software.
-- oder --
Verwenden Sie eine Triggertaste anstelle einer Modifizierertaste. Überlegen ,2Sie, ob Sie in Ihrem Navigationsbereich mit Registerkarten zur zweiten Registerkarte und beispielsweise ,3zur dritten Registerkarte wechseln möchten . Die Kombination eines Kommas unmittelbar gefolgt von einer Zahl ist ungewöhnlich genug, um die Wahrscheinlichkeit von Konflikten oder versehentlichem Drücken zu verringern.
In allen Fällen können Sie in Betracht ziehen, Tastenkombinationen standardmäßig zu deaktivieren , um ein unerwartetes Verhalten für die Mehrheit der Benutzer zu verhindern, denen Tastenkombinationen wahrscheinlich nicht wichtig sind.
Warum nicht einfach eine Modifikator-Kombination auswählen?
Der Grund, warum ich diese Methoden vorschlage, ist, dass es keinen standardisierten plattformübergreifenden Modifikatorschlüssel gibt, den Sie für die Verwendung mit JavaScript in einer Browserumgebung für sicher halten können. Alles enthält Ctrl, Shift, Alt, oder Cmdwird wahrscheinlich einige Browser - Shortcuts auf bestimmten Plattformen brechen.
Ihr Vorschlag zur Verwendung Ctrl+ Shiftzum Beispiel bricht Firefox Verknüpfungen auf Windows, von denen viele nutzen diese Kombination erfüllen spezielle Funktionen , wie zum Beispiel Ctrl+ Shift+ D, die Lesezeichen all geöffnet Tabs.
Browserhersteller verwenden unterschiedliche Verknüpfungen, um Zugriffstasten auf den verschiedenen Plattformen auszulösen, da es keinen plattformübergreifenden Standard gibt. Apple verwendet zum Beispiel Ctrlauf dem Mac und Altunter Windows in Safari.
Darüber hinaus löst jeder Browser Verknüpfungskonflikte auf unterschiedliche Weise. Dies führt zu unerwarteten Konsequenzen für Ihre Benutzer. Wenn Sie einen Tastendruck an eine Funktion in JavaScript binden, die auch eine Bindung als native Browserverknüpfung hat ...
Firefox führt die JavaScript-Verknüpfung von selbst aus, wenn Sie return false;jedoch Ihre JavaScript-Funktion ausführen, gefolgt von der Firefox-Browserverknüpfung, wenn Sie dies tun return true;(dh, standardmäßig werden beide ausgeführt).
Der IE führt die JavaScript-Funktion aus, gefolgt von der Verknüpfung zum IE-Browser.
Safari / Chrome / Opera verarbeitet die Browserverknüpfung, jedoch nicht die JavaScript-Verknüpfung.
@balpha
. Ich möchte darauf hinweisen, dass J "down" und K "up" ist. Der VIM-Texteditor verwendet dieselbe LogikEs gibt keine Wahl zwischen "besten" oder universellen Tastenmodifikatoren
Ihre besten Möglichkeiten sind:
Verwenden Sie keine Änderungstaste (nur einmaliges Drücken) und hören Sie dann auf, Tastendrücke zu erkennen, wenn sich der Cursor des Benutzers in einem Eingabefeld oder Textbereich befindet, wie dies bei Google Mail-Verknüpfungen der Fall ist .
-- oder --
Wählen Sie basierend auf den Betriebssystemstatistiken Ihrer Analytics-Daten einen Standard aus, der für die Mehrheit Ihrer Besucher geeignet ist. Ermöglichen Sie Hauptbenutzern, die Verknüpfungen aktivieren möchten, und überschreiben Sie die Modifizierertaste in ihren Benutzereinstellungen auf die gleiche Weise wie bei der Desktop-Software.
-- oder --
Verwenden Sie eine Triggertaste anstelle einer Modifizierertaste. Überlegen ,2Sie, ob Sie in Ihrem Navigationsbereich mit Registerkarten zur zweiten Registerkarte und beispielsweise ,3zur dritten Registerkarte wechseln möchten . Die Kombination eines Kommas unmittelbar gefolgt von einer Zahl ist ungewöhnlich genug, um die Wahrscheinlichkeit von Konflikten oder versehentlichem Drücken zu verringern.
In allen Fällen können Sie in Betracht ziehen, Tastenkombinationen standardmäßig zu deaktivieren , um ein unerwartetes Verhalten für die Mehrheit der Benutzer zu verhindern, denen Tastenkombinationen wahrscheinlich nicht wichtig sind.
Warum nicht einfach eine Modifikator-Kombination auswählen?
Der Grund, warum ich diese Methoden vorschlage, ist, dass es keinen standardisierten plattformübergreifenden Modifikatorschlüssel gibt, den Sie für die Verwendung mit JavaScript in einer Browserumgebung für sicher halten können. Alles enthält Ctrl, Shift, Alt, oder Cmdwird wahrscheinlich einige Browser - Shortcuts auf bestimmten Plattformen brechen.
Ihr Vorschlag zur Verwendung Ctrl+ Shiftzum Beispiel bricht Firefox Verknüpfungen auf Windows, von denen viele nutzen diese Kombination erfüllen spezielle Funktionen , wie zum Beispiel Ctrl+ Shift+ D, die Lesezeichen all geöffnet Tabs.
Browserhersteller verwenden unterschiedliche Verknüpfungen, um Zugriffstasten auf den verschiedenen Plattformen auszulösen, da es keinen plattformübergreifenden Standard gibt. Apple verwendet zum Beispiel Ctrlauf dem Mac und Altunter Windows in Safari.
Darüber hinaus löst jeder Browser Verknüpfungskonflikte auf unterschiedliche Weise. Dies führt zu unerwarteten Konsequenzen für Ihre Benutzer. Wenn Sie einen Tastendruck an eine Funktion in JavaScript binden, die auch eine Bindung als native Browserverknüpfung hat ...
return false;
jedoch Ihre JavaScript-Funktion ausführen, gefolgt von der Firefox-Browserverknüpfung, wenn Sie dies tunreturn true;
(dh, standardmäßig werden beide ausgeführt).[Quelle: der Anhang am Fuße der Readme-Seite zu jquery.hotkeys von John Resig .]
quelle