Ticket #513 (new defect)
Incorrect console reading
| Reported by: | aleksey_s | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | Core | Version: | development |
| Keywords: | Cc: | ||
| Operating system: | Windows XP | Blocked by: | |
| Blocking: |
Description
Sometimes, NVDA is too verbose in console windows.
STR:
- open cmd
- run python interpreter
- type: print "hi"
Currently, NVDA says
h
i
hi
It starts reading by letter and only then reads the entire message. This behaviour also exists in other console apps.
Change History
comment:2 Changed 2 years ago by mdcurran
Sorry, could you please provide a little more information.
- What happens for you exactly?
- I assume that I save that code in a .py file and run it in a Windows CMD shell?
comment:3 Changed 2 years ago by mdcurran
I apologize. I missed your first description. Sorry its very early morning.
Yes, I also get this problem quite a bit. However, only if Speak Typed characters is enabled.
I'm not sure how to fix it yet, but I can explain why it happens.
In XP and Vista, we are not aloud to hook window messages in dos consoles. So therefore we can not detect wm_char messages, and therefore not announce typed characters the normal way.
So, we detect, as part of our console diff code, when a single character seems to appear, in relation to where the caret is, and then we assume its a typed character and pass it through to speakTypedCharacters.
This happens quite a bit too often so it seems.
We need to stop doing this. However, what to replace it with?


A simple script to demonstrate a bug:
s=raw_input("enter string: ")
print "you entered ",s
print "press enter to exit"
raw_input()