06:59
<draginfable>
File an issue. (Looks like you did, https://github.com/whatwg/html/issues/9894 ) But also see https://github.com/whatwg/html/issues/9158
Thanks a lot zcorpan !
07:23
<chargeitall>
You mean ones which will never match without JS doing something? There is no easy way, no. (And :fullscreen can match without JS; you can click the fullscreen button on a <video>, for instance.)
The video interface currently has native support for triggering fullscreen mode, but other elements require JavaScript coding to achieve the same effect. I have observed that the :modal pseudo class does not work without JavaScript, which raises the question of which other pseudo classes also require JavaScript to function properly.
10:55
<keithamus>

annevk: I wonder if you have an opinion on whether an InvokeEvent should be composed or not? smaug raised that they perhaps should be (https://phabricator.services.mozilla.com/D190449#inline-1066299), which sounds good to me. But then in patching Chrome's impl (https://chromium-review.googlesource.com/c/chromium/src/+/4987342) jarhar pointed out https://github.com/whatwg/html/issues/9381#issuecomment-1735259937 where toggle events aren't composed because they leak the shadow tree.

I have no strong opinions either way on this, other than to get it resolved ;)

10:56
<keithamus>
Based on your commentary in the above issue, I'd say that given invoke events could occur on a shadow host, then it is reasonable/desirable for them to be composed.
11:00
<smaug>
(click isn't user input)
11:02
<keithamus>
because domactivate is? Or because events aren't input?
11:06
<smaug>
Click is dispatched as a reaction to *down/*up events, or keypress or what not, or one can trigger it using click() etc. Click is quite special.
11:06
<keithamus>
right yes, makes sense, thanks
11:06
<smaug>
And in some sense invoke is similar-ish activation event
11:07
<smaug>
My main question is that if invoke isn't composed, doesn't that lead the user of the component to then usually rely on click?
11:08
<smaug>
I don't feel very strongly about this. But if it is not composed, then invokeEvent.invoker doesn't need to be retargeted, since nothing should be leaked.
11:10
<keithamus>
For manual dispatch it will leak but I suppose that's considered okay?
11:11
<smaug>
well, sure, if you explicitly dispatch composed event. It is like dispatching CustomEvent with detail pointing to something inside the shadow dom.
11:13
<keithamus>
Right. FWIW I like the idea of making it composed, I think it makes sense especially if we consider the idea of having built ins dispatch invoke events to announce their own internal behaviours (such as a summary opening the details) - it seems to explain those better.
11:15
<smaug>
Relatedly, are there use cases where one should be able to target host as invokee, and then somehow we'd retarget that invoking operation to something inside the shadow dom? I guess it would mean the component announcing their behaviors. I could imagine <video> inside shadow dom, and then action being "play" or "pause" etc
11:17
<keithamus>
I would imagine in those use cases you would use scripting to dispatch correctly to elements in the shadowdom
14:24
<TabAtkins>
The video interface currently has native support for triggering fullscreen mode, but other elements require JavaScript coding to achieve the same effect. I have observed that the :modal pseudo class does not work without JavaScript, which raises the question of which other pseudo classes also require JavaScript to function properly.
:modal also is getting declarative invocation behavior, via the dialog/popover stuff 😃
14:24
<TabAtkins>
So like I said, there is no list, and the set will change over time.
18:06
<Luke Warlow>
:modal also is getting declarative invocation behavior, via the dialog/popover stuff 😃
As is ':fullscreen' by the same proposal
22:16
<smaug>
keithamus: where is the most up-to-date custom state pseudo class spec?
22:17
<keithamus>
https://github.com/whatwg/html/pull/8467
22:17
<annevk>
nicolo-ribaudo: do you know why WPT still has a lot of tests assuming support for import assertions rather than import attributes? That seems incorrect.
22:26
<annevk>
I filed https://github.com/web-platform-tests/wpt/issues/42875 to discuss further.
22:33
<smaug>
keithamus: thanks. I just couldn't (and still can't 🙂 ) understand what values can be passed in.
22:34
<smaug>
I'm probably missing something obvious
22:34
<keithamus>
An ident production
22:34
<keithamus>
Or a dashed ident
22:35
<smaug>
but dashed idents can't be for example --default
22:35
<smaug>
And I couldn't find in the pr any validation
22:35
<smaug>
the old spec proposal does have that
22:36
<keithamus>
I agree
22:44
<keithamus>
There’s also https://github.com/w3c/csswg-drafts/pull/8213 which says the production is the :state( function followed by a <string> followed by ) but I think that’s a mistake because every example I see discussed does not seem to use quotes and I don’t know why you would; it seems like it should be custom-ident or dashed-ident but I think that should be validated against in the html customstateset class.
22:48
<keithamus>
In my opinion it should be a production of :state( [[ident] | [dashed-ident]] ) and the spec should validate the given argument to ensure the given argument is either an ident/dashed-ident. This will ensure compatibility/migration with the older proposal which was :[dashed-ident].
23:02
<annevk>
I don't understand why we'd validate the API input. We don't validate getElementById() either. And you can type almost anything after #. I agree that Selectors needs to define the syntax formally as an ident, but I don't think any of the other changes discussed here are needed. jarhar did the right thing, the only thing needed I suppose is some change on the Selectors side.
23:23
<smaug>
yeah, that is one option. I was just looking at a patch which did some validation and was confused.
23:30
<annevk>
I think reading the PR again an empty string check probably makes sense. We generally don't allow the empty string as identifier so that seems reasonable to follow here as well.
23:35
<smaug>
but we don't really prevent use of empty strings
23:40
<annevk>
smaug: fair, we could allow them and not match
23:40
<annevk>
let me update my comment