Never let developers set shortcuts “because they like it in FooEditor”
Will help regroup later
Pay maximum attention to discoverability
Provide a Cheat Sheet
What if the cheatsheet was an actual keyboard which displayed the functions on the keys? A short phrase could be shown on the key, but you could click it or type that key to view more info about it. This way you could also use combos like Shift+I to quickly see what it did.
The alternative is boring.
Mention shortcuts in menus
In tooltips
Hints
Give access to primary navigation
Give main navigation and key links shortcuts
Four modes: Schematic, Code, BOM, PCB
The three tabs in the drawer: Library, Objects, Rules
Flux Menu, then up/down arrows to select, return to confirm
So researching conventions across popular apps or products in your category can help ensure you’re following what users expect.
3 categories of conflicts to be aware of:
OS-level (Cmd + Tab)
Browser-level (Cmd + N)
Page-level (Cmd + C)
Strategies for binding
Discoverable
Memorable
Adjacent / Ergonomic
Conflict-free
Tactics for binding
Single letter: (R toactive the Rectangle drawing tool) Opens up a whole category of shortcuts. Only downside is that text fields would block their use, so make sure they’re bound to actions you want need in text fields.
Sequenced letters: (G then P to “go” to “profile”) Powerful and flexible, but less used conventionally. Opens up a ton of possibilities, assuming your users will learn them. I’ve not favored this tactic.
Modifier keys: (Shift + Cmd + P to convert an object to a part) Conventional and combinations allow for more actions. Only downside is conflicts with OS, Browser and Page.
When to use each
Cmd/Ctrl should be used when necessary and otherwise avoided
Use single letter commands for canvas actions
Shift alters or reverses the action
Option is the “primary” or “action oriented” modifier
Control should be avoided on Mac, Meta on Windows
Cross platform compatibility
I want our system to be as close as possible across platforms. This makes it easy for users to switch, but also easier for us to maintain. There are two tactics I’ve used here
Tracking conflicts: each browser and OS has some special shortcuts that differ. Luckily there aren’t too many
Aligning modifiers: this mostly means not using the Control key on Mac.
Cmd → Ctrl
Shift → Shift
Option → Alt
Ctrl on Mac would correlate to the Windows Key (“beta”), but that key is reserved for system actions exclusively, so we avoid it.
Syntax
On Mac and Windows, the conventional order of modifiers is Control — Alt — Shift — Command
Mac seems to communicate shortcuts using symbols and no extra punctuation: ⇧⌘Z
Windows seems to communicate shortcuts using words and the + punctuation: Ctrl + Shift + Z
How to actually design the shortcuts
Log all the actions you might like to use in a spreadsheet
Group them by category
List out the keys you’d like to use for Windows and Mac
Upload a CSV to keycombiner.com to prototype
Keycombiner
The best way I’ve found to track shortcuts
Virtual keyboard makes it easy to spot conflicts and feel out adjacency
Has limitations - a CSV is the easiest way to populate it, it’s optimized for practice rather than design, and it’s only possible to capture key commands in the product for a given platform when you’re on a given platform