Commit 6e0df254 authored by Shenghou Ma's avatar Shenghou Ma

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
parent 7e144bca
......@@ -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();
});
})();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment