Najlepsza kombinacja klawiszy modyfikujących dla skrótów internetowych

14

Wielu użytkowników mojej witryny poprosiło o skróty klawiaturowe, aby uzyskać dostęp do często przeglądanych stron. Wiem, że linki mogą mieć, accesskeyale dostęp do nich jest niespójny w różnych przeglądarkach . Użyję JavaScript do wykrycia skrótu i ​​chciałbym, abyś napisał, jakie powinny być klawisze modyfikujące. Pochylam się w kierunku Ctrl+ Shift.

Michaił
źródło

Odpowiedzi:

12

Dwa przykłady prawdopodobnie nie wystarczą, by nazwać to „ustaloną praktyką”, ale są to co najmniej dwa duże przykłady: Zarówno Google, jak i Twitter nie używają żadnego. Lub, jeśli chcesz to zobaczyć w ten sposób, ich klawiszem modyfikującym do nawigacji jest G.

Aby przejść do strony Twitter „ulubionych”, trafisz G, a następnie F. Aby przejść do folderu Wersje robocze Gmaila, naciśnij Gwtedy D.

Skróty inne niż nawigacyjne używają również prostych liter; np. Jdo przechodzenia do przodu na liście (tweety, e-maile itp.), Kdo przechodzenia do tyłu. *

* W mojej książce jest to całkowicie błędne. Dla mnie „J” znajdujący się po lewej stronie „K” oznacza, że ​​„J” powinien być „poprzedni”, a „K” powinien być „następny”. Jednak robienie tego na odwrót wydaje się standardem.

Żadne z nich nie używa w ogóle „prawdziwego” klawisza modyfikującego. Zaczynamy też patrzeć na skróty klawiaturowe dla witryn Stack Exchange i prawdopodobnie zrobimy to samo. Dwa kolejne powody, dla których w ogóle nie używam klawisza modyfikującego:

  • Mniejsze prawdopodobieństwo potknięcia się o coś, co jest już w użyciu. Każda kombinacja Ctrl, Alt, Meta, Command, Shift z literą jest już prawdopodobnie pobierana przez jakiś system operacyjny, menedżera okien, przeglądarkę, wtyczkę do przeglądarki lub skrypt Greasemonkey. Tylko list? Nie tak bardzo.
  • Łatwiejszy w użyciu. „Naciśnij Ctrl-Alt-Q, aby otworzyć kartę Foo, a następnie Meta-Shift-F12, aby wykonać akcję paska” - to nie czyni mojego życia łatwiejszym / szybszym, co jest głównym celem skrótów klawiaturowych.

Z drugiej strony, oto dwa zastrzeżenia do rozważenia:

  • Oczywiście będziesz musiał zignorować naciśnięcia klawiszy, gdy wystąpią, gdy użytkownik pisze w polu tekstowym. To nie jest problem techniczny, ale oznacza, że ​​użytkownik nie może wtedy używać skrótów.

    Jeśli powiedzmy, że strona automatycznie ustawia ostrość pola wyszukiwania lub aplikacja internetowa jest bardzo obciążona wprowadzaniem tekstu, może to stanowić problem.

  • Możesz pomyśleć o włączeniu / wyłączeniu. Skróty klawiaturowe to zaawansowana funkcja użytkownika; „normalny” użytkownik może być zaskoczony, gdy przypadkowo uruchomi skrót klawiaturowy (oczywiście klawisz modyfikujący zmniejszyłby to prawdopodobieństwo).

    Na przykład Gmail ma domyślnie wyłączone skróty klawiaturowe, z wyjątkiem ?których (oczywiście) wyświetla pomoc dotyczącą skrótów klawiaturowych - w tym link do włączania / wyłączania skrótów. Myślę, że skróty klawiaturowe to obszar, w którym można powiedzieć, że można ustawić to ustawienie (preferencje użytkownika to coś, czego zwykle staramy się unikać w witrynach Stack Exchange), a rozwiązanie Google wydaje się w tym zakresie fajne.

    Ale „domyślnie wyłączone” oczywiście ukrywa wykrywalność, co może, ale nie musi być problemem.

- ale biorąc pod uwagę wszystko, „brak klucza modyfikującego” wydaje mi się dobrym rozwiązaniem.

