IRC log of webcomponent-cg on 2022-09-14

Timestamps are in UTC.

14:09:47 [RRSAgent]
RRSAgent has joined #webcomponent-cg
14:09:47 [RRSAgent]
logging to
14:09:49 [Zakim]
Zakim has joined #webcomponent-cg
14:15:09 [dom]
Meeting: Web Components Community Group API and Specs Report 2022 - TPAC 2022 breakout
14:15:10 [dom]
Chair: Westbrook_Johnson, Owen_Buckley, Rob_Eisenberg
14:15:12 [dom]
14:15:16 [dom]
RRSAgent, make log public
14:15:18 [dom]
RRSAgent, this meeting spans midnight
14:19:12 [dom]
RRSAgent, stay
14:19:16 [dom]
Zakim, stay
14:19:16 [Zakim]
I don't understand 'stay', dom
15:14:58 [dom]
dom has joined #webcomponent-cg
16:13:33 [dom]
agenda+ breakout
18:15:49 [dom]
dom has joined #webcomponent-cg
20:15:05 [dom]
dom has joined #webcomponent-cg
20:30:10 [dom]
dom has joined #webcomponent-cg
21:07:02 [dom__]
dom__ has joined #webcomponent-cg
21:52:59 [dom]
dom has joined #webcomponent-cg
23:20:26 [Westbrook_]
Westbrook_ has joined #webcomponent-cg
23:21:00 [westbrook__]
westbrook__ has joined #webcomponent-cg
23:22:25 [dom]
dom has joined #webcomponent-cg
23:30:20 [westbrook__]
dom are you in person today?
23:31:07 [dizhang]
dizhang has joined #webcomponent-cg
23:31:23 [dom]
I'm in TPAC (but not in the Web COmponents CG breakout)
23:31:40 [nolanlawson]
nolanlawson has joined #webcomponent-cg
23:33:17 [Florian_]
Florian_ has joined #webcomponent-cg
23:33:56 [rego_]
rego_ has joined #webcomponent-cg
23:34:08 [florian]
florian has joined #webcomponent-cg
23:34:29 [astearns]
astearns has joined #webcomponent-cg
23:34:58 [NeilS]
NeilS has joined #webcomponent-cg
23:35:03 [NeilS]
23:35:54 [westbrook__]
23:36:09 [RobE]
RobE has joined #webcomponent-cg
23:36:19 [Alan_Davalos]
Alan_Davalos has joined #webcomponent-cg
23:36:22 [emilio]
emilio has joined #webcomponent-cg
23:36:24 [dandclark]
dandclark has joined #webcomponent-cg
23:36:26 [emilio]
23:36:33 [rego_]
23:36:45 [dandclark]
23:36:55 [westbrook__]
23:37:51 [nolanlawson]
westbrook: last year we presented a similar report at tpac for critical apis at the time
23:38:22 [nolanlawson]
westbrook: but it was a small subset. based on feedback, we included everything but focused on a few
23:38:52 [nolanlawson]
westbrook: centralized across several channels various apis
23:39:20 [nolanlawson]
westbrook: browser parity is one issue. we've outlined 4 apis that have 2 impls
23:39:40 [nolanlawson]
[ FACE, constructable stylesheets, css modules, imperative slots ]
23:40:23 [nolanlawson]
westbrook: FACE allows custom elements to participate in forms
23:40:35 [justinfagnani]
justinfagnani has joined #webcomponent-cg
23:40:55 [nolanlawson]
westbrook: constructable stylesheets allows to new a CSSStyleSheet, share styles across an app performantly
23:41:07 [kevinpschaaf]
kevinpschaaf has joined #webcomponent-cg
23:41:15 [nolanlawson]
westbrook: css modules (assert type css) can create a custom stylesheet from a CSS file
23:41:49 [nolanlawson]
westbrook: imperative slot, very recently safari put it in TP in 16.1
23:42:18 [nolanlawson]
westbrook: these specs are much needed
23:43:05 [nolanlawson]
leobalter: a browser compat matrix may help here to clarify
23:43:26 [nolanlawson]
westbrook: +1
23:44:28 [nolanlawson]
rego: there is an interop project asking for proposals. if these apis are important, should send them
23:45:08 [nolanlawson]
westbrook: we're going to talk about specs that aren't as fully developed. definitely interested
23:45:52 [rego_]
interop 2023 link:
23:46:14 [nolanlawson]
westbrook: next up, not-so-complete specs, complications, early days. high-import specs that are incomplete. how to drive these
23:47:03 [nolanlawson]
westbrook: cross-shadow-root aria. a11y with shadow roots is broken. there are workarounds but as of today most likely you create something inaccessible
23:48:04 [nolanlawson]
westbrook: 2 specs, one by leobalter, another by me
23:48:33 [nolanlawson]
westbrook: scoped registries - registering custom elements is currently on the global scope. register my-button a second time, it will throw an error
23:49:01 [nolanlawson]
westbrook: scoped registries gives new registries. two registries can each have my-button. needed at scale at large companies
23:49:25 [nolanlawson]
westbrook: only 2 or 3 sticking points, very close to agreement
23:50:08 [nolanlawson]
westbrook: declarative shadow dom, already shipping in chrome but not yet fully agreed upon. SSR of custom elements and shadow doms within them
23:52:29 [justinfagnani]
23:53:24 [nolanlawson]
leobalter: overview of aria, w3c principles give priority to users then web authors, with custom elements I personally connect them to the web authors, good composition and encapsulation
23:53:41 [nolanlawson]
leobalter: a11y is a main principle for the users. it should take priority
23:54:40 [nolanlawson]
leobalter: basic example is button. you cannot connect the button to something outside of it
23:55:26 [nolanlawson]
leobalter: we are already leveraging declarative shadow dom at salesforce, esp for b2c. we can test the chrome implementation and see perf gains
23:56:21 [nolanlawson]
leobalter: 2 questions blocking SDS was perf. SDS vs imperative is already 1 to 1, no perf impact. in terms of servers and loading, there's an advantage
23:57:04 [nolanlawson]
leobalter: other issue with DSD is scoped registries. we've identified polyfills, which impacts the priority. if there is a challenge, we'd prioritize DSD over scoped registries
23:57:20 [nolanlawson]
ack justinfagnani
23:58:15 [nolanlawson]
justinfagnani: how useful is this work and this report for spec proposal and implementors. not sure how many browser implementors we have, but curious how to unblock
23:58:38 [nolanlawson]
justinfagnani: we have some things with agreement, other things that are just vague concerns with no agreement. a lot has slowed down in the pandemic
23:58:54 [nolanlawson]
justinfagnani: much left undone. shadow dom puts road blocks in the way of other features
23:59:09 [nolanlawson]
justinfagnani: how can we move these things along faster?
23:59:53 [nolanlawson]
caridy: we need to figure out how to move forward. it's self-organized, that doesn't seem to work. those proposals have been there for some time, no one is driving that. we're all busy
00:00:17 [nolanlawson]
caridy: other models like ecma and tc39 with more cadence on meetings and getting implementors in the group. need to figure something out
00:00:32 [nolanlawson]
caridy: so far it's frustrating
00:01:21 [nolanlawson]
astearns: hard question. each item on list may need a diff solution for interop. first 4 items as interop 2023 is a good idea. all implementers will at least discuss. if they can find consensus that's a good push
00:02:19 [nolanlawson]
astearns: that doesn't guarantee consensus. all of these except for aria have specs, have issue tracking. creating new ones, bring your experience with WCs to the standards group working on the spec
00:02:53 [astearns]
nolanlawson: we had a discussion on this, cynthia has taken it up
00:03:10 [astearns]
nolanlawson: starting a document going through the use cases
00:03:23 [astearns]
nolanlawson: still in the ideation phase
00:04:22 [nolanlawson]
leobalter: we sponsor igalia to try to tackle these a11y problems. we are early adopters of WCs. we use a synthetic shadow DOM which provides these a11y features. to roll out native shadow DOM, we cannot break a11y
00:05:00 [nolanlawson]
leobalter: we had hopes with ID reflections, did some work, but identified some issues that prevented full a11y. the a11y provided is only partial. in this case we don't have a11y. it was not enough
00:05:04 [nolanlawson]
leobalter: cross-root aria is now the bet
00:06:09 [nolanlawson]
leobalter: both delegation and reflection which westbrook brought in, making it work both ways in the shadow root. this also works on the declarative form. on the path towards a declarative custom element
00:06:13 [justinfagnani]
00:06:18 [nolanlawson]
leobalter: can use low to no JS code
00:06:48 [nolanlawson]
leobalter: you can connect things like you do in regular HTML
00:06:51 [nolanlawson]
ack justinfagnani
00:07:29 [nolanlawson]
justinfagnani: who are we advocating to, and is that useful. any implementers who are here: is this useful work? should we be doing this?
00:07:56 [nolanlawson]
justinfagnani: the report is a bit duplicative of the proposal threads themselves in github. report is a ToC and a ranking. we heard from chrome that the ranking is useful. but probably only at the very top
00:08:04 [nolanlawson]
justinfagnani: at the bottom people don't have the bandwidth to care
00:08:11 [astearns]
+1 to the top rankings being the most effective
00:08:33 [nolanlawson]
justinfagnani: can we get feedback from implementors
00:09:25 [nolanlawson]
emilio: prioritizing stuff is useful to know what to work on. not aware of issues with DSD and CSS modules. one issue with DSD is HTML parser and perf
00:09:43 [nolanlawson]
emilio: addressing those concerns is most useful thing
00:10:01 [nolanlawson]
justinfagnani: some things are at an impasse. don't know how to get past. perf in DSD, nobody is using it, it's chicken and egg
00:10:38 [nolanlawson]
emilio: goog does this a lot, you ask for feedback from devs and partners. getting that data should have been done before shipping imo
00:11:06 [nolanlawson]
emilio: I don't work on dom, I would love to take advantage of SSR. Things are at a stalemate or stalled. How can the CG help to unblock
00:11:18 [nolanlawson]
^ should be justinfagnani, my bad
00:12:00 [nolanlawson]
caridy: tc39 module harmony efforts, we got a bunch of proposals bucketed into a single group. move forward is get people in the same room
00:12:24 [westbrook__]
reference for DSD questions, specifically:
00:13:05 [nolanlawson]
leobalter: one good signal at tc39, we have stage 3 which means everyone in the room agrees it's ready to be implemented
00:13:12 [nolanlawson]
leobalter: if we can have people in the room we can actually set a process
00:14:18 [nolanlawson]
hober: what's tricky about applying tc39 is that these features are all over the place in different groups with different processes. difficult to say something in another channel
00:15:00 [nolanlawson]
leobalter: we have 3 major browsers today. this works today at tc39. if anyone has one concern, this blocks that signal
00:15:55 [nolanlawson]
leobalter: what the group is seeking is we're afraid we don't have signals
00:17:02 [nolanlawson]
leobalter: all major browser vendors all have venues to provide signals. we have one for DSD. for webkit
00:17:51 [nolanlawson]
hober: this report links to gecko and webkit's positions issues already. haven't seen report before, is useful to get a sense of prioritization from the community. if you had one wish this year, what would it be for
00:18:18 [nolanlawson]
hober: in the browser parity section, it says support is not evenly distributed. my brain says, what are the gaps. is there a gap analysis. that is the doc I could bring to engineers
00:18:29 [nolanlawson]
hober: this is just the introduction, there's more there?
00:18:55 [nolanlawson]
westbrook: yes it has the status for the browser and in many cases we understand these are fairly large feature sets. we want deeper granularity. like FACE, which is built on ElementInternals
00:19:23 [nolanlawson]
westbrook: putting element internals at the top would be disingenuous, no browser fully has it. we broke it up
00:19:45 [nolanlawson]
westbrook: we raised these 4 because they are close to having full implementation. hard to sell gap analysis when firefox has something, when chrome has something vs when 2 have it
00:20:40 [nolanlawson]
hober: where that could be effective is in the cases where the gap is small. ask one browser to fix 3 three things. 2 may be bugs, 1 is a feature, then we'd be at parity. I would love it as a browser engineer
00:21:09 [nolanlawson]
hober: no one wants to do busywork. webkit doesn't need a 400 row table saying we don't implement things
00:21:41 [nolanlawson]
justinfagnani: we talked about what are critical blockers, some would not be covered in gap analysis. bc we haven't gotten traction in spec discussions
00:23:31 [nolanlawson]
justinfagnani: our users are saying we want to SSR web components for 10 years. our clients require having styles inherit into shadow. preventing people from using WCs. gap analysis useful for stuff we're close on. some things seem like obvious holes to the community. CG involvement interpreted as we personally care about this, but don't know if this is solving critical use cases. the CG can say that the community really cares [CUT]
00:24:45 [nolanlawson]
owenbuckley: putting together this report, you get a sense of the history. some GH issues go back years, 100s of comments. we do our best to distill
00:26:42 [nolanlawson]
owenbuckley: we tried to link to things to provide breadcrumbs. we as a CG can only go so far. would like to know how to better surface what you're looking for
00:28:25 [nolanlawson]
astearns: leo suggested a browser compat matrix. that would help. green red matrix to drill down. if there are issues where the whole feature is not needed, breaking down the 10 things, 7 things are in chrome, 6 are in gecko, 3 are in webkit is even more useful than the grid
00:28:48 [nolanlawson]
astearns: you can take interop's model to have a score for a given feature, calculated on your use cases
00:29:02 [nolanlawson]
justinfagnani: only applies to things impl'ed in at least 1 browser
00:29:22 [nolanlawson]
justinfagnani: we are prioritizing attention on the issue so it can be discussed and iterated on
00:29:31 [nolanlawson]
astearns: constructable stylesheets looks close
00:30:05 [nolanlawson]
westbrook: there are things that have specs that deserve that style, but there's also proposal-level work where need to find the right venue for conversations with implementers
00:30:24 [nolanlawson]
westbrook: there's a good place for both of those things
00:31:21 [astearns]
I confess I had not even noticed section 1.3
00:31:29 [nolanlawson]
Alan_Davalos: the ToC has 20 different specs, many of which have at best partial at worst no spec defined yet. 2 different conversations
00:32:21 [nolanlawson]
hober: observation on standards work: lots of specs that haven't been written that should be. some new features we should have, some that existed forever but not written down. some are punching bag jokes in tpac, e.g. hit testing spec.
00:32:50 [kevinpschaaf]
00:33:08 [nolanlawson]
hober: lack of engagement could just be the relevant people don't have the time. or switched jobs. no shortcut. but convos like these are one way to help. I have this problem frequently too
00:33:48 [nolanlawson]
justinfagnani: we use to have f2f weeks which have been extremely productive. the world had other ideas. now the CG exists and can participate in f2fs. is it time to reboot those?
00:33:57 [nolanlawson]
hober: we'd send somebody
00:34:05 [nolanlawson]
ack kevinpschaaf
00:34:51 [nolanlawson]
kevinpschaaf: browser implementors are overtaxed, any forcing function, a regular sync with a cadence to keep momentum up. implementers: what cadence would implementors sustain to push forward on backlog?
00:35:10 [nolanlawson]
kevinpschaaf: from the user's side we'll attend as frequently as possible if it means getting some attention and collaboration
00:36:02 [nolanlawson]
leobalter: one thing that would be beneficial for the group would be specs that are blocked on impl concerns, challenging if implementors are not in the room
00:36:14 [nolanlawson]
leobalter: we try to find ideas but all the responses have been negative
00:38:14 [nolanlawson]
emilio: lots of edge cases in scoped registries. movement across the dom that can affect what CE are you effectively. another potential is prototyping in one engine and finding edge cases
00:38:28 [nolanlawson]
justinfagnani: that is happening with scoped registries
00:38:45 [nolanlawson]
emilio: i think open stylable shadow roots is a bad idea. what is the point of shadow dom if you don't get encapsulation
00:38:50 [nolanlawson]
justinfagnani: users are asking for it every day
00:39:09 [nolanlawson]
emilio: maybe they shouldn't be using shadow dom. or the component should expose shadow parts for people to style them. it depends
00:39:48 [nolanlawson]
emilio: perf and implementability concerns, sometimes implementing it is a good way to find out maybe it's performant or maybe the concerns were right. all engines are open source today
00:39:55 [nolanlawson]
leobalter: we are not c++ devs
00:40:25 [nolanlawson]
leobalter: we have our partnership with igalia though
00:41:46 [nolanlawson]
westbrook: thanks everyone. there's so much interest. having a f2f is a good takeaway
15:29:06 [rego_]
rego_ has joined #webcomponent-cg
21:14:55 [dom]
dom has joined #webcomponent-cg
22:03:31 [dom]
RRSAgent, bye
22:03:31 [RRSAgent]
I see no action items
22:03:32 [dom]
Zakim, bye