nvaccess / nvda

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

reversed words in flat review with arabic language #1601

Closed nvaccessAuto closed 9 years ago

nvaccessAuto commented 13 years ago

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

nvaccessAuto commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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:

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

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

nvaccessAuto commented 11 years ago

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

nvaccessAuto commented 11 years ago

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

Merge rebased branch 'madaRtl'. Fixes #1601

Changes: Removed labels: incubating State: closed