Kết hợp phím sửa đổi tốt nhất cho các phím tắt Web


14

Nhiều người dùng trang web của tôi đã yêu cầu các phím tắt để truy cập các trang thường xem. Tôi biết rằng các liên kết có thể có accesskeynhưng để truy cập chúng không nhất quán trên các trình duyệt . Tôi sẽ sử dụng JavaScript để phát hiện lối tắt và tôi muốn đầu vào của bạn về (các) phím bổ trợ nên là gì. Tôi đang nghiêng về phía Ctrl+ Shift.

Câu trả lời:


12

Hai ví dụ có lẽ không đủ để gọi nó là "thực tiễn thành lập", nhưng ít nhất đó là hai ví dụ lớn: Cả Google và Twitter đều không sử dụng. Hoặc, nếu bạn muốn xem theo cách này, phím bổ trợ cho điều hướng là G.

Để truy cập trang "yêu thích" Twitter của bạn G, sau đó bạn nhấn F. Để đi đến thư mục dự thảo gmail của bạn, nhấn Gsau đó D.

Phím tắt không điều hướng cũng sử dụng các chữ cái đơn giản; ví dụ: Jđể di chuyển về phía trước trong một danh sách (tweet, email, v.v.), Kđể di chuyển về phía sau. *

* Trong cuốn sách của tôi, điều này là hoàn toàn sai. Đối với tôi, "J" ở bên trái của "K" có nghĩa là "J" nên là "trước" và "K" nên là "tiếp theo". Tuy nhiên, làm điều đó theo những cách khác xung quanh dường như là tiêu chuẩn.

Cả hai đều không sử dụng khóa bổ trợ "thực". Chúng tôi cũng bắt đầu xem xét các phím tắt cho các trang web Stack Exchange và chúng tôi có thể làm điều tương tự. Hai lý do nữa tôi thấy không sử dụng khóa bổ trợ:

  • Ít có khả năng vấp phải thứ gì đó đã được sử dụng. Bất kỳ sự kết hợp nào của Ctrl, Alt, Meta, Command, Shift với một chữ cái có thể đã được một số hệ điều hành, trình quản lý cửa sổ, trình duyệt, plugin trình duyệt hoặc tập lệnh Greasemonkey thực hiện. Chỉ thư? Không nhiều lắm.
  • Dễ sử dụng hơn. "Nhấn Ctrl-Alt-Q để mở tab Foo, sau đó là Meta-Shift-F12 để thực hiện hành động Bar" - điều đó không làm cho cuộc sống của tôi dễ dàng hơn / nhanh hơn, đó là toàn bộ mục đích của các phím tắt.

Mặt khác, đây là hai hãy cẩn thận:

  • Rõ ràng bạn sẽ phải bỏ qua các tổ hợp phím khi chúng xảy ra trong khi người dùng đang gõ vào hộp văn bản. Đây không phải là vấn đề kỹ thuật, nhưng điều đó có nghĩa là người dùng không thể sử dụng các phím tắt sau đó.

    Nếu, giả sử, trang của bạn tự động tập trung vào hộp tìm kiếm hoặc ứng dụng web của bạn rất nặng nhập văn bản, điều này có thể gây ra sự cố.

  • Bạn có thể muốn nghĩ về việc bật / tắt. Phím tắt là một tính năng người dùng quyền lực; một người dùng "bình thường" có thể ngạc nhiên khi họ vô tình kích hoạt phím tắt (rõ ràng là một phím bổ trợ sẽ làm cho điều này ít xảy ra hơn).

    Ví dụ, Gmail có các phím tắt được tắt theo mặc định, ngoại trừ ?(tự nhiên) hiển thị trợ giúp phím tắt - bao gồm liên kết để bật / tắt các phím tắt. Tôi nghĩ rằng các phím tắt là một lĩnh vực mà bạn có thể nói là ổn khi đặt nó thành một cài đặt (tùy chọn của người dùng là thứ chúng ta thường cố gắng tránh trên các trang web Stack Exchange) và giải pháp này của Google có vẻ tốt cho việc này.

    Nhưng "tắt theo mặc định" rõ ràng không che giấu khả năng khám phá, điều này có thể hoặc không thể là một vấn đề.

- nhưng tất cả những điều được xem xét, "không có phím bổ trợ" nào có vẻ như là một giải pháp tốt cho tôi.


3
Một điểm khác trên các combo sửa đổi hỗn hợp (Nhấn Ctrl-Alt-Q để mở tab Foo, sau đó là Meta-Shift-F12) - như vậy thực sự khá khó xử từ góc độ trợ năng. Hoặc thậm chí nếu bạn chỉ có một bàn phím kỳ dị (ho), một số kết hợp có thể yêu cầu thể dục ngón tay. Phím đơn: dễ dàng.
Marc Gravell

