Any of the above can be done with Unicode, HTML, or CSS alone.

<p dir="ltr"> <ul> <li>Current Unicode, HTML, and CSS standards allow the text direction to be explicitly set and opposite direction text like this <span dir="rtl">كلمة!</span> to be wrapped so that ambiguous characters like numbers or punctuation display in the correct position.</li> <li>Text with an unknown direction can also be wrapped (such as this <bdi>1. كلمة</bdi> coming from a form) so that the direction is automatically determined apart from the surrounding text.</li> <li>In the rare case that the character order should be reversed, the default character direction can be overriden such that, for example, the Latin text "abc" becomes "<bdo dir="rtl">abc</bdo>".</li> </ul> Any of the above can be done with Unicode, HTML, or CSS alone.</p>