nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.11k stars 637 forks source link

reversed words in flat review with arabic language #1601

Closed nvaccessAuto closed 9 years ago

nvaccessAuto commented 13 years ago

Reported by fatma.mehanna on 2011-06-22 15:05 there is a problem with the arabic language. don't know if it exists before lanuching the beta or not. the problem is when we are in a skype conversation window and pressing nvda+tab to be sure of what we type before sending it, nvda reads the message correctly then repeats it but in a transposing way. i.e it reads the message again but from the end of the line. this problem also appears when we use the flat review in ms word. can't be sure if it appears in other places or not. note, we never saw this problem before. i created a log file that may help you discover the root of the problem.

nvaccessAuto commented 13 years ago

Attachment word.log added by fatma.mehanna on 2011-06-24 12:55 Description:

nvaccessAuto commented 13 years ago

Attachment displayModel_rtlReading.patch added by mdcurran on 2011-07-04 08:56 Description: Patch for first try of supporting RTL in display models

nvaccessAuto commented 11 years ago

Attachment strange chars using flatReview in excel.log added by fatma.mehanna on 2013-04-14 10:17 Description:

nvaccessAuto commented 11 years ago

Attachment rtl problem with windows arabic locale.log added by fatma.mehanna on 2013-04-15 23:03 Description:

nvaccessAuto commented 13 years ago

