この記事はHTML 4/XHTML 1での<textarea>要素についての解説記事です。
HTML 5での<textarea>要素に関する解説記事は、HTML 5 リファレンス内のHTML 5での<textarea>要素をご覧ください。
テキスト入力欄である<textarea>要素についての解説です。
<textarea>要素とは、テキスト入力欄です。
<textarea>要素は<input>要素と異なり、複数行からなるテキストの入力が可能な入力欄となります。
また、<textarea>要素は通常<form>要素の内容に使われますが、必ずしも<form>要素の内容にしなければいけない訳ではありません。
<textarea>要素は、以下の文書型で利用出来ます。
ネットスケープ 4.x以前などの旧型ユーザエージェントでは、
<textarea>要素はフォームモジュールに属します。
<textarea>要素は置換インライン要素です。
内容は予め入力欄に入れる文字列、すなわちクエリ値の初期値です。
<textarea>要素には、以下の属性が定められております。
それぞれ、
を指定します。
以下に挙げる<textarea>要素の属性はHTML 3.2では使えません。
当該入力欄を無効にします。
disabeld="disabeld"属性とします。当該入力欄を変更不可にします。
readonly="readonly"属性とします。当該入力欄が閲覧者操作で選択された場合に起動するクライアントサイドスクリプトを記述します。
当該入力欄の値が閲覧者操作で変更された場合に起動するクライアントサイドスクリプトを記述します。
<input>要素で使える共通属性には
があります。
以下は非公認属性です。利用した場合どの文書型にも適合しなくなります。
入力欄内での折返し及び折り返した結果を反映させるかを指定します。
尚、ネットスケープ 4.x以前では、wrap="off"属性がデフォルトとなりますが、現行のユーザエージェントでは事実上wrap="soft"属性がデフォルトとなっているようです。
<textarea>要素の内容は入力欄に予め入力されている初期値ですが、この中に「<」「>」「&」が含まれている場合は必ず文字参照で記述しておく必要があります。
ネットスケープ 4.x以前など旧式のユーザエージェントの中には、<textarea>要素による入力欄の右端までカーソルが達しても、折返さずに入力内容を横スクロールするものがあります。
これを抑止するには当該<textarea>要素に非公認属性であるwrap="soft"属性を附与しなければなりませんが、旧式ユーザエージェントのユーザも随分少なくなった事を考えるとそこまでする必要はもはや無いのではと思われます。
また、
の中には、<form>要素内に無い<textarea>要素を表示しないものがあります。
<textarea>要素には間違った使い方が見られます。
稀にコンピュータ言語のコード(主にHTML)を<textarea>要素として記述している例があります。
確かに、ファイヤーフォックスなどのグラフィカルなユーザエージェントでは内容に含まれる改行で改行されますが、リンクスと呼ばれるテキストブラウザなどでは普通のテキストと同様に改行されず一行に繋がった形で表示されてしまいます。
行末での改行を期待するのであれば、整形済みテキストすなわち<pre>要素としてマークアップするのが順当でしょう。
結構多くのサイトで<textarea>要素を更新案内など内容をスクロール出来る表示領域として使用しているようですが、本来の使い方とは言えません。
<textarea>要素の表示スタイルは仕様で規定されておらず、従って意図せぬスタイルで表示される事もあり得るからです。
特定の表示効果を期待してマークアップするのは正しいマークアップと言えません。
更新案内の場合、<ul>要素や<dl>要素などのリスト要素としてマークアップして、それをスタイルシート言語で内容をスクロール出来るようにするのが順当でしょう。
<form>要素の記述例をご覧下さい。