002e60c59c18ca1d87c6e980278a0a8a523425a4
chmalee
  Tue Dec 2 12:42:34 2025 -0800
Wait until DOMContentLoaded to convert title tags to mouseovers, because the browserTextSize variable will not be set yet otherwise. Make tooltip text size determination default to 12 if no saved text size or no browserTextSize available yet, refs #36754

diff --git src/hg/js/utils.js src/hg/js/utils.js
index 2ccee7b046e..57acd7d7cf2 100644
--- src/hg/js/utils.js
+++ src/hg/js/utils.js
@@ -4193,31 +4193,31 @@
 let  mouseoverContainer;
 // Global needed for contextmenu to disable tooltips
 var suppressTooltips = false;
 
 function addMouseover(ele1, text = null, ele2 = null) {
     /* Adds wrapper elements to control various mouseover events using mouseenter/mouseleave. */
     if (!mouseoverContainer) {
         mouseoverContainer = document.createElement("div");
         mouseoverContainer.className = "tooltip";
         mouseoverContainer.style.position = "fixed";
         mouseoverContainer.style.display = "inline-block";
         mouseoverContainer.style.visibility = "hidden";
         mouseoverContainer.style.opacity = "0";
         mouseoverContainer.id = "mouseoverContainer";
         let tooltipTextSize = localStorage.getItem("tooltipTextSize");
-        if (tooltipTextSize === null) {tooltipTextSize = window.browserTextSize;}
+        if (tooltipTextSize === null) {tooltipTextSize = window.browserTextSize !== null ? window.browserTextSize : 12;}
         mouseoverContainer.style.fontSize =  tooltipTextSize + "px";
         document.body.append(mouseoverContainer);
     }
 
     if (ele1) {
         ele1.setAttribute("mouseoverText", text);
         // Remove title attribute to prevent default browser tooltip
         if (ele1.title || ele1.dataset.tooltip) {
             ele1.setAttribute("originalTitle", ele1.title);
             ele1.title = "";
         }
         // Remove previous listeners if any
         ele1.removeEventListener("mouseenter", ele1._mouseenterHandler);
         ele1.removeEventListener("mouseleave", ele1._mouseleaveHandler);
         // Show tooltip on mouseenter with delay