reversed words in flat review with arabic language #1601

Closed
nvaccessAuto opened this Issue Jun 22, 2011 · 87 comments

2 participants

@nvaccessAuto

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

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:
Python class mro: (, , , , , , , , , )
description: None
location: (161, 669, 335, 40)
value: None
appModule: <'skype' (appName u'skype', process ID 196) at address 1f257d0>
TextInfo:
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:
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\IAccessible__init
.pyc", line 43, in getNVDAObjectFromEvent
File "NVDAObjects__init__.pyc", line 72, in call
File "NVDAObjects\IAccessible__init__.pyc", line 358, in findOverlayClasses
File "baseObject.pyc", line 34, in get
File "baseObject.pyc", line 110, in getPropertyViaCache
File "NVDAObjects\IAccessible__init_
.pyc", line 718, in get_IAccessibleRole
File "comtypes__init_
.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'
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'
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

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

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

@nvaccessAuto

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

@nvaccessAuto

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@nvaccessAuto

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

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

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

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

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

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

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

@nvaccessAuto

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 14f19d2. 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

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

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

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

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

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

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

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

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

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

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

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

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

@nvaccessAuto

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

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

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

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

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

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

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

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

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

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

@nvaccessAuto

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?

@nvaccessAuto

Comment 48 by fatma.mehanna (in reply to comment 47) on 2013-04-15 23:26
Replying to mdcurran:

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.

the users who told me about this problem can't speak english either, so they asked me to comment.
as for the problem steps, what they say is when they want to know my computer properties, nvda says reversed words. when they want to read a partition properties, nvda doesn't say anything. they use flat review to read these properties of course.

Are you finding any problems with displayModelRtlSupport 5992?

as for myself, i don't find any problems. nvda reads fine now in windows7 properties.
the only problem i find is nvda reads columns letters from l to a when i press f2 in an arabic cell and use flat review, as i mentioned in a previous reply.

@nvaccessAuto

Comment 49 by mdcurran (in reply to comment 48) on 2013-04-15 23:42
Replying to fatma.mehanna:

as for the problem steps, what they say is when they want to know my computer properties, nvda says reversed words.

Do you mean the words are in reversed order (e.g. test a is this), the characters in each word are reversed (e.g. siht si a tset), or both characters and the order of words are reversed (e.g. tset a si siht)?
This question is very important to understanding the problem.
Noting the real example string would have been "this is a test".

@nvaccessAuto

Comment 50 by fatma.mehanna (in reply to comment 49) on 2013-04-16 08:50
Replying to mdcurran:

Replying to fatma.mehanna:

as for the problem steps, what they say is when they want to know my computer properties, nvda says reversed words.

Do you mean the words are in reversed order (e.g. test a is this), the characters in each word are reversed (e.g. siht si a tset), or both characters and the order of words are reversed (e.g. tset a si siht)?

This question is very important to understanding the problem.

Actually, i don't have an answer to this question, but i noticed something else using snap 5992.
NVDA reads arabic contacts in skype reversely when i use flat review.
steps to reproduce:
1 rename one of your skype contacts to arabic.
2 press nvda+numpad7.
3 use numpad9 to read his name.
results:
NVDA will read the contact name reversely and if his change mood message is arabic, it will be read reversely as well.
note, i said in my first step "rename" as you may not have arabic contact names in your contact list.
i can make a log if it will be of help.
the problem is reproduceable using latest version of skype, win7/xp, nvda snap 5992
it is not a regretion, but i have just noticed it during my testing.
thanks.

@nvaccessAuto

Comment 51 by mdcurran (in reply to comment 50) on 2013-04-20 02:24
Replying to fatma.mehanna:

NVDA reads arabic contacts in skype reversely when i use flat review.

Please try this new try build:
http://community.nvda-project.org/try/displayModelRtlSupport/nvda_snapshot_try-displayModelRtlSupport-9114,d39078c.exe

Again, after confirming that the Skype contact is now read the right way around, please make sure that nothing else has broken since the last try build. This build may also fix some issues that others are having on XP that you're finding hard to report.

@nvaccessAuto

