b1ea00a1ea5559c4f27b00da2f90493bd8a3a88e
max
  Wed Aug 26 00:57:26 2026 -0700
hgBlat: reorder the search-form checkboxes to Keep results, Show rearrangements, No min. score, Search many genomes. refs #37893

diff --git src/hg/js/hgBlat.js src/hg/js/hgBlat.js
index 6b78ff212a3..72889cd77bc 100644
--- src/hg/js/hgBlat.js
+++ src/hg/js/hgBlat.js
@@ -745,60 +745,60 @@
                 '</span>' +
                 '<div id="blatGenomeSlot"></div></div>' +
             `<label class="blatField"><span>Query type</span><select name="type">${blatOpts(cfg.types, cfg.type)}</select></label>` +
             // Sort and output are submitted but not offered: sorting by anything other than score
             // is rarely useful, and this page always wants the hyperlink (results table) output.
             // Kept as hidden fields so the request hgBlat receives is unchanged.
             `<input type="hidden" name="sort" value="${htmlEncode(cfg.sort)}">` +
             `<input type="hidden" name="output" value="${htmlEncode(cfg.output)}">` +
         '</div>' +
 
         '<div class="blatChecks">' +
             // The mouseover popup keeps itself open while the pointer is inside it (see the
             // mouseoverContainer mouseenter handler in utils.js), and renders its text as HTML, so
             // a link in the tip is genuinely clickable.  htmlEncode keeps the title attribute
             // well-formed; the browser decodes it back to markup before it is injected.
-            check('allGenomes', cfg.allGenomes, 'Search many genomes',
-                'Runs the same query against every default assembly and attached hub that has a ' +
-                'dedicated BLAT server. Dynamic BLAT servers are skipped and listed as such in the ' +
-                "output. See our <a target='_blank' href='../FAQ/FAQblat.html#blat9'>BLAT All FAQ</a> " +
-                'for more information.') +
-            check('allResults', cfg.allResults, 'No min. score',
-                'Turns off minimum-match filtering so every alignment is returned. A human DNA search ' +
-                'normally requires 20 matching bases, based on the genome size, to filter out ' +
-                'lower-quality results; useful for short queries and the tiny genomes of ' +
-                'microorganisms.') +
-            check('autoRearr', cfg.autoRearr, 'Show rearrangements',
-                'Shows duplications of the query sequence using multiple lines with connecting lines ' +
-                'between fragments, and displays inversions better (the "snakes" display). Can also ' +
-                'be switched on or off from the BLAT track configuration page.') +
             // Only offered where hg.conf blatOldTracks=delete, i.e. where there is something to opt
-            // out of.  Unlike the three above (which keep the classic form's plain-checkbox
+            // out of.  Unlike the three below (which keep the classic form's plain-checkbox
             // behaviour), this one is submitted through an explicit hidden field: a checkbox sends
             // nothing when unticked, so cartUsualBoolean would never see it go back to false and
             // "Keep results" could not be switched off again once used.
             (cfg.showKeepResults ?
                 '<span class="blatCheck">' +
                 `<input type="hidden" name="blatKeepResults" id="blatKeepResultsVal" value="${keepResultsInit ? 1 : 0}">` +
                 `<label><input type="checkbox" id="blat_keepResults"${keepResultsInit ? ' checked' : ''}>` +
                 'Keep results</label>' +
                 `<span class="blatInfo" title="${htmlEncode(
                     'A new BLAT search always overrides your previous BLAT results: each search ' +
                     'replaces the result track of the one before it in the Genome Browser. Check ' +
                     'this box to keep earlier results instead, so every search adds its own track ' +
                     'and results accumulate. Your choice is remembered for next time.')}">` +
                 `${BLAT_INFO_SVG}</span></span>` : '') +
+            check('autoRearr', cfg.autoRearr, 'Show rearrangements',
+                'Shows duplications of the query sequence using multiple lines with connecting lines ' +
+                'between fragments, and displays inversions better (the "snakes" display). Can also ' +
+                'be switched on or off from the BLAT track configuration page.') +
+            check('allResults', cfg.allResults, 'No min. score',
+                'Turns off minimum-match filtering so every alignment is returned. A human DNA search ' +
+                'normally requires 20 matching bases, based on the genome size, to filter out ' +
+                'lower-quality results; useful for short queries and the tiny genomes of ' +
+                'microorganisms.') +
+            check('allGenomes', cfg.allGenomes, 'Search many genomes',
+                'Runs the same query against every default assembly and attached hub that has a ' +
+                'dedicated BLAT server. Dynamic BLAT servers are skipped and listed as such in the ' +
+                "output. See our <a target='_blank' href='../FAQ/FAQblat.html#blat9'>BLAT All FAQ</a> " +
+                'for more information.') +
         '</div>' +
 
         '<div class="gbSection">Query sequence</div>' +
         '<div class="blatTabs">' +
             '<button type="button" class="blatTab on" id="blatTabPaste">Paste sequence</button>' +
             '<button type="button" class="blatTab" id="blatTabUpload">Upload file</button>' +
         '</div>' +
 
         '<div id="blatPanePaste">' +
             '<div class="blatPaneHint"><span>Separate multiple sequences with a &gt;name line. ' +
             'Up to 25 sequences.</span>' +
             `<a href="#" id="blatExample">${htmlEncode(cfg.exampleLabel)}</a></div>` +
             '<textarea class="blatSeq" name="userSeq" id="blatUserSeq" spellcheck="false" ' +
             'aria-label="Paste in a query sequence"></textarea>' +
             '<div class="blatCount"><span id="blatCountText"></span>' +