4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

日本語のフォームでよく見かける「お名前(ふりがな)」の入力欄。
漢字の名前とは別に、読み仮名をわざわざ手打ちしていた方も多いかと思います。

Chrome では、autocomplete機能にふりがな(カタカナ・ひらがな)が対応しました!!
これにより、ユーザーは一度登録したプロフィールから、ふりがな欄へも自動入力できるようになります。

開発者側も、正しく HTML を実装するだけで対応できるので、本記事で実装方法をまとめます。

基本的な実装方法

Chrome はふりがな欄を以下の3つの要素を元に判定します。
優先度の高い順に紹介します。

① autocomplete 属性(最優先)

autocomplete 属性に標準値を指定することが最も確実な方法です。

ふりがな(姓名共通)

<label for="phonetic-full">セイメイ</label>
<input id="phonetic-full" name="full-name-phonetic" type="text" autocomplete="name" />

姓のふりがな

<label for="phonetic-family">セイ</label>
<input id="phonetic-family" name="family-name-phonetic" type="text" autocomplete="family-name" />

名のふりがな

<label for="phonetic-given">メイ</label>
<input id="phonetic-given" name="given-name-phonetic" type="text" autocomplete="given-name" />

注意: autocomplete に標準以外の値(例:autocomplete="phonetic-name" など)を指定すると、ヒューリスティックが機能しなくなります。必ず標準値を使用してください。

② name 属性

autocomplete 属性を指定しない場合、フィールドの name 属性が参照されます。

以下のような値が有効として認識されます。

対象 name 属性の例
フルネーム full-name-phonetic
family-name-phonetic
given-name-phonetic
<input name="family-name-phonetic" type="text" />
<input name="given-name-phonetic" type="text" />

③ ラベル

name 属性でも判別できない場合、最後の手段としてフィールドに紐づく <label> のテキストが参照されます。

<label for="phonetic-family">セイ(フリガナ)</label>
<input id="phonetic-family" type="text" />

カタカナ・ひらがなの判別ロジック

Chrome はふりがなをカタカナで入力するか、ひらがなで入力するかを ラベルのテキスト から自動判別されているようです。

  • ラベルにカタカナが1文字以上含まれている場合
    • カタカナで自動入力
  • それ以外
    • ひらがなで自動入力
<!-- カタカナで入力される例 -->
<label for="phonetic-family">セイ</label>
<input id="phonetic-family" name="family-name-phonetic" type="text" autocomplete="family-name" />

<!-- ひらがなで入力される例 -->
<label for="phonetic-family">せい</label>
<input id="phonetic-family" name="family-name-phonetic" type="text" autocomplete="family-name" />

フォームのデザインに合わせてラベルを調整するだけで、入力文字種を制御できます。

DevTools でデバッグする

実装が正しくできているか確認するには、Chrome DevTools の自動入力パネルを使います。

  1. DevTools を開く(F12 または右クリック → 検証)
  2. 「その他のツール」→「自動入力」 パネルを開く
  3. フォームの入力フィールドにフォーカスを当てる
  4. フィールドが Alternative family nameAlternative given name として分類されているか確認する

正しく分類されていれば、Chrome がふりがな欄として認識できています。

↓ 試してみてください!

See the Pen given-name by degudegu2510 | Qiita (@degudegu2510) on CodePen.

ユーザー側の設定

ユーザー側では chrome://settings/addresses でプロフィールにふりがなを保存できます。

また、姓名の分割精度を上げるために、ふりがなの間にハイフン(-)やカタカナ中黒()などの区切り文字を入れておくと、Chrome が正確に分割しやすくなります。

まとめ

Chrome の自動入力でふりがなに対応するためのポイントをまとめます。

  • autocomplete 属性に標準値(name / family-name / given-name)を必ず指定する
  • name 属性には family-name-phonetic のような形式を使う
  • ラベルにカタカナを含めるとカタカナで、そうでなければひらがなで自動入力される
  • DevTools の「自動入力」パネルで正しく認識されているか確認できる

ユーザーの入力体験が向上するので、日本語対応フォームを持つサービスはぜひ対応してみてください!



最後まで読んでくださってありがとうございます!

普段はデザインやフロントエンドを中心にQiitaに記事を投稿しているので、ぜひQiitaのフォローとX(Twitter)のフォローをお願いします。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?