-
-
Notifications
You must be signed in to change notification settings - Fork 623
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
Braille: Variation Selectors break cursor positions #10960
Comments
Could you test the behavior with this in NVDA 2019.2 please?
|
More details (according to my modest research): |
This is a difficult one. A quick solution would be: strip variation selectors from braille output. Not something I really like, as basically we're removing output that might be considered relevant for some people. Thoughts @michaelDCurran @dkager @Adriani90 @lukaszgo1? |
It seems that there are other signs more complexes. |
I've just made a first attempt in Braille Extender add-on, there's probably a better solution. See aaclause/BrailleExtender#63. |
Fixes #10960 Summary of the issue: There are cases where moving one character on a textInfo instance actually moves more than one unicode point offset. This is described by @mltony in the doc string for textInfos.TextInfo.moveToCodepointOffset. This causes of by one errors when cursor routing, since we're asking the textInfo to move by 1 characters, that might be presented by two or even more characters within the liblouis mapping. Description of user facing changes Cursor routing should be more reliable. Description of development approach @mltony's creation of moveToCodepointOffset allows us to move x code points from the start of the reading unit. As we're using 32 bit for liblouis, every character as presented by liblouis is equal to one code point. Therefore we can safely assume that this method to move is much more reliable than the previous method.
Fixes nvaccess#10960 Summary of the issue: There are cases where moving one character on a textInfo instance actually moves more than one unicode point offset. This is described by @mltony in the doc string for textInfos.TextInfo.moveToCodepointOffset. This causes of by one errors when cursor routing, since we're asking the textInfo to move by 1 characters, that might be presented by two or even more characters within the liblouis mapping. Description of user facing changes Cursor routing should be more reliable. Description of development approach @mltony's creation of moveToCodepointOffset allows us to move x code points from the start of the reading unit. As we're using 32 bit for liblouis, every character as presented by liblouis is equal to one code point. Therefore we can safely assume that this method to move is much more reliable than the previous method.
Reverts #16477 , #16497 Issues fixed None Issues reopened Reopens #10960 Reason for revert Feature turns out to be unstable. Can this PR be reimplemented? If so, what is required for the next attempt Use a feature flag Ensure issues reported in Fix routing to account for rawToContentPos #16497 (comment) and Fix routing to account for rawToContentPos #16497 (comment) are covered by the fix
Unfortunately, my work had to be reverted due to an oversight in the code for UIA in Word. I'll try to fix this later this week. |
The complexity here lies in the bullets and numbers part added in #8576 In this pr, @michaelDCurran changed bullet and number handling by adding the bullet/number to the line-prefix field on the format field before the text string. There are several problems with that approach:
When the text in fields and the text without fields don't match, it is impossible to tell moveToUnicodePointOffset where to move to when routing braille. |
Steps to reproduce:
Actual behavior:
The cursor is moved on — the desired position + 1 —. Also⚠️ takes 2 braille cells.
Expected behavior:
The cursor should be moved on the desired position. Also⚠️ symbol should takes one cell only.
With wordpad and in form mode in Firefox, cursor is properly moved.
System configuration
NVDA installed/portable/running from source:
Installed and portable
NVDA version:
2019.3, 2020.1
Windows version:
10 Insider (64-bit) build 19592.1001
Name and version of other software in use when reproducing the issue:
notepad, Microsoft Word, Firefox (in browse mode), Run dialog (windows+r), etc..
Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
No
If addons are disabled, is your problem still occuring?
Yes
Did you try to run the COM registry fixing tool in NVDA menu / tools?
No
CC @LeonarddeR
The text was updated successfully, but these errors were encountered: