[macvoiceover] Re: Scripting

  • From: Keith Reedy <keithreedy@xxxxxxxxxxx>
  • To: macvoiceover@xxxxxxxxxxxxx
  • Date: Tue, 10 Nov 2009 20:04:56 -0500

Bryan,

This is most interesting and I must say you have awakened my interest.  I too 
for a long while have thought that more could be done, should be done with 
maybe automater and scripting to automate Voiceover functionality.  Let us hear 
what you learn.

Keith Reedy
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: