A good start would be Scott O'Hara from Microsoft. He would know others to
loop in.

On Tue, Apr 2, 2024 at 4:03 AM Yoav Weiss (@Shopify) <yoavwe...@chromium.org>
wrote:

> Hmm, would it make sense then to work with the accessibility community to
> get them to move to mutation observers before attempting to remove here?
> Do we know folks with contacts in these circles?
>
> ^^ +Aaron Leventhal <alevent...@google.com>
>
> On Fri, Mar 29, 2024 at 7:01 PM Ian Kilpatrick <ikilpatr...@chromium.org>
> wrote:
>
>>
>>
>> On Fri, Mar 29, 2024 at 4:33 AM Noam Rosenthal <nrosent...@chromium.org>
>> wrote:
>>
>>>
>>>
>>> On Fri, Mar 29, 2024 at 6:33 AM Yoav Weiss (@Shopify) <
>>> yoavwe...@chromium.org> wrote:
>>>
>>>> On top of Domenic's questions, have we tried to estimate the risk here?
>>>> Even if it's Chromium-only, there could be Enterprise or embedded scenarios
>>>> that somehow rely on it.
>>>>
>>> Yes, and we're willing to keep the old behavior as an enterprise policy,
>>> at least temporarily.
>>>
>>>
>>>> Do we know how often this blur event actually fires?
>>>>
>>>
>>> There's no way to find out unfortunately. This event is currently fired
>>> for every removal, and there could be event listeners that handle it, but
>>> there is no way to tell if functionality builds on it, or at least I
>>> couldn't think of one (happy for suggestion). We wanted to disable it in a
>>> finch and If we decide that we would rather leave things as is, staying
>>> incompatible with Gecko/WebKi/the standard, and also keeping the quirkiness
>>> of being able to run a script synchronously while a node is removed, I'm
>>> totally OK with that, but that needs to be a conscious decision.
>>>
>>>
>>>>
>>>> On Fri, Mar 29, 2024 at 5:28 AM Domenic Denicola <dome...@chromium.org>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Fri, Mar 29, 2024 at 2:33 AM Noam Rosenthal <
>>>>> nrosent...@chromium.org> wrote:
>>>>>
>>>>>> Contact emailsnrosent...@chromium.org, d...@chromium.org
>>>>>>
>>>>>> ExplainerNone
>>>>>>
>>>>>
>>>>> A few paragraphs, including e.g. example code and how it behaves
>>>>> differently before/after the change, would help clarify this for web
>>>>> developers.
>>>>>
>>>>
>>> Sure!
>>> Writing those here, if you think they need to be in some repo that's
>>> fine.
>>> This will mainly affect code that uses global `focus` `blur` event
>>> listeners to track the active element, for example in a form:
>>>
>>> ```js
>>> form.addEventListener("focus", () => { trackActiveElementChange() }, {
>>> capture: true});
>>> form.addEventListener("blur", () => { trackActiveElementChange() },
>>> {capture: true});
>>> ```
>>>
>>> Now, since the active element might be removed without a `blur` event,
>>> the same can be achieved with mutation observers:
>>> ```js
>>> form.addEventListener("focus", () => { trackActiveElementChange() }, {
>>> capture: true});
>>> new MutationObserver(entries => {
>>>   if (Array.from(entries).some(entry => entry.removedNodes.length)
>>>      trackActiveElementChange();
>>> }).observe(form);
>>> ```
>>>
>>> In essence the author can check that the node either lost focus or was
>>> removed, but you don't have an event that tells you that "either" happened.
>>> So all the use cases can be covered, but of course there is a backwards
>>> compat risk as mentioned in this thread. We should make a decision on how
>>> to go forward as a balance between the backwards-compat risk and the
>>> other-browser-compat risk.
>>>
>>> This is done as part of an effort to see if we can get rid of (as many
>>> as possible) scripts that can run in the middle of a DOM operation.
>>> This one and events on iframe removal are the only ones remaining.
>>>
>>
>> To provide a little more context - activeElement tracking is used heavily
>> by most webapp having non-trivial a11y implementations.
>>
>> An example of this pattern is something like:
>>
>> https://github.com/tridactyl/tridactyl/blob/f49e1c94bcd481fdc86fb219335bafc4ce0f25ab/src/content.ts#L180-L187
>> (From the first page of a github search of activeElement + setInterval).
>> (Above is for a Firefox specific extension I think - so doesn't have any
>> if (FIREFOX) for the interval checking).
>> (Not this case exactly also - but same pattern).
>>
>> setInterval checking is done for other browsers as there isn't a great
>> way to check for activeElement changes (maybe there should be async events?
>> - but thats a separate discussion).
>> But web developers might have only done the setInterval pattern for
>> Firefox/Safari.
>>
>> Ian
>>
>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to blink-dev+unsubscr...@chromium.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJn%3DMYbiys600Gk5c%3DsW8B-iJOzRHqWq6Puc5nm8f-78zvxJvw%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJn%3DMYbiys600Gk5c%3DsW8B-iJOzRHqWq6Puc5nm8f-78zvxJvw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2B1LECSzpxUpbLg4jYwSBXj239qxW8EpvFbNCgrMBJgV41-vEQ%40mail.gmail.com.

Reply via email to