通常のHTML要素を使用できる場合は、JavaScriptを使用する必要はありません。そのことを念頭に置いて、要件は要素によって正確に満たされるため、の代わりに要素を使用してくださいlabel
。a
label
<label for="commentnow">Post a comment</label>
<textarea id="commentnow" name="comment" cols="45" rows="8" aria-required="true"></textarea>
JSフィドルデモ。
のfor
属性は、フォーカスし、関連付ける要素のの属性label
と同じである必要があります。id
label
OPからのコメントに応えて(以下のコメントで):
2つの質問:互換性についてはどうですか?テキストをクリック可能なボタンにする方法(ホバーするとカーソルが変わる)...?
互換性に対処するために、このlabel
要素はHTML 4.01から存在していて、それで動作しないブラウザーに出くわしたことはありません(IE 7を含め、IE 6で使用したことを思い出せません)。
ボタンのように表示するには、CSSを使用します(a
要素をボタンのように表示するようにスタイルを設定するのと同じ方法で、たとえば次のようにします。
label {
color: #666;
display: inline-block;
padding: 0.3em 0.5em;
border: 1px solid #aaa;
background-color: #eee;
margin: 0.5em;
}
label:hover,
label:active,
label:focus {
color: #f90;
box-shadow: 0 0 0.3em #f90;
}
JS Fiddleデモ、これは特に美しい例ではありませんが、スタイリングの可能性が存在し、その点で他の要素と何ら変わらないことを示しています。