richard pushed to branch base-browser-115.3.1esr-13.0-1 at The Tor Project / Applications / Tor Browser
Commits: 3d78c742 by Henry Wilkes at 2023-10-11T18:30:21+00:00 fixup! Bug 41454: Move focus after calling openPreferences for a sub-category.
Bug 42167: Make the auto-focus more reliable.
No longer use the setTimeout to wait a loop, but instead wait for the "load" event.
- - - - -
1 changed file:
- browser/components/preferences/preferences.js
Changes:
===================================== browser/components/preferences/preferences.js ===================================== @@ -482,14 +482,23 @@ async function scrollAndHighlight(subcategory, category) {
// We assign a tabindex=-1 to the element so that we can focus it. This allows // us to move screen reader's focus to an arbitrary position on the page. - // See tor-browser#41454 and bug 1799153. - element.setAttribute("tabindex", "-1"); - // The element is not always immediately focusable, so we wait until the next - // loop. - setTimeout(() => { + // See tor-browser#41454 and mozilla bug 1799153. + const doFocus = () => { + element.setAttribute("tabindex", "-1"); Services.focus.setFocus(element, Services.focus.FLAG_NOSCROLL); + // Immediately remove again now that it has focus. element.removeAttribute("tabindex"); - }); + }; + // The element is not always immediately focusable, so we wait until document + // load. + if (document.readyState === "complete") { + doFocus(); + } else { + // Wait until document load to move focus. + // NOTE: This should be called after DOMContentLoaded, where the searchInput + // is focused. + window.addEventListener("load", doFocus, { once: true }); + }
scrollContentTo(header); element.classList.add("spotlight");
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/3d78c742...
tor-commits@lists.torproject.org