Navigation HTML中的RTL(从右到左)键盘导航<;TextArea>;
我正在使用一些HTML,其中包含Navigation HTML中的RTL(从右到左)键盘导航<;TextArea>;,navigation,keyboard,textarea,right-to-left,keyboard-navigation,Navigation,Keyboard,Textarea,Right To Left,Keyboard Navigation,我正在使用一些HTML,其中包含。目前,我正在测试基于LTR和RTL的混合字符的输入,例如“abcأبجabc” 在RTL模式下,字符串显示正确,但键盘导航不正确。具体来说,在浏览英语和阿拉伯语字符串部分时,它没有遵循正确的顺序 你知道我如何绕过或解决这个问题吗?事实上你做不到。 作为一个说希伯来语的人,我可以告诉你,在这方面有很多问题,特别是当你混合使用RTL和LTR语言或者有时是数字时。 你无能为力。有时浏览器可以处理,有时不能。 例如,在Chrome中,当您使用Ctrl键在希伯来文文
。目前,我正在测试基于LTR
和RTL
的混合字符的输入,例如“abcأبجabc”
在RTL
模式下,字符串显示正确,但键盘导航不正确。具体来说,在浏览英语和阿拉伯语字符串部分时,它没有遵循正确的顺序
你知道我如何绕过或解决这个问题吗?事实上你做不到。
作为一个说希伯来语的人,我可以告诉你,在这方面有很多问题,特别是当你混合使用RTL和LTR语言或者有时是数字时。
你无能为力。有时浏览器可以处理,有时不能。
例如,在Chrome中,当您使用Ctrl键在希伯来文文本中移动得更快时,左右键的方向会变为相反方向。不幸的是,根据规范,键盘导航可能是“正确的”。当尝试运行混合方向的单词时,键盘快捷键(如Ctrl+>)要从一个单词跳到另一个单词,请根据光标当前位置下字符的方向性开始更改方向,而不是从导航角度将整个字符串视为单向
这是可以理解的,但是当你考虑计算机在键入混合模式句子时需要解释所有其他击键。
如果您开始键入LTR
字符,您希望它们从左向右移动(后续每个字符显示在最后一个字符的右侧)。但是,如果您开始键入RTL
字符,您希望它们从右向左移动(后面的每个字符都显示在最后一个字符的左边)
这样想:
Ctrl+>并不意味着“往右转一个单词”-它意味着“转到下一个单词”。在RTL
环境中,下一个单词位于左侧-因此键盘会向该方向跳跃
接下来,本质上与字节在内存中的保存顺序有关,而不是与字符在屏幕上的显示顺序有关。无论单词是从屏幕的右侧还是左侧开始,字符都会按顺序保存在内存中,从单词的开头开始,到单词的结尾结束
换句话说:Ctrl+>按字节顺序移动,而不是按显示顺序移动
所以-回到你的问题,如何克服它
除非您编写一些相当复杂的JavaScript(它包含自己的一系列挑战和麻烦)来改变键盘导航在您的框中的工作方式,否则没有好的方法来“修复”它。但是,如果您觉得这会对您的客户产生负面影响,您可以尝试以下替代方案:
LTR
和RTL
文本,这也是他们在其他应用程序中经常做的事情。这意味着他们可能已经习惯了这组问题,因为这是一组标准问题。如果他们经常这样做——他们可能已经有了他们习惯的变通方法——而你改变它来修复它实际上可能会损害他们的生产力您只需使用样式添加div:
以下是代码:
这是否应该在浏览器级别得到支持?谢谢
<div class="mycomment" dir="RTL">
<form method="get" action="{$self}">
<input type="hidden" name="Id" value="{$entry}" />
<textarea name="comment" class="commentarea"/></textarea>
<br />
<input class="button" type="submit" value="{$postlink}" />
</form>
</div>