I personally believe that since shmem's script has been here publicized, I'd better also publicly copy here my first draft of review on his code. This has taken some time due to my own lazyness and thus may not be completely consistent over time, but I'm confident that it mostly is. I'm copying it here out of my own scratchpad.
I've tried the beast: all in all, I already like it!
Key driven navigation must be turned off whenever a textarea is entered, or a text field. Sadly, there's no uniform id for composition textareas or title textboxes...
Is this the case? If it were, then indeed it would be extremely annoying. But then I've tried e.g. to go to the node consideration text field, both with the hot key and scrolling with the mouse. Then I did not consider the node and move out of it say, with a Tab. And I could start using the keybindings again - seamlessly. Or did I misunderstood anything?
- p - go to posts / replies section
- p - go to posts / replies section: at first I found this behaviour counter-intituitive. On a second thought, it still is counter-intuitive: (the difference being that on the first one my reaction was along the line of "this damn thing doesn't work!" while now I know "I have to press p first...") I have a list of nodes, and I do not necessarily view the first one as having a quite different nature from the replies. Specifically, the p key is useful and should stay, but if possible j should bring to the first reply as well, and k on the first reply should be an alias with m. If possible!
- n - go to nodelets: hadn't even thought of that, but works fine for me!
- c - set focus and jump to chatterbox entry box: ditto!
- m - jump to main node: I have found this not to work when switching to some other navigation mode. I would expect that once I tab a few times or click in an "empty" point, it would do. By contrast, v always brings me to the vote button, which means that it should be roughly doable
- ? - show alert box with key bindings: very good!
- + - set ++ vote for current post
I'm giving you my impression in terms of UI:posts:
- + - set ++ vote for current post: very good! One annoying detail with the partial keyboard driven navigation I was using before is that I left the radio button selected and while moving down I would occasionally change a ++ into a --. Of course the cure is simply a tab away or a click out of the button, which is, after all twice the effort, or 100% more. Yours is definitely clearer and faster.
- - - set -- vote for current post: here, I'm afraid I must tell you of the first actual bug, although the behaviour has changed over the past few days. As of the last time I tried, i.e. this morning, - plainly doesn't work with an error alert. Yesterday . did the trick instead: I'm sure that this is in connection with me not having selected the null vote in my preferences. Today, pressing . doesn't vote -- but doesn't do anything either. I wonder if a solution is possible at all, that would work with both kinds of user settings...
- . - set 0 vote for current post: ditto, I don't have it. But, as a feature request and if possible at all, I'd like it to clean the vote anyway.
- v - set focus and jump to "vote!" button: this is also perfect; much faster than moving to in any other way I have access to.
- t - jump to note composition text area: to be fair, I'm not sure what this is for.
posts and nodelets:
- j - down one post/nodelet
- j - down one post/nodelet: in terms of UI, there's another gotcha similar to that with the main post. Precisely, one gets the feeling that repeatedly pressing j she will get "to the end." At some point, however, posts do not scroll down any more: of course that's when you've hit the last one. And you do realize it, but you have that fraction of second of psychological unesiness with it, if you know what I mean: I believe that hitting it one more time on the last node should either give a clear visual indication that there no more posts, or more simply and IMHO intuitively act as an alias for v. Vice versa, hitting k on v "should" bring back to the last reply. I'm also afraid to have spotted another possible bug. Namely, when for some reason I switch to some other navigation method (and I was forced to, because of the aforementioned difficulties with +, . and -) j and k ended up not moving between posts but between links within a post, and no way to "escape."
- k - up one post/nodelet: ditto!
- l - set focus on first link in current post/nodelet: good!
- From there, access links with the <Tab> key: ISTR having had some difficulties with this too, within posts, not nodelettes, but as a general rule I've not toyed too much with it.
- r - set focus on reply link
- r - set focus on reply link: I must say that while for v it is very sensible to only set focus on the vote button, because one may change his mind, I would consider a very good idea to have this key actually open the reply link in a new window/tab and switch to it. If one changes her mind, then she can always close it.