Essentially I think this means that blur event is not emitted if you remove a node with focus, but that blur() (probably) will be sent if you change the style such that the element is present but no longer focusable. This is important because developers might otherwise assume the focus-lost events will always be sent.
That's right, but before these changes we wouldn't even update the focus when styles made something unfocusable.
It isn't clear whether focusout is emitted in the removal case
I don't think so. But behavior on removal isn't changed by this.
it isn't clear (to me) what gets the focus? It sounds like it's the document viewport, but I'm not sure what that means w.r.t. where the focus events get sent, or if they are sent at all.
The same happens as if you do
element.blur(). The viewport / body gets the focus.
Would you be able to have a look at https://github.com/mdn/content/issues/25496#issuecomment-1477313325 and confirm whether I am in the right "ballpark" and what you think needs to happen.
Yeah, that sounds right. This change makes the behavior more compatible with other browsers (but over-all things are still a bit messy in Chromium). So not sure a BCD entry is warranted, it's... tricky :)