Like other editing systems on Mac OS X, WebKit should display a split caret when on the boundary between a LTR and RTL run. The high caret is the "primary caret" and corresponds to the place the caret would be for the base writing direction. The low caret is the "secondary caret" and corresponds to the place the caret would be for the other writing direction.
I've got a patch in the works that implements this.
Created attachment 2644 [details] First cut at a fix; some wrong concepts, needs a lot of work
Bug 3729 talks about a related issue, making the right and left arrow keys do the right thing in RTL text.
I started working on this bug and on bug 3729 (starting with the latter), ressurrecting bits from Darin's patch. I am changing inlineBox() so that for "primary" it will always return the box whose direction is the same as the base direction, for both edges. That seems to work well. I also think that as the "base direction" you should take the direction of the block, which is not necessarily the same as the RenderText's direction, but I still haven't changed that.
Regressions are P1.
<rdar://problem/5183684>
The bug the 22386 is Windows counterpart of this bug.