Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

reversed words in flat review with arabic language #1601

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

reversed words in flat review with arabic language #1601

nvaccessAuto opened this issue Jun 22, 2011 · 87 comments

Comments

@nvaccessAuto
Copy link

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
Copy link
Author

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](u'pressed']
DEBUGWARNING) 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](u'fatma']
IO) 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'](u'edit']
IO)
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'](u'Document1']
IO)
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'](u'fatma']
IO)
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'](u'input/output']
IO)
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'](u'info']
IO)
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'](u'pressed']
IO)
IO - speech.speak (16:52:38):
Speaking [- speech.speak (16:52:38):
Speaking [u'blank'](u'edit']
IO)
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\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'](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'
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
Copy link
Author

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
Copy link
Author

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

@nvaccessAuto
Copy link
Author

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

@nvaccessAuto
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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

@nvaccessAuto
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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

@nvaccessAuto
Copy link
Author

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

@nvaccessAuto
Copy link
Author

Comment 84 by Michael Curran <mick@... on 2013-07-05 04:39
In [bbbaa14]:

Merge rebased branch 'madaRtl'. Fixes #1601

Changes:
Removed labels: incubating
State: closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants