[macvoiceover] Re: Scripting

  • From: David Poehlman <david.poehlman@xxxxxxxxxxxxxxxxxxxxxxxx>
  • To: macvoiceover@xxxxxxxxxxxxx
  • Date: Wed, 11 Nov 2009 05:56:07 -0500

right, you have to compell/propell them.  this is why I said there is no 
scripting in vo.

On Nov 10, 2009, at 7:47 PM, Bryan Smart wrote:

The keyboard commander makes it possible to run a code fragment in response to 
a user request (keyboard command, gesture, etc). However, I'm talking about 
code that automatically runs in response to non-user generated events: new 
window, focus change, state change, new text, etc. Doesn't seem to be a way to 
do that with VoiceOver and scripting.

As best as I can tell, AppleScript scripts can send events out, but can't 
receive events from anything. There may be a way that the Mac can raise events 
when these things happen, but you probably need to receive those in a real 
application. If such events can be received inside of a Mac application, and it 
is possible for an application to call a specific function in an AppleScript, 
then someone could create an application to serve as a dispatcher. Probably, 
though, this isn't possible, or else VoiceOver would be able to raise events in 
scripts already. I'll get to reading about the lower level accessibility 
framework stuff in a few days, and will hopefully have something more informed 
to say.

For anyone else technical that is reading this thread, I've discovered a 
component of AppleScript called SystemEvents. This provides GUI scripting, 
which basically allows you to control the user interface of an application 
through the accessibility framework. You can, for example, push a button or 
check/uncheck a checkbox by name. This is a much more stable way of operating 
an application's user interface than using the VoiceOver events to sett focus 
to some known location, sending some fixed number of navigation commands, and 
then clicking the mouse.

Sorry if this info is rehashing stuff that the list has already covered. I 
don't know how many people are interested in scripting or programming in 
general. Since I couldn't find much organized info on the subject, though, I 
thought that posting here would, at least, let that info wind up in the list 
archives for someone to Google at some future point.

Bryan

-----Original Message-----
From: macvoiceover-bounce@xxxxxxxxxxxxx 
[mailto:macvoiceover-bounce@xxxxxxxxxxxxx] On Behalf Of David Poehlman
Sent: Tuesday, November 10, 2009 5:15 PM
To: macvoiceover@xxxxxxxxxxxxx
Subject: [macvoiceover] Re: Scripting

look in the vo keyboard commander.

On Nov 10, 2009, at 1:36 PM, Bryan Smart wrote:

Hi Sam.

Sorry if I didn't make this clear, but I do understand that AppleScript scripts 
are used to control VoiceOver. I was looking for some examples or documentation 
on what methods or properties were exposed by VoiceOver for use by the scripts.

I figured out what I was doing wrong with the script editor. When you open an 
app's dictionary, the focus goes in to a toolbar area. If you back out (stop 
interacting with), then you can see the rest of the window, including the 
object browser.

If anyone is curious, here is what I've figured out.

Your scripts can trigger just about any VO behavior, including standard 
navigation, manually position and clicking the mouse, reading information from 
the screen, etc.

However, it doesn't look like VoiceOver raises any events when stuff happens on 
screen (new windows appear, the focus moves, text is written, etc), so you 
can't make scripts automatically speak anything or otherwise react to what 
happens on screen. I'm still a fairly noob of a VO user, though, so there might 
be a way of showing events that I've missed.

Anyhow, there is enough here to build some cool scripts for VO. The first one 
that comes to mind is a more advanced hot spot tool. I'll talk about that in 
another thread, though.

Bryan

