Davy Kager
2014-01-08 11:56:26 UTC
Hi,
Because of my visual impairment I use screenreader software on the PC. I also use Notepad++ for my text editing and coding, which in turn uses Scintilla.
After upgrading Notepad++ from version 6.4.x (Scintilla 2.7) to version 6.5.x (Scintilla 3.3) I ran into the following problem:
- Reading text line-by-line works just like it did in previous versions.
- Pressing down arrow on the last visible line shifts the display to make the newly selected line visible, but my screenreader software first briefly reports a blank line before showing the new text. It's kind of like a "blur", except it happens in text-to-speech and Braille.
- The time it takes for the newly appeared text to be read by the screenreader correlates to the cursor blink rate.
I soon found that this problem has to do with Scintilla. I compiled a few versions and found the commit responsible for the new behavior:
http://sourceforge.net/p/scintilla/code/ci/65e47ea72946778da13b01702483f1402c13a47c/
I realize that this is an old commit, my apologies. Notepad++ just hadn't updated their Scintilla library in...a while.
In particular, the change in ScintillaWin::ScrollText(int) is causing the problem. It was switched to use Redraw() which probably explains my screenreader showing a blank line until it can re-focus on the cursor. I haven't dug deep enough to fully understand what has changed, and why. However, I did restore the old function in the latest stable release and recompiled without D2D support. This solved all my issues and seems to work very well in the latest Notepad++.
Naturally, I'd be interested to know if the old behavior could be restored for non-D2D targets, or else to know what exactly is going on underneath the hood here so I can take this up with my screenreader vendor.
Many thanks,
Davy
Because of my visual impairment I use screenreader software on the PC. I also use Notepad++ for my text editing and coding, which in turn uses Scintilla.
After upgrading Notepad++ from version 6.4.x (Scintilla 2.7) to version 6.5.x (Scintilla 3.3) I ran into the following problem:
- Reading text line-by-line works just like it did in previous versions.
- Pressing down arrow on the last visible line shifts the display to make the newly selected line visible, but my screenreader software first briefly reports a blank line before showing the new text. It's kind of like a "blur", except it happens in text-to-speech and Braille.
- The time it takes for the newly appeared text to be read by the screenreader correlates to the cursor blink rate.
I soon found that this problem has to do with Scintilla. I compiled a few versions and found the commit responsible for the new behavior:
http://sourceforge.net/p/scintilla/code/ci/65e47ea72946778da13b01702483f1402c13a47c/
I realize that this is an old commit, my apologies. Notepad++ just hadn't updated their Scintilla library in...a while.
In particular, the change in ScintillaWin::ScrollText(int) is causing the problem. It was switched to use Redraw() which probably explains my screenreader showing a blank line until it can re-focus on the cursor. I haven't dug deep enough to fully understand what has changed, and why. However, I did restore the old function in the latest stable release and recompiled without D2D support. This solved all my issues and seems to work very well in the latest Notepad++.
Naturally, I'd be interested to know if the old behavior could be restored for non-D2D targets, or else to know what exactly is going on underneath the hood here so I can take this up with my screenreader vendor.
Many thanks,
Davy
--
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com.
To post to this group, send email to scintilla-***@googlegroups.com.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com.
To post to this group, send email to scintilla-***@googlegroups.com.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.