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 >