iOS 9.0.1のSafariでログインフォームの自動入力が効かない


はじめに

社内で「iOS 9.0.1にアップデートをしたら社内システムのログインページで自動入力が効かなくなったんだけど…」と相談された際に調べたことのまとめです。

現象

iOS 9.0.1の端末において該当のログインページでユーザー名とパスワードの自動入力をしようとするとパスワードしか自動入力されない。
また、別のユーザー名とパスワードを入力した場合、保存確認がされないという現象でした。
iOS 8.4の端末で確認したところ現象の再現はしませんでした

しかし、他のシステムや一般的なWEBサービスでは自動入力が効くことからiOS 9.0.1と社内システムのどちらか(あるいは両方)に原因があると推測しました。

検証

問題のシステムではユーザー名とパスワードのinputタグのname値にLoginCodeLoginPasswordという名称が使用されていました。
ユーザー名とパスワードという入力欄ではなかったからだと思います。

正常動作の検証

まずは最も簡素なログインフォームを作成し、パスワードの保存と自動入力が効くかどうかをチェックしました。

<input type="text"     name="username">
<input type="password" name="password">
<input type="submit"   value="login">

この場合は問題なく機能が動作しました。

パスカルケースの使用

<input type="text"     name="UserName">
<input type="password" name="Password">
<input type="submit"   value="login">

この場合も特に問題はありませんでした。

名称の問題

name値に問題があるのか?と思い、片方ずつチェックをしようと以下のように変更しチェックしました。

<input type="text"     name="LoginCode">
<input type="password" name="password">
<input type="submit"   value="login">

この時点で挙動がおかしくなりました。
自動入力がパスワードにしか働かなくなりました。

LoginCodeがおかしい?

LoginCodeという名称が問題なのかと思い、以下のように変更しました。

<input type="text"     name="LoginCode1">
<input type="password" name="LoginCode2">
<input type="submit"   value="login">

この場合は、パスワードの保存確認すら表示されませんでした。
Safariからログインフォームとして認識されていないようです。

結論

ログインフォームでinputタグのname値にLoginCodeという文字列が含まれる場合、iOS 9.0.1のSafariにおいてユーザー名とパスワードの保存と自動入力機能が正常に機能しないようです。

おわり

Googleなどで検索をかけてもいまいち情報が掴めなかったため、同様の現象にあった人が(もしも)いた場合のために投稿しました。

誤りなどがあればご指摘いただけると幸いです。