Created attachment 408558 [details] testcase STR: See test case, the page will 0. check the current focused element by looking at `document.activeElement`. 1. focus() the element 2. set visibility: hidden on the element 3. wait for 100ms 4. check the current focused element by looking at `document.activeElement` again. Expected: On Chrome on step 4, the focused element is the body Actual: On Safari and Firefox, the focused element is still the element. Note: 1. The inconsistency suggests that there may be a spec issue here. 2. On Chrome sometime a micro task is enough for the focus to moved away, some times it is not.
<rdar://problem/68728487>
Any change here should wait on the resolution of https://github.com/w3c/uievents/issues/236
Bug 29241 is the same issue, but with "display: none" rather than "visibility: hidden".