14:09:47 RRSAgent has joined #webcomponent-cg 14:09:47 logging to https://www.w3.org/2022/09/14-webcomponent-cg-irc 14:09:49 Zakim has joined #webcomponent-cg 14:15:09 Meeting: Web Components Community Group API and Specs Report 2022 - TPAC 2022 breakout 14:15:10 Chair: Westbrook_Johnson, Owen_Buckley, Rob_Eisenberg 14:15:12 Agenda: https://www.w3.org/events/meetings/2f1bb21d-1d51-4528-9729-9da2bc611176#agenda 14:15:16 RRSAgent, make log public 14:15:18 RRSAgent, this meeting spans midnight 14:19:12 RRSAgent, stay 14:19:16 Zakim, stay 14:19:16 I don't understand 'stay', dom 15:14:58 dom has joined #webcomponent-cg 16:13:33 agenda+ breakout 18:15:49 dom has joined #webcomponent-cg 20:15:05 dom has joined #webcomponent-cg 20:30:10 dom has joined #webcomponent-cg 21:07:02 dom__ has joined #webcomponent-cg 21:52:59 dom has joined #webcomponent-cg 23:20:26 Westbrook_ has joined #webcomponent-cg 23:21:00 westbrook__ has joined #webcomponent-cg 23:22:25 dom has joined #webcomponent-cg 23:30:20 dom are you in person today? 23:31:07 dizhang has joined #webcomponent-cg 23:31:23 I'm in TPAC (but not in the Web COmponents CG breakout) 23:31:40 nolanlawson has joined #webcomponent-cg 23:33:17 Florian_ has joined #webcomponent-cg 23:33:56 rego_ has joined #webcomponent-cg 23:34:08 florian has joined #webcomponent-cg 23:34:29 astearns has joined #webcomponent-cg 23:34:58 NeilS has joined #webcomponent-cg 23:35:03 present+ 23:35:54 https://w3c.github.io/webcomponents-cg/2022.html 23:36:09 RobE has joined #webcomponent-cg 23:36:19 Alan_Davalos has joined #webcomponent-cg 23:36:22 emilio has joined #webcomponent-cg 23:36:24 dandclark has joined #webcomponent-cg 23:36:26 present+ 23:36:33 present+ 23:36:45 present+ 23:36:55 present+ 23:37:51 westbrook: last year we presented a similar report at tpac for critical apis at the time 23:38:22 westbrook: but it was a small subset. based on feedback, we included everything but focused on a few 23:38:52 westbrook: centralized across several channels various apis 23:39:20 westbrook: browser parity is one issue. we've outlined 4 apis that have 2 impls 23:39:40 [ FACE, constructable stylesheets, css modules, imperative slots ] 23:40:23 westbrook: FACE allows custom elements to participate in forms 23:40:35 justinfagnani has joined #webcomponent-cg 23:40:55 westbrook: constructable stylesheets allows to new a CSSStyleSheet, share styles across an app performantly 23:41:07 kevinpschaaf has joined #webcomponent-cg 23:41:15 westbrook: css modules (assert type css) can create a custom stylesheet from a CSS file 23:41:49 westbrook: imperative slot, very recently safari put it in TP in 16.1 23:42:18 westbrook: these specs are much needed 23:43:05 leobalter: a browser compat matrix may help here to clarify 23:43:26 westbrook: +1 23:44:28 rego: there is an interop project asking for proposals. if these apis are important, should send them 23:45:08 westbrook: we're going to talk about specs that aren't as fully developed. definitely interested 23:45:52 interop 2023 link: https://github.com/web-platform-tests/interop/tree/main/2023 23:46:14 westbrook: next up, not-so-complete specs, complications, early days. high-import specs that are incomplete. how to drive these 23:47:03 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 westbrook: 2 specs, one by leobalter, another by me 23:48:33 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 westbrook: scoped registries gives new registries. two registries can each have my-button. needed at scale at large companies 23:49:25 westbrook: only 2 or 3 sticking points, very close to agreement 23:50:08 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 q+ 23:53:24 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 leobalter: a11y is a main principle for the users. it should take priority 23:54:40 leobalter: basic example is button. you cannot connect the button to something outside of it 23:55:26 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 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 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 ack justinfagnani 23:58:15 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 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 justinfagnani: much left undone. shadow dom puts road blocks in the way of other features 23:59:09 justinfagnani: how can we move these things along faster? 23:59:53 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 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 caridy: so far it's frustrating 00:01:21 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 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 nolanlawson: we had a discussion on this, cynthia has taken it up 00:03:10 nolanlawson: starting a document going through the use cases 00:03:23 nolanlawson: still in the ideation phase 00:04:22 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 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 leobalter: cross-root aria is now the bet 00:06:09 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 q+ 00:06:18 leobalter: can use low to no JS code 00:06:48 leobalter: you can connect things like you do in regular HTML 00:06:51 ack justinfagnani 00:07:29 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 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 justinfagnani: at the bottom people don't have the bandwidth to care 00:08:11 +1 to the top rankings being the most effective 00:08:33 justinfagnani: can we get feedback from implementors 00:09:25 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 emilio: addressing those concerns is most useful thing 00:10:01 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 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 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 ^ should be justinfagnani, my bad 00:12:00 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 reference for DSD questions, specifically: https://w3c.github.io/webcomponents-cg/2022.html#open-questions-8 00:13:05 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 leobalter: if we can have people in the room we can actually set a process 00:14:18 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 leobalter: we have 3 major browsers today. this works today at tc39. if anyone has one concern, this blocks that signal 00:15:55 leobalter: what the group is seeking is we're afraid we don't have signals 00:17:02 leobalter: all major browser vendors all have venues to provide signals. we have one for DSD. for webkit 00:17:51 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 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 hober: this is just the introduction, there's more there? 00:18:55 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 westbrook: putting element internals at the top would be disingenuous, no browser fully has it. we broke it up 00:19:45 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 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 hober: no one wants to do busywork. webkit doesn't need a 400 row table saying we don't implement things 00:21:41 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 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 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 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 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 astearns: you can take interop's model to have a score for a given feature, calculated on your use cases 00:29:02 justinfagnani: only applies to things impl'ed in at least 1 browser 00:29:22 justinfagnani: we are prioritizing attention on the issue so it can be discussed and iterated on 00:29:31 astearns: constructable stylesheets looks close 00:30:05 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 westbrook: there's a good place for both of those things 00:31:21 I confess I had not even noticed section 1.3 00:31:29 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 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 q+ 00:33:08 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 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 hober: we'd send somebody 00:34:05 ack kevinpschaaf 00:34:51 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 kevinpschaaf: from the user's side we'll attend as frequently as possible if it means getting some attention and collaboration 00:36:02 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 leobalter: we try to find ideas but all the responses have been negative 00:38:14 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 justinfagnani: that is happening with scoped registries 00:38:45 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 justinfagnani: users are asking for it every day 00:39:09 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 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 leobalter: we are not c++ devs 00:40:25 leobalter: we have our partnership with igalia though 00:41:46 westbrook: thanks everyone. there's so much interest. having a f2f is a good takeaway 15:29:06 rego_ has joined #webcomponent-cg 21:14:55 dom has joined #webcomponent-cg 22:03:31 RRSAgent, bye 22:03:31 I see no action items 22:03:32 Zakim, bye