Maybe some feedback from the browser detailing which datapoints were autofilled. I don't know...
You first select an identity to use to auto-fill. When doing that, it will tell you the data it will insert in the subtitle.
You can also click customize and choose what data to place into each field.
[1] - http://imgur.com/a/HL59q
This is not terribly difficult, browsers need to know what is visible because they have to actually display it. If an element isn't drawn it shouldn't be autofilled.
So if a form is too long and you need to scroll, all those fields you can't see won't be auto-filled? Sounds pretty terrible IMO.
The solution to this problem is to inform the user which fields will be completed by autofill, with a "not currently shown" highlight on any fields that are currently off the screen so the user understands what's happening.
<div style="font-family: Custom non-printing font 101">
<input type="text" name="address"/>
<input type="text" name="ssn"/>
</div>There's often sites that are poorly coded, and autofills ends up putting my phone number in some random field and I have to manually delete it.
What is needed is integration with permission granting mechanisms, which already exist in browsers.
I'm always concerned about using autofill because browsers eagerly fill any field they have data for.
but is something the browser already does, so it's no extra effort.
Initially only the input field for e-mail is displayed. There's also a, hidden to the user's eyes, _next step_ with the password field that gets populated if the browser auto-fills it.
This also worked really well with encrypted password storage (if you configured that key was forgotten after e.g. 10 minutes), it did not nag you to enter the password if you visited site where you stored password but did not intended to log in at given time.
There's an add-on for Firefox[1], but doesn't work as well as it did in Opera, and also it doesn't solve the password nagging issue, but I suppose it could help address the vulnerability mentioned here.
I really don't understand why all browsers insist to handle password this way.
[1] https://addons.mozilla.org/en-US/firefox/addon/secure-login/
Also, while Opera's wand button filled in both login credentials and common form elements, Chrome's autocomplete is limited to common form elements.
Your second idea about an auto-fill warning would be better. Maybe a simple footer warning or something.
Or massive highlighting around each field
FYI this doesn't work for credit card info, at least not in Chrome. That information has to be auto-filled separately.
But, if the end user doesn't notice or care about the visual cue, you can exploit it. Start typing in a name that has a credit card associated with it in Chrome's autofill: https://jsfiddle.net/hvs4ox2q/4/
If it was you could write a script to automatically post all auto fill data on page load.