-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MacOS Sequoia support for VoiceOver AppleScript automation #11257
Comments
Hi @jlp-craigmorten, Thank You. |
Hi @pravinade @sureshe456, is there an ETA on this fix landing? Can we expect to it be in place for GA of the macOS 15 images (#11486)? This issue makes it impossible to automate testing of VoiceOver and related accessibility features on macOS 15 with GitHub actions. Thank you! |
@outofambit , we're checking into this and will keep you posted. |
Hi @jlp-craigmorten , Thank you for your patience.
|
I'll try find some time to create a public repo that reproduces the issue - I'll ping here when done! The workflow I'm using atm is quite involved and doesn't demonstrate the exact issue very well. That is unless @outofambit has something that would make it easy to replicate and test? |
I'm actually seeing slightly different behavior, where the steps in our GitHub action that attempt to use |
Hi all, I've tried to create a minimal reproduction at https://github.com/guidepup/macos-15-automation-error-demo. Locally (without enabling AppleScript support via VoiceOver Utitlity or the suggested fix above) I get the error described in the issue when running the workflow on Sequoia: [1] 35860
******** Launching VoiceOver from starter application ********
2025-02-01 21:13:14.061 VoiceOverStarter[35860:15759807] VoiceOverDebug: _ScreenReaderStartWithTarget with option 0
2025-02-01 21:13:14.068 VoiceOverStarter[35860:15759807] VoiceOverDebug: after boostrap_look_up succeeded
2025-02-01 21:13:14.068 VoiceOverStarter[35860:15759807] VoiceOverDebug: calling _SCRStartup returned 0
craig.morten 35860 0.1 0.0 410060000 32 s001 S 9:13PM 0:00.00 (VoiceOverStarter)
[1]+ Done /System/Library/CoreServices/VoiceOver.app/Contents/MacOS/VoiceOverStarter
true
VO ready.
voiceOverPerform.applescript:304:318: execution error: VoiceOver got an error: vo cursor doesn’t understand the “perform action” message. (-1708)
Failed to perform AppleScript, retrying...
voiceOverPerform.applescript:304:318: execution error: VoiceOver got an error: vo cursor doesn’t understand the “perform action” message. (-1708)
Failed to perform AppleScript, retrying...
voiceOverPerform.applescript:304:318: execution error: VoiceOver got an error: vo cursor doesn’t understand the “perform action” message. (-1708)
Failed to perform AppleScript, retrying...
voiceOverPerform.applescript:304:318: execution error: VoiceOver got an error: vo cursor doesn’t understand the “perform action” message. (-1708)
Failed to perform AppleScript, retrying...
voiceOverPerform.applescript:304:318: execution error: VoiceOver got an error: vo cursor doesn’t understand the “perform action” message. (-1708)
Failed to perform AppleScript, retrying...
^C If I enable AppleScript support then it succeeds as expected. Interestingly the same attempt to use AppleScript on the macos-15 runner seems to just hang rather than error - apologies a poor assumption on my steps to repro in the original description, see https://github.com/guidepup/macos-15-automation-error-demo/actions/runs/13091391299 for an example workflow which has the passing job for macos-13 and macos-14, but macos-15 just hangs...? |
Hi All, I’ve used the You can add this line to your code and test: os: [macos-13, macos-14, macos-15, macos-15-xlarge]. Feel free to reach out if you have any questions or need further assistance. |
Thanks for taking a look - will have to hold off until you resolve the |
Description
In MacOS Sequoia (15) Apple have changed where configuration is stored for enabling AppleScript control of VoiceOver.
Specifically
~/Library/Preferences/com.apple.VoiceOver4/default.plist
has been replaced by the sandboxed~/Library/Group Containers/group.com.apple.VoiceOver/Library/Preferences/com.apple.VoiceOver4/default.plist
.This means the current code at https://github.com/actions/runner-images/blob/main/images/macos/scripts/build/configure-machine.sh#L22-L28 is no longer sufficient to allow the automation of VoiceOver on macos-15 agents.
This should be updated to something similar to:
where the pertinent addition is:
Note: care needed to make sure that this new command is only executed for MacOS 15 (Darwin 24) agents (as presumably the file does not exist for earlier versions of the OS!)
Platforms affected
Runner images affected
Image version and build link
REF: https://github.com/guidepup/setup/actions/runs/12561961803/job/35021706292?pr=39
Is it regression?
No
Expected behavior
VoiceOver can be automated through AppleScript.
Actual behavior
VoiceOver cannot be automated through AppleScript.
Repro steps
Run
macos-15
agentStart VoiceOver, e.g. execute
/System/Library/CoreServices/VoiceOver.app/Contents/MacOS/VoiceOverStarter
Attempt to control VoiceOver using AppleScript, e.g. execute
Observe that the script errors with
example.applescript:60:74: execution error: VoiceOver got an error: vo cursor doesn’t understand the “perform action” message. (-1708)
when it would normally succeed (because the dictionary isn't loaded when AppleScript control is disabled).The text was updated successfully, but these errors were encountered: