I should clarify this situation. The blur event and the function for that blur event does get called. The problem is that scrollIntoView doesn’t seem to have any effect during the blur event.
That problem is resolved by waiting until the blur event is finished, by using setTimeout as shown above.
For what it’s worth, my mind ran along similar tracks to Paul; blur dispatches at a slightly different time as focusout (Focusout fires before the element loses focus, blur is dispatched after.
I suspect the browser is suffering a conflict between trying to scroll to the element as prescribed by the javascript and it’s own internal handling of blur/focus positioning (trying to bring the new focus element to view), which is why both focusout (because it resolved the move before executing the browser’s positioning) and setTimeout(because it allowed the browser’s positioning to resolve, and then execute the scroll) worked.