m and escape to open close menu. and set focus on actions after scroll.
Ted Unangst tedu@tedunangst.com
Mon, 28 Aug 2023 22:01:50 -0400
2 files changed,
21 insertions(+),
4 deletions(-)
M
docs/honk.1
→
docs/honk.1
@@ -145,6 +145,10 @@ .It r
Refresh. .It s Scroll down to oldest newest. +.It m +Open menu. +.It esc +Close menu. .It / Search. .El
M
views/honkpage.js
→
views/honkpage.js
@@ -423,8 +423,10 @@ for (var i = 0; i < honks.length; i++) {
var h = honks[i]; var b = h.getBoundingClientRect(); if (b.top > 1.0) { - h.scrollIntoView(); - break; + h.scrollIntoView() + var a = h.querySelector(".actions summary") + if (a) a.focus({ preventScroll: true }) + break } } }@@ -434,8 +436,10 @@ var honks = document.getElementsByClassName("honk");
for (var i = 1; i < honks.length; i++) { var b = honks[i].getBoundingClientRect(); if (b.top > -1.0) { - honks[i-1].scrollIntoView(); - break; + honks[i-1].scrollIntoView() + var a = honks[i-1].querySelector(".actions summary") + if (a) a.focus({ preventScroll: true }) + break } } }@@ -459,6 +463,15 @@ break;
case "KeyK": scrollprevioushonk(); break; + case "KeyM": + var menu = document.getElementById("topmenu") + menu.open = true + menu.querySelector("a").focus() + break + case "Escape": + var menu = document.getElementById("topmenu") + menu.open = false + break case "Slash": document.getElementById("topmenu").open = true document.getElementById("searchbox").focus()