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/lib/hui.c src/hg/lib/hui.c index e937e46eec4..5e0dd02722b 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -953,45 +953,54 @@ return packOnly; else if (sameWord(visOnly,"full")) return fullOnly; else /* default when not recognized */ return denseOnly; } else { if (canPack) return pack; else return noPack; } } -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 +void hTvDropDownClassVisOnlyAndExtraWithLabel(char *varName, enum trackVisibility vis, + boolean canPack, char *class, char *visOnly, struct slPair *events, + char *label) +// Make track visibility drop down for varName with style class, optional aria-label, +// and potentially limited to visOnly { char** vizArr = hTvGetVizArr(vis, canPack, visOnly); char* checked = vizArr[vis]; int vizArrLen = arrNullLen(vizArr); // Same as hTvDropDownClassWithJavascript(): // 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]]; -cgiMakeDropListClassWithStyleAndJavascript(varName, vizArr, vizArrLen, checked, class,TV_DROPDOWN_STYLE, events); +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 { static char *hideShow[] = { "hide", "show" }; cgiMakeDropListClassWithIdStyleAndJavascript(varName, id, hideShow, ArraySize(hideShow), hideShow[show], class, TV_DROPDOWN_STYLE, events); }