[tor-commits] [Git][tpo/applications/tor-browser][tor-browser-115.3.1esr-13.0-1] fixup! Bug 41454: Move focus after calling openPreferences for a sub-category.

Pier Angelo Vendrame (@pierov) git at gitlab.torproject.org
Wed Oct 11 12:19:54 UTC 2023



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
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
=====================================
@@ -491,14 +491,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/00e9622f5d1eb80639c0304625acb89343fe79d5

-- 
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/00e9622f5d1eb80639c0304625acb89343fe79d5
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-commits/attachments/20231011/5c0f6364/attachment-0001.htm>


More information about the tor-commits mailing list