[audacity4blind] Re: warnings

  • From: Gary Campbell <campg2003@xxxxxxxxx>
  • To: audacity4blind@xxxxxxxxxxxxx
  • Date: Tue, 8 Sep 2015 07:59:38 -0600

David (E.), you may have discovered a long-standing problem with JAWS. Before you do the other stuff I suggested, try checking in Task Mangler (if you kill a task it does often get mangled :-)) to see if Audacity is still running. JAWS has always had a problem reading nonexistent windows :-).


On 9/7/2015 11:05 PM, Gary Campbell wrote:

I am not seeing the problem. I don't think the algorithm I gave you would help you because it sounds like the track panel no longer has focus, so you can't go from the track panel to find its real window. If you could, you haven't lost focus. How I would start troubleshooting would be something like this:
Start up Audacity and get ready to save the project.
Turn on utility mode and Shift+F2 up to the top level window.
Do ALT+CTRL+ENTER (NodeCapture), write down the window handle and the Hierarchy x value. (The Hierarchy Y value should be 1 if you're at the top level window.)
Now save the project. The problem won't happen because you want it to. To fix that you will fake Murphy out somehow-- try pretending you're not looking for it :-).
In the event Murphy is caught off guard, what window has focus? Probably nothing useful.
Go to the top level of wherever you are and look for the window. If you can't find the window handle, you might look for any window with class wxWindowClassNR. You know that it used to be at the WindowHierarchyX you recorded. That doesn't mean it is still there, of course. I don't know how to look for the window except to tab through all the top-level windows. (You could write a script to look for it I guess.) We had a Microsoft tool that I think would search for and monitor a window. I know we watched for messages to a window with it. I can't think what it was called, and a while ago I tried to look for it and couldn't find it. Searching for it by hand sounds rather overwhelming.

That's all I can come up with off the top of my head. We should probably take this off list to go any further.

About the other problem I see-- where the letters vanish from the screen as far as JAWS is concerned, I did some research using a copy of the v2.0.3 source I happen to have. I found, I think, that the selection bar controls are written via a device context (quite low level if I remember right), kind of the same way graphics are drawn I think. It looks like all the characters are written at the same time, in order, so it's not happening because the letters are written one way and the numbers another. The question I have is how does the JAWS GetWindowText function get this text, and why does it get the numbers and not the letters? I was wondering if somehow it is on the border line of the problem you were having that changing resolution fixed. That doesn't really make sense, because I think GetWindowText probably uses a WinAPI function to get the window text, and I don't see how resolution would affect that-- after all, it's not doing OCR.

I wonder if anyone else is seeing this-- JAWS seeing the numbers in the selection bar fields but not the letters or decimal point when reading with the JAWS cursor or SayLine with PC cursor active and focus in the field.

Well, to bed!


On 9/6/2015 5:48 PM, David Engebretson Jr. wrote:
I changed my resolution back to a lower setting and it worked. I think someone might have changed the resolution without me knowing. They probably didn't know it would affect JAWS. It's interesting, though, because it seemed like the issue started happening after I enabled the new combined meter under view-> toolbars. Audacity wouldn't change the resolution on its own would it?
Your description of the algorithm is quite helpful. Maybe I'll try and use your routine to find the track panel after saving a project. JAWS totally loses focus. The best I can do is go to the desktop and restart Audacity. Then the track panel comes back into focus. It's interesting, though, that not everyone is complaining about this issue. It makes me think I'm either running a crazy video card or there are gremlins in my puter.
Regarding skype - that would be great. Haven't talked to you in a few years it seems. Sunday the 13th we, at the Washington Council of the Blind, are having a parenting conference call. It's for blind parents. You interested in joining us?

*From:* Gary Campbell <mailto:campg2003@xxxxxxxxx>
*Sent:* Sunday, September 06, 2015 4:21 PM
*To:* audacity4blind@xxxxxxxxxxxxx <mailto:audacity4blind@xxxxxxxxxxxxx>
*Subject:* [audacity4blind] Re: warnings

Hi David,

I don't know what's going on yet, but the last time I ran Audacity I didn't have the problem with JAWS 16.0.4350 on Win8.1 64-bit laptop, but here's what causes that message, at least for the SayActiveCursor script. JAWS finds the real window of the focused window (the track panel). It then searches for the control ID of the selection control (ID_SELECTION_END) and goes forward 2 controls. It doesn't check any of these. It then calls GetPositionField on this control, which returns the value to speak as a string. GetPositionField processes the value of the control to make it sound nicer. So there's several things that could happen that would cause this message. If it didn't find a real window, or didn't find the selection end control, or didn't get a control when it skipped the two controls, or if somehow the algorithm that processes the string came up with an empty string, the message would occur. The idea behind the message is that if the toolbar isn't selected it won't find the selection end control. Throwing in the processing of the value was, I think, just something easy to catch that error. After all, they always told me I wasted too much time testing for things that wouldn't happen! :-). I just tried it and it works for me. I actually had work last week, and I think I'll have one more day Tuesday. We could try using Skype and Tandem tomorrow or after Tuesday if you want. (I've never done that, but the docs sound like it should work.) Or try getting your feet wet by taking a stab at finding it. I think I'd start by sticking SayInteger() calls to make sure you're going down the path to find the control. Then a SayString to see what the actual control value is. If there is one, then follow through the nightmare in GetPositionField. Get hold of me off list and let me know what you want to do.


On 8/26/2015 3:34 AM, David Engebretson Jr. wrote:
I've been using the latest Audacity with JAWS scripts. If I press alt+del to here the current time/position, I get a warning saying "to use this feature you must enable the selection toolbar".
I have the selection bar enabled under the View->Toolbars menu...
Another symptom is that, when I use the arrow keys to navigate through a track/project, the time is not announced.
Any idears why this might be happening?

Other related posts: