双方向テキスト
HTML 4.01 では、暗黙の文字の進行方向は左横書きに固定されている。dir 属性によって方向を変更することができる。また、通常の表示順を変更することのできる BDO 要素があり、たとえば表示順に並んでいるテクストを正しく表示するのに使うことができる。これは Unicode の LRO/RLO/PDF と同じ役割を果たす。
Unicode の LRM と RLM は、それぞれ文字実体参照 &lrm; と &rlm; として定義されている。
HTML5 では、BDI (Text directionality isolation) 要素が追加され、要素の中のテキストが周辺に影響を及ぼさないように分離することができる。
双方向テキストには表示順と論理順の2種類がある。表示順は、表示方向を(通常は左から右に)固定しておき、右から左に書くテキストは逆順にデータを格納する。この方法では、表示アルゴリズムは単純化されるが、右横書きのテキストを入力するには特殊なことをしなければならない。論理順では、左横書きでも右横書きでも、論理的に先に来るものを先に格納する。自然な方法だが、表示アルゴリズムは複雑になる。
MIMEの双方向テキストに関する規格である RFC-1556 では、アラビア文字(ISO/IEC 8859-6)およびヘブライ文字(ISO/IEC 8859-8)については表示順を既定とし、iso-8859-6-e、iso-8859-8-e を指定した場合は明示的に方向を指定、iso-8859-6-i、iso-8859-8-i では暗黙の論理的方向に従うとする。W3C では論理順を使用し、接尾辞 -i が付いた文字集合を指定することを推奨している。
Unicode は論理順を採用している。
以下の節ではいずれも論理順の場合に必要になるアルゴリズムを示す。