VoiceOver configuration doesn't work on macOS Sequoia
The way that guidepup configures VoiceOver settings, by using the defaults CLI utility to modify settings in the com.apple.VoiceOver4/default domain, no longer works on macOS Sequoia. I verified this against the latest commit on main. I have been unable to figure out where these settings are stored now.
Hi @mwcampbell 👋
Unfortunately doesn’t surprise me, will need to see if I can upgrade or get ahold of a machine/vm with the latest OS as these things tend to move around.
Could be one for https://github.com/guidepup/setup as well
It might be a while until can test on CI as well https://github.com/actions/runner-images/discussions/10472
I can give remote access to my machine running Sequoia if that would help. You can email me at [email protected].
Apologies for taking so long on this, using:
sudo fs_usage -w | grep VoiceOver
We can observe that the majority of VoiceOver preferences are now stored in ~/Library/Group Containers/group.com.apple.VoiceOver/Library/Preferences/com.apple.VoiceOver4/default.plist for Sequoia, compared to ~/Library/Preferences/com.apple.VoiceOver4/default.plist for previous OS versions.
This file is part of the group container for the VoiceOver app as part of app sandboxing which unfortunately restricts us somewhat 😮💨. We can no longer use defaults for read/write of these permissions...
Will have a play but feels like for Sequoia the best we might be able to acheive is using plutil to read/write against this group container file, though afaik this will only work if the terminal/process that is executing the command has full disk access permissions - something not keen I advise users to configure on their machines! This might be acceptable for some users within a CI environment...
Raised https://github.com/actions/runner-images/issues/11257 for GH actions to have AppleScript control enabled for their runners.
This would at least solve the issue of not being able to automate VO in GH actions (though not for other CI). Docs can be updated with manual steps to explain how to do this locally as well.
What not sure how to solve atm is all the other VO preferences such as speaking rate, as they are similarly sandboxed and not something feel can insist GH actions have permanently set to certain values… more thought needed! The backstop I guess is dropping the ability, and also the option to use VO to configure itself once running…