I was working on a reported bug in WebnoteHappy – sometimes you cannot tab everywhere. That is, you can start out with the Source List with the Library and your folders and then you go to the Search Field. From here, you hit tab again and you go the Bookmark List and then to the Notes Area. Finally you get to the Tags Field. (Let’s leave the Tag Browser until later.) So now you think “one more tab and I’m back to the Source List” and that would make a nice little loop – what programmers know as the tab cycle.

Unfortunately, when you hit tab, you may end up in the Search Field. But I wanted to go back to the Source List, you say. This is where I start researching, reading docs, instrumenting the code, searching through mailing lists, asking fellow developers, and finally banging my head into the wall. Then comes the aha moment – or rather, the aha document: Guidelines for the Key View Loop. Yes, that’s an even more technical term for our little loop via the Tab key. Aha in that we tend to forget that sometimes your System Preference settings can have wide consequences for how your Mac works.

In our case, if we want to get from the Tags Field at the bottom of WebnoteHappy back to the Source List on the left, we need to change the setting that controls tabbing from “Text boxes and lists only” to “All controls”.

Here is a step by step guide on how to change your Mac OS X tabbing behavior:

  • Open up “System Preferences”. If you don’t have it in your Dock, it’ll be in the Apple menu in the upper left corner of your screen.
  • Click on the “Keyboard & Mouse” icon in the second row titled Hardware.
  • Click on the tab titled “Keyboard Shortcuts”
  • At the bottom you’ll see something that says: “Full keyboard access: In windows and dialogs, press Tab to move the keyboard focus between:”. Click on the “All controls” radio button.
  • Now enjoy your new tabbing freedom and tab to that Source List! Plus you can tab to more things in other Mac applications too.
  • Note that a shortcut to toggle this tab behavior globally is Control+F7.

Bonus trivia: The WebnoteHappy Source List isn’t really a list but a tree so it can handle nested folders, which is why it doesn’t participate in the tab cycle using the default setting.