【入門編】双方向テキスト(Bidi)とインライン要素の方向性 – HTML実践ガイド

Webの「読み書き」の常識を疑え!右から左へ流れる文字の不思議と、HTMLでの「交通整理」術

こんにちは!フロントエンドの世界へようこそ。
普段、私たちが何気なく見ているWebページは、左から右へ文字が流れるのが当たり前ですよね。でも、世界を見渡すと「右から左へ」読む言語(アラビア語やヘブライ語など)もたくさん存在します。

もし、あなたが作ったサイトに、急に「アラビア語も表示してほしい」という依頼が来たらどうしますか?
今日は、そんな「文字の流れる方向」という、ちょっと奥深くて面白い世界を一緒に覗いてみましょう。大丈夫、仕組みさえ分かればパズルみたいに楽しいですよ!

—

1. 文字の「渋滞」を防ぐ交通整理:`dir`属性とは?

日本語や英語は「左から右(Left-to-Right)」、略してLTRと呼びます。一方で、アラビア語などは「右から左(Right-to-Left)」、略してRTLと呼びます。

この2つが混ざると、Webブラウザの中ではちょっとした「交通渋滞」が起きます。例えば、右から左へ流れる文章の中に、突然左から始まる英語や数字が混ざると、どこからどこまでが一つの単語なのか分からなくなってしまうんです。

そこで登場するのが `dir` 属性です。「ここは右から読んでね!」とブラウザに教えてあげるための指示書のようなものですね。



アラビア語の文章がここに入ります。


基本的にはHTMLタグに書くだけでOKですが、特定の要素だけ方向を変えたいときにも使えます。

—

2. 強制的に「逆走」させる:`bdo`要素の正体

次に紹介するのは `bdo`(Bi-Directional Override)要素です。これは、いわば「強制的に文字を逆向きにする」ための道具です。

普段は使う機会が少ないかもしれませんが、「あえてデザイン的に文字を反転させたい」ときや、「どうしてもブラウザの自動判別がうまくいかない」ときの最終手段として覚えておくと安心です。


HELLO

ここでの注意点: `bdo` は「見た目を逆転させる」ものなので、中身の文字の順番まで入れ替えてしまいます。うっかり使うと文章が暗号みたいになってしまうので、慎重に使いましょうね!

—

3. なぜか文字が混ざっちゃう!そんな時の「魔法の隔離」

開発をしていると、「RTLの文章の中に、どうしてもLTRの数字やコードを混ぜたい」というシーンに出くわします。そんな時、普通に書くと文字の並びがグチャグチャになってしまうことがあります。

そんな時は `span` 要素と `dir` 属性を組み合わせて、「ここだけは別世界だよ」と隔離してあげるのがコツです。

アラビア語の文章の途中で、

123
と続く文章です。

これをお買い物に例えるなら、「荷物を送る時に、壊れ物を別の箱に入れて梱包する」ようなイメージです。そうすることで、周りの文章のルールに巻き込まれず、自分の形を保てるようになるんです。

—

まとめ:Webは世界中の言葉を受け入れる器

「文字の方向」なんて、普段意識しないことかもしれません。でも、Webのすごいところは、世界中のどんな言語でも同じルールで表現しようと努力している点にあります。

今回ご紹介したポイントをまとめるとこうなります。

  • `dir=”rtl”`: ブラウザに「右から読むよ!」と教えてあげる。
  • `bdo`: 文字の並びを強引に反転させる(慎重に!)。
  • `span`で隔離: 混ざり合う言語のルールが衝突しないように、箱に入れて守ってあげる。

最初は難しく感じるかもしれませんが、ブラウザという「交通整理員」に、正しい道順を教えてあげる感覚で試してみてください。

あなたの書いたコードが、いつか地球の裏側にいる誰かに届くかもしれない。そう考えると、HTMLを書く手にも少しだけ力が入りませんか?
もし分からないことがあっても大丈夫。一つずつ、ゆっくり学んでいきましょう!

コメント

タイトルとURLをコピーしました