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/lib/hui.c src/hg/lib/hui.c index 81c1a0d2864..59af3ca44cd 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -979,40 +979,47 @@ // Normal track with no special limits needs mapping to get back checked value static int packIx[] = {tvHide,tvDense,tvSquish,tvPack,tvFull}; if (visOnly==NULL && canPack) checked = vizArr[packIx[vis]]; cgiMakeDropListClassWithIdStyleJavascriptAndLabel(varName, NULL, vizArr, vizArrLen, checked, class, TV_DROPDOWN_STYLE, events, label); } void hTvDropDownClassVisOnlyAndExtra(char *varName, enum trackVisibility vis, boolean canPack, char *class, char *visOnly, struct slPair *events) // Make track visibility drop down for varName with style class, and potentially limited to visOnly { hTvDropDownClassVisOnlyAndExtraWithLabel(varName, vis, canPack, class, visOnly, events, NULL); } -void hideShowDropDownWithClassAndExtra(char *varName, char * id, boolean show, char *class, struct slPair *events) -// Make hide/show dropdown for varName +void hideShowDropDownWithClassExtraAndLabel(char *varName, char *id, boolean show, char *class, + struct slPair *events, char *ariaLabel) +// Make hide/show dropdown for varName with optional aria-label { static char *hideShow[] = { "hide", "show" }; -cgiMakeDropListClassWithIdStyleAndJavascript(varName, id, hideShow, ArraySize(hideShow), - hideShow[show], class, TV_DROPDOWN_STYLE, events); +cgiMakeDropListClassWithIdStyleJavascriptAndLabel(varName, id, hideShow, ArraySize(hideShow), + hideShow[show], class, TV_DROPDOWN_STYLE, events, ariaLabel); +} + +void hideShowDropDownWithClassAndExtra(char *varName, char *id, boolean show, char *class, struct slPair *events) +// Make hide/show dropdown for varName +{ +hideShowDropDownWithClassExtraAndLabel(varName, id, show, class, events, NULL); } /****** Some stuff for stsMap related controls *******/ static char *stsMapOptions[] = { "All Genetic", "Genethon", "Marshfield", "deCODE", "GeneMap 99", "Whitehead YAC", "Whitehead RH", "Stanford TNG", @@ -9687,32 +9694,33 @@ // Determine if any tracks in supertrack are visible; if not, the 'show' is grayed out if (show && (visibleChild == -1)) { visibleChild = 0; struct slRef *childRef; for ( childRef = tdb->children; childRef != NULL; childRef = childRef->next) { struct trackDb *cTdb = childRef->val; cTdb->visibility = hTvFromString(cartUsualString(cart, cTdb->track, hStringFromTv(cTdb->visibility))); if (cTdb->visibility != tvHide) visibleChild = 1; } } -hideShowDropDownWithClassAndExtra(tdb->track, NULL, show, (show && visibleChild) ? - "superDropdown normalText visDD" : "superDropdown hiddenText visDD", events); +hideShowDropDownWithClassExtraAndLabel(tdb->track, NULL, show, (show && visibleChild) ? + "superDropdown normalText visDD" : "superDropdown hiddenText visDD", + events, tdb->shortLabel); return TRUE; } int tvConvertToNumericOrder(enum trackVisibility v) { return ((v) == tvShow ? 5 : \ (v) == tvFull ? 4 : \ (v) == tvPack ? 3 : \ (v) == tvSquish ? 2 : \ (v) == tvDense ? 1 : 0); } int tvCompare(enum trackVisibility a, enum trackVisibility b) /* enum trackVis isn't in numeric order by visibility, so compare * symbolically: */