dir=dir - 表示の方向制御

属性

<tagName dir=dir> - 表示の方向制御

サポート

https://caniuse.com/mdn-html_global_attributes_dir

説明

dir には、文章の方向を下記のいずれかで指定します。

多くの言語は左→右方向に書きますが、アラビア語などでは右→左方向に書きます。右→左語圏ではブラウザが標準で右→左方向に表示すれば問題無いのですが、両者を混在させて記述する場合に明示的な方向制御が必要になります。

方法のひとつに、HTML の dir 属性を指定する方法があります。rtl と指定された部分が右→左で表示されます。

HTML
彼の名前はモハメッド(<span lang="ar" dir="rtl">محمد</span>)といいます。

別の方法に、Unicode の方向制御文字を用いる方法があります。%u202D は左→右の開始、%u202E は右→左の開始、%u202C は方向制御の終わりを示します。

HTML
彼の名前はモハメッド([%u202D]محمد[%u202C])といいます。

別の方法に、MIME の方向制御アルゴリズムを用いる方法があります。「ヘブライ文字だから逆方向に表示する」などの文字コード情報や、その他の方法の組み合わせで方向を決定するものですが、仕様は複雑です。(→ RFC1556)

HTML
<meta http-equiv="Content-type"
      content="text/plain; charset=ISO-8859-6-i">
彼の名前はモハメッド(محمد)といいます。

Unicode の方法と MIME の方法が混在すると、方向制御が二重に働いてしまい、期待通りにならない場合があります。この時、Unicode の方向制御機能を上書き(無効化)するのが <bdo> です。bdo の o は上書き(over-ride)を意味します。下記の例では Unicode 制御文字が無視され、MIME による方向制御のみが行われます。

HTML
<meta http-equiv="Content-type"
      content="text/plain; charset=ISO-8859-6-i">
<bdo dir="ltr">彼の名前はモハメッド([%u202D]محمد[%u202C])といいます。</bdo>

リンク