IRC log of autofill-dynamic on 2025-11-13

Timestamps are in UTC.

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