In HTML, the <u>
element is used to underline text to indicate non-documentary or conventional annotations, while it is recommended to use CSS for purely decorative underlines.
<u>
要素とは<u>
要素は、HTMLの要素の一つで「下線付きテキスト(下線を引くため)」を表すタグとしてよく知られています。
しかし、HTML5仕様の改訂によって、単にテキストに下線を引くだけではなく、「文中におけるテキストの非文書的な注釈や、慣習的な表現上のマークアップ」を意図的に示すための要素として再定義されました。以下はその概要です。
とはいえ、多くのケースで視覚的な下線だけを目的とするならCSSを使うほうが推奨されるため、<u>
要素の使いどころに注意が必要です。
HTML
<p>この文章では<u>重要な箇所</u>に下線を引いています。</p>
この文章では重要な箇所に下線を引いています。
上記のように書くだけで、ブラウザ上では「重要な箇所」の部分が下線付きで表示されます。初学者の方が、HTMLで下線を引きたいと考えたときに<u>
を安易に使いがちですが、後述する通り、実際には意図と適切な意味づけが求められます。
text-decoration
)との違いテキストを下線付きにしたいだけの場合は、通常以下のようにCSSを使うことが推奨されます。
HTML
<span class="underline">下線をつけたいテキスト</span>
CSS
.underline {
text-decoration: underline;
}
HTML4では推奨されなくなった<u>
タグですが、HTML5で再び使われるようになった背景には、見た目だでなく「文書における意味づけ(セマンティクス)」を明示するという考え方があります。
<u>
要素の意味合いHTML5仕様では、<u>
要素は以下のように再定義されています。
“Unarticulated annotation”
<u>
要素は、文中の非文書的な注釈や慣習的に下線を使う表現をマークアップするためのもの
例えば、以下のようなケースが挙げられます。
単純に「強調」や「下線を引きたい」だけの場合、<strong>
や<em>
、あるいはtext-decoration
を用いることが多いです。<u>
は見た目だけではなく、“非文書的な注釈”を特別に示したいときに使う、と理解しましょう。
多くのウェブサイトでは、リンクテキストに下線を用いることが一般的です。そこで<u>
要素で下線を引いたテキストは、リンクと誤認されやすくなるという問題点があります。
これが、安易に<u>
要素を使うべきでないとされる理由の一つです。ユーザーの混乱を防ぐために、装飾目的だけの場合はCSSで別のアプローチ(色や背景)を検討するか、下線で強調する場合でもリンクとは異なるスタイルを適用するといった工夫が必要です。
<u>
要素と可読性・アクセシビリティ<u>
要素自体は、強調読み上げされるわけではありません。強調が必要な場合は<strong>
や<em>
を検討するのが一般的です。<u>
要素の使用理由を説明するためにARIA属性などを活用することも考えられます。<u>
は推奨されず、代わりにCSSでの実装が推奨された。つまり、HTML5では**“意図的に下線を引く特別な事情”**(例:外国語の慣習や校正目的)があるときに使うとよいのです。
ここでは、単純に「テキストを下線にする」だけにとどまらず、<u>
要素を使った高度な活用法や、実務的に起こりがちな問題について解説します。
日本語や中国語などの表記において、漢字の読みや返り点などを示す際、<ruby>
要素を使うことがあります。校正や辞書的表示のために、あえて<u>
を用いて下線付きで示すこともあります。たとえば中国語では固有名詞のピンインを示したい場合、ルビの代わりに下線を使う表記が存在するケースがあります。
HTML
<p>この部分は<u>固有名詞のピンイン</u>を下線で強調しています。</p>
ただし、実際には<ruby>
要素と<rt>
要素を利用するのが正しい文書構造的には望ましいため、<u>
で無理やり表現を行うのではなく、適切にルビを使い分けることも考慮が必要です。
出版社や編集現場の校正作業では、注釈や確認事項などを目立たせるために下線を引くことがあります。校正者間で「下線は誤字疑い」「波線は要確認」などの独自ルールが決められている場合もあります。
HTML上でも同様の表現を再現するため、下記のように校正箇所を示す意図で<u>
を使うこともあります。
HTML
<p>この部分は<u>誤字の疑い</u>があるため、再チェックしてください。</p>
CSSでカスタムの下線スタイル(破線や波線など)を設定すれば、印刷物の校正記号に近い表現も可能です。
CSS
u {
text-decoration: underline wavy red;
}
(ただし、この指定が常にすべてのブラウザで正しく反映されるわけではありません。互換性に注意が必要です。)
<u>要素をJavaScriptで操作することで、インタラクティブな注釈ツールを作成することも可能です。たとえば、以下の例のように<u>要素がクリックされたら注釈内容をポップアップで表示する、といった実装も考えられます。
HTML
<p>この部分は<u class="annotated" data-annotation="ここが重要なポイントです">下線付きの注釈</u>です。</p>
<script>
<!-- JavaScript code here -->
</script>
CSS
.annotated {
cursor: pointer;
}
JavaScript
document.querySelectorAll('.annotated').forEach(elem => {
elem.addEventListener('click', () => {
alert(elem.dataset.annotation);
});
});
この部分は下線付きの注釈です。
このように、単なる視覚的強調を超えた「インタラクティブな注釈」の使い方としても考えられます。
<u>
要素は、HTML4の段階では推奨されなかった経緯もありますが、現在はモダンブラウザで問題なく解釈・表示されます。ただし、下線のスタイル変更などの詳細なCSS指定(破線、波線など)がすべてのブラウザで同じように表示されるわけではありません。
HTML5以降では、見た目の強調だけでなく文書構造のセマンティクスを重視します。したがって、意味を持たせずに見た目の変更として<u>
を使うと、アクセシビリティツールや検索エンジンに誤解される可能性があります。
SEO的に直接メリット・デメリットがあるわけではありませんが、リンクテキストでなくとも下線付きテキストを多用していると、ユーザーが混乱してしまい、ユーザーエクスペリエンスの低下につながる可能性があります。ユーザーにとって混乱があるページは間接的にSEOに悪影響を及ぼしかねません。
<u>
要素の基本的な役割<em>
や<strong>
、見た目の下線ならCSSのtext-decoration: underline;
を使う。<u>
はCSSやJavaScriptと組み合わせると高度な注釈機能を実現できる。<ruby>
や<mark>
など)と目的を混同しないように注意。<u>
の用途が本当に適切なのかを再確認し、より意味の合った要素があればそちらを検討。一言で言うと…
“<u>
要素は「下線付きテキスト」ではあるが、現代のHTMLでは「非文書的注釈や慣習的表示」を示すためのセマンティックな要素として使う”
これが最重要ポイントです。単に下線を表示するだけならCSSで実装し、文書構造上、意味を持たせたいときに<u>
を使うというスタンスが理想的です。