第20章 b タグはなぜ生き残ったのか
この章では、b を「見た目だけの古い要素」と切り捨てるのではなく、なぜ削除ではなく再定義という道が選ばれたのかを見ます。ゴールは、b を見たときに「CSS があるなら不要」と即断するのではなく、「どの意味は strong に任せ、どの役割なら b が残るのか」を説明できるようになることです。
前章では、div を悪者にしすぎると、汎用要素の必要性まで見失うと見ました。この章でも同じく、見た目だけで要素の価値を決めない話を扱います。次の第6部では、こうした仕様判断を支えてきた人々と標準化の流れへ進みます。
20.1 b は「太字にするタグ」だけでは終わらなかった
かつて b は、ほとんど見た目のための要素として使われました。その文脈だけを見ると、CSS で太字を指定できる現在では、役目を終えたように見えます。
しかし HTML は、古い要素を何でも単純に消すわけではありません。互換性の問題もあるし、実際の文章の中には「強い重要性ではないが、周囲から視覚的に区別したい」テキストが残ります。そこで b は、単なる太字指定ではなく、実用的な都合で読み手の注意を向けたいテキストを、周囲からスタイル上ずらして示すための要素として再定義されました。
ここで重要なのは、b が「見た目のための古い要素」から「重要性ではなく区別を担う要素」へ置き直されたことです。削除ではなく、役割の調整が選ばれたわけです。
20.2 strong と b は似て見えて同じではない
この違いは、strong と並べると見えやすくなります。
<p><strong>重要:</strong> 申込期限は明日です。</p>
<p>検索結果: <b>HTML</b></p>
strong は、内容の重要性や強い強調を表します。読み手に「ここは重い」と伝える要素です。一方 b は、重要性そのものではなく、視覚的に区別したい語句へ向いています。キーワード、製品名、導入ラベル、要約中で目を引かせたい語など、周囲より少し目立たせたいが、警告や強調として読むべきではない場面です。
この差を無視すると、「太字なら全部 strong」「見た目なら全部 CSS」で二分したくなります。しかし現実の文章には、そのどちらにもきれいに収まらない区別があります。b が残ったのは、その隙間を埋める必要があったからです。
20.3 HTML は古い要素を再定義して残すことがある
ここで見えてくるのは、HTML が古い要素を扱うときの流儀です。第13章では、消えた要素たちが需要の痕跡を残したことを見ました。一方 b では、完全に消すより、現代の文脈に合わせて意味を調整して残す道が選ばれました。
これは後方互換性だけの問題ではありません。もし b を単に obsolete にして、「以後は使うな」で済ませていたら、現実に存在する弱い視覚的区別のニーズを、全部 CSS や別の要素へ押し込むことになります。そこには、それはそれで別の不自然さが出ます。
つまり b の生存は、古いものへの未練というより、「現実の文章で必要な区別を、どの要素が引き受けるか」という再配置です。HTML がしているのは、過去の遺物をただ温存することではなく、役割の棚卸しでもあります。
20.4 実務では「重要なのか、区別したいだけなのか」を問う
実務で b と strong を迷ったときは、見た目ではなく、何を伝えたいかで切るほうがよい。重要性や警告の重みを伝えたいなら strong。文章の流れの中で、その語句だけを周囲から区別したいなら b。意味を持たせず見た目だけ変えたいなら CSS も選択肢に入ります。
この切り分けを入れると、b が CSS に完全に置き換わるわけではないことも見えてきます。CSS は見た目を変えますが、その語句を「周囲から少し区別したい」という文章上の意図までは表しません。逆に、その意図すらないなら、b を使わず CSS だけで済ませたほうが素直です。
この章の要点は、「b は古いから使うな」という標語の逆です。b が生き残ったのは、単なる慣性ではなく、HTML が古い要素を再定義しながら現代の役割へ置き直すことがあるからです。そう読むと、b は仕様の中で何となく生き残ったのではなく、調整された居場所を与えられたと分かります。次の第6部では、こうした居場所の調整を誰がどのように決めてきたのかを見ます。