1. ホーム
  2. ハイパーリンク

[解決済み】どのHTML要素がフォーカスを受けることができますか?

2022-03-30 04:19:04

質問

フォーカスを得ることができるHTML要素の明確なリストを探しています。 focus() が呼び出された場合、どのように対処すればよいのでしょうか?

フォーカスを当てることができる要素に対して動作するjQuery拡張機能を書いています。この質問の答えは、私がターゲットとする要素について具体的にすることを可能にすることを願っています。

どのように解決するのですか?

明確なリストがあるわけではなく、ブラウザ次第です。唯一の標準は DOMレベル2HTML を持つ唯一の要素であり、それによれば focus() メソッドは HTMLInputElement , HTMLSelectElement , HTMLTextAreaElementHTMLAnchorElement . これは、特に HTMLButtonElementHTMLAreaElement .

現在のブラウザは focus() のいずれかでなければ、フォーカスを得ることはできません。

  • HTMLAnchorElement/HTMLAreaElement(href付き)。
  • HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLButtonElement のいずれかを使用しますが、以下の要素は使用しません。 disabled (また、ファイルアップロードは、セキュリティ上の理由から、通常とは異なる動作をします。
  • HTMLIFrameElement(ただし、フォーカスすると、何も役に立ちません)。他の埋め込み要素も、たぶん、全部はテストしていない。
  • 任意の要素に tabindex

ブラウザによっては、この動作に微妙な例外や追加事項がある可能性があります。