Originally Posted by
Nominal Animal
I'd personally put a fixed search bar at the bottom, with a hotkey assigned to it, and the tabindex of the search entry box would always be 1. There'd be no "search" button, as searching would be re-done every time you modify the search string, and it'd just reassign the tabindex values for each input entry, best matches first, followed by no matches. I'd also show the number of matches on the search bar, and have a "reset" button to clear the input entry, and reset the tab order.
This way, you start searching by pressing that hotkey, then typing in the search text, then pressing tab (and/or shift+tab) to roll through the entries.
If the searching is based on fixed contents, I'd definitely just use a specific CSS class for them, and on onload read them all by looping over the entries document.getElementsByClassName() returns, and saving each elements textContent as a string into an array, and the corresponding reference to its target element (select or input element related to it) in another array.
Otherwise, you'll have to do the search based on the current page contents -- a loop over document.getElementsByClassName() works, although you might need to handle form input elements (containing searched for text) separately.
If the machines are so slow that the automatic search feels annoying, use a timeout on each search field modification, cancelling the previous one whenever the search field changes. This way you can set the automatic search to start, say, three-quarters of a second after the last change to the search field. You could even use longer timeouts for when the search field is short.
If you want an example, I could cobble one together. Be warned: I do raw Javascript; I don't like any of the available toolkits, as I prefer my JS on top of a raw browser. No reason, I'm just wonky that way.