Assignment of keyboard shortcuts in a web application is limited by reserved sequences at the OS layer as well as the browser itself. Windows and OS X have slightly different mappings as well as slightly different keys. At Bluescape, we aligned keyboard behavior across platforms as much as possible to prevent confusion and frustration when moving between devices. We also felt it was important to adopt industry-standard patterns where relevant. Users are rightly frustrated when features they’ve come to rely on change unexpectedly, and that’s especially true of power users who have adopted keyboard shortcuts as part of their efficient workflows. That means planning far ahead–reserving key sequences for features you might build in the future, and being proactive when communicating breaking changes (when inevitably it turns out you’re already using a key combination that should have been reserved for something else).
Touch screens often don’t have keyboards, but there are several commonly-used actions that are exclusively mapped to modifier keys: shift-click multi-selection, shift-drag resize to lock aspect ratio, and many more. The industry standard is largely to ignore the problem—these interactions are considered “advanced” and go unsupported on tablets. Some applications take advantage of multi-touch capability: drop an extra finger while dragging for example. These approaches have issues with discovery and false-positives. At Bluescape, we explored several virtual keyboard concepts to replace the shift, alt, and control keys.