Friday, December 2, 2011

keyboard navigation on google search (knogs)

knogs 1.1.0 is now available (update 2015.08.07)
  • install via chrome web store
  • on chrome 44, window.open() opens a new window instead of a new tab if the shift key is pressed ... which conflicted with the use of shift-o
    • 'o' now opens a link in a new tab, enter opens in the current tab, and shift-enter or shift-o open in a new window

tl;dr - the alternatives worked, but they were no substitute for the real thing, so i wrote my own wrapper


google's experimental search page used to list a keyboard shortcuts feature. it's been deprecated for a long time, and was showing some rust, but was still working, was still an invaluable part of my desktop. a few days ago it finally stopped working. so i tried the google-recommended replacement, the accessibility experiment
  • it's not officially supported for chrome
  • instead of a cursor (a la gmail) it highlights the selected item
    • too large, can't change defaults, leaves artifacts
  • it works, though it's a bit clunky
i sent the usual scathing critique to google begging them to give us back the keyboard shortcuts experiment (i'd actually be willing to pay for search + shortcuts, i should have mentioned that). but i wanted to list some of the good stuff about the accessibility experiment
  • "n" and "p" move to the next and previous item, including to the next and previous page ... this is a feature that was often requested (and at one point worked iirc) for the shortcuts
  • shift-enter is an undocumented shortcut that will open the selected link in a new page
  • just tried it in firefox - the highlight box is still too large and no obvious way to change the default. but it does make a cute clicking and wooshing sound as you move though the results, unfortunately a second or two after moving the cursor
another option is google's standard search. pressing tab provides a small cursor that can be controlled with the up and down arrows. enter or ctrl-enter open an item. it's workable, but kludgey. i also tried the 43131 userscript, but couldn't get it to work on chrome

google still hosts the javascript that does the actual control, they just don't provide a means of injecting it, and it's got a little bit-rot. so i wrote my own wrapper. it looks like a userscript, but it doesn't really work right on firefox, so consider it chrome-specific. the shortcuts conflict with google's instant search, so i have a kludge to fix some focus issues that mostly works. here it is: keyboard navigation for google search on chrome. at some point i'll probably write my own javascript (as opposed to wrapping googles), but in the meantime i hope this works for some people




knogs 1.0.3 is now available (update 2013.11.09)
  • google broke userscript installation in chrome 21, see the readme for manual install
  • thanks to YJ Soon for fixing some layout issues
  • now compatible with google calculator (thanks yj :)
knogs 1.0 is now available (update 2012.02.03)

13 comments:

lazo said...

very nice. arrow doesn't line up perfectly, but it works and that's all that matters. thanks!

Alon G said...

I'm a Firefox user and I've tried just about every trick I could find online to bring back the old experimental behavior with no luck.

Would absolutely LOVE it if someone could point me in the right direction.

seth/nqzero said...

@Alon_G - have you tried http://userscripts.org/scripts/show/43131 ? that's firefox specific, and similar to what my extension does for chrome (though it adds some additional features)

yjsoon said...
This comment has been removed by the author.
yjsoon said...

Thank you *so* much for doing this! Not having keyboard shortcuts was driving me mad. I tried using DuckDuckGo for a while, but it just didn't feel as fast.

I'm a bit fussy about the way it looks, so I fixed up the arrows: http://cl.ly/DlWB (and also pointed the JS at a github gist, to be safe).

Would you be ok if I made a Safari extension out of this? Asking because of your copyright.

Thanks again!

seth/nqzero said...

@yjsoon - i just created: https://github.com/nqzero/knogs

mit/x license (for both the github and the version that the blog linked to)

thanks for the interest

yjsoon said...

Great, thanks for the clarification on the license! I posted my versions at http://yjsoon.com/2012/02/re-enabling-jk-keyboard-navigation-on-google-search, and I'll fork to include the styling update.

PolarMouse said...

Thank you OP for making this fix that I still can't understand why Google hasn't done so already and yjsoon for pointing me here. This whole "enhanced" accessibility search is just too much pain to watch.

lazo said...

Still using this! Just installed through Tampermonkey on Chrome Portable. Works like a dream!

Proto said...

Thanks a bunch for the userscript and chrome extension. I was an avid fan of the old "j/k" (rattlesnake :) experimental search and was saddened to see it go.

The new changes introduced by Google was driving me mad. When the connection is slow, I won't be on "Instant Search", and so, the new Instant keyboard shortcuts (down arrow, up arrow) stops working.

I was wondering whether you will be able to do some magic to have a shortcut to navigate to the previous and next page. If that was also there, this would be one heck of a complete keyboard solution!

seth/nqzero said...

just released a new version that fixes a problem with loading ... if a page had ads with id "mbEnd", it caused the google provided js to bomb out. i remove that id and the js loads correctly (though unfortunately it makes the ads look worse)

seth/nqzero said...

just released version 1.1.0 - chrome 44 changed how window.open() worked, opening a new window if the shift key is pressed. to work around this, i've changed the keystroke 'o' to open a new tab

AG said...

Woah! I wrote a comment here waaaay back in December 2011. Had given up on getting Google search keyboard shortcuts working long ago but somehow tonight decided to look through some old bookmarks. So cool to find your extension and it's working perfectly for me so far. Thank you!!