Comment 52 by fatma.mehanna on 2013-04-21 09:53
Hi,
skype problem has been fixed, thanks.
Still waiting for more feedback from the comunity though.
There is something else i want to confirm, but i don't know if it is related to this issue or not.
It is Mozilla apps multi line edit fields.
when i press home to read the first character of the current line, NVDA announces it, but when i want to continue arrowing using the left arrow, i find my self at the end of line.
also when i press end to go to the end of the current line, nvda reads the last character, but when i use the right arrow to read the letter before, i find my self at the beginning.

steps to reproduce:
1 open fireFox and go for example to gmail.com and type some words in the message body edit field.
2 press home to go to the first letter of the current line.
3 use the left arrow to read the letters after.
results:
NVDA will read the first character, but when you continue arrowing using the left arrow, you will find your self at the end of line.
4 use end to go to the last letter of the current line.
results:
the opposit will happen. NVDA reads the last character, but when you want to read the letter before the last one, you will find your self at the beginning of line.
This problem happens only with Arabic. In English, NVDA reads fine using the right arrow to read the character after the first one, or when i use the left arrow to read the character before the last one.

@nvaccessAuto

Comment 53 by jteh on 2013-04-21 10:07
We don't handle cursor movement ourselves in editable text fields, so this sounds like a Mozilla bug.

@nvaccessAuto

Comment 54 by fatma.mehanna on 2013-04-22 00:45
hi again,
i'd like to refer to something i noticed with the latest rtl display model snap.
We use an arabic dictionary, it is a very accessible program, and NVDA was reading the arabic meanings of the word perfectly.
now, NVDA reads everything in the program, but it stopped reading the arabic meanings of the english word.
steps to reproduce:
after downloading the program from:
https://dl.dropboxusercontent.com/u/4924744/Dic32.exe
1 extract the exe file, a dic32 folder will appear containing many files.
2 choose dic32.exe
3 in the combo box, the first object you will find, type an english word.
4 move one tab, you will find a button called "meaning" in english and arabic. press it.
5 move 2 tabs till you find a list.
results:
this list should contain the meanings of the word, but nvda just says list item when you arrow down.
6 make the opposit and type an arabic word in the edit combo box and press meaning button and move 2 tabs till you go to the list.
you will find out that the list is readable, containing the english meanings of the arabic words.
i tried the dictionary with the 2013.1 rc, and the arabic meanings are readable.
thanks.

@nvaccessAuto

Comment 55 by mdcurran (in reply to comment 54) on 2013-04-29 06:29
Replying to fatma.mehanna:
Please try your Arabic dictionary program with the following try build:
http://community.nvda-project.org/try/displayModelRtlSupport/nvda_snapshot_try-displayModelRtlSupport-9165,49757b7.exe
If it works okay for you, again please make sure that nothing else broke between this build and the last.

@nvaccessAuto

Comment 56 by fatma.mehanna on 2013-04-29 21:54
hi,
yes, the arabic dictionary problem has been fixed.
thanks.
as for if something broken, uptill now nothing is broken for me.
everything works fine now.
and the comunity didn't inform me about any problems related to this snap.

@nvaccessAuto

Comment 57 by mdcurran on 2013-05-01 23:57
The displayModelRtlSupport work was merged into master in chageset:52c03c8.
Therefore, this support will be in 2013.2.
Closing this ticket as fixed. However, if its found that something does not work in master snapshots that did work in displayModelRtlSupport try builds, please reopen this ticket providing details of what broke.
Please open new tickets for any separate rtl issues that come up after this point.
Changes:
Milestone changed from near-term to 2013.2
State: closed

@nvaccessAuto

