651f959d7553ee0256b1e0b37ffa83d64709511d
lrnassar
  Mon Mar 16 17:57:16 2026 -0700
Adding accessible labels to form controls across main CGI pages. Extends cheapcgi and hui libraries with aria-label support for track visibility dropdowns, and adds <label> elements to hgBlat, hgTables, hgPcr, and hgGateway form controls. Also adds Form Control Labels section to accessibility page. refs #37253

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index d4cb5df4514..40aea9dece7 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -10032,35 +10032,36 @@
                 // only top level tracks contribute to the total count
                 trackCount++;
 		myControlGridStartCell(cg, isOpen, group->name,
                                        shouldBreakAll(track->shortLabel));
 
                 printTrackLink(track);
 
 		if (hTrackOnChrom(track->tdb, chromName))
 		    {
 		    if (tdbIsSuper(track->tdb))
 			superTrackDropDown(cart, track->tdb,
 					    superTrackHasVisibleMembers(track->tdb));
 		    else
                         {
                         /* check for option of limiting visibility to one mode */
-                        hTvDropDownClassVisOnly(track->track, track->visibility,
+                        hTvDropDownClassVisOnlyWithLabel(track->track, track->visibility,
                                                 rTdbTreeCanPack(track->tdb),
                                                 (track->visibility == tvHide) ? "hiddenText"
                                                                               : "normalText",
-                                                trackDbSetting(track->tdb, "onlyVisibility"));
+                                                trackDbSetting(track->tdb, "onlyVisibility"),
+                                                track->tdb->shortLabel);
                         }
                     }
 		else
 		    /* If track is not on this chrom print an informational
 		    message for the user. */
 		    hPrintf("[No data-%s]", chromName);
 		controlGridEndCell(cg);
 		}
 
 	    /* now finish out the table */
 	    if (group->next != NULL)
 		controlGridEndRow(cg);
 	    }
         if (trackCount < 32)
             {