I have a page with English text with occasionally inserted Hebrew words, for which I use Hebrew character entities. Being the text is primarily English, I do not set the dir attribute anywhere on the page, and write the entities in the order I want them to appear. However, when the entities are parsed, apparently the browser (Firefox and Safari on Mac) recognize them as a right-to-left language, and reverses the order of appearance.
Even if I try manipulating the order of the Hebrew character entities by placing them in <span lang="he" dir="rtl"> or <span lang="he" dir="ltr"> containers, it has no effect - the order is still reversed from the way it is written in the code.
Can anyone tell me what is happening here, and why I have no control over how the characters are displayed?
I am not comfortable with depending on the browser/system making decisions on how I want a string of characters displayed for me based on the range of entities I use.
Correct me if I am wrong. Aren't middle eastern languages such as Arabic and Hebrew written from bottom to top and thus left to right?
So my guest is it's not about the order of appearance (LTR) in the page as in Englsih or other Western languages.
My suggestion is to actually reverse the order of appearance of those characters otherwise you would have to convert them into graphics.
I am interested to see how that goes.
The characters are reversed in the code, the problem is that the browser (or system?) apparently detects that they are in the Unicode range of Hebrew characters, and thus reverses the order of their appearance.
What is frustrating, is that I am unable to manipulate their order using the dir attribute in two different standards compliant browsers.
I could just reverse the order of the entities, and get them to show up the way I want to, but that is not a fix, and would be unreliable.
I am thinking that the browser is rendering the Hebrew characters in accordance to the Unicode bi-directional algorithm, which is what a standards-compliant browser should do. So the solution in my case (where my Hebrew words are inline) would be simply to reverse the order from what I have it in the code, with the expectation that a standards-compliant browser will apply the algorithm properly, and in this case, order the display of the individual characters right-to-left.