Comment 58 by fatma.mehanna on 2013-05-02 10:03
sorry for re opening this again, but there is something was working with nvda rc1 2013.1 and it is not working with the latest rtl display model support and master 52c03c8, so i reopened the ticket again.
everything works fine after merging, but there is a tiny thing i want to refer to.
when we use flat review, and we use numpad 7 and 9 to select the object that we are going to activate, after selecting it, when i use numpad 1 to be sure that the cursor is located on the first char, i find myself on a space.
steps to reproduce:
1 go to skype menu and choose profile sub menu.
2 choose edit your profile item and press nvda+numpad 7 to use flat review.
3 use numpad 9 one time to go to "show full profile".
4 use numpad1 to be sure that the cursor is located in the first char.
5 press nvda+left click to move mouse to this item then press left click.
results:
the item will be activated and you can edit your profile using tab.
if you change skype interface lang to arabic, the matter is different.
steps to reproduce:
1 from tools menu choose change language submenu and press enter on the first item, which is arabic.
2 activate the menu bar the first menu will be skype as in english.
3 move 2 down arrows till you get to profile sub menu in arabic.
4 press left arrow to get into it.
5 move 2 down arrows till you get edit your profile, but in arabic.
6 press nvda+numpad7 to use flat review.
7 press numpad 9 one time to find the first item, which should be show full profile in english.
8 use numpad 1 to be sure that the cursor is located on the first char.
results:
1 you will find out that nvda says space not "ع" u in english keyboard layout which is the first char.
2 when you use numpad 3 one time, after i found nvda saying space, to go to ع letter, and press nvda+left click to move mouse to it, you will find nvda in a different location, so you can't activate the object.
this problem happens with the latest support rtl display model snap and with master 52c03c8.
it doesn't happen with the nvda rc1 2013.1
i don't know if it will be hard for you to reproduce, but i tried as much as i can to comunicate.

Changes:
State: reopened

@nvaccessAuto

Comment 59 by mdcurran (in reply to comment 58) on 2013-05-03 05:38
Replying to fatma.mehanna:
Could you please answer the following:

  • If you read the profile screen with flat review in Arabic, using NVDA 2013.1rc2 or older, does NVDA read it in the correct order, or is it backwards?
    • If you read the profile screen with flat review in Arabic, using NVDA master (with the rtl support merged), does NVDA read it in the correct order, or is it backwards?

I can reproduce your problem easily enough, but of course I'm not too sure how exactly its supposed to be read. I also need to work out how Skype is writing that text to the screen, so hopefully the above questions will answer that.

@nvaccessAuto

Comment 60 by fatma.mehanna (in reply to comment 59) on 2013-05-03 09:16
Replying to mdcurran:

Replying to fatma.mehanna:

Could you please answer the following:

  • If you read the profile screen with flat review in Arabic, using NVDA 2013.1rc2 or older, does NVDA read it in the correct order, or is it backwards?

yes NVDA reads the profile screen in the correct order. not backwards.

  • If you read the profile screen with flat review in Arabic, using NVDA master (with the rtl support merged), does NVDA read it in the correct order, or is it backwards?

it is also being read fine using master branch after merging.
there weren't any problems related to this screen.

I can reproduce your problem easily enough, but of course I'm not too sure how exactly its supposed to be read. I also need to work out how Skype is writing that text to the screen, so hopefully the above questions will answer that.

@nvaccessAuto

Comment 61 by mdcurran on 2013-05-04 15:47
in master d66bbc7 moving to the correct position on the screen with the mouse or object nav now works in the Skype Edit profile screen when flat reviewing the 'Show full profile' label in Arabic.
This bug was not specific to Skype - it should fix many other cases like this in flat review where there are multiple lines of rtl text.
Please confirm that this works for you.
In regards to the space at the beginning of the line: this is much harder to fix, and it could be argued that this is not a bug. There is space on the right end of the line, and since this line is rtl then its reversed (the space ends up at the front). Its always good practice for anyone reading rtl or ltr text to check the character before routing mouse or switching out of flat review, simply moving to a line makes no promise to where on that line you are.

@nvaccessAuto

Comment 62 by fatma.mehanna on 2013-05-04 23:39
hi,
thanks for fixing this issue.
it is working for me now with the latest snap.

@nvaccessAuto

Comment 63 by mohammed on 2013-05-05 07:12
closing as fixed. and as mike said, we can open new tickets for any separate rtl issues that come up after this point.
Changes:
State: closed

@nvaccessAuto

Comment 64 by mdcurran (in reply to comment 61) on 2013-05-06 01:44
Replying to mdcurran:
It seems I think I have fixed the space issue for editing Skype profiles in master c75cc62. I.e. there is now no longer a space at the beginning of the line for the 'Show full profile' label in Arabic.
Please confirm with the next master snapshot.