balpha
źródło
3
Kolejny punkt na złożone kombinacje modyfikatorów (naciśnij Ctrl-Alt-Q, aby otworzyć kartę Foo, a następnie Meta-Shift-F12) - w rzeczywistości jest to dość niewygodne z punktu widzenia dostępności. Lub nawet jeśli masz po prostu dziwaczną klawiaturę (kaszel), niektóre kombinacje mogą wymagać gimnastyki palców. Pojedyncze klucze: bez wysiłku.
Marc Gravell
2
To świetny post @balpha. Chcę podkreślić, że J jest „w dół”, a K jest „w górę”. Edytor tekstowy VIM wykorzystuje tę samą logikę
Michaił
@Mikhail: Zdaję sobie z tego sprawę, ale nie zgadzam się z tą logiką - w końcu J znajduje się na lewo od K. Dla mnie, jeśli J jest „w dół”, to U musi być „w górę” . Ale przypuszczam, że się do tego przyzwyczaję :)
balpha
1
rollmops.wordpress.com/2006/05/01/vintage-computer Klucze HJKL były używane w ten sposób od czasu istnienia sieci. W tym momencie to tradycja!
Kevin Panko
8

Nie ma wyboru najlepszego lub uniwersalnego modyfikatora klucza

Twoje najlepsze opcje to:

  1. Nie używaj klawisza modyfikującego (tylko pojedyncze naciśnięcia klawiszy), a następnie przestań wykrywać naciśnięcia klawiszy, gdy kursor użytkownika znajdzie się w polu wprowadzania lub w polu tekstowym, podobnie jak Google ze skrótami Gmaila.

    - lub -

  2. Wybierz wartość domyślną, która odpowiada większości użytkowników na podstawie statystyk systemu operacyjnego z danych Analytics. Zezwalaj zaawansowanym użytkownikom, którzy chcą, aby skróty je aktywowały i zastępuj klawisz modyfikujący w ustawieniach użytkownika, w taki sam sposób, jak robi to oprogramowanie komputerowe.

    - lub -

  3. Użyj klawisza wyzwalającego zamiast klawisza modyfikującego. Rozważ ,2przejście na drugą kartę w obszarze nawigacji z kartami i ,3na przykład przejście do trzeciej. Kombinacja przecinka, po którym następuje bezpośrednio liczba, jest na tyle nietypowa, aby zmniejszyć prawdopodobieństwo konfliktów lub przypadkowych naciśnięć.

We wszystkich przypadkach można rozważyć domyślne wyłączenie klawiszy skrótu, aby zapobiec nieoczekiwanemu zachowaniu większości użytkowników, którzy prawdopodobnie nie dbają o klawisze skrótów.

Dlaczego nie wybrać kombinacji modyfikatora?

Powodem, dla którego sugeruję te metody, jest brak znormalizowanego wieloplatformowego klucza modyfikującego, który można uznać za bezpieczny w użyciu w JavaScript w środowisku przeglądarki. Wszystko zawierający Ctrl, Shift, Alt, lub Cmdprawdopodobnie będą łamać pewne skróty przeglądarki na niektórych platformach.

Na przykład Twoja sugestia użycia Ctrl+ Shiftspowoduje uszkodzenie skrótów Firefoksa w systemie Windows, z których wiele wykorzystuje tę kombinację do wykonywania specjalnych funkcji , takich jak Ctrl+ Shift+ D, która tworzy zakładki do wszystkich otwartych kart.

Producenci przeglądarek używają różnych skrótów do uruchamiania klawiszy dostępu na każdej platformie właśnie dlatego, że nie ma standardu dla różnych platform. Apple używa Ctrlna przykład Maca i AltWindowsa w Safari.

Co więcej, każda przeglądarka rozwiązuje konflikty skrótów inaczej, co doprowadzi do nieoczekiwanych konsekwencji dla użytkowników. Po powiązaniu naciśnięcia klawisza z funkcją w JavaScript, która ma również powiązanie jako natywny skrót przeglądarki ...

  • Firefox uruchomi skrót JavaScript samodzielnie, jeśli wykonasz return false;funkcję JavaScript, a następnie skrót przeglądarki Firefox, jeśli Ty return true;(tj. Będzie działał domyślnie oba).
  • IE uruchomi funkcję JavaScript, a następnie skrót przeglądarki IE.
  • Safari / Chrome / Opera przetworzy skrót przeglądarki, ale nie JavaScript.

[Źródło: uzupełnienie na stronie pliku Readme jquery.hotkeys Johna Resiga .]

Nacięcie
źródło
Podoba mi się podejście nie jednoczesne. Chociaż prawdopodobnie użyłbym; klucz
Michaił