Ticket #513 (new defect)

Opened 2 years ago

Last modified 2 years ago

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:1 Changed 2 years ago by aleksey_s

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

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?

Note: See TracTickets for help on using tickets.