From: Shenghou Ma Date: Tue, 16 Oct 2012 06:28:18 +0000 (+0800) Subject: doc/godoc.js: put focus on div#page when necessary X-Git-Tag: go1.1rc2~2125 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6e0df254b0b2aed3840fc696f8c8f8fb16ad6c70;p=gostls13.git doc/godoc.js: put focus on div#page when necessary so that keyboard navigation events are sent to div#page. Fixes #4233. R=adg CC=golang-dev https://golang.org/cl/6652048 --- diff --git a/doc/godocs.js b/doc/godocs.js index 7449efc228..5d12da131f 100644 --- a/doc/godocs.js +++ b/doc/godocs.js @@ -163,6 +163,22 @@ function setupDropdownPlayground() { $('#menu').css('min-width', '+=60'); } +// fixFocus tries to put focus to div#page so that keyboard navigation works. +function fixFocus() { + var page = $('div#page'); + var topbar = $('div#topbar'); + page.css('outline', 0); // disable outline when focused + page.attr('tabindex', -1); // and set tabindex so that it is focusable + $(window).resize(function (evt) { + // only focus page when the topbar is at fixed position (that is, it's in + // front of page, and keyboard event will go to the former by default.) + // by focusing page, keyboard event will go to page so that up/down arrow, + // space, etc. will work as expected. + if (topbar.css('position') == "fixed") + page.focus(); + }).resize(); +} + $(document).ready(function() { bindSearchEvents(); generateTOC(); @@ -173,6 +189,7 @@ $(document).ready(function() { bindToggleLinks(".examplesLink", ""); bindToggleLinks(".indexLink", ""); setupDropdownPlayground(); + fixFocus(); }); })();