acace5022c846865a6e449fe1973e94504394cde
lrnassar
  Tue Apr 7 16:33:34 2026 -0700
Add aria-labels to Base Position and supertrack/container dropdowns on hgTracks. refs #37344

New hideShowDropDownWithClassExtraAndLabel() passes label through to the
existing labeled dropdown function. superTrackDropDownWithExtra() now passes
tdb->shortLabel. Ruler dropdown updated in both hgTracks.c and config.c.
Brings hgTracks track dropdown label coverage from 69% to 100%.

diff --git src/hg/hgTracks/config.c src/hg/hgTracks/config.c
index 23c149c934d..748ec3ab426 100644
--- src/hg/hgTracks/config.c
+++ src/hg/hgTracks/config.c
@@ -339,31 +339,33 @@
     hPrintf("</td></tr></table>\n");
     hPrintf("</TH></TR>\n");
 
     /* First non-CT, non-hub group gets ruler. */
     if (!showedRuler && !isHubTrack(group->name) &&
                 differentString(group->name, "user"))
 	{
         showedRuler = TRUE;
         hPrintf("<TR %sid='%s-0'>",(isOpen ? "" : "style='display: none'"), group->name);
 	hPrintf("<TD>");
         hPrintf("<A HREF=\"%s?%s=%s&c=%s&g=%s&hgTracksConfigPage=configure\">", hgTrackUiName(),
                 cartSessionVarName(), cartSessionId(cart),
                 chromName, RULER_TRACK_NAME);
         hPrintf("%s</A>", RULER_TRACK_LABEL);
 	hPrintf("</TD><TD>");
-	hTvDropDownClass("ruler", rulerMode, FALSE, rulerMode ? "normalText trackVis" : "hiddenText trackVis");
+	hTvDropDownClassVisOnlyWithLabel("ruler", rulerMode, FALSE,
+		rulerMode ? "normalText trackVis" : "hiddenText trackVis",
+		NULL, RULER_TRACK_LABEL);
 	hPrintf("</TD><TD>");
 	hPrintf("Chromosome position in bases.  (Clicks here zoom in 3x)");
 	hPrintf("</TD></TR>\n");
 	}
     /* Scan track list to determine which supertracks have visible member
      * tracks, and to insert a track in the list for the supertrack.
      * Sort tracks and supertracks together by priority */
     makeGlobalTrackHash(trackList);
     groupTrackListAddSuper(cart, group, superHash, trackHash);
 
     if (!withPriorityOverride)
         {
         /* sort hierarchically by priority, considering supertracks */
         struct trackRef *refList = NULL, *ref;
         for (tr = group->trackList; tr != NULL; tr = tr->next)