HTML autocomplete属性とは?

2024-04-06

HTMLのMiscellaneous属性:autocomplete

autocomplete属性は、フォーム入力欄における自動補完機能の動作を制御するために使用されます。これは、ユーザーが入力する情報を予測し、入力の手間を省く便利な機能です。

属性値

autocomplete属性には、以下の値を設定できます。

  • on: ブラウザは入力欄の内容を記憶し、次回以降同じフォームに入力する際に候補として提示します。
  • off: ブラウザは入力欄の内容を記憶せず、自動補完機能を無効化します。
  • new-password: ブラウザはパスワード欄の内容を記憶せず、自動補完機能を無効化します。これは、パスワード管理のセキュリティを強化するために使用されます。

使用例

以下の例は、autocomplete属性を使用して、ユーザー名とパスワードの入力欄における自動補完機能を制御する方法を示しています。

<form action="/login">
  <label for="username">ユーザー名:</label>
  <input type="text" id="username" name="username" autocomplete="on">
  <br>
  <label for="password">パスワード:</label>
  <input type="password" id="password" name="password" autocomplete="new-password">
  <br>
  <input type="submit" value="ログイン">
</form>

上記の例では、ユーザー名入力欄にはautocomplete="on"が設定されているため、ブラウザは以前に入力されたユーザー名を記憶し、次回以降のログイン時に候補として提示します。一方、パスワード入力欄にはautocomplete="new-password"が設定されているため、ブラウザはパスワードを記憶せず、自動補完機能は無効化されます。

注意点

  • autocomplete属性は、ブラウザの機能に依存するため、すべてのブラウザで同じように動作するとは限りません。
  • セキュリティ上の理由から、パスワード入力欄にはautocomplete="off"またはautocomplete="new-password"を設定することを推奨します。
  • ユーザーによっては、自動補完機能を好まない人もいるため、autocomplete属性を適切に使用することが重要です。


HTML autocomplete属性のサンプルコード

<form action="/login">
  <label for="username">ユーザー名:</label>
  <input type="text" id="username" name="username" autocomplete="on">
  <br>
  <label for="password">パスワード:</label>
  <input type="password" id="password" name="password" autocomplete="new-password">
  <br>
  <input type="submit" value="ログイン">
</form>

住所入力欄

<form action="/shipping">
  <label for="name">氏名:</label>
  <input type="text" id="name" name="name" autocomplete="name">
  <br>
  <label for="email">メールアドレス:</label>
  <input type="email" id="email" name="email" autocomplete="email">
  <br>
  <label for="address">住所:</label>
  <input type="text" id="address" name="address" autocomplete="address-line1">
  <br>
  <label for="city">市区町村:</label>
  <input type="text" id="city" name="city" autocomplete="address-level2">
  <br>
  <label for="state">都道府県:</label>
  <input type="text" id="state" name="state" autocomplete="address-level1">
  <br>
  <label for="zip">郵便番号:</label>
  <input type="text" id="zip" name="zip" autocomplete="postal-code">
  <br>
  <input type="submit" value="配送先住所登録">
</form>

クレジットカード情報入力欄

<form action="/payment">
  <label for="cardholder">カード名義人:</label>
  <input type="text" id="cardholder" name="cardholder" autocomplete="cc-name">
  <br>
  <label for="cardnumber">カード番号:</label>
  <input type="text" id="cardnumber" name="cardnumber" autocomplete="cc-number">
  <br>
  <label for="expiration">有効期限:</label>
  <input type="text" id="expiration" name="expiration" autocomplete="cc-exp">
  <br>
  <label for="cvv">CVV:</label>
  <input type="text" id="cvv" name="cvv" autocomplete="cc-csc">
  <br>
  <input type="submit" value="支払い">
</form>

