In a post yesterday 37 Signals reported another instance of J and K being adopted for navigating through a list. Hmm. Great functionality, but J and K are unfortunate choices for navigation shortcuts.
Keyboard shortcuts are great if you can remember them, which you can do best when they fit a model of some kind.
One useful model is abbreviation, where the key you press matches the first letter of the word describing the action you’re performing. Pressing n and p to navigate a list is easier to remember once you appreciate that they represent next and previous.
Another model is position. Using the arrow keys to navigate is easy to remember because the key you press causes the selection onscreen to move in the corresponding direction. Using the ASDW keys to navigate is a common substitute for keyboards lacking arrow keys and is almost as easy to remember once you associate ASDW by physical position with left-down-right-up. (Forget abbreviation here: D does not mean down, nor W west. Just remember their positions, and think of them like arrow keys.)
Safari uses [ and ] to move back and forward through your browsing history. This works reasonably well because the two keys form a matched set, and because you press the left key to move back and the right key to move forward.
If you’re wondering how left and right mean back and forward, consider a book: if you’re halfway through a book, the pages on the left which you’ve already read represent your reading past, while the pages on the right which you’ve yet to read represent your reading future.
Hardest of all to remember is convention, which means no model at all. People have always done it that way, and so will you. Conventions are often practical and exist because a choice had to be made, like whether cars drive on the left side of the road or the right. Arbitrary, but useful.
Now, back to those J and K keys. They’re not abbreviations and they’re not positionally descriptive, so they must be conventions—and they are, apparently originating from Emacs, a 30-year-old text editor. The J key has long had a little bump on it to aid touch-typists, which might have had something to do with it, but the more important point is that many people have adopted the convention, and so the convention persists.
But the unsuitability of J and K for navigation shortcuts isn’t that they’re conventional, though that’s hardly a strength. Rather, it’s that they’re used for navigation but confound attempts to model that navigation positionally. Pressing J for forward and K for back confuse precisely because they flout a longer-standing tradition. J lies to the left of K on the keyboard, and centuries spent reading books have established that left means back and right forward. Therefore, when two adjacent keys are used to move back and forward, the key on the left should be used for back.
J should mean back and K should mean forward, but they mean the opposite of that. 30 years of convention doesn’t make that any easier to remember. Your only option is to burn those two keys into muscle memory so you don’t have to remember.
And that’s sad.
[ via Daring Fireball ]