06:30:17 RRSAgent has joined #autofill-dynamic 06:30:21 logging to https://www.w3.org/2025/11/13-autofill-dynamic-irc 06:30:21 RRSAgent, do not leave 06:30:22 RRSAgent, this meeting spans midnight 06:30:22 RRSAgent, make logs public 06:30:24 Meeting: Autofill for dynamically changing forms 06:30:24 Chair: Stephen McGruer, Yoav Weiss 06:30:24 Agenda: https://github.com/w3c/tpac2025-breakouts/issues/89 06:30:24 Zakim has joined #autofill-dynamic 06:30:25 Zakim, clear agenda 06:30:25 agenda cleared 06:30:25 Zakim, agenda+ Pick a scribe 06:30:27 agendum 1 added 06:30:27 Zakim, agenda+ Reminders: code of conduct, health policies, recorded session policy 06:30:27 agendum 2 added 06:30:27 Zakim, agenda+ Goal of this session 06:30:28 agendum 3 added 06:30:28 Zakim, agenda+ Discussion 06:30:28 agendum 4 added 06:30:28 Zakim, agenda+ Next steps / where discussion continues 06:30:29 agendum 5 added 06:30:29 Zakim, agenda+ Adjourn / Use IRC command: Zakim, end meeting 06:30:29 agendum 6 added 06:30:30 breakout-bot has left #autofill-dynamic 08:02:31 yoav has joined #autofill-dynamic 08:03:31 stephen_mcgruer has joined #autofill-dynamic 08:03:35 q? 08:03:40 scribe+ 08:03:41 present+ 08:03:45 lychee has joined #autofill-dynamic 08:05:11 present+ yoav 08:05:14 present+ lychee 08:05:22 yoav: This is a proposal we talked about during last years TPAC 08:05:24 ... a few things happened since 08:05:32 ... being prototyped in Chromium, but hasn't landed yet 08:05:44 [Proposal - https://github.com/WICG/address-autofill] 08:05:50 yoav: Autofill is awesome 08:06:13 ... Shopify stats say great things about autofill - 1/3rd of guest checkouts use autofill, and have a 41% increase in completion rate 08:06:20 ... Good from our perspective, also good for user 08:06:30 ... At the same time, current autofill model is aimed at static forms 08:06:44 ... particularly for addresses, this is not how things work in real life 08:06:45 ... different countries have different address structures and requirements 08:07:00 ... so people use hidden form fields in order to get ALL the possible required data, then reshuffle the form in DOM and show the user 08:07:10 ... This is bad for the merchant from a complexity perspective 08:07:25 ... This is bad for a user because hidden forms are hidden and they aren't aware of what has been filled until its done 08:07:48 yoav: Shopify came up with a proposal to help solve this 08:07:56 ... an Autofill event that fires after autofill has happened 08:08:03 ... event gets passed autofill values (may not be needed?) 08:08:25 ... and a refill promise, that when resolved, taking in account users permission/settings 08:08:28 ... will then re-fill the new fields 08:08:38 [Yoav shows example script] 08:09:00 yoav: The reshuffling could be sync or async, depending on page structure, server side rendering, etc 08:09:14 ... We also wanted to discuss a 'full-address' autocomplete attribute value on the form 08:09:30 ... Not currently needed for Chrome based on its Autofill security model, but maybe needed for other browsers? 08:09:43 ... The question is, without this attribute, how does the browser know what to show the user? 08:09:54 ... We want the user to give knowing consent to what will be filled 08:10:00 ... We're not very sure about this, would love feedback 08:10:32 yoav: Once this all happens, and is in the wild for long enough, maybe browsers could deprecate autofilling of hidden fields, which would be more private for users 08:10:38 yoav: Open questions: 08:11:03 ... 1. Do we need the autofill_values in the event at all? This was from original proposal which was sync BEFORE autofill, now its async AFTER autofill, so you can just refill the form 08:11:39 ... 2. How would browser extensions that provide autofill-like facilities deal with this mode? Just haven't thought about it. 08:12:10 christian: I'm glad the second open question is here 08:12:32 ... if there's a more-structured way for the autofill data to be accessed by the webpage, is direct DOM manipulation still useful? 08:12:55 ... what if we just give the site the data in some structured template 08:13:19 ... always been a hit and miss for all browsers for filling certain forms, conflicting with things like key events and so on 08:14:43 yoav: We heard objections from Chrome team that they want to show the user that certain data was autofilled, and paint it in certain ways 08:14:45 stephen_mcgruer: +1 08:14:59 ???: Autofill is magic, its incredible, we ask developers to do basically no work, and we save humanity a billion hours a day 08:15:04 s/???/ricky/ 08:15:19 ricky: I used to maintain safari's heuristics for autofill in a past life, nowadays I work on authentication 08:15:57 ... In safari, my recollection is that we decided that when a form asked for *anything* related to address, and user was doing a one-shot autofill, our UI would show everything - even things that weren't being filled 08:16:06 ... After we're done filling, we wait a beat and re-process, and re-fill out 08:16:17 ... It's not great. It would be good to know when the work is done 08:16:50 (get clarification on what the current proposal) 08:16:54 ricky: That seems reasonable 08:17:14 ... One thing I do have battle scars from is websites thinking they should fight autofill 08:17:39 yoav: Yep. From my perspective, the repo is titled address autofill. Primarily from feedback of this exact same scenario 08:17:48 ... I'm only interested in addresses, maybe we should call the event address autofill? 08:19:04 [We briefly touch on autocomplete=off] 08:19:13 ricky: I don't think anyone listens to that in password anymore 08:19:23 ... in non-password cases, some user agents listen to it in certain cases 08:19:32 ... that's where we're all at? 08:19:35 [Yes, generally] 08:20:14 stephen_mcgruer: Just wanted to ack that we also have automatic refill in Chrome 08:20:21 ricky: Scoping this to not all autofill but certain kinds does seem interesting 08:21:07 ricky: For the attribute that can express that the form may change dynamically , that sounds good. More metadata, lets you do better UX 08:22:25 ricky: For hidden fields, I think safari doesn't do it 08:22:43 ???: For [lastpass? onepass? sorry I missed it], I don't think we fill hidden fields either 08:23:08 ???2: (Describes a scenario where iframe across origins goes wrong) 08:23:50 lychee: I can attest to that. For Meta IAB, we ran an experiment where we took Chromium's ability to detect hidden fields and ran an experiment [scribe missed details] 08:24:07 ... we found that there's a gazillion ways to hide a field 08:24:08 ricky: +1 08:24:41 lychee: We actually did this to solve a shopify issue, where each iframe has a separate fields and so we would have a visual indicator 08:25:19 stephen_mcgruer: Should we start an autofill CG? 08:25:33 (This was a joke, but the room says "yes" across four different autofill implementations!) 08:26:33 yoav: So I'm hearing support for address autofil 08:26:39 ... would credit card autofill look similar 08:26:51 ... the whole multiple frame problem is also interesting here 08:26:54 .. the event would fire on each one 08:27:11 ... that might be hard to implement on the browser side? 08:28:06 stephen_mcgruer: I do have some concerns 08:28:23 (we discuss what happens if multiple refill calls happen - wait for the last? how?!) 08:28:31 ???1: How would this work across iframes? 08:28:53 yoav: I think fires on each iframe, each one does some update, they coordinate? Or they each resolve the promise? And if they each resolve, then when do we do the refill. 08:28:58 ... Definitely an open question! 08:29:12 ricky: Take the common frame ancestor and dispatch autofill on that one 08:29:34 ricky: parent frame is coordinating the inner frames? Or are they sandboxed? 08:29:43 yoav: May be sandboxed, but they have to send that information somehow 08:30:03 yoav: I don 't know how common multiple-iframe is for address forms 08:30:13 lychee: Billing address tends to be in an iframe 08:30:27 ... I have seen sites where shipping address is in the main frame, but then everything billing address is in the iframne 08:31:24 stephen_mcgruer: So all in the same iframe, that sok 08:31:30 lychee: But we may want to fill both shipping and billing 08:31:41 stephen_mcgruer: One hard thing btw is "what is an address" to each autofill implementor 08:32:57 ricky: We should game theory out the 'other things on the page can listen to this', but I think its fine 08:33:44 ricky: For the third item about one day not filling hidden fields. Thats at the autofill implementors discretion 08:33:58 ... I think its a bit different 08:34:13 yoav: This is here, because we thought all browsers are autofilling (known) hidden fields, which is problematic 08:34:20 ... definitely not required 08:37:35 yoav: So overall I'm hearing yes, we need an autofill CG, and this proposal sounds worthwhile to people? 08:37:36 (Assent) 08:38:34 (With the general expectation to propose changes that would end up in WHATWG probably?) 08:38:46 yoav: Implementation-specific question for Safari - how much Autofill is in WEbKit? 08:38:51 ricky: Very little 08:39:03 ???3: With a slightly growing amount, but still not a lot 08:39:14 yoav: I'm interested in the hooks to implement this programmatic refill 08:39:25 ... how much of this could I help write? 08:39:36 ricky: In safari's case, not implementable in webkit 08:39:39 ???3: It could be 08:40:44 ricky: if you have a bug report for automatic refill not working in Safari btw, please do file it. Happy to look at it 08:40:54 yoav: Related work - we had a parallel stream that looked at testdriver for uatofill 08:41:09 ... we wanted to have fake WPTs to reproduce where we hit snags across different implementations 08:41:15 ... waiting on implementor interest 08:42:25 ricky: I will come back on that 08:42:48 lychee: On the open questions - do we need autofill_values? I don't have an opinion. Yoav may be the best to answer? 08:42:54 yoav: I agree, probably more of a developer question 08:43:03 ... will come back with an answer 08:43:39 lychee: For autofill_values, were you thinking the values that had been filled in, or the full address autofill values? 08:43:45 yoav: The values that are already filled in? 08:44:26 stephen_mcgruer: Do you want the values we *tried* to fill in, or the values that were filled? 08:44:47 ricky: This gets close to doing a full schema again, re requestAutocomplete 08:44:51 yoav: Yes, full schema not in scope 08:45:03 ... What we did for the prototype, was play back the form in JSON format for the event, but that was when it was BEFORE fill 08:45:34 yoav: I think we should drop it unless we have a use case 08:45:53 ricky: I suspect you can skip user preference part under hidden fields 08:46:00 yoav: Yeah, need to rewrite that part 08:46:27 lychee: Sounds like (3) is a nice north start that we won't hit practically 08:46:33 yoav: Yeah, lets make it long term aspirational and non-commital 08:46:43 schwering: I have a few questions related to hidden fields 08:46:54 ... Are you proposing to make this address specific? 08:47:03 ... When we relate this to hidden fields, what about all the other types we may fill 08:47:13 ... Wouldn't it be unfair to say we stop filling hidden fields? 08:48:18 stephen_mcgruer: So hidden fields are definitely not in scope 08:48:33 ... for the address specific, I think we should name the event generic and then only fire it for what the implementor thinks is good 08:48:44 yoav: What if we later figure out that creditcard event has to be a specific subtype 08:48:58 lychee has joined #autofill-dynamic 08:49:39 ???2: I like the idea of using options, because its easier to forward-deploy it for websites, as opposed to having to write generic code from day 1 08:50:51 yoav: Options at event listener to listen to a specific type? 08:50:55 ricky: That kind of narrowing down is dangerous 08:51:08 ... you can introspect your own form to see what tpye it was? Is that good enough vs the weight of a contract 08:51:38 (we discuss all the groups writing down what they think an address is :D) 08:51:53 ???1: There is literature that exists for defining what an address is out there, which is relatively recent... 08:52:55 (stephen_mcgruer describes Chrome's address type) 08:53:11 (???1 describes 1pass's giant text blob that they introspect!) 08:53:21 (lychee describe's meta representation - similar) 08:53:31 s/similar/similar to Chrome/ 08:54:16 yoav: This has been great, great feedback 08:54:26 ... I feel setting up a CG to talk about this and potentially other autofill things feels like a good direction 08:54:31 ... thank you everyone! 08:54:41 yoav: This proposal is in WICG 08:54:47 https://github.com/WICG/address-autofill 08:54:58 ... Please file issues! I will polish it up, this is my focus until end of year. 08:56:39 RRSAgent: make minutes 08:56:40 I have made the request to generate https://www.w3.org/2025/11/13-autofill-dynamic-minutes.html stephen_mcgruer 13:34:15 tidoust has joined #autofill-dynamic 13:34:46 RRSAgent, bye 13:34:46 I see no action items