技術検証メモ
dialog要素の普及状況
dialog要素は、Chromeでは2014年から、SafariやFirefoxでも2022年以降に標準サポートされ、主要ブラウザでほぼ利用可能。
標準APIであり、外部ライブラリ不要でシンプル・アクセシブルなモーダルが作れるため、近年は新規プロジェクトやモダンなWeb開発での採用が増えている。
コード量が少なく、メンテナンス性・アクセシビリティ・セキュリティ面でも優れている。
jQuery+loadやBootstrap Modalの現状
jQueryによるモーダル実装は、2010年代のWeb開発で非常に一般的でした。特に既存のレガシーシステムや、jQuery依存のサイトでは今も多く使われている。
Bootstrap ModalなどのUIフレームワークも、企業サイトや管理画面などで依然として多用されています。
動的なHTML読み込み(load)や複雑なカスタマイズが必要な場合、jQueryやBootstrapの方が柔軟なケースがある。
現場での使い分け傾向
dialog要素
新規開発、モダンWeb、SPA 急速に普及中。今後主流になる流れ
jQuery/Bootstrap Modal
レガシー、既存資産、複雑な要件 依然多いが、新規では減少傾向
Jqueryサンプル
dialog要素を使ったモーダルのサンプル
<!-- ダイアログ本体 -->
<dialog id="myDialog">
<h2>モーダルタイトル</h2>
<p>ここに内容を書きます。</p>
<form method="dialog">
<button>閉じる</button>
</form>
</dialog>)
<!-- モーダルを開くボタン -->
<button id="openDialog">モーダルを開く</button>
// JavaScriptでモーダルを開く
document.getElementById('openDialog').addEventListener('click', () => {
document.getElementById('myDialog').showModal();
});
動的にタイトルや内容を変更したい場合も簡単です。
document.getElementById('openDialog').addEventListener('click', () => {
const dialog = document.getElementById('myDialog');
dialog.querySelector('h2').textContent = '新しいタイトル';
dialog.querySelector('p').textContent = '新しい内容です。';
dialog.showModal();
});
CSSでバックドロップをカスタマイズ
dialog::backdrop {
background: rgba(0,0,0,0.5); /* 半透明の黒背景 */
}
わかったこと
dialog要素は便利だった。しかし、レガシーてきな複雑すぎるモーダルを保守運用していくには、JqueryやBootstrapを使う傾向もあるという点を理解した。
まとめ
dialog要素を使うと、jQueryやdivベースの自作モーダルより圧倒的にシンプル&少ないコードでモーダルが実装できる。
標準APIなのでアクセシビリティやフォーカス制御も自動で対応できる。
ボタン一つで開閉でき、内容やタイトルも簡単に動的変更できる。