On Tue, Oct 8, 2019 at 06:37 PM, Luke Davis wrote:
By then an empty line isn't the empty string, it is the word "blank" which is what NVDA needs the user to hear.After all that precedes what's quoted above (which, by the way, I appreciate), this is the crux of the matter. I had not realized that NVDA was doing anywhere near to this level of "massaging" to the straight text before passing it to the synthesizer, particularly when all one is looking for is for the text to be read in the manner I presume I'd read it were I reading it to someone.
I understand why, when doing line by line, the blank lines get announced as blank as, to me, that's part and parcel of why one is going line by line - to pick up just this sort of thing. What I didn't realize was that during NVDA's pre-processing of a blank line it had actually substituted the word "blank" to pass to the synthesizer. I would have thought that if reading line by line the first thing that would happen is checking the custom dictionaries for the line to be passed, and that line alone, and if it were substituted with nothing, as in there is no replacement string, that nothing would be passed to the synth.
I don't code NVDA, clearly, and it appears that you do. Information such as you've offered, and clearly, makes the process much more transparent, if convoluted, to me.
Brian - Windows 10 Pro, 64-Bit, Version 1903, Build 18362
The color of truth is grey.
~ André Gide