On Tue, Mar 25, 2025 at 1:52 PM Mike Taylor <miketa...@chromium.org> wrote:

> On 3/25/25 1:39 PM, Yoav Weiss (@Shopify) wrote:
>
> On Tue, Mar 25, 2025 at 10:37 AM Vladimir Levin <vmp...@chromium.org>
> wrote:
>
>> I'm not convinced this is a huge footgun. Yes, it's a convenience value
>> that allows auto matching in MPA where there is no other way to
>> automatically match without changes to the dom (for a custom attribute).
>> Doing these modification is not far from just giving unique names to
>> view-transition-name, albeit with less typing.
>>
>> Is it perfect? No. I suspect that the dynamic id case that Jake gave in
>> conjunction with auto naming is the only problematic case in that the
>> transition won't match to what the author may want (although it's also
>> wrong to say it isn't what they want -- it's something of which they have
>> to be cognizant).
>>
>> I agree with Noam that the discrepancy in Interop is likely cause more
>> confusion in these cases. I'm not using Interop as justification for
>> shipping this, but only pointing out that IMHO the problem with auto is not
>> as severe as described in this thread.
>>
>> As for the next steps, I'm fine with continuing the discussion with TAG.
>> With respect to CSSWG, my sense is that the discussion in this thread won't
>> sway the decision.
>>
>> I'd like to understand what decision we would make here if TAG agrees
>> with Jake's concern. Again to reiterate, the concern is valid, but is the
>> risk of this developer confusion great enough to prevent us from adding
>> this feature?
>>
>
> I don't think the risk here is developer confusion. The risk is that
> adding a unique ID attribute becomes an unsafe operation.
>
> In my experience, there's always a non-zero specificity foot gun risk for
> non-trivial sites, depending on how your CSS is written (or more likely,
> legacy of CSS you inherited). It sucks when you run into it, but I don't
> think this change is novel in that sense.
>
> That would mean that e.g. CMSes that have multiple actors contributing
> code to the page (e.g. the developer, the theme and plugins) would now need
> to police/prevent all actors from using `view-transition-name: auto`
> because some combinations of code would result in weird and hard to
> figure-out bugs.
>
> That seems like a fundamental shift, which I'd argue we need to make only
> if we have very good reasons to go that path.
>
> On the front of interop risk of not shipping this - what happens today if
> developers are using `auto`? Do we expect them to feature detect it? And if
> so, what do we expect them to do in the fallback case?
>
> Currently in Blink, use of auto would have no effect as it is a reserved
keyword (in `view-transition-name`) and would not act as a custom ident.

With respect to fallbacks:
In the MPA cases, `view-transition-name` matching, without `auto`, can only
happen by idents. To avoid the need to code unique names in CSS, the
developer can write something along the lines of `view-transition-name:
attr(id type(<custom-ident>))` or `view-transition-name: attr(data-vtn
type(<custom-ident>))` as Jake suggested. Of course, if they choose `id` as
the attribute to mirror, it would be exactly the same as saying `auto` with
all the same concerns for multiple developers stepping on each others' toes.

In SPA cases, I imagine `match-element` suffices, unless the author
explicitly wants the `auto` behaviour of prioritizing `id` and falling back
to `match-element`, in which case they can write something like
`view-transition-name: attr(id type(<custom-ident>), match-element)`. The
latter may be a valid case for situations in which DOM is recycled

Thanks,
Vlad

>
>
>
>>
>> Thanks,
>> Vlad
>>
>> On Tue, Mar 25, 2025, 7:37 a.m. Jake Archibald <jaffathec...@gmail.com>
>> wrote:
>>
>>> I've summarised the issues with this proposal in the TAG thread
>>> <https://github.com/w3ctag/design-reviews/issues/1001#issuecomment-2750966335>
>>> .
>>>
>>> On Tue, 25 Mar 2025 at 10:44, Noam Rosenthal <nrosent...@chromium.org>
>>> wrote:
>>>
>>>>
>>>>>
>>>>> *Until this feature (correct me if I'm wrong), adding a unique ID to
>>>>> an element was safe. With this feature, that's no longer the case.*
>>>>>
>>>>>
>>>>> This seems like a worthwhile question to bring back to the TAG and/or
>>>>> the CSSWG. Looking at the TAG review, it doesn't seem like it was 
>>>>> discussed.
>>>>>
>>>>
>>>> Happy to take this back to TAG, but would defer to Vlad for next steps.
>>>> Not counting on this leading to anything actionable though as Apple
>>>> were very adamant about keeping things as is in the last few discussions
>>>> about this,
>>>> following the CSSWG process that things can stay in the spec unless
>>>> there is a consensus to remove them.
>>>>
>>>> This should 100% *not* be the reasoning for shipping a feature we
>>>>> think is bad.
>>>>>
>>>>
>>>> If API owners think that this is "bad" then we definitely shouldn't
>>>> ship it, or ship only match-element which everyone seems to agree on.
>>>> I would describe this as "not ideal" and that keeping interop on this
>>>> is the lesser evil.
>>>>
>>>>
>>>>> Are we seeing real-life interop pressure? How many sites are already
>>>>> using `auto`? What's the user experience in Chromium for ones that do?
>>>>>
>>>>
>>>> It's not an existing backwards compat issue. But we'd be introducing a
>>>> slight inconsistency from the get go which IMO is arguably worse than
>>>> shipping the whole thing.
>>>> As a web developer I'd probably end up being confused by this whole
>>>> thing if Webkit and chromium end up shipping something slightly different
>>>> with a lack of consensus attached to it.
>>>>
>>>>
>>> --
>> 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 visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NQKc%2Bh_JK4sDxYKN0YDLJbff8qL1facbxZipvsYw0v2Q%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NQKc%2Bh_JK4sDxYKN0YDLJbff8qL1facbxZipvsYw0v2Q%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 visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/54fc599d-3e1a-4d0b-88c5-4a2db9f93410%40chromium.org
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/54fc599d-3e1a-4d0b-88c5-4a2db9f93410%40chromium.org?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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2OS92qUN_m0JLCv9n4Vo8%3D25QKoYLmS-KdPcCh4jhFzNA%40mail.gmail.com.

Reply via email to