NEW 225265
visibilitychange fires in a bad order
https://bugs.webkit.org/show_bug.cgi?id=225265
Summary visibilitychange fires in a bad order
Rob Snow
Reported 2021-04-30 20:15:05 PDT
we're trying to use visibility change to determine if we should show a focus ring or not when a user is coming back to a page unfortunately in Safari the order of events is not what we expected when coming back to a tab, the focus events run first, then visibilitychange this is opposite to what happens when the user leaves the tab where blur runs, then visibilitychange runs I think that running visibilitychange last when leaving and first when arriving makes the most sense. https://jsfiddle.net/snowystinger/fhxjm2pz/2/ On another note, I also noticed that focus is fired twice.
Attachments
Chris Dumez
Comment 1 2021-05-03 08:52:04 PDT
Adding Wenson to CC. On my Safari, I am having trouble even focusing the button. Even clicking the button does not seem to fire its focus event. On Chrome, I can click the button and I get the focus event. The order of the events is what I would expect in Chrome.
Radar WebKit Bug Importer
Comment 2 2021-05-07 20:16:14 PDT
Ahmad Saleem
Comment 3 2022-09-29 15:28:32 PDT
*** Safari 16 *** "visibility changed", "hidden" "visibility changed", "visible" *** Chrome Canary 108 *** visibility changed hidden visibility changed visible *** Firefox Nightly 107 *** visibility changed hidden show:57:33 visibility changed visible show:57:33 ______ All browsers are matching with each other, do we need to do anything more? Thanks!
Rob Snow
Comment 4 2022-09-29 16:38:50 PDT
Doesn't look like they all behave the same. Note the order of blur/focus VS visibility. Everything is still in the same order as it was when I first filed the issue. *** Safari 16 *** [Log] blurred (show, line 57) [Log] visibility changed – "hidden" (show, line 57) [Log] focused (show, line 57) [Log] visibility changed – "visible" (show, line 57) *** Chrome 105 *** blurred visibility changed hidden visibility changed visible focused *** Firefox 105 *** blurred show:57:33 visibility changed hidden show:57:33 visibility changed visible show:57:33 focused show:57:33 See how Safari still fires visibility change after focused instead of before?
Note You need to log in before you can comment on or make changes to this bug.