id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,focuses 36848,Theme installer: avoid to announce the search results too many times,afercia,ocean90,"Noticed two cases where the search results message is unnecessarily dispatched to the aria-live region. '''1 Initial render of the view''' When the view is initially rendered, looks like `announceSearchResults()` runs both on render and on the `query:success` event. '''2 When using the arrow keys on the search input field''' When doing a search in the Themes Installer and after the results are displayed users might want to select or edit the search terms in the input field to refine their search. To do this they will probably use the arrow keys (or the Home/End keys, etc.). As soon as an arrow key is pressed, the search results message will be dispatched again to the aria-live region. Investigated a bit and looks like this happens because there's nothing to check which keys get pressed or to check if the search terms have changed. At the very least, I'd say there should be a check on the search terms, also for consistency with what happens in the Installed Themes screen. TL;DR While in the Installed Themes screen `themes.view.Search.doSearch` uses `themes.Collection.doSearch` which checks the current search input field value against the previous search and returns early if they're equal... in the Themes Installer instead, `themes.view.InstallerSearch` does extend `themes.view.Search` but then implements its own `search` and `doSearch` functions which miss to check the search input field value against the previous search. Thus, while previous search results are actually cached and a new API call is prevented, a `query:success` custom event is triggered anyways and on this event other things run again including: - the count text update - more importantly, `announceSearchResults()` runs again Tried to catch this in the screenshot below, to make it easier to reproduce. Just run a search and then move the cursor in the input field using the arrow keys: [[Image(https://cldup.com/bWLPriMY_c.png)]]",defect (bug),closed,normal,4.6,Themes,,normal,fixed,has-screenshots has-patch,,"ui, accessibility, javascript"