Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【HTML Living Standard】autocapitalize属性の使い方

autocapitalize属性の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

autocapitalizeプロパティは、HTML要素に入力されるテキストの自動大文字化機能を制御するプロパティです。これはHTMLのグローバル属性の一つであり、特に<input>要素や<textarea>要素のようなテキスト入力フィールドにおいて、ユーザーの入力補助を目的として利用されます。

このプロパティを設定することで、ユーザーがモバイルデバイスなどでテキストを入力する際に、ソフトウェアキーボードが入力中の文字を自動的に大文字に変換する挙動を細かくコントロールできます。これにより、ウェブアプリケーションのフォーム入力において、ユーザーがよりスムーズに、そして意図した形式でテキストを入力できるよう支援し、入力の手間を減らすことができます。

autocapitalizeが取りうる値は複数あり、それぞれ異なる大文字化のルールを定義します。

  • off または none: 自動大文字化を完全に無効にします。パスワード入力欄など、自動的な変換が望ましくない場合に指定します。
  • on または sentences: 各文の最初の文字を自動的に大文字にします。一般的な文章の入力フィールドに適しており、ユーザーが句読点に続けて文字を入力する際に便利です。
  • words: 各単語の最初の文字を自動的に大文字にします。氏名や地名などの入力欄で、単語の頭文字を大文字にする必要がある場合に役立ちます。
  • characters: 入力されるすべての文字を自動的に大文字にします。特定のコードや略語など、すべて大文字で入力させたい場合に利用します。

このプロパティは、ユーザーエクスペリエンスを向上させるための重要なツールですが、その実際の挙動は、使用しているブラウザやデバイス、さらにはユーザーのOS設定によって異なる場合があります。そのため、特定の動作を期待する場合は、様々な環境でのテストを行うことが推奨されます。適切なautocapitalizeの値を選択することで、ユーザーにとってより使いやすい入力フォームを提供できます。

公式リファレンス: HTML autocapitalize global attribute

構文(syntax)

1<input type="text" autocapitalize="sentences">

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

HTML autocapitalize属性で文字入力制御する

1<!DOCTYPE html>
2<html lang="ja">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>autocapitalize属性のサンプルコード</title>
7</head>
8<body>
9    <h1>autocapitalize属性のデモンストレーション</h1>
10    <p>
11        `autocapitalize`属性は、ユーザーがテキストを入力する際に、ブラウザが自動的に文字を大文字にするかどうかを制御します。<br>
12        以下の入力フィールドで、それぞれの設定がどのように動作するか試してみてください。(主にモバイルデバイスのソフトウェアキーボードで効果が確認できます。)
13    </p>
14
15    <form>
16        <div>
17            <!-- autocapitalize="off": 自動的に文字を大文字にしません。 -->
18            <label for="input-off">自動大文字化なし (autocapitalize="off")</label><br>
19            <input type="text" id="input-off" autocapitalize="off" placeholder="例: hello world">
20        </div>
21        <br>
22        <div>
23            <!-- autocapitalize="sentences": 各文の最初の文字を大文字にします。 -->
24            <label for="input-sentences">各文頭を大文字化 (autocapitalize="sentences")</label><br>
25            <input type="text" id="input-sentences" autocapitalize="sentences" placeholder="例: hello world. how are you?">
26        </div>
27        <br>
28        <div>
29            <!-- autocapitalize="words": 各単語の最初の文字を大文字にします。 -->
30            <label for="input-words">各単語の頭を大文字化 (autocapitalize="words")</label><br>
31            <input type="text" id="input-words" autocapitalize="words" placeholder="例: hello world">
32        </div>
33        <br>
34        <div>
35            <!-- autocapitalize="characters": すべての文字を大文字にします。 -->
36            <label for="input-characters">すべての文字を大文字化 (autocapitalize="characters")</label><br>
37            <input type="text" id="input-characters" autocapitalize="characters" placeholder="例: hello world">
38        </div>
39    </form>
40</body>
41</html>

autocapitalize属性は、HTMLのグローバル属性の一つで、主にスマートフォンやタブレットなどのモバイルデバイスでユーザーがテキストを入力する際に、ソフトウェアキーボードによる自動的な大文字化の挙動を制御するために使用されます。この属性は、inputタグやtextareaタグなどのテキスト入力要素に指定できます。

この属性は引数を取らず、また特定の戻り値もありません。設定された値に応じて、ブラウザは入力フィールドでのキーボードの初期モードや予測変換の挙動に影響を与えます。

サンプルコードでは、以下の設定例が示されています。

  • autocapitalize="off": 入力されたテキストの自動大文字化を完全に無効にします。これにより、ユーザーは入力した文字が意図せず大文字になることを心配せずに済みます。
  • autocapitalize="sentences": 各文の最初の文字が自動的に大文字になります。一般的な文章の入力に適しており、自然な文章作成を補助します。
  • autocapitalize="words": 各単語の最初の文字が自動的に大文字になります。固有名詞や見出しの入力などに役立ち、個々の単語の形式を整えるのに便利です。
  • autocapitalize="characters": 入力されるすべての文字が自動的に大文字になります。略語やコード、特定の識別子などの入力に適しており、一貫した大文字入力を保証します。