その他

  • autocomplete="off" を使って、すべての入力欄で自動補完機能を無効にすることができます。
  • `autocomplete="


HTML autocomplete属性の代替方法

  • ブラウザの機能に依存するため、すべてのブラウザで同じように動作するとは限りません。
  • セキュリティ上の理由から、パスワード入力欄では使用できない場合があります。
  • ユーザーによっては、自動補完機能を好まない人もいるため、autocomplete属性を適切に使用することが重要です。

これらの制限を克服するために、autocomplete属性の代替方法として以下の方法が考えられます。

JavaScriptを使用して、独自の自動補完機能を実装することができます。

  • ユーザーが入力した内容に基づいて、候補リストを表示することができます。
  • 入力内容の形式をチェックし、エラーメッセージを表示することができます。

datalist要素を使用する

datalist要素は、input要素と組み合わせて、候補リストを表示することができます。

  • 候補リストは、HTMLファイル内に記述することができます。
  • ユーザーは、候補リストから選択して入力を完了することができます。

ブラウザの拡張機能を使用して、自動補完機能を強化することができます。

  • パスワード管理機能付きの拡張機能を使用することができます。
  • 入力欄ごとに自動補完の設定を変更できる拡張機能を使用することができます。

自動補完機能を使用しない

自動補完機能は、必ずしも必要な機能ではありません。

  • フォームの項目数が少ない場合は、自動補完機能を使用しない方がシンプルで使いやすい場合があります。
  • セキュリティ上の理由から、パスワード入力欄では自動補完機能を使用しないことを推奨します。

各方法の比較

方法メリットデメリット
JavaScript柔軟性が高い開発コストがかかる
datalist要素簡単候補リストがHTMLファイル内に記述されている必要がある
ブラウザの拡張機能追加機能が豊富ブラウザに依存する
自動補完機能を使用しないシンプルユーザーによっては不便と感じる場合がある

autocomplete属性は、フォーム入力欄における自動補完機能を制御する便利な機能ですが、いくつかの制限があります。これらの制限を克服するために、上記のような代替方法を検討することができます。

どの方法を選択するかは、フォームの内容やユーザーのニーズによって異なります。




HTML スコープ属性の徹底解説! 見出しとラベルの対象範囲をマスターしよう

th要素におけるスコープ属性は、表の見出しセルがどのセルと関連しているかを指定します。row: 見出しセルが同じ行のセルを対象とするcol: 見出しセルが同じ列のセルを対象とするcolgroup: 見出しセルが同じcolgroup要素内のセルを対象とする



inputmode属性を使いこなして、ユーザー体験を向上させる

inputmode属性は、以下の役割を果たします。適切なキーボードの表示: 入力欄の種類に応じて、数字キーボード、テンキー、音声入力など、最適なキーボードを表示することができます。入力補助機能の提供: ブラウザは、入力欄の種類に応じて、自動補完、スペルチェック、予測変換などの入力補助機能を提供することができます。


フォーム入力をスムーズに!autocapitalize属性で入力文字の大文字化を制御

HTMLのautocapitalize属性は、入力フィールドにおける文字列の自動的な大文字化を制御します。フォーム入力の効率化やユーザーインターフェースの改善に役立ちます。属性値none: 自動大文字化を行わないsentences: 文頭の文字のみ大文字化


これで完璧!HTMLのwrap属性で実現する、見やすく使いやすいテキストエリア

wrap 属性は、textarea 要素で使用され、テキストエリア内のテキストが折り返される際の挙動を制御します。属性値hard: テキストが折り返された際に、改行コード (\n) を挿入します。soft: テキストが折り返された際に、改行コードは挿入せず、スペースで折り返します。


JavaScript で formaction 属性を変更する方法

formaction 属性は、HTML フォームの送信時にデータを処理するファイルの URL を指定します。これは <input> 要素と <button> 要素で使用できます。主な機能フォーム送信時に、formaction 属性で指定された URL にデータを送信します。



HTMLフォームとは?

目次フォームとは?フォーム要素の種類 2.1 <form> 要素 2.2 入力要素 2.2.1 テキスト入力:<input type="text"> 2.2.2 パスワード入力:<input type="password"> 2.2.3 チェックボックス:<input type="checkbox"> 2.2.4 ラジオボタン:<input type="radio"> 2.2.5 プルダウンメニュー:<select> 2.2.6 送信ボタン:<input type="submit"> 2.2.7 リセットボタン:<input type="reset">


これで完璧!HTMLのwrap属性で実現する、見やすく使いやすいテキストエリア

wrap 属性は、textarea 要素で使用され、テキストエリア内のテキストが折り返される際の挙動を制御します。属性値hard: テキストが折り返された際に、改行コード (\n) を挿入します。soft: テキストが折り返された際に、改行コードは挿入せず、スペースで折り返します。


HTMLのabbr要素で略語を分かりやすく表示する方法

abbr 要素は、HTML文書内で略語や頭字語を定義するために使用されます。略語の意味をツールチップやポップアップで表示することで、ユーザーの理解を促進します。属性title: 略語の意味を説明するテキストを指定します。class: スタイルシートでスタイルを指定するために使用します。


データ属性を使いこなして、Webページをもっと便利に!

HTML5では、要素にdata属性を追加して、機械可読データを関連付けることができます。これは、JavaScriptやCSSなどのスクリプトからデータを取得したり、検索エンジンなどのツールに情報を提供するために使用されます。データ属性は、data- という接頭辞と、属性名で構成されます。属性名は、自由に設定できますが、一般的にはダッシュ記号 (-) を使って単語を区切ります。


HTML要素のルビー:読み仮名やふりがなを表示する方法

上記コードは、「本」という漢字に「ほん」という読み仮を表示します。<ruby>要素:ルビーの開始と終了を指定します。<rp>要素:ルビープリフィックス(読み仮名前の記号)を指定します。通常は空にします。<rt>要素:ルビーテキスト(読み仮名)を指定します。