On Inserting Tabs
The biggest reason that I find all the talk these days about web applications tiresome is that they strike me as a very dumb idea from a user interface perspective. The problem is that a 'web application' has to live symbiotically inside a web-browser1. Unfortunately, it appears that when the first web-browsers were developed, no one imagined this usage, and to this day the form of a web-browser isn't terribly well suited to it2. A major example of this that has always driven me crazy is the use of the tab key. In most applications, the tab key either inserts a tab into a text field, or skips to the next control. For reasons not entirely clear to me, every web-browser I have ever tried uses only the second behavior, even when the focus is on a multi-line text area. This means that if I want to say write the following:
for(int i=0; i<10; i++){
cout << i << endl;
}
in a text area on a website, like say, this web log, the indentation is a real pain. (Add to this the fact that since I'm using Markdown, I have to have an additional tab before each line to let Markdown know I'm writing a code block.)
I had long thought that if a browser is going to be annoying and make the tab key skip out of the text area, at least using the tab key with a modifier should then insert a tab. I'd poked around a little in Safari and was disappointed to discover that the obvious candidate, ⌥-Tab3, still does nothing different, and neither does ^-Tab. Happily, today I discovered that the odd modifier combination ^⌥-Tab does do exactly what i'd wanted. I'm still left wondering why they didn't just pick ⌥-Tab; it doesn't appear to mean anything else special, and would be much easier to type.
-
That is to say, inside a real application. ↩
-
The fact that HTML with CSS is an abominable system for drawing user interfaces is a whole other, perhaps far greater, problem, although stemming from the same root cause, namely that nobody thought they were going to be used that way originally. ↩
-
That's the option key symbol for those unfamiliar with it. One of the coolest symbols ever, I think. ↩