@nvaccessAuto

Comment 65 by fatma.mehanna (in reply to comment 64) on 2013-05-06 15:37
Replying to mdcurran:

Replying to mdcurran:

It seems I think I have fixed the space issue for editing Skype profiles in master c75cc62. I.e. there is now no longer a space at the beginning of the line for the 'Show full profile' label in Arabic.

yes i confirm this. thanks.

@nvaccessAuto

Comment 66 by fatma.mehanna on 2013-05-09 12:36
hi,
there is something i noticed i want to refer to regarding rtl issues.
nvda reviews some words in a strange way.
steps to reproduce:
1 open a word/wordpad document/excel file.
2 type in arabic "بسم الله الرحمن الرحيم", using english keyboard layout, "fsl hggi hgvplk hgvpdl in a document/a cell in excel.
3 press nvda+numpad7 to use flat review.
4 use numpad 7/9 till you find the arabic words.
5 try to review the words char by char using numpad1/3
results:
you can review all the words perfectly, except the word"الله", using english keyboard layout, "hggi", which is the second word in the given text.
what happens is when you review this word, nvda will read the whole word when you use numpad 3, but it reads it as chars though.
actually, i noticed this problem with this word only.
i noticed it since you have worked on rtl display model support, but i didn't know how to express it.
of course nvda was reading words reversely using flat review in word/wordpad/excel before rtl display model support.
Now nvda doesn't read reversely, but it just reviews this word strangely.
note, when i review this word without using flat review, nvda reviews it fine.

@nvaccessAuto

Comment 67 by mdcurran (in reply to comment 66) on 2013-05-09 23:09
Replying to fatma.mehanna:
When we detect text written to the screen with displayModels, sometimes the text is given to us already converted into glyphs (i.e. the actual font images for each character). In order for us to record the text, we convert these glyphs back into text. However, in some cases, the glyphs have already been normalized to their most efficient representation, which may not be exactly how it would have been typed (although it does look the same). In the case you provide, the word
"الله"
Is best represented as the single character
"ﷲ"
In unicode this character is called
"ARABIC LIGATURE ALLAH ISOLATED FORM"
(0xfdf2)

This explains why reviewing by character only sees one character. Though your speech synthesizer may be not expecting this character and therefore is doing something funny like spelling its label...

I'm not really sure that much can be done about this. Windows chooses to represent the word with this single character. I guess I would need to understand just how annoying this is. Right now I don't believe it can be fixed.

Its also worth noting that this brings up another bug to do with this character: If this is typed in Excel, and then you use the arrow keys to navigate through the word, NVDA will keep announcing that character (the word) for all three original character positions of the word.

@nvaccessAuto

Comment 68 by fatma.mehanna on 2013-05-28 09:38
hi,
i found another problem related to rtl with zello.
steps to reproduce:
1 sign in to zello.
2 go to tools menu.
3 choose add a channel.
4 type an arabic word to search for the channels under this word, for example, "العربية" "hguvfdm".
5 press tab to go to the list of results.
results:
nvda doesn't read the results correctly.
it reads strange words.
this problem doesn't happen with xp.
it happens with win7 32 bit as i tested. don't know what about 64 bit.
btw, this problem didn't happen with the 2013.1 release.
thanks.

@nvaccessAuto

Comment 69 by fatma.mehanna on 2013-05-30 00:49
hi,
sorry if the problem i'm going to mention doesn't deserve re opening the ticket, but it is an annoying bug.
nvda reverses the way of reviewing date and time if the date and time formatting is arabic.
if you review the properties of a folder, nvda reviews the date and time creation reversely.
steps to reproduce:
1 select a folder to know its properties.
2 press alt+enter.
3 press nvda+numpad 7
4 use numpad 7/9 to review the information.
here is an example of a folder properties:
General Sharing Security Previous Versions Customize ghost Type: File folder Location: D:\ Size: 29.1 GB (31,283,325,029 bytes) Size on disk: 29.1 GB (31,283,326,976 bytes) Contains: 3 Files, 0 Folders ٨٣:٠٥:٨٠ م, ٠٢ ﻣﺎرس، ٢١٠٢ Created:Attributes: Read-only (Only applies to files in folder) Hidden Advanced... OK Cancel Apply
results:
1 you will notice that nvda reads the free space and the total space numbers correctly.
2 you will also notice when you read the date and time of creating the folder, that nvda reads them reversely. i.e, nvda reads the date and time creation then read the word "created" for example, ٨٣:٠٥:٨٠ م, ٠٢ ﻣﺎرس، ٢١٠٢ Created:
from this example, you will notice the following:

(a) 83 should be 38 (number of seconds)
(b) 05 should be 50 (number of mins)
(c) 80 should be 08 (the hour)
(d) 02 should be 20 (the day)
(e) 2102 should be 2012.(the year)

3We know that nvda of course reads the folder properties continuously as soon as you open the properties dialogue.
If you leave nvda reading the properties continuously without interuption, it reads the numbers correctly, but when you use flat review, to review word by word, it reads the numbers reversely as shown above.
4 you will also notice that nvda reads the word "مارس" which means march, correctly.
this means that nvda only reverses reading the arabic numbers of date and time if the date and time formatting were arabic.

i tested using windows7, sp1, 64 bit, english, date and time formatting is arabic.
the problem doesn't happen using windows xp.
i can provide you with a log report if you won't be able to reproduce it.
thanks.

Changes:
State: reopened

@nvaccessAuto

Comment 70 by mdcurran (in reply to comment 68) on 2013-05-30 07:04
Replying to fatma.mehanna:
Please try this try build with Zello:
http://community.nvda-project.org/try/normalizeArabicChars/nvda_snapshot_try-normalizeArabicChars-9257%2c7123faa.exe

Technical:
In this situation we receive text as glyphs which we reconvert back into unicode characters. However, many of them are Arabic presentation forms. Therefore, at least we try to convert any Arabic presentation form B character (initial,medial,final,isolated) into its original basic Arabic character, as long as it results in only one basic character.

As usual, if this does work, watch out for anything else that may have broken.

Havn't had a chance to look at the date bug yet.

@nvaccessAuto

Comment 71 by fatma.mehanna (in reply to comment 70) on 2013-05-31 12:22
Replying to mdcurran:

Please try this try build with Zello:

http://community.nvda-project.org/try/normalizeArabicChars/nvda_snapshot_try-normalizeArabicChars-9257%2c7123faa.exe

yes, the problem has been fixed.

Technical:

In this situation we receive text as glyphs which we reconvert back into unicode characters. However, many of them are Arabic presentation forms. Therefore, at least we try to convert any Arabic presentation form B character (initial,medial,final,isolated) into its original basic Arabic character, as long as it results in only one basic character.

As usual, if this does work, watch out for anything else that may have broken.

Havn't had a chance to look at the date bug yet.

@nvaccessAuto

Comment 72 by mdcurran (in reply to comment 69) on 2013-06-02 22:52
Replying to fatma.mehanna:
This try build should fix the date problem:
http://community.nvda-project.org/try/normalizeArabicChars/nvda_snapshot_try-normalizeArabicChars-9258%2c3cfd628.exe

The time and year etc are now read in the correct direction. However, in this particular example, because its English US messages with Arabic dates, NVDA still has trouble and places the label (e.g. Created, Modified) after the date, rather than before. There is no clear way to fix this... if the label was Arabic this would not occur.

Technical:
Windows reports runs of numbers as being RTL, when within other RTL text. However, numbers are always read left to right even in Arabic so this doesn't really make sense. Therefore If windows says the run is RTL, but it does contain numbers, then we don't reverse its text, although we do still treet the run as RTL in the case of ordering with other runs.

@nvaccessAuto

Comment 73 by fatma.mehanna (in reply to comment 72) on 2013-06-03 11:29
yes, the date and time problem has been fixed with the latest snap you built.
i'd like to pay your attension to something. the problem doesn't occur in nvda2013.1 release, so i think delaying the labels "modified/created" can be solved.
thanks.

@nvaccessAuto

Comment 74 by mdcurran (in reply to comment 73) on 2013-06-04 05:50
Replying to fatma.mehanna:

