The page marks a field for passkeys, starts a pending get, and fetches request options.
A typical site keeps a username field and adds autocomplete=username webauthn. On load it GETs PublicKeyCredentialRequestOptions and calls get() with mediation: conditional. Choosing a passkey resolves that promise instead of submitting the password form.
- Entry
- focus field
- 01page load
- 02username field
- 03webauthn hint
- 04focus
Login form
Reading the animation: A field hint tells the browser this form accepts passkeys.
Marks the username field so the browser may offer passkeys.
The username field is annotated for passkey autofill
input name=user autocomplete="username webauthn" autofocus- Field
- username
- autocomplete
- username webauthn
- autofocus
- yes
- Password field
- still present
autocomplete must include webauthn. autofocus can open suggestions as soon as the page appears. A password field can stay on the form; choosing a saved password does not resolve the pending get.
In engineering terms: The login form is that slot. It does not hold the private key and does not draw the picker.
FOLLOW THIS EXAMPLE
- 01
Render the username field.
- 02
Set autocomplete to include webauthn.
- 03
Optionally autofocus the field.
- 04
Leave the password path in place.
Picture a mailbox slot labeled “letters or packages.” The carrier decides which list to show when you walk up.
Where it stops matching: A labeled slot can still be empty. No passkey for this RP ID means the list shows passwords only.Measurements, controls, and tradeoff
- Useful evidence
- Missing webauthn token, fields that never receive focus, and custom inputs that skip autocomplete.
- Controls
- autocomplete tokens, autofocus, and whether a password field stays.
- Tradeoff
- Keeping the password field covers mixed accounts and also leaves a phishing surface the passkey path was meant to shrink.
- Hint
- webauthn
Definitions and sources
TERMS IN THIS VIEW
- Conditional UI
- Browser or OS autofill that lists passkeys on a field marked autocomplete=webauthn. Uses mediation: conditional so the site draws no modal.
- Mediation
- Credential Management flag. conditional keeps get() pending until autofill. A button path omits it and opens a sheet immediately.
- Passkey
- The everyday name for a WebAuthn discoverable credential. An authenticator uses its private key and retains the credential id and user handle; a passkey provider may back up encrypted credential material for sync.
SOURCES + CONTINUE READING
Why it matters: If this layer never starts the pending get, the field still looks like a login box and never offers a passkey.
Definitions for this layer
TERMS IN THIS VIEW
- Conditional UI
- Browser or OS autofill that lists passkeys on a field marked autocomplete=webauthn. Uses mediation: conditional so the site draws no modal.
- Mediation
- Credential Management flag. conditional keeps get() pending until autofill. A button path omits it and opens a sheet immediately.
- WebAuthn
- The W3C API browsers expose as navigator.credentials.create and get. Passkey login is a get() assertion ceremony.
