Users reported that password managers only autofilled the email on Democracy.cc's login -- the password field stayed blank. I dug into the forms and found three problems.

What Was Wrong

Non-standard field IDs. The login fields had IDs like login_email_standalone and login_password_modal. Password managers look for standard patterns like email, username, or password.

Missing name attributes. The Vue.js modal login forms had no name attributes at all. Roboform in particular relies heavily on name to identify fields.

Inconsistent autocomplete. The email field used autocomplete="username" in some places -- technically correct for login forms, but not as universally recognized as autocomplete="email".

The Fix

<!-- Before -->
<input type="email" id="login_email_standalone" autocomplete="username" />
<input type="password" id="login_password_modal" />

<!-- After -->
<input type="email" name="email" id="email" autocomplete="email" />
<input type="password" name="password" id="password" autocomplete="current-password" />

Three changes across all auth forms (main login, tracking modal, registration):

  • Added name="email" and name="password"
  • Standardized IDs to simple values
  • Set proper autocomplete attributes: email for email, current-password for login, new-password for registration

The Lesson

Password managers aren't magic. They scan for standard HTML attributes. If your framework generates non-standard field names (common with Vue, React, and Alpine.js modal forms), test with an actual password manager -- browser dev tools can't simulate how they scan pages.