Hello all,
I updated my Mac OS to 10.15 yesterday. Overall, I am quite happy with it.
However, I have noticed that my earlier apple scripts are not working as they should. For instance, I had set up various keyboard strokes through Keyboard commander to perform various tasks, they are not working now.
Whenever I press my key combination to get certain task done, the VO does not perform as it should. I checked to see whether my keyboard commander is turned on, it is. The shortcut/scripts are there, VO even announces them when I check them in Keyboard help.
Interestingly, the apps open with the keystrokes, but apple scripts are not running.
Any help in this matter will be highly appreciated,
Thank you and have a good day all!
By VivekP, 10 October, 2019
Forum
macOS and Mac Apps
Comments
Apple is aware of the problem
Apple is aware of the problem. The current work around that I am using is saving the script as an app and then using the keyboard commander to activate the app instead of the script. This isn't ideal because it opens an applet so moves VoiceOver focus, but once it has run, it vanishes and VoiceOver returns to it's original place. It just means that VO might be a little more verbose than usual.
Thanks for bringing this up, I was intending to write a post about it. Apple accessibility are aware and have it in hand.
the time
anyone know a work around for getting VO to state the time with option + T currently very slow and unreliable
Read previous post
This is also running from a script however, I would suggest that this one could work. Open your script editor and paste in the following:
set message to ""
-- Determine the time
set currentTimeRaw to time string of (current date) as text
set hours to integers 1 thru ((offset of ":" in currentTimeRaw) - 1) of currentTimeRaw
set minutes to text ((offset of ":" in currentTimeRaw) + 1) thru ((offset of ":" in currentTimeRaw) + 2) of currentTimeRaw as integer
-- Build a time string
if currentTimeRaw contains "am" or currentTimeRaw contains "pm" then
-- 12 hour format
if hours is 0 then
set currentTime to "12"
else
set currentTime to hours
end if -- hours
if minutes is greater than 0 and minutes is less than 10 then
set currentTime to currentTime & " o " & minutes
end if
if minutes is greater than 9 then
set currentTime to currentTime & " " & minutes
end if -- append minutes
if currentTimeRaw contains "am" then
set currentTime to currentTime & " A M"
else
set currentTime to currentTime & " P M"
end if -- am/pm
else
-- 24 hour format
set currentTime to hours
if minutes is 0 then
set currentTime to currentTime & " hundred"
end if
if minutes is greater than 0 and minutes is less than 10 then
set currentTime to currentTime & " o " & minutes
end if
if minutes is greater than 9 then
set currentTime to currentTime & " " & minutes
end if -- append minutes
set currentTime to currentTime & " hours"
end if -- 12 or 24 hour format
set currentDate to date string of (current date) as text
set message to "It's " & currentTime & ", on " & currentDate & "."
tell application "VoiceOver" to output message
Once you have copied all of that in, save it but change the type from script to application. Make a note of where it is.
Now, open voiceover utility, assuming you already have let voiceover be controlled by apple scripts on, and go to commanders.
Select the keyboard tab.
Find the time in the list, I have mine set to the letter T.
Open the associated command next to it, go to custom and run application.
Now select the little app you created earlier and there you go.
It is wordier than it is hard.
Find me on
@OliverKennett
If you need a hand.
O
thanks Oliver
thanks Oliver, sounds quite complicated but appreciate you taking the time to help
It works but boy is it
It works but boy is it verbose and my andivirus app did its job and got in the way but all if fixed now. If apple fixes this how do we revert back to the script? I'm actually drawing a blank.
Hey, you will just have to
Hey, you will just have to assign the key back to the script.
FYI, the VoiceOver template scripts are in /Library/Scripts/VoiceOver for when you want to put the time script back as it was.
YEs, it's a pain. I'm just grateful there is a work around.
think i found another work around
i haven’t tested this a lot, but from what I tested it worked fine. Unassign the script, and assign it again, it should work again
Inconsistant Results
I've found that this provides inconsistent results. Tried it over a couple of days and the issues re-emerged.
It feels like there are issues with permissions for scripts to interact with VoiceOver and when the computer is restarted or has gone to sleep, the permissions again get muddled up.
If it's workingng fine for you though, great. This is the frustration with such problems, a lack of rhyme or reason until we know the actual cause or, even better, not know it and have it corrected.