これにより、開発者はユーザーがよりスムーズかつ意図した形式でテキストを入力できるよう、入力補助を調整することができます。特にモバイル環境でのユーザーエクスペリエンス向上に貢献する属性です。

autocapitalize属性は、主にモバイルデバイスのソフトウェアキーボードにおけるユーザー入力の利便性向上を目的としています。デスクトップ環境のブラウザでは効果が確認できない場合が多い点にご注意ください。この属性は、入力補助を提供するものであり、入力されたデータの最終的な大文字・小文字を保証するものではありません。そのため、フォーム送信後のデータ処理では、サーバーサイドやJavaScriptで別途適切な検証や変換を行う必要があります。特にパスワードや機密性の高い情報など、大文字・小文字が厳密に区別される入力フィールドでは、ユーザーの意図しない自動大文字化を防ぎ、セキュリティと正確性を確保するためにautocapitalize="off"を明示的に指定することを推奨いたします。

HTML autocapitalize属性の動作確認

1<!DOCTYPE html>
2<html lang="ja">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>autocapitalize 属性のサンプル</title>
7    <style>
8        /* 見やすいように簡単なスタイルを追加 */
9        body { font-family: sans-serif; margin: 20px; }
10        input, textarea {
11            display: block;
12            margin-bottom: 15px;
13            padding: 8px;
14            width: 300px;
15            box-sizing: border-box;
16            border: 1px solid #ccc;
17            border-radius: 4px;
18        }
19        strong { color: #d9534f; }
20    </style>
21</head>
22<body>
23    <h1>autocapitalize 属性のデモンストレーション</h1>
24
25    <!--
26        autocapitalize属性は、主にモバイルデバイスのソフトウェアキーボードで効果を発揮します。
27        PCブラウザでは視覚的な変化はありません。
28        「not working」と感じる場合、多くはこの属性が意図する環境(モバイルデバイス)で試されていないことが原因です。
29        実際の動作は、スマートフォンやタブレットのブラウザでご確認ください。
30    -->
31    <p>
32        <strong>注意:</strong> この属性の効果は、モバイルデバイスのソフトウェアキーボードで入力する際に確認できます。
33        PCブラウザでは通常、視覚的な変化はありません。
34    </p>
35
36    <h2>文頭を大文字にする (sentences/on)</h2>
37    <!-- 各文の最初の文字を大文字にするよう推奨します。 -->
38    <input type="text" autocapitalize="sentences" placeholder="autocapitalize='sentences'">
39    <input type="text" autocapitalize="on" placeholder="autocapitalize='on' (sentencesと同じ)">
40
41    <h2>単語の先頭を大文字にする (words)</h2>
42    <!-- 各単語の最初の文字を大文字にするよう推奨します。 -->
43    <input type="text" autocapitalize="words" placeholder="autocapitalize='words'">
44
45    <h2>すべての文字を大文字にする (characters)</h2>
46    <!-- すべての文字を大文字にするよう推奨します。 -->
47    <input type="text" autocapitalize="characters" placeholder="autocapitalize='characters'">
48
49    <h2>自動大文字化を無効にする (off/none)</h2>
50    <!-- 自動大文字化を無効にします。 -->
51    <input type="text" autocapitalize="off" placeholder="autocapitalize='off'">
52    <input type="text" autocapitalize="none" placeholder="autocapitalize='none' (offと同じ)">
53
54    <h2>autocapitalize 属性を指定しない場合 (デフォルト動作)</h2>
55    <!-- 属性を指定しない場合、ブラウザやOSのデフォルト設定に従います。 -->
56    <input type="text" placeholder="autocapitalize属性なし (デフォルト)">
57
58    <h2>textarea 要素での使用例</h2>
59    <!-- textarea要素でも同様に機能します。 -->
60    <textarea autocapitalize="sentences" placeholder="textarea でも autocapitalize='sentences'"></textarea>
61</body>
62</html>

HTMLのautocapitalize属性は、主にモバイルデバイスのソフトウェアキーボードでテキスト入力の自動大文字化を制御するためのグローバル属性です。引数や戻り値はありません。PCブラウザでは通常視覚的な変化がないため「動作しない」と感じられやすいですが、スマートフォンやタブレットでその効果を確認できます。

サンプルコードでは、この属性の様々な値を試しています。autocapitalize="sentences""on"は文頭を、"words"は単語の先頭を、"characters"はすべての文字を大文字にするようキーボードに推奨します。対して"off""none"を指定すると自動大文字化は無効になります。この属性を省略した場合や指定しない場合は、ブラウザやOSのデフォルト設定が適用されます。これらの挙動は、input要素やtextarea要素で確認できます。

autocapitalize属性は、主にスマートフォンやタブレットなどのモバイルデバイスで、ソフトウェアキーボードからの入力時に文字が自動で大文字になるように制御する属性です。PCブラウザでは視覚的な変化がほとんど見られないため、「機能しない」と感じる原因となることが非常に多い点にご注意ください。この属性の効果を確認するには、実際にモバイルデバイスのブラウザで試す必要があります。sentenceswordsなどの値で自動大文字化のパターンを指定でき、off(またはnone)で無効化できます。input要素だけでなくtextarea要素にも適用可能です。属性を省略した場合、ブラウザやOSのデフォルト設定に従って動作します。

関連コンテンツ

関連IT用語