[jawsscripts] Re: Jaws reading mixed up info when doing SayAll

  • From: "Mark A. DeMichele" <demi@xxxxxxxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Sun, 14 Feb 2010 10:52:18 -0500

Actually, I think you're understanding of my issues are pretty good.

I have the window handle to the flash player object and I also have the MSAA 
object pointer and child ID of the client object for the flash player.  Do you 
think I can use that to "work with the virtual buffer".

Also, it's not clear to me how to make use of the virtual buffer.  I searched 
for MoveToLandmark() and only found it reference in two places in Virtual.jss.  
I expected to find its definition in some JSS file, but I didn't.  I was under 
the impression that all functions were defined in script files somewhere, but I 
guess Jaws handles some internally?

Here's a theory I have, please let me know if you think my understanding of 
things is off or not.

When I do JawsTopOfFile() and then SayAll(), IE is doing the "Saying" and when 
it hits my flash player, it's somehow smart enough to switch to MSAA to get the 
info and "say" that as well.

However, when I point directly to the flash window, I lose those smarts and it 
tries to say it based on position of the items in it (but those items are MSAA 
so I'm a little confused here).  Not only that, it seems to be getting it's 
info from some buffer that was previously filled with stuff that's not current.

The question is how to I get it to a) use MSAA to say stuff and b) clear 
anything it might have had buffered.

I tried adding a Refresh(), Delay(2) (I saw this in another script), but it 
didn't seem to help.  I also tried add in and MSAARefresh(), but I think 
according to the documentation that only refreshes the currently focused object.

Any help or insight, of just pointing me a good examples would be greatly 
appreciated.  Thanks so much for the time you already spent answering my 
questions.

-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx 
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Travis Roth
Sent: Sunday, February 14, 2010 10:20 AM
To: jawsscripts@xxxxxxxxxxxxx; 'Jamal Mazrui'
Subject: [jawsscripts] Re: Jaws reading mixed up info when doing SayAll

Hi Mark,

As for JAWS remembering stuff that isn't there: perhaps JAWS isn't updating
its off screen model (OSM) in a timely manner. Try a screen refresh to see
if that forces some improvement. (JAWSKey+Escape, or refresh() function.)

As for SayWindow() I suspect that JAWS is trying to do exactly what you ask
of it: read the contents of the window.This function is based on JAWS' idea
of what the window has in it based on its OSM. I don't believe that MSAA is
used. You are correct, JAWS has two modes of working: the window/OSM way,
and MSAA. And they do not seamlessly work together all of the time.
You will want your Flex application to use MSAA, so you will need to use
JAWS' MSAA functions. If you can get it to work with the virtual buffer
enabled, the best bet for moving to your Flex application is to use one of
the functions for navigating the virtual buffer, such as MoveToLandmark()
(if you have landmarks in your HTML.) Or perhaps MoveToTag() looking for the
"object" tag.

If I misunderstood your goal of navigation, please try again.

-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Mark A. DeMichele
Sent: Sunday, February 14, 2010 7:58 AM
To: Jamal Mazrui; jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: Jaws reading mixed up info when doing SayAll

I did try them and it doesn't help.  It seems that jaws has two modes of
"Saying".  Sometimes it seems to do based on the MSAA structure and then
other times it seems to do it based on physical position on the screen.
One thing I noticed is that I have a navigation bar at the top.  I
purposely put that at the end of my MSAA tree.  That way, normally jaws
says it last.  However, when I do the SayWindow or MoveToWIndow and
SayAll, it will read the buttons in the navigation bar first.  Maybe
that's a clue. I don't know.

I looked through the IE scripts to see if anything funky is going on in
the TopOfFile, but I didn't see anything.  Why would Jaws still remember
items that are not there anymore.  It's kind of strange.

-----Original Message-----
From: Jamal Mazrui [mailto:empower@xxxxxxxxx] 
Sent: Sunday, February 14, 2010 8:53 AM
To: jawsscripts@xxxxxxxxxxxxx
Cc: Mark A. DeMichele
Subject: Re: [jawsscripts] Jaws reading mixed up info when doing SayAll

Try the Refresh and MSAARefresh functions in case they make a
difference.

Jamal


On 2/13/2010 6:39 PM, Mark A. DeMichele wrote:
> I have an odd issue.  I'm adding some custom script on top of the
latest
> Flex/Flash scripts to get a flex application to do some special stuff
in
> IE.  My flex app essentially displays a "document".  It has a
navigation
> area which allows the user to change to another "document".  I wrote
> some scripts to sense that change and when that happens I want jaws to
> say the new document.  Here's the odd part.  I have the window handle
to
> the flash window within IE.  If I do something like the following,
>
>
> MoveToWindow(hwnd)
>
> JawsPageUp()
>
> JawsHome()
>
> SayAll()
>
>
>
> Or just
>
>
>
> SayWindow(hwnd)
>
>
>
> It does two things I can't explain.  First, it reads the stuff from my
> app in "screen order" (i.e., top to bottom, left to right), not in the
> MSAA order I see the stuff in the MS Accessibility Explorer.  Also,
and
> this is worse, it's saying a garbled mess of stuff from all the
> documents I loaded since then mix in with the current one.  It's as if
> it's buffering stuff based on screen location and it's not ever
getting
> rid of it.  I used the AccEvent program to check that things were
> getting destroyed and it seems they are, but for some reason, Jaws
wants
> to read them.
>
>
>
> If, however, I use this code
>
>
>
> JawsTopOfFile()
>
> SayAll()
>
>
>
> Then jaws reads everything as expected (no old document info).
However,
> it says the entire IE window contents which I don't really want.  But
> the order is fine.
>
>
>
> Is there something I'm doing wrong?  I'm a seasoned experienced
> programmer, but I'm new to Jaws scripts so any technical information
or
> background would be greatly appreciated.  So far, I read both the
basic
> scripting manual and most of the FSDN manual, and to be honest, I'm
> learning the most by reading through the scripts that were delivered
> with jaws.  If anyone knows any other places to get good technical
info,
> that would be great.
>
>
>
> Thanks,
>
> Mark
>
>
> __________
> Visit and contribute to The JAWS Script Repository
http://jawsscripts.com
>
> View the list's information and change your settings at
> //www.freelists.org/list/jawsscripts
>
>
__________ 
Visit and contribute to The JAWS Script Repository http://jawsscripts.com

View the list's information and change your settings at 
//www.freelists.org/list/jawsscripts


__________ 
Visit and contribute to The JAWS Script Repository http://jawsscripts.com

View the list's information and change your settings at 
//www.freelists.org/list/jawsscripts

__________ 
Visit and contribute to The JAWS Script Repository http://jawsscripts.com

View the list's information and change your settings at 
//www.freelists.org/list/jawsscripts

Other related posts: