web-dev-qa-db-ja.com

JavaScriptを使用しないデフォルトのHTMLフォームフォーカス

JavaScriptを使用せずに、HTMLフォームにデフォルトの入力フォーカスを設定することは可能ですか、例えば:

<html>
  <form>
    Input 1: <input type="text" name="textbox1"/>
    <br/>
    Input 2: <input type="text" name="textbox2"/>
  </form>
</html>

JavaScriptを使用せずにフォームがロードされるときに、ユーザーがjsを無効にしている場合に動作が発生するように、テキストボックスのいずれかにデフォルトのフォーカスを設定します。

152
Adam Jenkin

HTML5で実行できますが、それ以外の場合はJavaScriptを使用する必要があります。

HTML5では、次のようにautofocusをフォーム要素に追加できます。

<input type="text" name="myInput" autofocus />

これは、HTML5をサポートするブラウザー(つまり、HTML5のこの特定の部分をサポートするブラウザー)で機能しますが、ご存じのとおり、誰もがまだ使用できるわけではありません。

271
Jake Lucas

注意すべきこと...フォーカスされたフォーム要素を設定すると、スクリーンリーダーなどのAssisted Technology(AT)を使用しているユーザーは、フォーカスされたフィールドの前にあるメニューやその他のコンテンツを表示するためにバックアップする必要があります。

私の意見では、優先する方法は、スキップリンクが利用可能な場合を除き、どのフィールドにもフォーカスを設定しないことです。これにより、ページのコンテンツにスキップしたり、ページを上から下に読んだりすることができます。

20
Greg

他の人が言ったように、Javascriptがなければ、デフォルトのフィールドを保証することはできません。ユーザーがアクセスしたいフィールドが複数ある場合、試してみたい代替オプションは、accesskey属性を使用することです。これは本質的に、ユーザーがブラウジング中にすぐにいずれかのフィールドに戻ることができることを意味します。これは、スクリーンリーダーなどのユーザーに役立つ場合があります。

このテーマに関するウィキペディアの記事は非常に便利です- http://en.wikipedia.org/wiki/Access_key

3
user764357

これは、何らかの形式のスクリプトなしでは不可能です。 Googleのホームページでも、検索フィールドにフォーカスするためにJavascriptが必要です。

0
Evan Mulawski