nvaccess / nvda

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

Keys which produce a compound character spoken as separate typed characters #1428

Open nvaccessAuto opened 13 years ago

nvaccessAuto commented 13 years ago

Reported by jteh on 2011-03-23 22:05 Some languages contain characters which do not have a single unicode character representation. Instead, pressing such a key produces a sequence of multiple unicode characters. This sequence looks like a single character and behaves like a single character in some respects; i.e. left/right arrow keys move the cursor past the entire compound character. However, the input actually contains several unicode characters.

Str:

  1. Install the Tamil keyboard layout.
  2. Open a Wordpad document, switch to the Tamil keyboard layout and enable speak typed characters.
  3. Press "shift+.".
  4. Expected: NVDA should speak one character. (Tamil: "sri")
  5. Actual: NVDA individually speaks the four characters ("ஸ்ரீ") composing this compound character. (Tamil: "sa otru ra ii")

Other letters in Tamil like this: ||= Letter =||= Key =|| || த்ர || shift+6 || || க்ஷ || shift+7 || || ஷ்ர || shift+8 || || ஞ்ச || shift+ஜ || || ந்த || shift+த || || ஃப || shift+ப ||

I haven't checked this yet, but I'm pretty sure Windows actually sends separate WM_CHAR messages for these characters; that is the only way it could work, since WM_CHAR only handles one character. Unless there's something I don't know about which indicates whether a character is a compound character and when it ends, this is going to be difficult to fix. We can't use WM_KEYUP to determine when a character ends, as this would mean we'd have to wait for the key to be released to have it announced. Using a timer would incur delay in speaking of typed characters, which is unacceptable. Blocking #4487

nvaccessAuto commented 13 years ago

Comment 1 by briang1 on 2011-03-24 08:05 Not that I know a lot about this, but has anyone tried narrator to see what it does for such characters?

nvaccessAuto commented 13 years ago

Comment 2 by pvagner on 2011-03-24 10:10 I don't seem to be able to install tamil keyboard layout on my windows xp. Are there some extra steps needed?

nvaccessAuto commented 13 years ago

Comment 3 by jteh on 2011-03-24 19:41 Check the "Install files for complex script and right-to-left languages (including Thai)" checkbox.

nvaccessAuto commented 10 years ago

Comment 5 by jteh on 2014-09-25 23:08 See also #2791, which will affect the same characters in some (but not all) applications when navigating by character.

LeonarddeR commented 7 years ago

CC @JCSTeh

jcsteh commented 7 years ago

P4 for now because even though it makes speak typed characters useless for some languages, we haven't had any complaints in many years with those communities, so we're not sure how much this actually matters to them for whatever reason. CC @DineshKaushal for any thoughts.

Adriani90 commented 6 years ago

@dineshkaushal your thoughts on this are very appreciated, thanks.

Adriani90 commented 4 years ago

@michaelDCurran is this solved by #10550? cc: @jcsteh since you created this issue years ago.

Adriani90 commented 8 months ago

If there are such characters in chinese as well, maybe @cary-rowen and @hwf1324 can you have a look and test if this issue is still relevant?

jcsteh commented 8 months ago

10550 is unlikely to fix this because it relates to navigating by character, whereas this relates to typed characters, which are handled differently. I suspect this bug still exists, though it doesn't seem like anyone cares any more?

Chinese input is handled differently - it has an input method editor rather than keys mapping directly to characters - so it is handled by a very specific part of NVDA and probably doesn't suffer from this.

Adriani90 commented 2 months ago

How is it for Korean or Japanese? @nishimotz, @khsbory could you provide some updates if you still see this issue in NVDA 2024.4 Beta?