i'd like to pay your attension to something. the problem doesn't occur in nvda2013.1 release, so i think delaying the labels "modified/created" can be solved.

No, the reason why those labels appear at the end of the line is to do with the fact that the line contains more arabic text than english text. NVDA has to guess which way to read the line and this is what it guesses. If you can come up with some better rules I'm happy to consider them. But right now, if the line contains more RTL text than LTR text, then the line is ordered RTL (i.e. the date/time on the right, is read before the label on the left). There is nothing in Windows that can tell us if a line is primarily RTL or LTR. Would love to know how a sighted Arabic reader knows which way to read it in this case.

@nvaccessAuto

Comment 75 by mdcurran (in reply to comment 74) on 2013-06-05 00:37
Replying to mdcurran:
Okay, please try this new build:
http://community.nvda-project.org/try/normalizeArabicChars/nvda_snapshot_try-normalizeArabicChars-9259,a15f172.exe
Now, NVDA will only reorder text reading direction up to Window boundaries. I.e. NVDA will not reorder actual controls or Windows on the screen, only the text within them. This works good for this particular arabic date/time example. But I'm sure there must be some Arabic-specific user interfaces where the labels are on the right but should be read first?

@nvaccessAuto

Comment 76 by fatma.mehanna (in reply to comment 75) on 2013-06-05 11:04
yes, the problem of delaying the created/modified label has been fixed, but another problem occured with this new build: nvda doesn't announce the arabic chars i'm deleting using the back space in microsoft excel.
i don't know if this happened due to the change you made or not, but this didn't happen with the previous normalize arabic chars build.
thanks.

@nvaccessAuto

Comment 77 by fatma.mehanna (in reply to comment 74) on 2013-06-05 11:12
Replying to mdcurran:
Would love to know how a sighted Arabic reader knows which way to read it in this case.
when i asked, they told me that the arabic text is being read from right to left and english read from left to right even if the line contains a mixture between arabic and english words, the direction of the line changes due to the written lang.

@nvaccessAuto

Comment 78 by mdcurran on 2013-06-11 07:32
So that we can get wider testing, I have created a new madaRtl branch, which is based on the latest normalizeArabicChars branch, with some latest master changes included, that should be used for general rtl testing from now on.
Daily snapshots of this branch will be available.
Please make sure that anyone who is affected by RTL support in NVDA tests these snapshots thoroughly.
Please visit:
http://community.nvda-project.org/snapshots/ and download the madaRtl branch main package.

Please open new tickets for any issues found in the future. Its very important that I get as much feedback from people as possible in the coming weeks on this as this project is almost at an end.
Changes:
State: closed

@nvaccessAuto

Comment 79 by fatma.mehanna on 2013-06-11 12:23
hi,
after testing the new branch mada rtl snap, the problem of announcing the chars using backspace in excel still exists.
it wasn't existing in previous snaps.
thanks.

@nvaccessAuto

Comment 80 by mdcurran (in reply to comment 79) on 2013-06-12 03:49
Replying to fatma.mehanna:

after testing the new branch mada rtl snap, the problem of announcing the chars using backspace in excel still exists.

Sorry, I completely forgot you mentioned that before. Should be now fixed in madaRtl 87319ac (next snapshot).

@nvaccessAuto

Comment 81 by fatma.mehanna (in reply to comment 80) on 2013-06-12 09:55
Replying to mdcurran:
Should be now fixed in madaRtl 87319ac (next snapshot).
yes, fixed. thanks.
still there isn't a way for solving the issue of the word "الله" "hggi"?

@nvaccessAuto

Comment 82 by mdcurran on 2013-06-26 05:51
Changes:
State: reopened

@nvaccessAuto

Comment 83 by mdcurran on 2013-06-26 05:52
Changes:
Added labels: incubating

@nvaccessAuto

Comment 84 by Michael Curran <mick@... on 2013-07-05 04:39
In [bbbaa14]:
```CommitTicketReference repository="" revision="bbbaa149a394f5396214de5976a8a1aee63191b1"
Merge rebased branch 'madaRtl'. Fixes #1601

Changes:
Removed labels: incubating
State: closed
@nvaccessAuto nvaccessAuto added this to the 2013.2 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment