Android 端末で見つけた不思議な症状です。以下のようなログインフォームでの送信時に、入力したパスワードを端末に保存している場合に発生します。
<h1>Sign in</h1>
....
<label>E-Mail</label>
<input type="email" name="email">
<label>Password</label>
<input type="password" name="password">
....
記憶したパスワードが保存元ページで補完されるのは理解できますが、他のページでも、input[type="password"]
なフィールドに、パスワードが補完されるようになってしまいました。さらにやっかいなことに、直前の input
フィールドに、パスワードとペアのメールアドレスが補完されてしまいました。
<h1>Editing User</h1>
....
<label>E-Mail</label>
<input type="email" name="email">
<label>Nickname</label>
<input type="text" name="nickname" value="(直前のフィールドに記憶されたパスワードとペアのメールアドレスが補完されてしまう!)">
<label>Password</label>
<input type="password" name="password" value="(保存されたパスワードが補完される)">
<label>Password Confirmation</label>
<input type="password" name="password_confirmation">
....
以下のように input[type="password"]
のフィールドに autocomplete="off"
属性を付与することでパスワード/メールアドレスとも補完を無効にできました。
<label>Nickname</label>
<input type="text" name="nickname">
<label>Password</label>
<input type="password" name="password" autocomplete="off">
<label>Password Confirmation</label>
<input type="password" name="password_confirmation" autocomplete="off">
明らかにバグのように思えますが、パスワード記憶 + オートコンプリートとはこのようなものなのでしょうか?