Comment 1 by fatma.mehanna on 2011-06-22 15:19 INFO - nvda (16:43:21): Starting NVDA INFO - core.main (16:43:22): Config dir: C:\Documents and Settings\Administrator\Application Data\nvda INFO - core.main (16:43:22): NVDA version main-4487 INFO - core.main (16:43:22): Using Windows version sys.getwindowsversion(major=5, minor=1, build=2600, platform=2, service_pack='Service Pack 3') INFO - core.main (16:43:22): Using Python version 2.7.2 (default, Jun 12 2011, 15:08:59) v.1500 32 bit (Intel) INFO - core.main (16:43:22): Using comtypes version 0.6.2 INFO - synthDriverHandler.setSynth (16:43:33): Loaded synthDriver sapi4 INFO - core.main (16:43:33): Using wx version 2.8.11.0 (msw-unicode) INFO - braille.initialize (16:43:33): Using liblouis version 2.3.0 INFO - braille.BrailleHandler.setDisplayByName (16:43:33): Loaded braille display driver noBraille WARNING - core.main (16:43:34): UIA not available INFO - core.main (16:43:34): NVDA initialized IO - speech.speak (16:50:24): Speaking Protocol dialog MSN:\nUnread mail is available: 8 in Inbox and 0 in other folders).' IO - speech.speak (16:50:24): Speaking button' IO - inputCore.InputManager.executeGesture (16:50:27): Input: kb(desktop):NVDA+tab IO - speech.speak (16:50:27): Speaking button focused' IO - inputCore.InputManager.executeGesture (16:50:27): Input: kb(desktop):space IO - speech._speakSpellingGen (16:50:27): Speaking character u'space' IO - speech.speak (16:50:27): Speaking [- IAccessibleHandler.accessibleObjectFromEvent (16:50:27): oleacc.AccessibleObjectFromEvent with window 656512, objectID -4 and childID 0: Error -2147024809 The parameter is incorrect IO - speech.speak (16:50:28): Speaking [- inputCore.InputManager.executeGesture (16:50:29): Input: kb(desktop):windows+r DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (16:50:29): Window 983318 dead or not responding: Error 6 The handle is invalid. DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (16:50:29): Window 263504 dead or not responding: 6 The handle is invalid. DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (16:50:29): Window 263504 dead or not responding: 6 The handle is invalid. IO - speech.speak (16:50:29): Speaking dialog' IO - speech.speak (16:50:29): Speaking box' IO - speech.speak (16:50:29): Speaking [- speech.speak (16:50:29): Speaking u'selected winword' IO - inputCore.InputManager.executeGesture (16:50:30): Input: kb(desktop):w IO - speech._speakSpellingGen (16:50:30): Speaking character u'w' IO - speech.speak (16:50:30): Speaking removed' IO - inputCore.InputManager.executeGesture (16:50:30): Input: kb(desktop):i IO - speech._speakSpellingGen (16:50:30): Speaking character u'i' IO - inputCore.InputManager.executeGesture (16:50:30): Input: kb(desktop):n IO - speech._speakSpellingGen (16:50:30): Speaking character u'n' IO - inputCore.InputManager.executeGesture (16:50:31): Input: kb(desktop):w IO - speech._speakSpellingGen (16:50:31): Speaking character u'w' IO - inputCore.InputManager.executeGesture (16:50:31): Input: kb(desktop):o IO - speech._speakSpellingGen (16:50:31): Speaking character u'o' IO - inputCore.InputManager.executeGesture (16:50:32): Input: kb(desktop):r IO - speech._speakSpellingGen (16:50:32): Speaking character u'r' IO - inputCore.InputManager.executeGesture (16:50:32): Input: kb(desktop):d IO - speech._speakSpellingGen (16:50:32): Speaking character u'd' IO - inputCore.InputManager.executeGesture (16:50:32): Input: kb(desktop):p IO - speech._speakSpellingGen (16:50:32): Speaking character u'p' IO - inputCore.InputManager.executeGesture (16:50:34): Input: kb(desktop):backspace IO - speech._speakSpellingGen (16:50:34): Speaking character u'p' IO - inputCore.InputManager.executeGesture (16:50:34): Input: kb(desktop):enter IO - speech.speak (16:50:34): Speaking list' IO - speech.speak (16:50:34): Speaking Firefox 10 of 14' IO - speech.speak (16:50:35): Speaking Arabic (101)' IO - speech.speak (16:50:35): Speaking - Microsoft Word' IO - speech.speak (16:50:35): Speaking [- speech.speak (16:50:35): Speaking u'Microsoft Word Document edit' IO - speech.speak (16:50:35): Speaking 1 blank' IO - inputCore.InputManager.executeGesture (16:50:36): Input: kb(desktop):f IO - speech._speakSpellingGen (16:50:36): Speaking character u'\u0628' IO - inputCore.InputManager.executeGesture (16:50:36): Input: kb(desktop):s IO - speech._speakSpellingGen (16:50:36): Speaking character u'\u0633' IO - inputCore.InputManager.executeGesture (16:50:37): Input: kb(desktop):l IO - speech._speakSpellingGen (16:50:37): Speaking character u'\u0645' IO - inputCore.InputManager.executeGesture (16:50:37): Input: kb(desktop):space IO - speech.speakTypedCharacters (16:50:37): typed word: بسم IO - speech._speakSpellingGen (16:50:37): Speaking character u'space' IO - inputCore.InputManager.executeGesture (16:50:37): Input: kb(desktop):h IO - speech._speakSpellingGen (16:50:37): Speaking character u'\u0627' IO - inputCore.InputManager.executeGesture (16:50:37): Input: kb(desktop):g IO - speech._speakSpellingGen (16:50:37): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:50:37): Input: kb(desktop):g IO - speech._speakSpellingGen (16:50:37): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:50:38): Input: kb(desktop):i IO - speech._speakSpellingGen (16:50:38): Speaking character u'\u0647' IO - inputCore.InputManager.executeGesture (16:50:38): Input: kb(desktop):space IO - speech.speakTypedCharacters (16:50:38): typed word: الله IO - speech._speakSpellingGen (16:50:38): Speaking character u'space' IO - inputCore.InputManager.executeGesture (16:50:38): Input: kb(desktop):h IO - speech._speakSpellingGen (16:50:38): Speaking character u'\u0627' IO - inputCore.InputManager.executeGesture (16:50:38): Input: kb(desktop):g IO - speech._speakSpellingGen (16:50:38): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:50:39): Input: kb(desktop):v IO - speech._speakSpellingGen (16:50:39): Speaking character u'\u0631' IO - inputCore.InputManager.executeGesture (16:50:39): Input: kb(desktop):p IO - speech._speakSpellingGen (16:50:39): Speaking character u'\u062d' IO - inputCore.InputManager.executeGesture (16:50:39): Input: kb(desktop):l IO - speech._speakSpellingGen (16:50:39): Speaking character u'\u0645' IO - inputCore.InputManager.executeGesture (16:50:40): Input: kb(desktop):k IO - speech._speakSpellingGen (16:50:40): Speaking character u'\u0646' IO - inputCore.InputManager.executeGesture (16:50:40): Input: kb(desktop):space IO - speech.speakTypedCharacters (16:50:40): typed word: الرحمن IO - speech._speakSpellingGen (16:50:40): Speaking character u'space' IO - inputCore.InputManager.executeGesture (16:50:40): Input: kb(desktop):h IO - speech._speakSpellingGen (16:50:40): Speaking character u'\u0627' IO - inputCore.InputManager.executeGesture (16:50:40): Input: kb(desktop):g IO - speech._speakSpellingGen (16:50:40): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:50:41): Input: kb(desktop):p IO - speech._speakSpellingGen (16:50:41): Speaking character u'\u062d' IO - inputCore.InputManager.executeGesture (16:50:42): Input: kb(desktop):backspace IO - speech._speakSpellingGen (16:50:42): Speaking character u'\u062d' IO - inputCore.InputManager.executeGesture (16:50:42): Input: kb(desktop):v IO - speech._speakSpellingGen (16:50:42): Speaking character u'\u0631' IO - inputCore.InputManager.executeGesture (16:50:43): Input: kb(desktop):p IO - speech._speakSpellingGen (16:50:43): Speaking character u'\u062d' IO - inputCore.InputManager.executeGesture (16:50:43): Input: kb(desktop):d IO - speech._speakSpellingGen (16:50:43): Speaking character u'\u064a' IO - inputCore.InputManager.executeGesture (16:50:44): Input: kb(desktop):l IO - speech._speakSpellingGen (16:50:44): Speaking character u'\u0645' IO - inputCore.InputManager.executeGesture (16:50:49): Input: kb(desktop):NVDA+numpad7 IO - speech.speak (16:50:49): Speaking window' IO - speech.speak (16:50:49): Speaking 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3\n' IO - inputCore.InputManager.executeGesture (16:51:02): Input: kb(desktop):downArrow IO - speech.speak (16:51:02): Speaking \u0627\u0644\u0644\u0647 \u0627\u0644\u0631\u062d\u0645\u0646 \u0627\u0644\u0631\u062d\u064a\u0645\r' IO - inputCore.InputManager.executeGesture (16:51:03): Input: kb(desktop):NVDA+numpad7 IO - speech.speak (16:51:03): Speaking - Microsoft Word window' IO - speech.speak (16:51:03): Speaking 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3\n' IO - inputCore.InputManager.executeGesture (16:51:08): Input: kb(desktop):upArrow IO - speech.speak (16:51:08): Speaking \u0627\u0644\u0644\u0647 \u0627\u0644\u0631\u062d\u0645\u0646 \u0627\u0644\u0631\u062d\u064a\u0645\r' IO - inputCore.InputManager.executeGesture (16:51:13): Input: kb(desktop):alt+f4 IO - speech.speak (16:51:13): Speaking Office Word dialog Do you want to save the changes to Document1?' IO - speech.speak (16:51:13): Speaking button Alt+y' IO - inputCore.InputManager.executeGesture (16:51:14): Input: kb(desktop):rightArrow IO - speech.speak (16:51:14): Speaking button Alt+n' IO - inputCore.InputManager.executeGesture (16:51:15): Input: kb(desktop):enter DEBUG - appModuleHandler.update (16:51:19): application winword closed IO - speech.speak (16:51:19): Speaking [- inputCore.InputManager.executeGesture (16:51:28): Input: kb(desktop):NVDA+n IO - speech.speak (16:51:28): Speaking u'NVDA menu' IO - inputCore.InputManager.executeGesture (16:51:29): Input: kb(desktop):downArrow IO - speech.speak (16:51:29): Speaking subMenu p' IO - inputCore.InputManager.executeGesture (16:51:29): Input: kb(desktop):downArrow IO - speech.speak (16:51:30): Speaking subMenu t' IO - inputCore.InputManager.executeGesture (16:51:30): Input: kb(desktop):upArrow IO - speech.speak (16:51:30): Speaking subMenu p' IO - inputCore.InputManager.executeGesture (16:51:31): Input: kb(desktop):rightArrow IO - speech.speak (16:51:31): Speaking settings... g' IO - inputCore.InputManager.executeGesture (16:51:31): Input: kb(desktop):enter DEBUGWARNING - watchdog._watcher (16:51:32): Trying to recover from freeze, core stack: File "nvda.pyw", line 155, in File "core.pyc", line 296, in main File "wx_core.pyc", line 8007, in MainLoop File "wx_core.pyc", line 7303, in MainLoop File "core.pyc", line 281, in Notify File "IAccessibleHandler.pyc", line 848, in pumpAll File "IAccessibleHandler.pyc", line 622, in processGenericWinEvent File "eventHandler.pyc", line 31, in queueEvent File "queueHandler.pyc", line 35, in queueFunction File "Queue.pyc", line 148, in put_nowait File "Queue.pyc", line 118, in put

IO - speech.speak (16:51:32): Speaking settings dialog' IO - speech.speak (16:51:32): Speaking (requires restart to fully take affect): combo box English (United States), en Alt+l' IO - inputCore.InputManager.executeGesture (16:51:32): Input: kb(desktop):tab IO - speech.speak (16:51:32): Speaking configuration on exit check box not checked Alt+s' IO - inputCore.InputManager.executeGesture (16:51:33): Input: kb(desktop):tab IO - speech.speak (16:51:33): Speaking before exiting NVDA check box checked Alt+w' IO - inputCore.InputManager.executeGesture (16:51:33): Input: kb(desktop):tab IO - speech.speak (16:51:33): Speaking level: combo box debug Alt+o' IO - inputCore.InputManager.executeGesture (16:51:34): Input: kb(desktop):tab IO - speech.speak (16:51:34): Speaking start NVDA after I log on to Windows check box not checked Alt+a' IO - inputCore.InputManager.executeGesture (16:51:35): Input: kb(desktop):shift+tab IO - speech.speak (16:51:35): Speaking level: combo box debug Alt+o' IO - inputCore.InputManager.executeGesture (16:51:36): Input: kb(desktop):upArrow IO - speech.speak (16:51:36): Speaking [- inputCore.InputManager.executeGesture (16:51:36): Input: kb(desktop):upArrow IO - speech.speak (16:51:36): Speaking u'debug warning' IO - inputCore.InputManager.executeGesture (16:51:37): Input: kb(desktop):upArrow IO - speech.speak (16:51:37): Speaking [- inputCore.InputManager.executeGesture (16:51:37): Input: kb(desktop):upArrow IO - inputCore.InputManager.executeGesture (16:51:38): Input: kb(desktop):tab IO - speech.speak (16:51:38): Speaking u'Automatically start NVDA after I log on to Windows check box not checked Alt+a' IO - inputCore.InputManager.executeGesture (16:51:38): Input: kb(desktop):tab IO - speech.speak (16:51:38): Speaking NVDA on the Windows logon screen (requires administrator privileges) check box not checked' IO - inputCore.InputManager.executeGesture (16:51:38): Input: kb(desktop):tab IO - speech.speak (16:51:38): Speaking currently saved settings on the logon and other secure screens (requires administrator privileges) button' IO - inputCore.InputManager.executeGesture (16:51:39): Input: kb(desktop):tab IO - speech.speak (16:51:39): Speaking button' IO - inputCore.InputManager.executeGesture (16:51:39): Input: kb(desktop):tab IO - speech.speak (16:51:39): Speaking button' IO - inputCore.InputManager.executeGesture (16:51:40): Input: kb(desktop):shift+tab IO - speech.speak (16:51:40): Speaking button' IO - inputCore.InputManager.executeGesture (16:51:40): Input: kb(desktop):space IO - speech._speakSpellingGen (16:51:40): Speaking character u'space' IO - speech.speak (16:51:40): Speaking [- speech.speak (16:52:38): Speaking u'samaah' IO - speech.speak (16:52:38): Speaking [- speech.speak (16:52:38): Speaking u'blank' IO - inputCore.InputManager.executeGesture (16:52:41): Input: kb(desktop):h IO - speech._speakSpellingGen (16:52:41): Speaking character u'h' IO - inputCore.InputManager.executeGesture (16:52:42): Input: kb(desktop):backspace IO - speech.speak (16:52:42): Speaking Arabic (101)' IO - inputCore.InputManager.executeGesture (16:52:43): Input: kb(desktop):h IO - speech._speakSpellingGen (16:52:43): Speaking character u'\u0627' IO - inputCore.InputManager.executeGesture (16:52:43): Input: kb(desktop):g IO - speech._speakSpellingGen (16:52:43): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:52:44): Input: kb(desktop):s IO - speech._speakSpellingGen (16:52:44): Speaking character u'\u0633' IO - inputCore.InputManager.executeGesture (16:52:45): Input: kb(desktop):b IO - speech._speakSpellingGen (16:52:45): Speaking character u'\u0644' IO - speech._speakSpellingGen (16:52:45): Speaking character u'\u0627' IO - inputCore.InputManager.executeGesture (16:52:45): Input: kb(desktop):l IO - speech._speakSpellingGen (16:52:45): Speaking character u'\u0645' IO - inputCore.InputManager.executeGesture (16:52:45): Input: kb(desktop):space IO - speech.speakTypedCharacters (16:52:45): typed word: السلام IO - speech._speakSpellingGen (16:52:45): Speaking character u'space' IO - inputCore.InputManager.executeGesture (16:52:45): Input: kb(desktop):u IO - speech._speakSpellingGen (16:52:45): Speaking character u'\u0639' IO - inputCore.InputManager.executeGesture (16:52:45): Input: kb(desktop):g IO - speech._speakSpellingGen (16:52:45): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:52:46): Input: kb(desktop):d IO - speech._speakSpellingGen (16:52:46): Speaking character u'\u064a' IO - inputCore.InputManager.executeGesture (16:52:46): Input: kb(desktop):; IO - speech._speakSpellingGen (16:52:46): Speaking character u'\u0643' IO - inputCore.InputManager.executeGesture (16:52:46): Input: kb(desktop):l IO - speech._speakSpellingGen (16:52:46): Speaking character u'\u0645' IO - inputCore.InputManager.executeGesture (16:52:47): Input: kb(desktop):space IO - speech.speakTypedCharacters (16:52:47): typed word: عليكم IO - speech._speakSpellingGen (16:52:47): Speaking character u'space' IO - inputCore.InputManager.executeGesture (16:52:47): Input: kb(desktop):, IO - speech._speakSpellingGen (16:52:47): Speaking character u'\u0648' IO - inputCore.InputManager.executeGesture (16:52:47): Input: kb(desktop):v IO - speech._speakSpellingGen (16:52:47): Speaking character u'\u0631' IO - inputCore.InputManager.executeGesture (16:52:47): Input: kb(desktop):p IO - speech._speakSpellingGen (16:52:48): Speaking character u'\u062d' IO - inputCore.InputManager.executeGesture (16:52:48): Input: kb(desktop):l IO - speech._speakSpellingGen (16:52:48): Speaking character u'\u0645' IO - inputCore.InputManager.executeGesture (16:52:48): Input: kb(desktop):m IO - speech._speakSpellingGen (16:52:48): Speaking character u'\u0629' IO - inputCore.InputManager.executeGesture (16:52:49): Input: kb(desktop):space IO - speech.speakTypedCharacters (16:52:49): typed word: ورحمة IO - speech._speakSpellingGen (16:52:49): Speaking character u'space' IO - inputCore.InputManager.executeGesture (16:52:49): Input: kb(desktop):h IO - speech._speakSpellingGen (16:52:49): Speaking character u'\u0627' IO - inputCore.InputManager.executeGesture (16:52:49): Input: kb(desktop):g IO - speech._speakSpellingGen (16:52:49): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:52:49): Input: kb(desktop):g IO - speech._speakSpellingGen (16:52:49): Speaking character u'\u0644' IO - inputCore.InputManager.executeGesture (16:52:50): Input: kb(desktop):i IO - speech._speakSpellingGen (16:52:50): Speaking character u'\u0647' IO - inputCore.InputManager.executeGesture (16:52:50): Input: kb(desktop):space IO - speech.speakTypedCharacters (16:52:50): typed word: الله IO - speech._speakSpellingGen (16:52:50): Speaking character u'space' IO - inputCore.InputManager.executeGesture (16:52:50): Input: kb(desktop):, IO - speech._speakSpellingGen (16:52:50): Speaking character u'\u0648' IO - inputCore.InputManager.executeGesture (16:52:50): Input: kb(desktop):f IO - speech._speakSpellingGen (16:52:50): Speaking character u'\u0628' IO - inputCore.InputManager.executeGesture (16:52:51): Input: kb(desktop):v IO - speech._speakSpellingGen (16:52:51): Speaking character u'\u0631' IO - inputCore.InputManager.executeGesture (16:52:51): Input: kb(desktop):; IO - speech._speakSpellingGen (16:52:51): Speaking character u'\u0643' IO - inputCore.InputManager.executeGesture (16:52:51): Input: kb(desktop):h IO - speech._speakSpellingGen (16:52:51): Speaking character u'\u0627' IO - inputCore.InputManager.executeGesture (16:52:51): Input: kb(desktop):j IO - speech._speakSpellingGen (16:52:51): Speaking character u'\u062a' IO - inputCore.InputManager.executeGesture (16:52:52): Input: kb(desktop):i IO - speech._speakSpellingGen (16:52:52): Speaking character u'\u0647' IO - inputCore.InputManager.executeGesture (16:52:53): Input: kb(desktop):NVDA+tab IO - speech.speak (16:52:53): Speaking \u0639\u0644\u064a\u0643\u0645 \u0648\u0631\u062d\u0645\u0629 \u0627\u0644\u0644\u0647 \u0648\u0628\u0631\u0643\u0627\u062a\u0647 edit focused' IO - speech.speak (16:52:53): Speaking \ufeea\ufe97\ufe8e\ufedb\ufeae\ufe91\u0648 \ufdf2\u0627 \ufe94\ufee4\ufea3\u0631\u0648 \ufee2\ufedc\ufbff\ufee0\ufecb \u0645\ufefc\ufeb4\ufedf\u0627\n\n' IO - inputCore.InputManager.executeGesture (16:53:01): Input: kb(desktop):NVDA+f1 INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (16:53:02): Developer info for navigator object: name: u'\u0627\u0644\u0633\u0644\u0627\u0645 \u0639\u0644\u064a\u0643\u0645 \u0648\u0631\u062d\u0645\u0629 \u0627\u0644\u0644\u0647 \u0648\u0628\u0631\u0643\u0627\u062a\u0647' role: ROLE_EDITABLETEXT states: STATE_FOCUSABLE, STATE_FOCUSED Python object: <NVDAObjects.Dynamic_IAccessibleDisplayModelEditableTextWindowNVDAObject object at 0x00E07ED0> Python class mro: (<class 'NVDAObjects.Dynamic_IAccessibleDisplayModelEditableTextWindowNVDAObject'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.DisplayModelEditableText'>, <class 'NVDAObjects.behaviors.EditableText'>, <class 'editableText.EditableText'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>) description: None location: (161, 669, 335, 40) value: None appModule: <'skype' (appName u'skype', process ID 196) at address 1f257d0> TextInfo: <class 'displayModel.EditableTextDisplayModelTextInfo'> windowHandle: 66992 windowClassName: u'TChatRichEdit' windowControlID: 66992 windowStyle: 1409351748 windowThreadID: 1692 windowText: u'\u0627\u0644\u0633\u0644\u0627\u0645 \u0639\u0644\u064a\u0643\u0645 \u0648\u0631\u062d\u0645\u0629 \u0627\u0644\u0644\u0647 \u0648\u0628\u0631\u0643\u0627\u062a\u0647' IAccessibleObject: <POINTER(IAccessible) ptr=0x248c98 at 794bee0> IAccessibleChildID: 0 IAccessible event parameters: windowHandle=66992, objectID=-4, childID=0 IAccessible accRole: ROLE_SYSTEM_CLIENT IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580) DEBUGWARNING - watchdog._watcher (16:53:02): Trying to recover from freeze, core stack: File "nvda.pyw", line 155, in File "core.pyc", line 296, in main File "wx_core.pyc", line 8007, in MainLoop File "wx_core.pyc", line 7303, in MainLoop File "core.pyc", line 281, in Notify File "IAccessibleHandler.pyc", line 848, in pumpAll File "IAccessibleHandler.pyc", line 614, in processGenericWinEvent File "IAccessibleHandler.pyc", line 536, in winEventToNVDAEvent File "NVDAObjects\IAccessibleinit.pyc", line 43, in getNVDAObjectFromEvent File "NVDAObjectsinit.pyc", line 72, in call File "NVDAObjects\IAccessibleinit.pyc", line 358, in findOverlayClasses File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\IAccessibleinit.pyc", line 718, in _get_IAccessibleRole File "comtypesinit.pyc", line 795, in call

IO - speech.speak (16:53:04): Speaking Log Viewer' IO - speech.speak (16:53:04): Speaking multi line read only' IO - speech.speak (16:53:04): Speaking - globalCommands.GlobalCommands.script_navigatorObject_devInfo (16:53:02):\r' IO - speech.speak (16:53:09): Speaking subMenu Alt+l' IO - inputCore.InputManager.executeGesture (16:53:11): Input: kb(desktop):rightArrow IO - speech.speak (16:53:11): Speaking subMenu Space' IO - inputCore.InputManager.executeGesture (16:53:12): Input: kb(desktop):leftArrow IO - speech.speak (16:53:12): Speaking subMenu Alt+l' IO - inputCore.InputManager.executeGesture (16:53:13): Input: kb(desktop):downArrow IO - speech.speak (16:53:13): Speaking r' IO - inputCore.InputManager.executeGesture (16:53:14): Input: kb(desktop):downArrow IO - speech.speak (16:53:14): Speaking As... a' IO - inputCore.InputManager.executeGesture (16:53:15): Input: kb(desktop):downArrow IO - speech.speak (16:53:15): Speaking x' IO - inputCore.InputManager.executeGesture (16:53:16): Input: kb(desktop):upArrow IO - speech.speak (16:53:16): Speaking As... a' IO - inputCore.InputManager.executeGesture (16:53:17): Input: kb(desktop):enter DEBUGWARNING - watchdog._watcher (16:53:17): Trying to recover from freeze, core stack: File "nvda.pyw", line 155, in File "core.pyc", line 296, in main File "wx_core.pyc", line 8007, in MainLoop File "wx_core.pyc", line 7303, in MainLoop File "gui\logViewer.pyc", line 66, in onSaveAsCommand File "wx_misc.pyc", line 433, in FileSelector

IO - speech.speak (16:53:18): Speaking As dialog File name: ' IO - speech.speak (16:53:18): Speaking name: combo box' IO - speech.speak (16:53:18): Speaking Alt+n' IO - speech.speak (16:53:18): Speaking nvda.log' IO - inputCore.InputManager.executeGesture (16:53:25): Input: kb(desktop):home IO - speech._speakSpellingGen (16:53:25): Speaking character u'n' IO - speech.speak (16:53:25): Speaking nvda.log' IO - inputCore.InputManager.executeGesture (16:53:26): Input: kb(desktop):shift+rightArrow IO - speech.speak (16:53:26): Speaking n' IO - inputCore.InputManager.executeGesture (16:53:27): Input: kb(desktop):shift+rightArrow IO - speech.speak (16:53:27): Speaking v' IO - inputCore.InputManager.executeGesture (16:53:27): Input: kb(desktop):shift+rightArrow IO - speech.speak (16:53:27): Speaking d' IO - inputCore.InputManager.executeGesture (16:53:28): Input: kb(desktop):shift+rightArrow IO - speech.speak (16:53:28): Speaking a' IO - inputCore.InputManager.executeGesture (16:53:31): Input: kb(desktop):s IO - speech._speakSpellingGen (16:53:31): Speaking character u's' IO - speech.speak (16:53:31): Speaking removed' IO - inputCore.InputManager.executeGesture (16:53:32): Input: kb(desktop):k IO - speech._speakSpellingGen (16:53:32): Speaking character u'k' IO - inputCore.InputManager.executeGesture (16:53:32): Input: kb(desktop):y IO - speech._speakSpellingGen (16:53:32): Speaking character u'y' IO - inputCore.InputManager.executeGesture (16:53:33): Input: kb(desktop):p IO - speech._speakSpellingGen (16:53:33): Speaking character u'p' IO - inputCore.InputManager.executeGesture (16:53:33): Input: kb(desktop):e IO - speech.speakSpellingGen (16:53:33): Speaking character u'e' IO - inputCore.InputManager.executeGesture (16:53:35): Input: kb(desktop):NVDA+tab IO - speech.speak (16:53:35): Speaking focused Alt+n' IO - speech.speak (16:53:35): Speaking [- inputCore.InputManager.executeGesture (16:53:38): Input: kb(desktop):tab IO - speech.speak (16:53:38): Speaking [u'Save as type: combo box All files (._) Alt+t'](u'skype.log'] IO) IO - inputCore.InputManager.executeGesture (16:53:40): Input: kb(desktop):shift+tab IO - speech.speak (16:53:40): Speaking name: combo box' IO - speech.speak (16:53:40): Speaking Alt+n' IO - speech.speak (16:53:40): Speaking skype.log' IO - inputCore.InputManager.executeGesture (16:53:40): Input: kb(desktop):shift+tab IO - speech.speak (16:53:40): Speaking list' IO - speech.speak (16:53:40): Speaking not selected 1 of 55' IO - inputCore.InputManager.executeGesture (16:53:43): Input: kb(desktop):backspace IO - speech.speak (16:53:43): Speaking list' IO - speech.speak (16:53:43): Speaking Group not selected 1 of 36' IO - inputCore.InputManager.executeGesture (16:53:46): Input: kb(desktop):backspace IO - speech.speak (16:53:46): Speaking list' IO - speech.speak (16:53:46): Speaking not selected 1 of 12' IO - inputCore.InputManager.executeGesture (16:53:49): Input: kb(desktop):backspace IO - speech.speak (16:53:50): Speaking list' IO - inputCore.InputManager.executeGesture (16:53:52): Input: kb(desktop):f IO - speech._speakSpellingGen (16:53:52): Speaking character u'f' IO - speech.speak (16:53:53): Speaking Arabic (101)' IO - speech.speak (16:53:53): Speaking subMenu Space' IO - speech.speak (16:53:54): Speaking As dialog File name: ' IO - speech.speak (16:53:54): Speaking list' IO - speech.speak (16:53:54): Speaking Floppy (A:) not selected 1 of 10' IO - speech.speak (16:53:54): Speaking US' IO - speech.speak (16:53:55): Speaking subMenu Space' IO - speech.speak (16:53:55): Speaking As dialog File name: ' IO - speech.speak (16:53:55): Speaking list' IO - speech.speak (16:53:55): Speaking Floppy (A:) not selected 1 of 10' IO - speech.speak (16:53:55): Speaking Arabic (101)' IO - speech.speak (16:53:56): Speaking Arabic (101)' IO - inputCore.InputManager.executeGesture (16:53:57): Input: kb(desktop):f IO - speech._speakSpellingGen (16:53:57): Speaking character u'\u0628' IO - speech.speak (16:53:57): Speaking (D:) 3 of 10' IO - inputCore.InputManager.executeGesture (16:53:59): Input: kb(desktop):enter IO - speech.speak (16:53:59): Speaking list' IO - speech.speak (16:53:59): Speaking \u0628\u0631\u0627\u0645\u0640\u0640\u0640\u0640\u0640\u0640\u0640\u0640\u0640\u062c not selected 1 of 5' IO - speech.speak (16:54:01): Speaking US' IO - inputCore.InputManager.executeGesture (16:54:01): Input: kb(desktop):f IO - speech.speakSpellingGen (16:54:01): Speaking character u'f' IO - speech.speak (16:54:01): Speaking 4 of 5' IO - inputCore.InputManager.executeGesture (16:54:02): Input: kb(desktop):enter IO - speech.speak (16:54:02): Speaking list' IO - speech.speak (16:54:02): Speaking not selected 1 of 56' IO - inputCore.InputManager.executeGesture (16:54:02): Input: kb(desktop):tab IO - speech.speak (16:54:02): Speaking name: combo box' IO - speech.speak (16:54:02): Speaking Alt+n' IO - speech.speak (16:54:02): Speaking skype.log' IO - inputCore.InputManager.executeGesture (16:54:03): Input: kb(desktop):tab IO - speech.speak (16:54:03): Speaking [as type: combo box All files (._) Alt+t'](u'Save) IO - inputCore.InputManager.executeGesture (16:54:03): Input: kb(desktop):tab IO - speech.speak (16:54:03): Speaking button Alt+s' IO - inputCore.InputManager.executeGesture (16:54:04): Input: kb(desktop):space IO - speech._speakSpellingGen (16:54:04): Speaking character u'space' IO - speech.speak (16:54:04): Speaking [u'pressed']

nvaccessAuto commented 13 years ago

Comment 2 by orcauser on 2011-06-22 21:16 In the future, please attach the log info in a file, instead of pasting it into a comment. makes it iesier to follow the ticket itself.

Problem reproducable in windows 7. (regression) but cant seem to add the keyword. Thanks.

nvaccessAuto commented 13 years ago

Comment 3 by fatma.mehanna on 2011-06-24 13:01 that attachment shows how the problem occurs in ms word.

nvaccessAuto commented 13 years ago

Comment 4 by fatma.mehanna on 2011-06-25 11:01 Changes: Changed title from "a problem with the arabic language." to "reversed words in flat review with arabic language (regression)"

nvaccessAuto commented 13 years ago

Comment 5 by mdcurran on 2011-06-27 00:26 I do not understand how this can be a regression (i.e. I do not understand how it could have worked before). Could you please provide exact steps to reproduce the problem, and state in what version of NVDA it did work. Also what version of MS Word was this? I do agree that our displayModel probably won't support right-to-left text properly at the moment, and I'm happy to investigate fixing this. But, I firstly would like to clear up whether or not it actually did work before.

nvaccessAuto commented 13 years ago

Comment 6 by fatma.mehanna on 2011-06-27 10:09 yes it is a regrition because it was working before in the previous versions and the nearest one was 2011.1.1 nvda never reversed arabic words. it always reads the line from the start not from the end as it is now. steps to reproduce: 1 open an ms document word. 2 type some arabic words. for example, "بسم الله الرحمن الرحيم"

3 press nvda + numpad 7 to switch to flat review. results: nvda reads the arabic words in a reverse. before: it was reading fine. if you did the previous steps using wordpad, the same problem will happen. but it is ok with notepad. the same problem also can be found in skype by doing the following: 1 go to a skype chat window. 2 type an arabic message. like, "السلام عليكم ورحمة الله وبركاته" 3 press nvda + tab to read it before sending it to your friend. results: nvda will read the message fine and then repeats it in reverse. i'm using ms word 2003 and skype version 5.3.1. it works fine with ms office 2010, but not sure how it works with word 2007

nvaccessAuto commented 13 years ago

Comment 7 by fatma.mehanna on 2011-06-27 13:30 previously, nvda didn't see the arabic text when we are in ms office and switch to flat review. still talking about office 2003 now, it sees the text, but reverse it. this is with word and wordpad. but as for notepad, it was seeing the text when we switch to flat review. and it does now without reversing it. as for skype, when we were pressing nvda + tab, nvda was reading the messages before sending one time. but now, it reads them fine then repeats them in reverse. we said that it is a regrition as we never saw nvda reverse arabic text. sorry if i provided wrong information before.

nvaccessAuto commented 13 years ago

Comment 8 by mdcurran on 2011-06-27 23:24 So therefore its not a regression. NVDa has probably always been reversing arabic text, its just in these situations NVDA had never been detecting the text at all. This now explains the problem. Recently code was added to detect more text written to the screen with display model (specifically glyphs) and obviously this code should detect the direction and reverse if necessary.

nvaccessAuto commented 13 years ago

Comment 9 by fatma.mehanna on 2011-06-28 21:55 there's another clearer way to reproduce the same problem: 1 open a skype chat window. 2 type some arabic words like "مرحبا بالجميع" 3 before sending the message, review the message using numpad 4/numpad6 you will find nvda starts reading from the end. and reversing the words pronunciation. note, previously, we couldn't review the message using numpad4/6 before sending it. nvda was saying "line feed". hope this helps.

nvaccessAuto commented 13 years ago

Comment 10 by mdcurran on 2011-07-04 09:01 I have just attached a patch with may fix the problem. Though, this is just following MSDN and I have not been able to test this at all. I would be thankful if anyone could test this and let me know if it fixes it. The patch detects if the text is supposed to be written as RTL (and its either in an Arabic or Hebrew charset) and then reverses the text before recording it in the display model (as this is apparently what the display subsystem would do I think). This may work for individual chunks of text, but it will not work over multiple chunks. E.g. if the font changes in the middel of an RTL line, it will be recorded as two separate RTL chunks. Meaning that although the individual chunks will be the right way around, the order of the separate chunks will not.

nvaccessAuto commented 13 years ago

Comment 11 by fatma.mehanna on 2011-07-04 16:52 hi, mr mesar built a portable version including the changes you made. we, arabic translation team, tested with windows xp and windows 7, but the problem still exists. the problem still exists in skype and office 2003/wordpad. thanks for your efforts

nvaccessAuto commented 12 years ago

Comment 12 by fatma.mehanna on 2011-11-30 22:22 hi devs, any progress with this ticket? we suffer from reversing the words as we can't understand what is being read. it would be grateful if you try to solve this issue as soon as possible. thanks for your efforts.

nvaccessAuto commented 12 years ago

Comment 13 by jteh on 2011-11-30 22:32 Not a regression as per comment:8.

Mick, as I think we discussed before, I can't see how this patch would work anyway. The text is probably passed in logical order and just written to the screen from right to left. I very much doubt the text would be passed in reversed logical order. Changes: Changed title from "reversed words in flat review with arabic language (regression)" to "reversed words in flat review with arabic language"

nvaccessAuto commented 12 years ago

Comment 14 by mdcurran on 2011-12-04 07:27 Thankfully I have now been able to reproduce this. The issue is that we see the text being written to the display as glyphs after the application has already reversed the characters. In other words, we see them in the correct "display" order, rather than their "logical" (reading) order. The problem is though, at least with ExtTextOut, there are no flags or means of asking whether these glyphs are being written reversed. By this time the OS does not know or care. However, I have noticed that at least for Wordpad and (I think) Skype, the characters are always being written with USP10!ScriptTextOut, which internally calls ExtTextOut. It happens that ScriptTextOut is given a structure that does say whether the text is RTL or not. Interesting though that In these cases ScriptTextOut is being called directly by MSFTEDIT (richEdit) and not by USP10!ScriptStringOut (which we currently hook). We may be able to possibly hook ScriptTextOut, at least to detect the RTL flag and set some kind of TLS variable, which ExtTextOutHelper can then take note of and either record the text backwards, or at least set some kind of flag on the chunk, which can then be exposed via XML, and then NVDA can reverse the text. But, this still may cause issues if there are multiple RTL chunks as these all together will not be reversed. Though, perhaps we can try and merge consecutive RTL chunks on a line together or something. At least though I can now successfully reproduce which is good. A final note though: although it slooks as though it gets it correct in Notepad's flat review already (it uses ScriptStringOut here). It does read correctly yes, but if you try routing the mouse to any of the characters, the mouse goes to the opposite side of the string (all the coordinates are backwards for ScriptStringOut). Due to this, and to some other things such as not being able to detect color changes for selection via ScriptStringOut, I'm strongly considering getting rid of that code and relying just on ExtTextOut. Note that when Arabic text is written to ExtTextOut with glyphs in "display" order, the coordinates are all correct which is good.

nvaccessAuto commented 12 years ago

Comment 15 by orcauser on 2012-01-09 12:09 I have received 60 UK pounds as a bounty for this ticket, instructions is to transfer this to nvda when this ticket is resolved. If the work is extensive, I can ask if anyone wishes to increase the bounty.

sadly many of our users are troubled by the reversed text problem and regularly complain.

Thank you.

nvaccessAuto commented 12 years ago

Comment 16 by mdcurran on 2012-01-10 02:02 I think this would take significant hours to resolve. As, my previous attempts have not worked, and of course I do not speak or read any of these RTL languages. I certainly understand its important, but finding a solution, if we can, will probably cost a lot of time, and possibly some major rewriting of display model code in c++. Certainly happy to talk with you privately to see what further steps we can take to enable someone to continue this work.

nvaccessAuto commented 12 years ago

Comment 17 by jteh on 2012-03-08 21:39 See ticket:1601#comment:13 for another instance of this.

nvaccessAuto commented 12 years ago

Comment 18 by geoff (in reply to comment 13) on 2012-04-13 21:18 Replying to jteh:

Mick, as I think we discussed before, I can't see how this patch would

work anyway. The text is probably passed in logical order and just

written to the screen from right to left. I very much doubt the text

would be passed in reversed logical order.

This is correct. Certainly prior to the display model stuff, any Hebrew that NVDA came across would be spoken correctly by default with a Hebrew-speaking SAPI5 speech synth. The right-to-left nature of these languages is dealt with in the displaying of them.

This is further complicated by the fact that at least Hebrew Braille is written left to right, presumably due to the limitations of Braille writing equipment.

nvaccessAuto commented 11 years ago

Comment 20 by mohammed on 2012-12-29 07:10 hi.

has anything been done regarding this? @orcauser and @mdcurran, could you both update us on this?

we are interested to cooperate to push this towards resolution.

nvaccessAuto commented 11 years ago

Comment 21 by Shaimaa on 2013-01-04 16:23 Hey Guys, Thanks so much for your efforts. I remember that I placed $75 as a kind of support for Arabic NVDA tickets on August 9, 2012. I strongly recommend that this amount is used in a way to assist in fixing this critical problem because it really affects more than one application and many users are already complaining about it. in addition, it may be helpful for other RTL language users as well so I think it should have a priority. Thanks again and keep up the excellent work!

nvaccessAuto commented 11 years ago

Comment 22 by jteh on 2013-01-05 00:15 This requires a great deal of very complicated work and as such can't be done without specific funding (more than $10000). We do have a potential grant for this, but unfortunately, we're encountering legal obstacles in trying to move this forward. If this doesn't work out, we will have to find an alternative source of funding. Any ideas concerning this are welcome.

nvaccessAuto commented 11 years ago

Comment 23 by Shaimaa on 2013-01-05 00:50 O, I understood that the amount was definitely small and I was trying to urge other people to donate for this ticket but I never expected that it needs more than $10000 to be closed. The problem though is that now even if we can find people to donate, they may refuse and say that it is better to buy a commercial program then if one ticket will cost them more than $10000. In addition, some governments already work with those commercial software companies to provide their blind community with those programs for free or very cheap price. Despite all that, we were successfully able to attract more and more of the Arabic users to use NVDA and leave those commercial ones. Although I myself don’t use the Arabic interface, I am sad because I know how important and critical to other users who do not know English and only use this Arabic interface. I wish if the legal issue you are encountering to be resolved soon. Thank you

nvaccessAuto commented 11 years ago

Comment 24 by mdcurran on 2013-03-28 05:44 NV Access has finally secured sufficient funding to work on this task. Therefore, I would like to collect a bit of information to understand exactly where the problems are right now, as this ticket was open quite some time ago. Please let me know what applications this issue affects. For instance, Skype chat. However, try to only list situations where its necessary for it to work. Bad examples would be MS Word, Wordpad, and Notepad, as these applications do not rely on flat review or displayModel. That is not to say I won't look at these situations, but we must concentrate on the most important ones first. thank you. Changes: Milestone changed from None to near-term

nvaccessAuto commented 11 years ago

Comment 25 by mdcurran on 2013-03-28 06:36 The skype chat input field may have been fixed in 14f19d29836b7c319c06dc463eae68cf8c38aeab. Please test and report back. Also make sure to update to the latest Skype when testing.

nvaccessAuto commented 11 years ago

Comment 26 by fatma.mehanna (in reply to comment 25) on 2013-03-28 10:47 Replying to mdcurran:

The skype chat input field may have been fixed in 14f19d29836b7c319c06dc463eae68cf8c38aeab. Please test and report back. Also make sure to update to the latest Skype when testing.

yes, i tested, and NVDA stopped to read the message towice when i press NVDA+tab to read it before sending it. now NVDA reads the message one time in a good way without reversing. i also now can use the arrow keys to read the message. thanks for fixing this issue.

nvaccessAuto commented 11 years ago

Comment 27 by fatma.mehanna (in reply to comment 24) on 2013-03-28 10:55 Replying to mdcurran:

NV Access has finally secured sufficient funding to work on this task.

Therefore, I would like to collect a bit of information to understand exactly where the problems are right now, as this ticket was open quite some time ago.

Please let me know what applications this issue affects. For instance, Skype chat. However, try to only list situations where its necessary for it to work. Bad examples would be MS Word, Wordpad, and Notepad, as these applications do not rely on flat review or displayModel. That is not to say I won't look at these situations, but we must concentrate on the most important ones first.

ms word and wordpad are very important for us to be looked at. however, the problem also exists in excel for example when we type in a cell some arabic words and we want to press f2 to modify what we wrote. this is what i remember right now, i will collect some feetback from the arabic users.

thank you.

thanks.

nvaccessAuto commented 11 years ago

Comment 28 by fatma.mehanna on 2013-03-28 16:43 hi, i also noticed that the problem exists when using the flat review with firefox browser. the problem doesn't occur in internet explorer flat review.

nvaccessAuto commented 11 years ago

Comment 29 by jteh on 2013-03-28 22:58 Using flat screen review in Firefox, Word and Wordpad is low priority, as there generally isn't any good reason to use it in these applications; you will get far better access using the system/browse mode cursor or object review. If you can't read the document content using the browse mode/system cursor, that's a different issue.

nvaccessAuto commented 11 years ago

Comment 30 by fatma.mehanna (in reply to comment 29) on 2013-03-30 09:19 Replying to jteh:

Using flat screen review in Firefox, Word and Wordpad is low priority, as there generally isn't any good reason to use it in these applications; you will get far better access using the system/browse mode cursor or object review. If you can't read the document content using the browse mode/system cursor, that's a different issue.

there are some tricky links in some websites that we can't access but with the flat review. For example, when we want to download something from youtube, we can access the download link using the flat review. Moreover, solving the reversed words in flat review with these applications may help in solving the issue with some local applications. the summarry of the ticket is clear, "reversed words in flat review with arabic language" thanks for your understanding.

nvaccessAuto commented 11 years ago

Comment 31 by jteh (in reply to comment 30) on 2013-04-01 22:12 Replying to fatma.mehanna:

there are some tricky links in some websites that we can't access but with the flat review.

For example, when we want to download something from youtube, we can access the download link using the flat review.

If you can see it in screen review, it'll definitely be in browse mode as well. If you're talking about the Greasemonkey script for downloading from Youtube, it's at the bottom of the document.

Moreover, solving the reversed words in flat review with these applications may help in solving the issue with some local applications.

Maybe, but it may also just confuse the issue. Please provide examples of apps where this actually hinders access and where this would normally be used. Right now, apart from editing a cell in Excel (which is indeed important), I'm only seeing examples where it isn't actually needed.

Btw, due to the way text is written to the screen, flat screen review doesn't work at all in many modern apps, including Firefox on many systems, so our recommendation to avoid screen review in these apps is not RTL specific.

nvaccessAuto commented 11 years ago

Comment 32 by fatma.mehanna on 2013-04-03 11:45 hi again, I know that may be flat review is not so important in FF/word/wordpad, but it is not a matter of priority, it is a matter of efficiency. NVDA should read in a good way any lang regardless of the mode that's being used. in some cases, the users use the flat review to get something they can't get using the normal movement, so during discovering/reading they shouldn't hear reversed words just because it is not a matter of priority. We don't know when should we use/unuse the flat review, we use it when we found something that we want to use it for, so some may use it for a purpose and another use it for another in the same application. it is just a point of view. and as i said the problem exists in some local applications that arabic users can't stop using.

nvaccessAuto commented 11 years ago

Comment 33 by jteh (in reply to comment 32) on 2013-04-03 12:04 Replying to fatma.mehanna:

I know that may be flat review is not so important in FF/word/wordpad, but it is not a matter of priority, it is a matter of efficiency.

Actually, it is a matter of priority. We want to make sure the apps that are most important to RTL users get the most attention. Fixing it for one app doesn't necessarily mean it'll work properly for others. There's little point in us fixing it for Wordpad if it doesn't help the apps where screen review is really important.

in some cases, the users use the flat review to get something they can't get using the normal movement,

This doesn't apply to Wordpad, Firefox, etc. In those apps, screen review will always give you less information, not more, particularly with modern configurations with Firefox where screen review doesn't work at all and never will. We cannot fix this; the techniques used for screen capture just don't work in modern screen drawing frameworks.

and as i said the problem exists in some local applications that arabic users can't stop using.

Right, so please provide information about these apps. This is what we want to know about. This is a fairly simple request. You can argue that it should be available in all apps and we can get nothing done or you can provide us information about the most important ones where it really matters. I will not argue this point any further.

nvaccessAuto commented 11 years ago

Comment 34 by fatma.mehanna on 2013-04-04 09:30 hi, one of the apps i faced the problem in is mozella thunder bird, the arabic version. steps to reproduce: 1 choose compose new message. 2 after editing the message, press alt+f4 to exit before saving your message. 3 NVDA will read the message that asks you to save what you have just edited, when you press NVDA+numpad7 to switch to flat review (to see the buttons of saving and not saving), nvda reads the message in a good way and repeats it reversely. i use windows xp service pack3, NVDA version main5982. mozilla thunderbird version 17.0.5, arabic. the same problem happens when you go to the help menu and select the about item. thanks

nvaccessAuto commented 11 years ago

Comment 35 by jteh on 2013-04-04 10:47 Mozilla apps are all better navigated with object navigation. Are there any Arabic apps that absolutely depend on display text? We should tackle these first.

nvaccessAuto commented 11 years ago

Comment 36 by mdcurran on 2013-04-14 04:39 I have tried a much more general approach to supporting RTL in NVDA display models. Now all the decision making and processing is done in Python, in NVDA itself. This means that if fixes need to be made, it will be much easier to fiddle around in Python, rather than recompiling nvdahelper. Please try: http://community.nvda-project.org/try/displayModelRtlSupport/nvda_snapshot_try-displayModelRtlSupport-5990.exe

Note that the rules about wether text is rtl or ltr is calculated purely on frequency of strong rtl and strong ltr unicode characters. We may need to still make some tweeks.

Firstly make sure that #1658 (Editing an rtl excel cell) works okay. Secondly, start trying other rtl content with flat review, especially content where rtl and ltr is mixed. For any content that breaks, please try to provide test documents that show the exact issue.

nvaccessAuto commented 11 years ago

Comment 37 by fatma.mehanna (in reply to comment 36) on 2013-04-14 10:15 Replying to mdcurran:

I have tried a much more general approach to supporting RTL in NVDA display models. Now all the decision making and processing is done in Python, in NVDA itself. This means that if fixes need to be made, it will be much easier to fiddle around in Python, rather than recompiling nvdahelper.

Please try:

http://community.nvda-project.org/try/displayModelRtlSupport/nvda_snapshot_try-displayModelRtlSupport-5990.exe

Note that the rules about wether text is rtl or ltr is calculated purely on frequency of strong rtl and strong ltr unicode characters. We may need to still make some tweeks.

Firstly make sure that #1658 (Editing an rtl excel cell) works okay.

yes, it has been fixed. When i press f2, nvda reads the cell content fine. but when i use flat review, it is tricky. NVDA sometimes reads some strange chars and some times it reads the content fine. This happens for english and arabic content. i will attach a log regarding this issue.

Secondly, start trying other rtl content with flat review, especially content where rtl and ltr is mixed.

now NVDA reads fine using flat review in word, wordpad, and firefox. as for rtl and ltr together, it is tricky. some times it reads the english first and some times it reads the arabic content firstly. but no reversing. this happens when i type something in word/wordpad, but of course when i read some content on the internet using flat review with FF, it reads fine. interestingly, i found out that the open with subMenu somehow broken, now nvda reads the first item fine, but when you continue arrowing down, nvda reads the previous item then the current item. for example, winamp (the first item). windows mediaPlayer (the second item). nvda reads winamp followed by windows media player when you hilight windows media player. i don't know if this is related to this issue, but i have just found it out here with this snanp and it didn't happen in the previous snap i was using. i can attach a log regarding this issue if it will be of help.

For any content that breaks, please try to provide test documents

that show the exact issue.

nvaccessAuto commented 11 years ago

Comment 38 by fatma.mehanna on 2013-04-14 20:13 hi again, i managed to test the same snap on win7 and i found out that reading any folder/file properties in windows explorer using flat review is broken for ltr/rtl folder/file names. It reads the rtl file/folder properties reversely, moreover, it doesn't read the reviewed line completely for both rtl and ltr files/folders. this issue doesn't occur using win xp. it occurs using win7 32/64 bit.

nvaccessAuto commented 11 years ago

Comment 39 by mdcurran (in reply to comment 37) on 2013-04-15 03:01 Replying to fatma.mehanna:

yes, it has been fixed. When i press f2, nvda reads the cell content fine.

but when i use flat review, it is tricky. NVDA sometimes reads some strange chars and some times it reads the content fine. This happens for english and arabic content.

i will attach a log regarding this issue.

What kind of strange characters? Do the strange characters only appear in flat review, or also when you move through a cell with the arrow keys when being edited?

now NVDA reads fine using flat review in word, wordpad, and firefox.

as for rtl and ltr together, it is tricky. some times it reads the english first and some times it reads the arabic content firstly.

but no reversing.

NVDA has to make a guess towhether it should start reading on the right side of the screen or on the left. Out of interest, how does a user like yourself know to do this? do you always read from the right side on any Arabic Windows system, or does it depend on the context? Right now NVDA decides to read from the right side when there are more arabic characters than english characters.. Windows has no mechanism to tell us which way to read the line in general.

nvaccessAuto commented 11 years ago

Comment 40 by mdcurran (in reply to comment 38) on 2013-04-15 03:18 Replying to fatma.mehanna:

hi again,

i managed to test the same snap on win7 and i found out that reading any folder/file properties in windows explorer using flat review is broken for ltr/rtl folder/file names.

It reads the rtl file/folder properties reversely, moreover, it doesn't

read the reviewed line completely for both rtl and ltr files/folders.

You will have to provide exact steps to reproduce. Do you mean the file/folder properties dialog, or just the name type size date that shows in the file/folder list? Also, could you please give me some tips on how to type Arabic text? I have an Arabic keyboard layout installed, (specificly arabic Egypt Arabic 101) but I can use another one if it makes it easier. Please tell me the exact qwerty key presses I need to type for a short arabic sentence. So far I have always just been copy/pasting your arabic text from the test excel document.

nvaccessAuto commented 11 years ago

Comment 41 by Shaimaa (in reply to comment 40) on 2013-04-15 03:49 Replying to mdcurran:

Replying to fatma.mehanna:

hi again,

i managed to test the same snap on win7 and i found out that reading any folder/file properties in windows explorer using flat review is broken for ltr/rtl folder/file names.

It reads the rtl file/folder properties reversely, moreover, it doesn't

read the reviewed line completely for both rtl and ltr files/folders.

You will have to provide exact steps to reproduce. Do you mean the file/folder properties dialog, or just the name type size date that shows in the file/folder list?

Also, could you please give me some tips on how to type Arabic text? I have an Arabic keyboard layout installed, (specificly arabic Egypt Arabic 101) but I can use another one if it makes it easier. Please tell me the exact qwerty key presses I need to type for a short arabic sentence. So far I have always just been copy/pasting your arabic text from the test excel document.

|Hello As for the keyboard related question, using Arabic Egypt or any Arabic on PC should give the same results so it should be fine. As for writing a phrase in Arabic, You can write the following مرحبا كيف حالك which means hello how are you. In order to write the prior phrase, you should press the following keys after switching the layout to Arabic: lvpfh ;dt phg; Let us know if you need longer sentence. Hope this helps

nvaccessAuto commented 11 years ago

Comment 42 by mdcurran on 2013-04-15 06:42 Another try build: http://community.nvda-project.org/try/displayModelRtlSupport/nvda_snapshot_try-displayModelRtlSupport-5992.exe

Please try all existing cases with this build. For me the file/folder properties problem on win7 has gone (it wasn't specific to RTL). I also found some broken code to do with reversing of words and character locations, so you should see some improvement in the ordering of rtl words, and caret tracking in Excel when editing a cell with multiple rtl words.

nvaccessAuto commented 11 years ago

Comment 43 by mdcurran (in reply to comment 41) on 2013-04-15 06:44 Replying to Shaimaa: Thanks for providing the typing example, this helps a lot.

nvaccessAuto commented 11 years ago

Comment 44 by fatma.mehanna (in reply to comment 39) on 2013-04-15 10:39 Replying to mdcurran:

Replying to fatma.mehanna:

yes, it has been fixed. When i press f2, nvda reads the cell content fine.

but when i use flat review, it is tricky. NVDA sometimes reads some strange chars and some times it reads the content fine. This happens for english and arabic content.

i will attach a log regarding this issue.

What kind of strange characters?

this problem still exists (reading strange characters using flat review in excel). i mean by strange characters, "HJKICDEF" etc.

Do the strange characters only appear in flat review, or also when you move through a cell with the arrow keys when being edited?

the strange characters appear using flat review. It is fine and it reads well when i move inside the cell content using the arrow keys. It appears as soon as i edit an excel and use flat review. steps to reproduce: 1 type ltr/rtl content in an excel cell. 2 press NVDA+numpad7. you will find out that nvda reads strange chars as i mentioned above. 3 press f2 to edit the cell content. 4 use NVDA+numpad7. if the cell content is english, nvda will read fine. if the cell content is arabic, NVDA will read the characters i told you about. if there are english and arabic cells together, nvda reads fine. I hope the description is clear.

nvaccessAuto commented 11 years ago

Comment 45 by fatma.mehanna (in reply to comment 44) on 2013-04-15 11:06 Replying to fatma.mehanna:

Replying to mdcurran:

Replying to fatma.mehanna:

What kind of strange characters?

sorry, they are not strange chars. they are the colomns letters starting from l. so NVDA reads "LKJIHG" etc till a.

Do the strange characters only appear in flat review, or also when you move through a cell with the arrow keys when being edited?

steps to reproduce:

1 press f2 to edit the cell content.

2 use NVDA+numpad7.

if the cell content is english, nvda will read fine.

if the cell content is arabic, NVDA will read the columns letters.

if there are english and arabic cells together, nvda reads fine.

I hope the description is clear.

sorry about confusion. please don't look at my previous reply.

nvaccessAuto commented 11 years ago

Comment 46 by fatma.mehanna on 2013-04-15 23:01 hi, i got a feedback from arabic users about the existance of the problem in windows xp service pack3 with arabic locale. they say that when they want to know folders/files properties, by pressing alt+enter/using the application key arrowing to properities, nvda doesn't read well there. it reads (as they say) reversed words. they also say when they want to know a partition properties, nvda doesn't say anything. I don't have windows arabic locale, so i got a log with the problem steps from them. they tested with the latest rtl display model, the problem still occurs. i will attach the log file i got.

nvaccessAuto commented 11 years ago

Comment 47 by mdcurran (in reply to comment 46) on 2013-04-15 23:13 Replying to fatma.mehanna: I'm not sure I have enough information for this particular issue. It would be much easier if either you yourself could reproduce it, or the person who experiences can directly comment on this ticket. This is extremely fiddly code, and I don't speak Arabic. Are you finding any problems with displayModelRtlSupport 5992?