タイトル: rp要素
SEOタイトル: HTML <rp> 要素の使い方|ルビ非対応ブラウザ向け括弧フォールバック
| この記事の要点 |
|
(Ruby Parenthesis) は、ルビ機能に対応していないブラウザでルビが読みやすく表示されるよう、フォールバック用の括弧を提供する HTML5 要素です。
漢字
対応/非対応ブラウザでの見え方
| ブラウザ | 表示 | |
|---|---|---|
| ルビ対応(Chrome / Firefox / Safari / Edge / Opera) | 漢字の上に小さく「かんじ」 | 非表示 (display:none 相当) |
| ルビ非対応(古い IE / 一部組込ブラウザ / テキストブラウザ) | 漢字(かんじ) | テキストとして括弧表示 |
| スクリーンリーダー | 「かんじ」と読み上げ(実装依存) | 無視 or 読み上げ対象外 |
内の要素関係
ベーステキスト
| 要素 | 意味 | 必須 |
|---|---|---|
| ルビ全体のコンテナ | 必須 |
| Ruby Text - ふりがな本体 | 必須 |
| Ruby Parenthesis - フォールバック括弧 | 任意(推奨) |
| Ruby Base - ベーステキスト (W3C は推奨せず) | 非推奨 |
| Ruby Text Container - 複数のふりがなまとめ | 任意 |
実用例: 日本語フリガナ
東
京
都
東京都
著者:
山田
太郎
中国語の拼音 (Pinyin)
北
京
韓国語のハングル
韓国
対応ブラウザでは問題なく表示されますが、非対応環境では「漢字かんじ」のように括弧無しでふりがなが本文と混ざって読めなくなるため、書籍や公的文書ではフォールバック必須です。
漢字
漢字
CSS で表示制御
/* ルビ位置を下にする */
ruby {
ruby-position: under; /* over (デフォルト) / under */
}
/* ふりがなのサイズ */
rt {
font-size: 0.5em;
color: #666;
}
/* rp は通常 display:none だが、明示的に表示するには */
rp {
display: inline; /* デバッグ時に括弧を可視化 */
color: #ccc;
}
JavaScript で動的に追加
function addRuby(base, reading) {
const ruby = document.createElement('ruby');
ruby.appendChild(document.createTextNode(base));
const rp1 = document.createElement('rp');
rp1.textContent = '(';
ruby.appendChild(rp1);
const rt = document.createElement('rt');
rt.textContent = reading;
ruby.appendChild(rt);
const rp2 = document.createElement('rp');
rp2.textContent = ')';
ruby.appendChild(rp2);
return ruby;
}
document.body.appendChild(addRuby('漢字', 'かんじ'));
サポート状況
| ブラウザ | ルビ対応 | rp サポート |
|---|---|---|
| Chrome (5+) | ○ | ○ |
| Firefox (38+) | ○ | ○ |
| Safari (5+) | ○ | ○ |
| Edge | ○ | ○ |
| IE 5+ | △ (基本対応) | ○ |
| Lynx / w3m | × | テキスト表示 |
FAQ
Q: 現代のブラウザがほぼ対応してるなら
A: モダンブラウザ専用ならほぼ不要ですが、RSS リーダー / メーラー / 古い組込端末 / テキストブラウザでは今でもフォールバックが活きます。公的文書では推奨。
Q: 括弧以外の文字を入れてもいい?
A: 仕様上は任意の文字列を入れられます。「【」「<」など好みの記号を使えます。
Q: スクリーンリーダーは rp を読む?
A: 多くの実装で読まれません。読み上げ用の本文には別途 aria-label を併用します。