My application is a fairly complex desktop app (for Windows) and looks like this:

enter image description here

(other than the image obfuscation and the numbered bullets, which I added as annotations just for this question).

So there are 4 main panels, each of which is dedicated to one aspect of the task. Each of the panels has shortcuts relevant to what that task is. But in the bottom right panel, things get complex, because there are two different tasks you need to perform do in that window.

One of them (indicated by the 4 bullet), is to edit the text. But we also have (bullet 5) these pushpins that show something else that you have to do, and I'd like shortcuts to do things like:

  • jump to the previous one
  • jump to the next one
  • delete the current one
  • move the edit caret to the position of the current one

Thinking up distinct shortcuts for all of these is getting cumbersome AND it would be confusing to have arbitrary keystrokes like Ctrl+Shift+H for Go to Previous Pin and Ctrl+Shift+J for Go to Next Pin.

So I figured: have a mode just for working with pins, and a keystroke for entering that mode, and within that mode, use much more natural keys like Left Arrow and Right Arrow. And then in other modes, like in panel 3, the arrow keys would also mean previous and next item in that list.

But what I'm not sure about is how panel focus should work with the modes.

A given panel might have modes that may or may not overlap with functionality of other panels. Should a mode be restricted to when window focus is in a given panel that supports it, or should the mode be global, and if you invoke a mode that only makes sense in another panel, focus is switched to that panel? If a mode is used by more than one panel, which one would get focus?

Or is there an entirely different and better way to handle families of keyboard shortcuts?

1 Answer 1


I wonder if you could try a tabbing order to navigate focus to the correct panel and then allow the keyboard shortcuts to be entered once focus is in the right panel. I can't say I know 100% what's the most accessible, but I'd assume that if you treat the panels like 'H2's' then their respective components in the hierarchy, that'd be a pretty nice interaction.

Navigation ideas: Option 1.

  • user hits tab = top right panel is in focus
  • user hits enter = top right panel is 'selected'
  • user hits hotkey action (whatever that is)
  • user hits esc

Option 2 (showing changing from one thing to another using arrows)

  • user presses down a modifier key
  • user sees their focus is in the right top panel
  • user hits arrow key right
  • user sees their focus in in left top panel
  • user releases modifier key
  • user hits hotkey action

Notes about hotkeys - if you can make them really useful based on the actions people do a lot that'd really ideal. For example, Illustrator has a hotkey where you hit CMD+D - this repeats the last action you performed, so it's ideal for batching specific actions (ex. duplicate a list item and move it down by 100px).

  • I already have hotkeys to set focus to each panel. The reason I'm thinking about modes is that even within a single panel, there are different types of objects that you want to operate on, and possibly you might want to operate on objects of a given type from two different panels. So I don't think it works to rely on the focused panel as the way to control what happens when you hit a certain hotkey. Commented Feb 15, 2021 at 13:37
  • That idea from Illustrator to have a hotkey that just does the previous thing, whatever it was, is a very good one, which I will probably implement. Commented Feb 15, 2021 at 13:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.