2011-06-12 73 views
0

請考慮這兩個<input>的:http://jsfiddle.net/T7gUX/ 它們包含英語和希伯來語/阿拉伯字符的混合(均使用從右到左的方向)。混合RTL/LTR文本中的左/右光標導航

問題是關於VK_LEFT/VK_RIGHT(鍵盤按鍵)的處理在此類案文,我們有兩個選擇:

  1. FF/GC - 左/右總是 視覺爲了處理 - 不管 方向性插入符號下面的字符 - LEFT始終將插入符號移到左側。
  2. IE-LEFT/RIGHT匹配左側/右側 RTL字符但在LTR上(例如 英文)插入符號移動是反向的 - 按下LEFT將插入符號移到右側。

什麼是正確的行爲?如果「正確的」這個詞在這裏完全適用。

回答

0

我很遺憾地說,但IE方式是正確的。 MS有專門的人員來做i18n,根據我的說法,IE是i18n方面最好的網絡瀏覽器(雖然還遠遠不夠正確)。

據我所知,Windows中的所有其他文本框控件的行爲就像IE一樣。看來Gecko(它是問題的根源?)錯誤地實現了這種行爲(忽略Unicode字符的方向性)。

順便說一句。對於「滾動」有點混亂的我來說,突然改變方向......然而,對於習慣於頻繁輸入雙向文本的人來說,這似乎是正確的。

+0

請考慮以下變體:http://jsfiddle.net/T7gUX/1/ dir = rtl中只包含LTR字符。插入方向仍然在那裏逆轉。對我來說似乎是錯誤的。 問題是,我個人不認識任何RTL語言,所以我的個人意見是不相關的。 – 2011-06-12 17:12:13

+0

我不知道你是否看到我所做的一切,但IE9似乎表現得完全相反 - 當我按下英文(LTR)文本上的右箭頭並在希伯來語上右移時,移動插入符號似乎...似乎成爲一個缺陷。 – 2011-06-12 18:21:43

+0

這就是我已經注意到這麼問了。使用SHIFT + LEFT/RIGHT(選擇),所有瀏覽器的行爲都相同。 – 2011-06-12 19:55:24