[90] [DFN[bidi]] は[[左横書き]]と[[右横書き]]の混合や、
[[上縦書き]]と[[下縦書き]]の混合です。

* 仕様書

[REFS[
- [56] [CITE@en-us[UAX #9: Unicode Bidirectional Algorithm]], [TIME[2020-03-07 07:23:12 +09:00]] <https://unicode.org/reports/tr9/>
- [70] 
[CITE[The Unicode Standard, Version 13.0 - ch23.pdf]], [TIME[2020-03-09T17:53:52.000Z]], [TIME[2020-12-13T07:28:31.667Z]] <https://www.unicode.org/versions/latest/ch23.pdf#G27446>
- [11] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-01-09 07:29:06 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#requirements-relating-to-the-bidirectional-algorithm>
]REFS]

* 日本語

[55] [CITE@ja[[[自動車]]側面の文字の向きは - トラパシ鉄道模型掲示板5]], [TIME[2020-09-26T12:24:16.000Z]], [TIME[2016-08-17T11:23:54.582Z]] <https://web.archive.org/web/20160817112220/http://b5.spline.tv/tprr5/?message=101>

同じ[[行]]の[[右横書き]]中に[[左横書き]]が混在する [[bidi]] の事例あり。


[64] [CITE@ja[「爪哇」第162号 現地邦人企業商店広告多数入 ジャワスラバヤ市・爪哇日報社 昭和8年 : 古書 古群洞 kogundou@jcom.zaq.ne.jp]], [[kogundou]], [TIME[2020-12-09T04:15:28.000Z]] <https://kogundou.exblog.jp/240733547/>

南洋倉庫株式会社広告:
日本語会社名、
英語会社名は[[左横書き]]。
その次の日本語文は[[右横書き]]。
その次の日本語詳細事項は[[右上縦書き]]。


[65] [CITE@ja[大満洲國詳図 二百万分一 9色刷 訂正十版 小林又七編纂 兵用図書 昭和8年 : 古書 古群洞 kogundou@jcom.zaq.ne.jp]], [[kogundou]], [TIME[2020-12-09T04:42:22.000Z]] <https://kogundou.exblog.jp/240710607/>

題字は[[右横書き]]、その直下の[[縮尺]]を表す直線は左から右へ進み、添えられているのは[[左横書き]]の[[算用数字]]。

凡例は右側に記号、左側に[[右横書き]]の説明文。
標高の色の意味を表す「[R[高度表]]」は左側に例示、右側に数値 (グラフの縦軸に当たる部分が左側例示の右辺、その右側に[[算用数字]]で[[左横書き]]のメートル数)。

地名は[[右横書き]]。[[上縦書き]]や[[斜め書き]]もあるが少ない。
[[右横書き]]の[[上ルビ]]、[[下ルビ]]は[[右横書き]]。
「[L[HAR-BIN]]」
だけ[[ラテン文字]]併記で[[左横書き]]。

[66] [CITE@ja[満蒙紹介(満蒙略図/大連市パノラマ写真/大連港図/他折込附図附表多)非売 大正10年 : 古書 古群洞 kogundou@jcom.zaq.ne.jp]], [[kogundou]], [TIME[2020-12-09T05:08:48.000Z]] <https://kogundou.exblog.jp/240629341/>

全体的に[[右横書き]]と[[右上縦書き]]。

鉄道車両の紹介ページだけ[[左横書き]]の[[日本語]]で、
[[左横書き]]の[[算用数字]]の[[西暦年]]や記号とともに、
車両の変遷が左から右へと新しく並べられている。


- [77] [CITE@ja[戦中に描かれた絵と[[擬人化]]について : 軍事系まとめブログ]], [TIME[2021-02-25T02:42:03.000Z]] <http://gunji.blog.jp/archives/1069463727.html>
-- [78] [CITE[927075de.jpg (JPEG 画像, 1920x1454 px)]], [TIME[2018-01-27T05:23:02.000Z]], [TIME[2021-02-25T02:42:47.625Z]] <https://livedoor.blogimg.jp/oy1982/imgs/9/2/927075de.jpg>

>無題 Name 名無し 18/01/07(日)18:33:53  No.1233602      
>   戦中の日本の広告なんですが、「敵機」の名前が左書き表記で「大日本飛行協会」は右書き

[80] [CITE@ja[戦前~戦後のレトロ写真さんはTwitterを使っています 「1935年(昭和10年)の週刊朝日の新漫画派集団特集より、「[[お前100まで]]」という漫画です(再掲)。日向ぼっこしたい季節になってきましたね。 https://t.co/0sGBvlEFJM」 / Twitter]], [TIME[2021-10-26T06:08:58.000Z]], [TIME[2021-10-26T06:42:11.643Z]] <https://twitter.com/oldpicture1900/status/1452800949483814914/photo/1>

作品名見出し ([[手書き]])
「[R[お前[L[100]]まで]]」

(作品本体は漫画でコマは[[右上縦書き]] (コマ番号付き)、
吹き出し内の台詞は[[右上縦書き]]の[[近代日本語]][[平仮名漢字混じり]] ([[歴史的仮名遣]], [[手書き]]))


-
[91] 
[CITE@ja[戦前~戦後のレトロ写真さんはTwitterを使っています: 「昭和5年(1930年)の新聞広告を再掲。 佐野正という時計・眼鏡店の広告です。 検眼車を持ち、また店内にも同装置を持っていたようです。絵がロマンあります。 https://t.co/yFbXn2Da86」 / [[Twitter]]]], 午前11:27 · 2022年8月14日 [TZ[+09:00]], [TIME[2022-08-19T01:48:46.000Z]] <https://twitter.com/oldpicture1900/status/1558641527890464768/photo/1>
-[92] 
[CITE@ja[職業別電話名簿. 東京・横浜近県 - [[国立国会図書館デジタルコレクション]]]],
大正15,
[TIME[2022-08-19T02:07:26.000Z]] <https://dl.ndl.go.jp/info:ndljp/pid/950547/143>

[93] 
>>91
[[新聞広告]] [[電話番号]] ([[手書き]])
「[R[電話京橋([L[56]])六〇一二・三七三六]]」

[[京橋]]は[[日本国]][[東京府]][[京橋区]]にあった[[京橋電話局]]。
「56」はその[[市内局番]]で五十六。
[[欧州数字]]の[[市内局番]]は[[左横書き]]で、
[[漢数字]]の[[加入者番号]]は[[右横書き]]。
当時の[[電話帳]]に 56-6012 が掲載されていて [SRC[>>92]]
この読み方で正しいことが確かめられる。

[94] [CITE@ja[戦前~戦後のレトロ写真さんはTwitterを使っています: 「昭和9年(1934年)の吉本興業の広告。この頃はエンタツアチャコの大活躍もあり、まさに同社戦前の黄金期で、所属していた芸人さんは1300人にも上ったそうです。 女性芸人も多く、そんな彼女たちのために吉本は女子寮を用意していたそうです(2枚目 昭和11年)。 https://t.co/c1oxDW3Sn1」 / [[Twitter]]]], 午後4:19 · 2022年8月21日 [TZ[+09:00]], [TIME[2022-08-22T10:17:24.000Z]] <https://twitter.com/oldpicture1900/status/1561251738581028865/photo/1>

広告。基本は[[右上縦書き]]。
[[右横書き]]、[[上縦書き]]から[[右横書き]]への[[L字書き]]が混じっている。

一番目立つ[[見出し]]だけなぜか[[左横書き]]。

- [98] 
[CITE@ja[[[鳳山紅毛港保安堂]] - Wikipedia]], [TIME[2022-08-24T01:40:38.000Z]], [TIME[2022-08-24T11:31:39.484Z]] <https://ja.wikipedia.org/wiki/%E9%B3%B3%E5%B1%B1%E7%B4%85%E6%AF%9B%E6%B8%AF%E4%BF%9D%E5%AE%89%E5%A0%82>
--
[99] [CITE@ja[ファイル:三十八號船艦御神體.jpg - Wikipedia]], [TIME[2022-08-24T11:31:54.000Z]] <https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E4%B8%89%E5%8D%81%E5%85%AB%E8%99%9F%E8%88%B9%E8%89%A6%E5%BE%A1%E7%A5%9E%E9%AB%94.jpg>
- [95] 
[CITE@ja[神奈いですさんはTwitterを使っています: 「紅毛港保安堂 https://t.co/Je8yFuDCHe」 / [[Twitter]]]], 午後0:32 · 2022年8月24日 [TZ[+09:00]], [TIME[2022-08-24T11:24:21.000Z]] <https://twitter.com/kana_ides/status/1562281555505999874>
-- [96] 
[CITE@ja[T.A.Y.MさんはTwitterを使っています: 「@kana_ides 「38にっぽんぐんかん」は第38哨戒艇(旧駆逐艦「蓬」)だそうで。蓬は「よもぎ」です」 / [[Twitter]]]], 午後1:54 · 2022年8月24日 [TZ[+09:00]], [TIME[2022-08-24T11:25:05.000Z]] <https://twitter.com/tamtam_ritz_yk/status/1562302218485006345>

[97] >>99 >>95 御神体の船 (の模型) に書かれた[[進行方向書き]](?)の[[右横書き]]側
「[R[[L[38]]につぽんぐんかん]]」。

「[L[38]]」は[[左横書き]]。


[102] [CITE[ktkk009_0001.pdf]], [TIME[2021-09-07T11:23:39.000Z]], [TIME[2022-09-19T06:34:14.244Z]] <https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/181618/1/ktkk009_0001.pdf#page=19>

[[右上縦書き]][[日本語]]の[[論文]]。
[[図題]] ([[明朝体]])
「[L[(Fig. 3)]] [R[第三圖]]」

[103] [CITE@ja[(1) 治田 洗礫さんはTwitterを使っています: 「@trainsgo そうですね! 当時も、数字・数式・英単語などを混ぜ書きする必要があるときは左書きだったようですが、和文も左書きなのに地図の日本語地名だけ右書きというのは珍しいかもですね。ややこしいです😄」 / Twitter]], [TIME[3月21日][2023-03-21T04:55:43.000Z]], [TIME[2023-03-24T06:57:57.000Z]] <https://twitter.com/Harita_arayshi/status/1638074182696325121>


[108] 
[CITE@ja[Xユーザーのちゅんさん: 「右からだったり、左からだったり横書きが楽しい。 横書きの向き、植物名とその表記、手書きの赤字、印刷された文字の書体……ってここだけでずっと楽しい。デジタル化したら嬉しい。 牧野富太郎『大日本植物志』校正紙 『芸術新潮』2023年7月号より https://t.co/PMAkwFrZbC https://t.co/WL4DR8v34a」 / X]], [TIME[午後7:39 · 2023年10月23日][2023-10-23T10:39:29.000Z]], [TIME[2024-08-20T11:04:35.000Z]] <https://x.com/coeos_/status/1716403965645250833/photo/1>


[110] 
[CITE@ja[Xユーザーのamiさん: 「🇰🇷日本の神社に見られる「神代文字は、韓国のハングル文字だ」 1910年に日本が朝鮮半島を併合した頃、朝鮮半島には文字が侵透していなかったため、日本がハングルを標準化して、学校教育に取り入れて普及しました。 一方、日本の神社の神代文字は少なくとも1,000年以上の歴史がありますね⁉️😅 https://t.co/Mhn0a5yAg6」 / X]], [TIME[午後0:03 · 2024年12月20日][2024-12-20T03:03:55.000Z]], [TIME[2024-12-21T01:51:53.000Z]] <https://x.com/AmiHeartGlitter/status/1869941773029781882>
動画 1:38 頃

神社の儀式で使われる紙。[[上横書き]]2行で、1行目は[[神代文字]]の[[右横書き]]。
2行目は[[片仮名]]の[[左横書き]]。


[121] [CITE@ja[ゴーストップ事件【ゆっくりが語る日本の歴史】 - ニコニコ動画]], [TIME[2025-05-26T23:08:34.000Z]], [TIME[2025-05-26T23:08:35.533Z]] <https://www.nicovideo.jp/watch/sm32000320>
11:25 頃

[122] >>121 [CITE[大阪朝日新聞]] [TIME[1933-07-18]]より画面右端に映り込んでいる記事。
「[R[[SNIP[]][MIRRORED(rtl)[〟]]のSOS!]]」

[123] 
>>122 この「SOS」は果たして[[左横書き]]なのか[[右横書き]]なのか...


[115] [CITE@ja[ヤフオク! - 戦前 南稲荷町々會 no.722 琺瑯 小プレート 看板...]], [TIME[2020-11-09T08:06:45.000Z]] <https://page.auctions.yahoo.co.jp/jp/auction/c866686828>

>
[RIGHT[
[R[南稲荷󠄂町々内[ASIS[會󠄃][点でなく縦]]]]

[L[NO. 722]]
]RIGHT]


[116] [CITE@ja[ヤフオク! - 新楠公はがき2銭 戦前小型印(初日) S13.11.25 ...]], [TIME[2020-11-09T07:27:00.000Z]] <https://page.auctions.yahoo.co.jp/jp/auction/v748728426>

消印

>
[RIGHTBOX[
[BOX(center)[
[R[防共協定記念]]

[R[國民大會]]

[L[13. 11. 25]]

[R[小石川]]
]BOX]
]RIGHTBOX]

昭和13年11月25日開催[[防共協定記念国民大会]]。

[117] [CITE[記念スタンプ]], [TIME[2019-01-23T13:38:00.000Z]], [TIME[2020-11-09T10:55:39.707Z]] <http://tokyowanyosai.com/soft/shakai/stamp.html>

[118] [CITE@ja[ヤフオク! - 超貴重 戦前 琺瑯看板 たばこのめぬ ホーロー看...]], [TIME[2020-11-09T07:51:47.000Z]] <https://page.auctions.yahoo.co.jp/jp/auction/504189066>

看板

>
[RIGHT[
[R[たばこのめぬ]]

[L[NO SMOKING]]
]RIGHT]

[119] [CITE@ja[ヤフオク! - 超稀少 国鉄 外房線 長者町 駅名板 駅 看板 右横...]], [TIME[2020-11-09T07:56:11.000Z]] <https://page.auctions.yahoo.co.jp/jp/auction/b420845133>

看板

>
[RIGHT[
[BOX(center)[
ちゃうじゃまち

長者町

CHŌJAMACHI
]BOX]
]RIGHT]

[120] [CITE@ja[右を向いている花王のロゴマーク - スバル、三菱、ダイハツ、いすず等 | MUUSEO]], [TIME[2020-11-09T08:24:51.000Z]] <https://muuseo.com/showa_express/items/323>

パンフレット
「[R[御旅行用にチューブ入]]」
「[L[KAO PÂTE]]」
「[L[25 SEN]]」
「[R[[ASIS[花][<https://glyphwiki.org/wiki/cc-2840>]]王パート]]」

[124] 
[CITE[レオン洗顔クリームの広告]], [TIME[2020-02-08T08:14:00.000Z]], [TIME[2020-11-09T10:03:53.896Z]] <http://tokyowanyosai.com/soft/shakai/pr-leon.html>

昭和17年4月

「[L[[SUP[衣料]]100[SUB[點]]]]」
「[R[[LINES[[R[レオン]]][[R[洗顏クリーム]]]]]]」
本文[[縦書き]]。

[125] 
[CITE[新女苑の広告]], [TIME[2020-10-19T12:47:00.000Z]], [TIME[2020-11-09T10:17:25.125Z]] <http://tokyowanyosai.com/soft/shakai/pr-shinjyo.html>

昭和18年10月
「[R[[L[11]]月号]]」

[[右横書き]]なのか1行1文字縦書きなのか確定し難いし、
「11」は[[左横書き]]の可能性が高いがはっきりしない。

[126] 
[CITE@en[File:Wartime saving bonds nippon 04.jpg - Wikimedia Commons]], [TIME[2020-10-26T10:39:18.000Z]], [TIME[2020-11-09T10:39:48.175Z]] <https://commons.wikimedia.org/wiki/File:Wartime_saving_bonds_nippon_04.jpg>

[V[昭和十九年六月]]。
「[R[第拾五回]]」
の真下に
「[L[61ノ組 172632]]」、
その真下に
「[R[金七圓五拾錢]]」。
本文[[縦書き]]。








[114] なお英字列を逆転させない事例は[[右横書き]]参照。


* 中文

- [84] [CITE@en[中央日報 1939.07.25 : 國民黨 : Free Download, Borrow, and Streaming : Internet Archive]], [TIME[2021-10-26T11:59:32.000Z]] <https://archive.org/details/zhongyang-ribao-1939.07.25>
-- [85] [CITE[1939.07.25.pdf]], [TIME[2021-10-13T09:45:01.000Z]], [TIME[2021-10-26T11:59:52.246Z]] <https://ia601507.us.archive.org/13/items/zhongyang-ribao-1939.07.25/1939.07.25.pdf#page=6>

左下広告のパッケージの絵。[[中文]]は[[右横書き]]、
[[英語]]は[[左横書き]]で[[行]]ごとに方向が違う。


[89] 
[[英領香港]]時代の[[官報]] (をもとにデザインされた画像) [SRC[>>109]]。
全体として[[英文]]ながら、
題名と日付に[[中文]]が併記されている。
[[英文]]は[[左上横書き]]。
[[西暦年]] + [[グレゴリオ暦]]。
[[中文]]は[[右横書き]]。
[[西暦年]] + [[グレゴリオ暦]] (1月も「[R[正月]]」表記) と[[干支年]] + [[農暦]]の組み合わせ。
([[英文]]日付にだけ「[L[VICTORIA,]]」とあるが、[[年数]]がないので[[ビクトリア女王]]ではなく[[英領香港]]の[[首都]][[ビクトリアハーバー]]の意だろう。)

[REFS[
-[109] 
[CITE@ja[幾個鐘頭前、下議院議員Andrew Rosindell... - Museum of Hong Kong 香港繆詩菴 | [[Facebook]]]], [[Museum of Hong Kong 香港繆詩菴]], [TIME[2021年1月21日木曜日 5:29][2021-01-21T13:29:05.000Z]], [TIME[2022-07-29T13:27:10.000Z]] <https://www.facebook.com/museumofhk126/photos/a.120415752730488/428977131874347/?type=3&theater>
]REFS]

* 越南語

[88] [CITE@ja[越南民主共和紙幣]], [TIME[2011-01-18T05:45:21.000Z]], [TIME[2022-02-27T06:18:39.077Z]] <http://www.for.aichi-pu.ac.jp/museum/l2yfol/lz2k01.html>

[[漢字]]表記は[[右横書き]]。[[ラテン文字]]表記 ([[国語]]) や[[欧州数字]]は[[左横書き]]。

[128] 
[CITE@ja[Xユーザーの𫇰國音之字さん: 「クリスマス https://t.co/btB7EpZT6D」 / X]], [TIME[午前11:30 · 2025年12月26日][2025-12-26T02:30:15.000Z]], [TIME[2025-12-26T01:57:47.000Z]] <https://x.com/mun_ghion/status/2004379198878814384/photo/1>

* 鏡像化

[57] 
[[左横書き]]と[[右横書き]]で、
[[グリフ]]が変化する[[文字]]もあります。
[SEE[ [[鏡像化]] ]]

- [[L4]]
- [[上位層プロトコル]]依存
-- [[HL6]]

* 複数行に分断された双方向性

[81] 
[[方向性]]の異なる句が含まれ、その部分で[[改行]]が発生する時、
文字の順序と行の順序が完全に一致する㋐:

[PRE[
abcdefgh DCBA
HGFE abcdefgh
]PRE]

... タイプと、文字の順序と行の順序が逆転する㋑:

[PRE[
abcdefgh HGFE
DCBA abcdefgh
]PRE]

... タイプがあり得ます。

[82] 
[[中東]]方面では㋐タイプが使われているようです。[[Webブラウザー]]もそのように実装されています。


[79] [CITE@ja[Mongul-un sonin bicig(1909-1918)という モンゴル語定期刊行物 -[[モンゴル語]]定期刊行物史における位置づけと所蔵状況1-]], [[フフバートル]],
[TIME[2015-02-01]],
[TIME[2021-05-05T10:13:42.000Z]] <https://swu.repo.nii.ac.jp/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=5875&item_no=1&page_id=30&block_id=97>

>
[PRE[
[SNIP[]]しかし,現在確認できるところでは,
新聞のNo.16 [WEAK[(1913.5.27)]] には右から左へ「報日
賓爾哈」と書かれた中国語の表記が現れ, No.27 
[WEAK[(1913.8.22)]] も書き順は右から左へであったが,内
容が「報日文蒙賓爾哈」となっていた。[SNIP[]]その下
に中国語で「哈爾賓蒙文報」と記され, 漢字表記は
左から右へと変わっている。[SNIP[]]
]PRE]

㋑

[83] 
[[近代日本語]]ではこのような事例は㋐型も㋑型も未発見です。
[[近代日本語]]で右書き、左書きが混在することがあっても、
そこそこ長く途中で改行可能な文字列が混在する事例があまりありません。
(あるとしたら[[右上横書き]]の日本語文中に複数語連続した[[英語]]か何かが引かれている感じのものでしょうか。)

* ルビ

[SEE[ [[書字方向混在とルビ]] ]]

* 楽譜

[SEE[ [[右横書き楽譜]] ]]

* MIME charset

[SEE[ [[RFC 1555]], [[RFC 1556]] ]]

* ECMA モデル

[SEE[ [[ECMA Technical Report TR/53]] ]]

* ISIRI 3342

[SEE[ [[ISIRI 3342]] ]]

* SI 1489

[112] 
[CITE@EN-US[Israeli Smart Card Standard SI 4424]], [[Jony Rosenne]], [TIME[2025-06-16T06:54:42.000Z]], [TIME[2001-06-28T04:14:01.470Z]] <https://web.archive.org/web/20010628040926/http://www.qsm.co.il/Hebrew/si4424e.htm>

* bidi 文字

[60] 
[[JIS X 0221-1:2001]]
[CSECTION[附属書F (参考) 代替書式文字]] F.1.3

[68] [CODE[Bidi_Control]]

* Unicode bidi アルゴリズム

[58] 
[[Unicode Consortium]]
の[[仕様書]]
[DFN[UAX #9]]
で
[[bidi]]
処理の[[アルゴリズム]]が規定されています。

[69] 
[[bidi overrides]],
[[bidi embeddings]],
[[bidi isolates]]
は、
[[paired stateful controls]]
です。
[SRC[>>70]]

[71] 
[[bidi overrides]],
[[bidi embeddings]],
[[bidi isolates]]
は、
[CODE[Default_Ignorable_Code_Point]]
です。
未対応の場合でも、
可視的な[[グリフ]]を表示する[RUBYB[べき][should]]ではありません。
[SRC[>>70]]


** Unicode ルビ文字との関係

[SEE[ [[interlinear annotation]] ]]

** 自動決定の失敗事例

[104] 
[CITE@ja[イスラーム的箴言さんはTwitterを使っています: 「قال ﷺ: "إذا نسي أحدكم فأكل أو شرب، فليتم صومه. فإنما أطعمه الله وسقاه." متفق عليه⁩ ⁧預言者は言った 「(斎戒しているのを)忘れて、食べたり飲んだりしてしまっても、斎戒を完遂しなさい。アッラーがその者に食べさせ、飲ませて下さったのだから。」 二大真正集の伝承 #ラマダーン」 / Twitter]], [TIME[午後2:20 · 2023年4月6日][2023-04-06T05:20:02.000Z]], [TIME[2023-06-02T05:34:25.000Z]] <https://twitter.com/apislamjp/status/1643846001554513921>

** 歴史

[105] [CITE[Microsoft Word - bidi5.doc - Davis-Bidi-draft5-1990.pdf]], [TIME[2009-02-13T23:41:41.000Z]], [TIME[2023-07-16T14:10:09.487Z]] <https://www.unicode.org/L2/Historical/Davis-Bidi-draft5-1990.pdf>

* bidi 検査

[46] [[Stringprep]] には [[bidi]] 文字の検査があります。

[45] [[IDNA2008]] と一部の [[PRECIS]] [[プロファイル]]では [[Bidi Rule]]
が使われます。

;; [[Bidi Rule]] 参照。

[107] [[ハンドル (YouTube)]]

* bidi 編集

[106] [CITE@en[Yudit HOWTO]], [TIME[2023-09-19T14:48:26.000Z]] <https://www.yudit.org/en/howto/bidi/>

>
[PRE[
The current Yudit Bidi implementation is trying to reverse an 
irreversible algorithm when resolving explicit levels.
This is text embedded within LRE-PDF, RLE-PDF, LRO-PDF and RLO-PDF
pairs. The algorithm can re-create the text from the
view. This also means that superfluous embedding tags
will be dropped when saving alien (non-Yudit) texts.
These tags will be dropped from portions of the document
that were at least once viewed. I will not give you an
exhaustive list of such cases.

1. While alien Unicode stream

    <RLO>text1<PDF>text2<RLO>text3<RLO>

 will be saved the same way,

    <RLO>text1<PDF><RLO>text2<PDF>

 will be saved as

    <RLO>text1text2<PDF>

 as they are equivalent, and the latter is shorter.

2. Empty pairs of

    <RLO><PDF>

 or

    <LRO><RLE><PDF><PDF>

 will be deleted from the text, as they have no effect.

3. Spurious 

    <PDF>

 with no matching embedding marks will be deleted 
 from the document.

4. To keep the text editable, LRM and RLM zero with marks are
 displayed in the editing window, but they will not appear when
 printing or when used in non-editable places, like labels.
]PRE]

* CSS における bidi

[19] [[CSS]] では [CODE(CSS)@en['[[unicode-bidi]]']] と [CODE(CSS)@en['direction']] の2つの[[特性]]が
[[bidi]] に関わります。 [[Unicode]] の [[bidi]] に関する[[文字]]と合わせて、 [[Unicode]]
の [[bidi]] アルゴリズムに従って[[レンダリング]]されます。

[54] [CITE@en[CSS Writing Modes Level 4]], [TIME[2020-09-05T23:08:25.000Z]], [TIME[2020-09-06T01:35:44.029Z]] <https://drafts.csswg.org/css-writing-modes/#text-direction>

* HTML における bidi

[75] 
[[RFC 2070]],
[[SI 4281]]

** 双方向アルゴリズム書式付け文字

[21] [[HTML]] でいう[DFN[[RUBYB[双方向アルゴリズム書式付け文字]@en[bidirectional-algorithm formatting characters]]]]は、
[[Unicode]] の [CODE[[[Bidi_Char]]]] のうち [[Implicit Directional Formatting Characters]]
3文字を除いた9文字とされています [SRC[>>11]]。いずれも [[Unicode]] の [[bidi]] アルゴリズムで動作が定義されている[[文字]]です。

[REFS[
- [20] [CITE@en[Character set "$html:bidirectional-algorithm-formatting-characters"]] ([TIME[2014-01-13 09:06:21 +09:00]] 版) <http://chars.suikawiki.org/set?expr=%24html%3Abidirectional-algorithm-formatting-characters>
]REFS]

** 双方向アルゴリズム書式付け文字範囲

[22] [DFN[[RUBYB[[[双方向アルゴリズム書式付け文字範囲]]]@en[bidirectional-algorithm formatting character ranges]]]]とは、次の各範囲です [SRC[>>11]]。
[FIG[
- [23] [[HTML要素]]の[[null名前空間]]の[[属性]]それぞれ
- [24] [[HTML要素]]の[[子供]]の [CODE(DOMi)@en[[[Text]]]] を連結し次のように分割した範囲それぞれ
-- [25] [CODE(HTMLe)@en[[[br]]]] [[要素]]があればそこで範囲を分割する
-- [26] [[語句内容]]でない[[フロー内容]]である[[HTML要素]]があればそこで範囲を分割する
]FIG]

** 著者に対する要件

[27] [[双方向アルゴリズム書式付け文字範囲]]においては、[[双方向アルゴリズム書式付け文字]]は次のように対になっていなければ[['''なりません''']]
[SRC[>>11]]。
[FIG[
- [28] [CODE(charname)@en[[[LRE]]]] / [CODE(charname)@en[[[RLE]]]] があれば、対応する [CODE(charname)@en[[[PDF]]]] があること
- [29] [CODE(charname)@en[[[LRO]]]] / [CODE(charname)@en[[[RLO]]]] があれば、対応する [CODE(charname)@en[[[PDF]]]] があること
- [30] [CODE(charname)@en[[[LRI]]]] / [CODE(charname)@en[[[RLI]]]] / [CODE(charname)@en[[[FSI]]]] 
があれば、対応する [CODE(charname)@en[[[PDI]]]] があること
]FIG]

[34] つまり [[CSS]] によって[[要素]]ごとに適用される規定 (>>18) と矛盾する形でこれらの[[文字]]を使うと[[レンダリング]]結果が予測しづらくなってしまいますから、
[[要素]]の入れ子関係とこれらの[[文字]]の入れ子関係が整合的でなければならないのです。

[31] しかしこれらの[[文字]]を直接使うよりは、 [CODE(HTMLa)@en[[[dir]]]] [[属性]]、
[CODE(HTMLe)@en[[[bdi]]]] [[要素]]、 [CODE(HTMLe)@en[[[bdo]]]] [[要素]]を使うことが[RUBYB[勧められています]@en[encouraged]]。
[SRC[>>11]]

;; [39] とはいえ[[属性値]]では[[文字]]を使うしかありません。

** 処理モデル

[13] [[HTML]] の[[レンダリング]]における [[bidi]] の扱いに関しては、 [CODE(CSS)@en['[[unicode-bidi]]']], 
[CODE(CSS)@en['[[direction]]']], [CODE(CSS)@en['[[content]]']] といった [[CSS]] の[[特性]]を介して
[[Unicode]] の [[bidi]] アルゴリズムに従うものとして定義されています [SRC[>>11]]。

[14] [[利用者エージェント]]は、
- [15] [[CSS]] を実装し、 >>13 や[[著者]]による指定に従う
- [16] >>13 の[[利用者エージェントスタイルシート]]に対応しているかのように実装するものの、
[[著者]]による [[CSS]] の指定には対応しない
- [17] [[CSS]] 以外の[[スタイル言語]]で、同等のものを実装する

... のいずれかの形で実装することを求められています [SRC[>>11]]。

[18] [[HTML]] の中では、 [CODE(HTMLa)@en[[[dir]]]] [[属性]]、 [CODE(HTMLe)@en[[[bdi]]]] [[要素]]、
[CODE(HTMLe)@en[[[bdo]]]] [[要素]]、 [CODE(HTMLe)@en[[[br]]]] [[要素]]、[CODE(HTMLe)@en[[[pre]]]]
[[要素]]、[CODE(HTMLe)@en[[[textarea]]]] [[要素]]、 [CODE(HTMLe)@en[[[wbr]]]] [[要素]]について [[bidi]]
に関わる[[レンダリング]]の規定があります。

[REFS[
- [32] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-01-09 07:29:06 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#bidi-rendering>
- [33] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-01-09 07:29:06 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#br-wbr-content>
]REFS]

[35] [[CSS]] 以外で[[レンダリング]]される場面についても規定があります。
[REFS[
- [38] [CODE(DOMm)@en[[[drawText]]]]
-- [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-01-09 07:29:06 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#text-preparation-algorithm>
- [36] [CODE(HTMLe)@en[[[title]]]] [[要素]]
-- [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-01-09 07:29:06 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#the-title-element>
- [37] [[UI]] 要素各種
-- [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-01-09 07:29:06 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#text-rendered-in-native-user-interfaces>
]REFS]

* 歴史

[59] 
[[JIS X 0211]]
1.
6.1.1
8.3.138 [CODE(charname)@en[SRS]]
F.6
F.7

[1]
[CITE[Authoring HTML for Middle Eastern Content]] <http://www.microsoft.com/globaldev/handson/dev/Mideast.mspx>
([[名無しさん]] [sage])

[2]
[CITE[Exploring Better Source Editing for Bidirectional XHTML and XML]] <http://www.sw.it.aoyama.ac.jp/2005/pub/IUC28-bidi/IUC28.html>
([[名無しさん]] [sage])

[3]
[CITE[Hebrew characters in XML and XHTML]] <http://www.nirdagan.com/hebrew/characters/#test>
([[名無しさん]])

[4]
[CITE[Authoring HTML for Middle Eastern Content]] <http://www.microsoft.com/globaldev/handson/dev/Mideast.mspx>
([[名無しさん]] [WEAK[2006-12-20 23:31:24 +00:00]])


[5]
[CITE@en-US[Internationalization Best Practices: Handling Right-to-left Scripts in XHTML and HTML Content -- (Editors' copy)]] ([TIME[2006-07-27 02:17:07 +09:00]] 版) <http://www.w3.org/International/geo/html-tech/tech-bidi.html>

[6] [CITE[Revision of UBA for improved display of URL/IRIs - Google Docs]]
( ([TIME[2011-07-23 14:30:01 +09:00]] 版))
<https://docs.google.com/document/d/1c8-svx7og0qBUfGBobw7LYfOcNeDVPYbNVMNpSqYCFo/edit?hl=en>
(cache <https://suika.suikawiki.org/gate/2007/schema/schema/6ab74bc21022f5cc9bfd95a62c76046a/prop.html>

[7] [CITE@en[Web Applications 1.0 r5754   Define conformance criteria around bidi formatting characters]]
( ([TIME[2011-01-10 18:55:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5753&to=5754>

[8] [CITE@en[Web Applications 1.0 r7783     Update HTML in preparation for Unicode 6.3]]
( ([TIME[2013-03-30 08:20:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7782&to=7783>

[9] [CITE[Widget Interface]]
( ([TIME[2013-10-29 00:58:56 +09:00]] 版))
<http://www.w3.org/TR/widgets-apis/#getting-localizable-strings>

[10] [CITE@en-US[Additional Requirements for Bidi in HTML]]
([TIME[2010-03-05 16:28:54 +09:00]] 版)
<http://www.w3.org/TR/2010/WD-html-bidi-20100304/>

[12] [CITE[IRC logs: freenode / #whatwg / 20101111]]
( ([TIME[2010-11-19 23:02:05 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20101111#l-254>

[40] [CITE@en-US[Notifications API Standard]]
( ([TIME[2014-02-11 16:20:34 +09:00]] 版))
<http://notifications.spec.whatwg.org/#direction-0>

[41] [CITE@en[Additional Requirements for Bidi in HTML & CSS]]
( ([TIME[2015-07-16 21:26:45 +09:00]] 版))
<http://www.w3.org/TR/2015/NOTE-html-bidi-20150721/>

[42] [CITE@en[IRIs and bidirectional formatting characters]]
([[Anne van Kesteren]] 著, [TIME[2015-08-25 19:28:17 +09:00]] 版)
<https://lists.w3.org/Archives/Public/www-international/2015JulSep/0126.html>

[43] [CITE@en[Add a section on rendering URLs with some advice around bidirectional… · whatwg/url@d1152b9]]
([TIME[2015-08-27 11:53:08 +09:00]] 版)
<https://github.com/whatwg/url/commit/d1152b94a16ae91e1f72d128fd5ef589635f0e7c>

[44] [CITE@en[Tweak the bidirectional rendering note and add a dependency on UTS36.… · whatwg/url@e67f9dd]]
([TIME[2015-09-02 11:24:50 +09:00]] 版)
<https://github.com/whatwg/url/commit/e67f9dd7a1106d867862d3b5d9f044388f84909e>

[47] [CITE@en[CSV on the Web: Use Cases and Requirements]]
([TIME[2016-02-21 17:43:46 +09:00]] 版)
<https://www.w3.org/TR/2016/NOTE-csvw-ucr-20160225/#UC-SupportingRightToLeftDirectionality>

[48] [CITE@en[Remove document conformance requirements for bidi characters]]
([[zcorpan]]著, [TIME[2016-08-11 02:53:58 +09:00]])
<https://github.com/whatwg/html/commit/fe9dce390338a7f8941ba504d5aab7d56f2099f4>

[49] [CITE@en[Use of ZWJ · Issue #2 · w3c/i18n-discuss]]
([TIME[2017-04-12 23:36:37 +09:00]])
<https://github.com/w3c/i18n-discuss/issues/2>

[50] [CITE[XLIFF Version 2.0]]
([TIME[2014-08-06 01:00:00 +09:00]])
<http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html#d0e9515>

[51] [CITE@en[Micropub]]
([TIME[2017-05-21 23:18:57 +09:00]])
<https://micropub.net/draft/#h-bidirectional-text>



[52] [CITE@en[Activity Streams 2.0]]
([TIME[2017-05-21 23:50:36 +09:00]])
<https://w3c.github.io/activitystreams/core/#biditext>

[53] [CITE@en[Restructure URL rendering section and add additional guidance]]
([[estark37]]著, [TIME[2019-04-04 23:49:46 +09:00]])
<https://github.com/whatwg/url/commit/8809598ddfd1d935432c8a0cad53f13d70e24bc6>

[61] [CITE@en-us[UAX #44: Unicode Character Database]]
([TIME[2020-03-06T22:23:11.000Z]], [TIME[2020-10-21T08:58:43.231Z]])
<https://www.unicode.org/reports/tr44/#BidiTest_txt>

[62] [CITE@en[WebVTT: The Web Video Text Tracks Format]], [TIME[2019-12-16T16:42:48.000Z]], [TIME[2020-10-23T14:41:11.908Z]] <https://w3c.github.io/webvtt/#webvtt-cue-text-alignment>

[63] [CITE@ja[20150322「第2回アラビア語入門講座@東京」を終えての画像]]
([TIME[2020-11-10T06:09:43.000Z]])
<https://ameblo.jp/a-cstokyo/image-12005152382-13253675869.html>

[FIG(quote)[
[FIGCAPTION[
[67] [CITE@en-US[Fribidi -]]
([TIME[2020-12-11T12:17:15.000Z]])
<http://fribidi.org/>
]FIGCAPTION]

> GNU FriBidi is an implementation of the Unicode Bidirectional Algorithm (bidi).

]FIG]

[72] [CITE@en[Browsers ignoring Bidi Embedding Controls is probably not web-compatible · Issue #20 · w3c/unicode-xml · GitHub]], [TIME[2020-12-17T09:09:19.000Z]] <https://github.com/w3c/unicode-xml/issues/20>


[73] [CITE@ja[日本の心・さいき(佐伯) : アラビア語・・・]]
([TIME[2020-12-20T12:15:19.000Z]])
<http://blog.livedoor.jp/mt221414/archives/52184053.html>

[74] [CITE@ja[単位をたずねて三千粁?~青梅編 - ことばマガジン:朝日新聞デジタル]]
([[The Asahi Shimbun Company]], [TIME[2020-12-25T07:41:40.000Z]])
<http://www.asahi.com/special/kotoba/archive2015/photo/photo.html%3Fphoto=%252FS2007%252Fupload%252F2012110500008_18.JPG.html>

[76] [CITE@EN-US[Middle Eastern Language Issues]], [TIME[2021-01-29T09:08:34.000Z]], [TIME[2001-04-13T17:58:29.269Z]] <https://web.archive.org/web/20010413175141/http://www.microsoft.com/globaldev/mideast/meissues.asp>


[86] [CITE@en[Security advisory for rustc (CVE-2021-42574) | Rust Blog]]
([TIME[2021-11-01T12:39:48.000Z]], [TIME[2021-11-02T02:21:34.380Z]])
<https://blog.rust-lang.org/2021/11/01/cve-2021-42574.html>

[87] [CITE@en-US[Warning about bidirectional Unicode text | GitHub Changelog]]
([TIME[2021-11-02T02:26:07.000Z]])
<https://github.blog/changelog/2021-10-31-warning-about-bidirectional-unicode-text/>

[101] [CITE@en[GitHub - fribidi/fribidi: GNU FriBidi]], [TIME[2022-08-29T14:26:51.000Z]] <https://github.com/fribidi/fribidi>

[111] 
[CITE@EN-US[Middle Eastern Language Issues]], [TIME[2025-06-15T14:42:21.000Z]], [TIME[2001-04-13T19:46:10.133Z]] <https://web.archive.org/web/20010413175141/http://www.microsoft.com/globaldev/mideast/meissues.asp>


[113] [CITE[Index of /arabjoin]], [TIME[2025-06-16T13:51:10.000Z]] <http://czyborra.com/arabjoin/>

[127] 
[CITE[*BiDirectional]], [TIME[2025-11-26T09:15:30.000Z]], [TIME[1996-12-20T06:00:01.397Z]] <https://web.archive.org/web/19961220055741/http://www.lotus.com/ireland/196.htm>
