
フロントエンドカンファレンスで
プロポーザル通らなかったので
ここで発散します!
autofocusってなーに?
<input type="text" autofocus />
なんで遭遇したんだ?
eslint-plugin-jsx-a11yを自分で導入jsx-a11y/no-autofocusの警告が発生
なんでエラーなるん?

ページ読み込み時に意図しない場所へフォーカスが飛ぶ
↓ 本来はここから順番に読んでほしい
1. まずはこの説明を読んでください
2. 次にこちらの内容を確認してください
正しい使い方も知りたい!!
ドキュメント読んだ感じ
こう使うのが良さそう!
ユーザーの操作でダイアログが開き、入力欄にフォーカス
不可逆な操作ではキャンセルにフォーカスを置き、誤操作を防ぐ
Dialog.Content に onOpenAutoFocus propがあるautofocus を使わずにフォーカス制御ができる → Linterにも怒られない<Dialog.Content
onOpenAutoFocus={(event) => {
event.preventDefault();
cancelButtonRef.current?.focus();
}}
>
...
</Dialog.Content>
onCloseAutoFocus で閉じた後のフォーカス先も制御できるHTML autofocusなしで、Linterにも怒られない
initialFocus propがあるonOpenAutoFocus / Base UI: initialFocus — アプローチは違うが同じことができる| Radix UI | Base UI | |
|---|---|---|
| 開いた時 | onOpenAutoFocus | initialFocus |
| 閉じた時 | onCloseAutoFocus | finalFocus |
まとめ
次は絶対にプロポーザル通すぞ!!!!
目指せカンファレンス登壇!!
