Pier Angelo Vendrame pushed to branch tor-browser-115.3.1esr-13.0-1 at The Tor Project / Applications / Tor Browser
Commits:
-
00e9622f
by Henry Wilkes at 2023-10-11T11:24:18+01:00
1 changed file:
Changes:
... | ... | @@ -491,14 +491,23 @@ async function scrollAndHighlight(subcategory, category) { |
491 | 491 | |
492 | 492 | // We assign a tabindex=-1 to the element so that we can focus it. This allows
|
493 | 493 | // us to move screen reader's focus to an arbitrary position on the page.
|
494 | - // See tor-browser#41454 and bug 1799153.
|
|
495 | - element.setAttribute("tabindex", "-1");
|
|
496 | - // The element is not always immediately focusable, so we wait until the next
|
|
497 | - // loop.
|
|
498 | - setTimeout(() => {
|
|
494 | + // See tor-browser#41454 and mozilla bug 1799153.
|
|
495 | + const doFocus = () => {
|
|
496 | + element.setAttribute("tabindex", "-1");
|
|
499 | 497 | Services.focus.setFocus(element, Services.focus.FLAG_NOSCROLL);
|
498 | + // Immediately remove again now that it has focus.
|
|
500 | 499 | element.removeAttribute("tabindex");
|
501 | - });
|
|
500 | + };
|
|
501 | + // The element is not always immediately focusable, so we wait until document
|
|
502 | + // load.
|
|
503 | + if (document.readyState === "complete") {
|
|
504 | + doFocus();
|
|
505 | + } else {
|
|
506 | + // Wait until document load to move focus.
|
|
507 | + // NOTE: This should be called after DOMContentLoaded, where the searchInput
|
|
508 | + // is focused.
|
|
509 | + window.addEventListener("load", doFocus, { once: true });
|
|
510 | + }
|
|
502 | 511 | |
503 | 512 | scrollContentTo(header);
|
504 | 513 | element.classList.add("spotlight");
|