コンテンツにスキップ

120. Title Management(ページタイトルの自動更新:ブラウザの「名前」を常に合わせる)

原理:画面の中身と「看板」を一致させる

見出しは変わったのに、タブの名前がそのまま?

HTMXで画面の一部(メインコンテンツ)を書き換えて、URLも変わった(112.)とします。しかし、ブラウザの「タブ」に表示されている名前や、履歴一覧に載る名前が「前のページ」のままだったらどうでしょう? ユーザーは「今どこのページを見ているのか」を一瞬で見失ってしまいます。

「タイトル管理(Title Management)」とは、HTMLの部分更新に合わせて、ブラウザの <title> タグ(タブの名前)を自動的に、かつ最新の状態に更新することです。


実践:タブの名前に命を吹き込む

1. サーバーからのレスポンスに <title> を含める

HTMXの非常に賢い機能の一つに、「送られてきたHTMLの中に <title> タグを見つけたら、それを自動的にブラウザのタブに反映する」というものがあります。

<!-- 
  サーバーが返す部分的なHTMLの断片
-->
<title>商品詳細: かっこいいスニーカー</title>

<div id="main-content">
    <h1>かっこいいスニーカー</h1>
    <p>このページの中身と一緒に、タブの名前も変わります!</p>
</div>

2. グローバルなタイトル更新(hx-on の活用)

サーバーがHTMLを返せない場合や、特定のルールでタイトルを合体させたい(例:「商品名 | 自社サイト」)場合は、JavaScriptで割り込むこともできます。

<body hx-on:htmx:after-swap="document.title = event.detail.xhr.getResponseHeader('X-Page-Title') || document.title">

3. ステップ・バイ・ステップ解説

  1. タイトル案を練る: 「何のページか」が一目でわかる短い言葉を考えます。
  2. HTMLへの埋め込み: サーバー側で、返すHTMLの最初(または最後)に <title>新しい名前</title> を書き込みます。
  3. ブラウザで確認: ボタンを押して画面が変わった瞬間、タブの名前が「シュッ」と変わることを確認します。

比較:手動の document.title vs HTMXの自動解析

手動 (Vanilla JS)

  • 方法: 通信が終わるたびに document.title = "..." と書く必要がある。ミスが起きやすく管理が大変。

HTMXの自動解析

  • 方法: サーバーが返すHTMLにタグを入れるだけ。
  • 利点: HTML(文書)として自然な形で管理でき、プログラム側を修正しなくても「新しいHTMLファイル」を作る感覚でタイトルも変更できる。

まとめ:初心者のための「看板」の重要性

ページタイトルは、あなたのサイトの外側(タブや履歴、お気に入り)における「顔」です。

  • SEOへの影響: ページごとに適切なタイトルがついていることは、検索エンジン(Googleなど)にとっても非常に評価しやすいポイントになります。
  • 履歴の見やすさ: ブラウザの履歴ボタンを長押ししたとき、同じタイトルのページが並んでいるよりも、中身のわかる名前が並んでいるほうが、ユーザーは圧倒的に戻りやすくなります。
  • 小さなこだわり: 中身だけでなく、タイトルまでしっかり管理されている。この「細部へのこだわり」が、サイト全体の信頼感に繋がります。

中身と名前を、一つに。タイトル管理という最後の仕上げを通じて、ブラウザのタブから履歴の隅々に至るまで、完璧にデザインされたプロフェッショナルな Web アプリを完成させてください。第6章の後半戦も、この調子で進んでいきましょう!