-----Original Message-----
From: macvoiceover-bounce@xxxxxxxxxxxxx 
[mailto:macvoiceover-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Troia
Sent: Tuesday, November 10, 2009 1:11 PM
To: macvoiceover@xxxxxxxxxxxxx
Subject: [macvoiceover] Re: Scripting

Brian, they're Apple scripts, not vo scripts.  There are two things for you to 
look at: Apple scrips themselves and automator which you can use to write 
scripts.

On Nov 10, 2009, at 11:44 AM, Bryan Smart wrote:

> I'm trying to get started with VO scripting, but information is very thin. My 
> short-term goal while learning VO scripting is to speed up operations in 
> Garage Band by making macros for lengthy VO procedures and directly 
> controlling Garage Band from script when VO UI processes can't accomplish a 
> task.
> 
> For starters, I tried to track down the pre-installed VO scripts to use for 
> study, but can't find them on the hard drive. I can see the Time of Day 
> script listed in the Keyboard Commander table of the VO Utility, but it 
> doesn't show the path, and selecting to add a new script starts out in my 
> home folder, so this way of tracking them down was a bust. I checked the VO 
> manual, but it doesn't say anything about where default scripts are or should 
> be stored.
> 
> Since I couldn't study any examples, I tried to just have a look at what VO 
> commands are available from scripts. To do that, I went to the AppleScript 
> editor and attempted to use Open Dictionary from the File menu to have a look 
> at what methods/properties are exposed from VO. When I open VO's dictionary, 
> though, the window seems mostly blank. I see a search box, a few unlabeled 
> check boxes, and some dimmed unlabeled buttons. Is this part of script editor 
> broken? Perhaps I'm doing something incorrectly?
> 
> Finally, I tried Googling for VO scripting info or examples, but came up dry. 
> It doesn't seem like many people are experimenting with this VO feature yet.
> 
> It has been over 10 years since I last did anything with AppleScript, and 
> that was on OS9. I catch on to new languages quickly, but it just seems that 
> there isn't much available for study as relates to VO scripting. Can anyone 
> assist with a link to some info?
> 
> Bryan
>> 
>> Click on the link below to go to our homepage.
>> http://www.icanworkthisthing.com
>> 
>> Manage your subscription by using the web interface on the link below.
>> //www.freelists.org/list/macvoiceover
>> 
>> Users can subscribe to this list by sending email to 
>> macvoiceover-request@xxxxxxxxxxxxx
>> with 'subscribe' in the Subject field OR by logging into the Web 
>> interface at //www.freelists.org/list/macvoiceover
>> 

> 
> Click on the link below to go to our homepage.
> http://www.icanworkthisthing.com
> 
> Manage your subscription by using the web interface on the link below.
> //www.freelists.org/list/macvoiceover
> 
> Users can subscribe to this list by sending email to 
> macvoiceover-request@xxxxxxxxxxxxx
> with 'subscribe' in the Subject field OR by logging into the Web 
> interface at //www.freelists.org/list/macvoiceover
> 
> 
> Click on the link below to go to our homepage.
> http://www.icanworkthisthing.com
> 
> Manage your subscription by using the web interface on the link below.
> //www.freelists.org/list/macvoiceover
> 
> Users can subscribe to this list by sending email to 
> macvoiceover-request@xxxxxxxxxxxxx
> with 'subscribe' in the Subject field OR by logging into the Web 
> interface at //www.freelists.org/list/macvoiceover
> 


> 
> Click on the link below to go to our homepage.
> http://www.icanworkthisthing.com
> 
> Manage your subscription by using the web interface on the link below.
> //www.freelists.org/list/macvoiceover
> 
> Users can subscribe to this list by sending email to  
> macvoiceover-request@xxxxxxxxxxxxx
> with 'subscribe' in the Subject field OR by logging into the Web 
> interface at //www.freelists.org/list/macvoiceover
> 
> 
> Click on the link below to go to our homepage.
> http://www.icanworkthisthing.com
> 
> Manage your subscription by using the web interface on the link below.
> //www.freelists.org/list/macvoiceover
> 
> Users can subscribe to this list by sending email to
> macvoiceover-request@xxxxxxxxxxxxx
> with 'subscribe' in the Subject field OR by logging into the Web
> interface at //www.freelists.org/list/macvoiceover
> 


>
> Click on the link below to go to our homepage.
> http://www.icanworkthisthing.com
>
> Manage your subscription by using the web interface on the link below.
> //www.freelists.org/list/macvoiceover
>
> Users can subscribe to this list by sending email to
>  macvoiceover-request@xxxxxxxxxxxxx
> with 'subscribe' in the Subject field OR by logging into the Web
> interface at //www.freelists.org/list/macvoiceover
>

Other related posts: