コンポーネント
← すべてのコンポーネント

確認ダイアログ橋渡し

stimeo--confirm

Turbo のネイティブ confirm() をアクセシブルな警告ダイアログに置き換える。

  • Alert & Message Dialog
  • Rails / Turbo

stimeo--confirm コントローラは、Turbo が data-turbo-confirm に使うネイティブ window.confirm() をアクセシブルな警告ダイアログ(WAI-ARIA APG Alert Dialog パターン)に置き換えます。共有 FocusTrap を再利用するため、トラップ・フォーカス復帰・Esc 取消を再実装しません。connect で Turbo.config.forms.confirm を Promise を返すメソッドに差し替え、disconnect(Turbo 遷移含む)で原状復帰するので、多重登録やリークが起きません。request アクションで任意のリンク/ボタンのクリックを横取りし、承認時のみ元の送信/遷移を続行することもできます。初期フォーカスは安全側(取消)、Esc で取消します。ダイアログが無い場合はネイティブ confirm にフォールバックします。 stimeo--confirm:open / :resolve を発火します。ライブラリは挙動のみを提供し、ダイアログのマークアップと見た目はこの Playground が持ちます。

実行中

キーボード操作

キー動作
Esc 取消(false で解決)してダイアログを閉じる。
Tab / Shift+Tab ダイアログ内でフォーカスを循環させる(フォーカストラップ)。
Enter フォーカス中の承認/取消ボタンを実行する。