* [CODE(HTMLa)@en[autofocus]] 属性 (HTML、HTML DOM)
[1] [[HTML]] の[[フォーム制御子]]の
[DFN[[CODE(HTMLa)@en[autofocus]] [[属性]]]]は、
[[焦点]]を自動的にその[[制御子]]に与えるべきことを示します。
[3] [[内容属性]]
:状態:[[WHATWG]] [[WD]]
:[[要素型]]:[[フォーム制御子]]
:[CODE(DOMa)@en[[[type]]]]:[CODE(HTML)@en[[[hidden]]]]
と [CODE(HTMLe)@en[[QN[[[output]]][http://www.w3.org/1999/xhtml]]]]
を''除く''
:[[属性名]]:[CODE(HTMLa)@en[[[autofocus]]]]
:[[属性値]]:[[ブール型属性]] (>>4)
:[[既定値]]:[[偽]] (>>5)
[9] [[DOM属性]]
:状態:[[WHATWG]] [[WD]]
:[[界面]]:[CODE(DOMi)@en[[[HTMLInputElement]]]],
[CODE(DOMi)@en[[[HTMLTextAreaElement]]]],
[CODE(DOMi)@en[[[HTMLSelectElement]]]],
[CODE(DOMi)@en[[[HTMLButtonElement]]]]
:[[属性名]]:[CODE(DOMa)@en[[[autofocus]]]]
:[[型]]:[CODE(IDL)@en[[[boolean]]]]
[2] 仕様書:
- [[Web Forms 2.0]]
-- [CSECTION@en[2.10. The [CODE(HTMLa)@en[[[autofocus]]]] attribute]]
** 内容属性値
[4]
[[属性値]]を設定する場合は、
[CODE(DOM)@en[[[autofocus]]]] と[['''するべきです''']]。
[SRC@en[WF2 2.10]]
[5]
[[#comment]]
** DOM 属性値
[10] '''取得'''
[[DOM属性]] [CODE(DOMa)@en[[[autofocus]]]]
は、[[内容属性]] [CODE(HTMLa)@en[[[autofocus]]]]
が存在していれば、[[属性値]]に関わらず、
[CODE(IDL)@en[[[true]]]] が返される値と[['''しなければなりません''']]。
[[内容属性]]が存在しない場合は
[CODE(IDL)@en[[[false]]]] と[['''しなければなりません''']]。
[SRC@en[WF2 2.10]]
[11] '''設定'''
[[DOM属性]] [CODE(DOMa)@en[[[autofocus]]]]
は、[CODE(IDL)@en[[[true]]]] と設定された時には、
[[内容属性]] [CODE(HTMLa)@en[[[autofocus]]]]
の[[属性値]]は [CODE(HTML)@en[[[autofocus]]]]
と設定[['''しなければなりません''']]。
[CODE(IDL)@en[[[false]]]] と設定された時には、
[[内容属性]] [CODE(HTMLa)@en[[[autofocus]]]]
は削除[['''しなければなりません''']]。
[SRC@en[WF2 2.10]]
[[#comment]]
** HTML 直列化
[13]
([[XHTML]] ではない) [[HTML]] では、
[PRE(HTML example code)[
]PRE]
と同じ意味で、
[PRE(HTML example code)[
]PRE]
と省略することができます。
[SRC@en[WF2 2.10]]
[[#comment]]
** レンダリング
[6]
[[利用者エージェント]]は、
[[フォーム制御子]]が[[文書]]に[[挿入]]された時、
[CODE(HTMLa)@en[[[autofocus]]]] [[属性]]が設定されているかどうかを確認[['''しなければなりません''']]。
[[利用者エージェント]]は、
[CODE(HTMLa)@en[[[autofocus]]]] [[属性]]が設定されており、
[CODE(HTMLa)@en[[[disabled]]]]
では''なく''、その[[環境]]で通常[[焦点]]を当てることができる種類のものであれば、
その[[制御子]]の [CODE(DOMm)@en[[[focus]]]]
[[メソッド]]が呼ばれた場合と同じように[[焦点]]を授与[['''するべきです''']]。
[[閲覧領域]]を持つ[[利用者エージェント]]は、
[[焦点]]を当てることが可能かどうかに関わらず、
その[[フォーム制御子]]が可視になるように[[文書]]を[[スクロール]][['''するべきです''']]。
[SRC@en[WF2 2.10]]
[8]
[[利用者エージェント]]は、
[[利用者]]が[[焦点]]を移して欲しくない場合にこの[[属性]]を無視[['''して構いません''']]。
例えば、[[利用者]]が入力を開始したら、
それ以後 [CODE(HTMLa)@en[[[autofocus]]]]
は無視して構いません。
[SRC@en[WF2 2.10]]
[14]
[[Webブラウザ]]の[[窓]]が[[焦点]]を失っている時に
[CODE(HTMLa)@en[[[autofocus]]]]
が指定されていても、
[[窓]]が[[焦点]]を得なければならないわけではありません。
[SRC@en[WF2 2.10]]
[[#comment]]
** 誤り処理
[7]
[[著者]]は、複数の有効な[[要素]]に
[CODE(HTMLa)@en[[[autofocus]]]] [[属性]]を設定[['''してはなりません''']]。
複数の要素が [CODE(HTMLa)@en[[[autofocus]]]]
な場合、順に >>6 のように処理されるので、
[[文書]]の読込み直後には[[文書順]]で最後の[[焦点]]を当てられる[[フォーム制御子]]が[[焦点]]を得ることになります。
[SRC@en[WF2 2.10]]
[[#comment]]
** 例
[12]
[PRE(HTML example code)[
]PRE]
この例では、[[文書]]が読込まれると、
[[テキスト欄]]に[[焦点]]が当てられます。
[[#comment]]
** メモ
[[#comment]]
* メモ
[15] [CITE@en[HTML5 Revision Tracker]]
([TIME[2010-07-30 07:56:25 +09:00]] 版)
[16] [CITE['''['''whatwg''']''' Two propositions for the autofocus attribute]]
([TIME[2010-08-25 09:09:30 +09:00]] 版)