2
Đó là một bài viết tuyệt vời @balpha. Tôi muốn chỉ ra rằng J "xuống" và K là "lên". Trình chỉnh sửa văn bản VIM sử dụng cùng logic
Mikhail

@Mikhail: Tôi biết điều đó, nhưng tôi không đồng ý với logic đó - sau tất cả, J nằm bên trái của K. Đối với tôi, nếu J "xuống", thì U phải "lên" . Nhưng tôi cho rằng tôi sẽ quen với nó :)
balpha

1
rollmops.wordpress.com/2006/05/01/vousing-computer Các khóa HJKL đã được sử dụng theo cách này kể từ trước khi web tồn tại. Tại thời điểm này, đó là truyền thống!
Kevin Panko

8

Không có lựa chọn sửa đổi khóa 'tốt nhất' hoặc phổ quát

Lựa chọn tốt nhất của bạn là:

  1. Không sử dụng phím bổ trợ (chỉ nhấn phím duy nhất), sau đó dừng phát hiện nhấn phím khi con trỏ của người dùng ở trong trường nhập hoặc văn bản, giống như Google thực hiện với các phím tắt Gmail.

    -- hoặc là --

  2. Chọn một mặc định phù hợp với phần lớn khách truy cập của bạn dựa trên thống kê của hệ điều hành từ dữ liệu Analytics của bạn. Cho phép người dùng có quyền sử dụng phím tắt để kích hoạt chúng và ghi đè phím bổ trợ trong cài đặt người dùng của họ, giống như cách mà phần mềm máy tính để bàn thực hiện.

    -- hoặc là --

  3. Sử dụng phím 'kích hoạt' thay vì phím bổ trợ. Xem xét ,2để đi đến tab thứ hai trong khu vực điều hướng theo thẻ của bạn và ,3đi đến cái thứ ba, ví dụ. Sự kết hợp của một dấu phẩy được theo sau bởi một số là đủ bất thường để giảm khả năng xảy ra xung đột hoặc ấn vô tình.

Trong mọi trường hợp, bạn có thể xem xét việc tắt các phím tắt theo mặc định để ngăn chặn hành vi không mong muốn đối với phần lớn người dùng có thể không quan tâm đến các phím tắt.

Tại sao không chỉ chọn một kết hợp sửa đổi?

Lý do tôi đề xuất các phương pháp này là vì không có khóa sửa đổi đa nền tảng được tiêu chuẩn hóa mà bạn có thể xem là an toàn để sử dụng với JavaScript trong môi trường trình duyệt. Bất cứ điều gì chứa Ctrl, Shift, Alt, hoặc Cmdcó thể sẽ phá vỡ một số phím tắt trình duyệt trên nền tảng nhất định.

Ví dụ, đề xuất sử dụng Ctrl+ Shiftcủa bạn sẽ phá vỡ các phím tắt Firefox trên Windows, nhiều trong số đó sử dụng kết hợp đó để thực hiện các chức năng đặc biệt , chẳng hạn như Ctrl+ Shift+ D, đánh dấu tất cả các tab đang mở.

Các nhà sản xuất trình duyệt sử dụng các phím tắt khác nhau để kích hoạt các phím truy cập trên mỗi nền tảng khác nhau vì không có tiêu chuẩn đa nền tảng. Apple sử dụng Ctrltrên Mac và Alttrên Windows trong Safari chẳng hạn.

Hơn nữa, mỗi trình duyệt giải quyết xung đột phím tắt khác nhau và điều này sẽ dẫn đến hậu quả không mong muốn cho người dùng của bạn. Khi bạn liên kết nhấn phím với một chức năng trong JavaScript cũng có ràng buộc như một phím tắt trình duyệt riêng ...

  • Firefox sẽ tự chạy phím tắt JavaScript nếu bạn return false;nhưng sẽ thực thi chức năng JavaScript của mình theo sau là phím tắt trình duyệt Firefox nếu bạn return true;(nghĩa là nó chạy cả hai theo mặc định.)
  • IE sẽ chạy chức năng JavaScript theo sau là phím tắt trình duyệt IE.
  • Safari / Chrome / Opera sẽ xử lý lối tắt trình duyệt nhưng không phải là JavaScript.

[Nguồn: phần phụ lục dưới chân trang jquery.hotkeys readme của John Resig .]


Tôi thích cách tiếp cận không đồng thời. Mặc dù tôi có thể sử dụng; chìa khóa
Mikhail
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.