Skip to content

fix: trigger the real macOS Accessibility prompt instead of bouncing to Settings - #14

Merged
Alfredoalv13 merged 1 commit into
mainfrom
fix/trigger-accessibility-prompt
Jul 24, 2026
Merged

fix: trigger the real macOS Accessibility prompt instead of bouncing to Settings#14
Alfredoalv13 merged 1 commit into
mainfrom
fix/trigger-accessibility-prompt

Conversation

@Alfredoalv13

Copy link
Copy Markdown
Owner

Summary

  • Same root cause as fix: trigger the real macOS Screen Recording prompt instead of bouncing to Settings #12 (Screen Recording), for Accessibility: `getAccessibilityPermissionStatus()` uses `isTrustedAccessibilityClient(false)`, a passive read that never prompts or registers the app in System Settings.
  • `requestAccessibilityPermission()` (`isTrustedAccessibilityClient(true)`) already existed in the backend/preload but was never called from the actual recording flow - `startStudioRecording` jumped straight to `openAccessibilityPreferences()` when not trusted.
  • Verified directly this session: even after correctly granting Screen Recording (via fix: trigger the real macOS Screen Recording prompt instead of bouncing to Settings #12's fix) and toggling what appeared to be the right Accessibility entry in System Settings, followed by a full quit-and-reopen, the app kept reporting Accessibility as not granted - because the real request path was never exercised, only the passive check.

Test plan

  • `tsc --noEmit` clean
  • `npm test` - 94/94 files, 819/819 tests passing (added coverage for the not-trusted -> prompt -> trusted path)
  • Manual: on a fresh install where VybeClip has never appeared in Accessibility settings at all, click Record and confirm the real macOS "would like to control this computer" prompt now appears

Same root cause as the Screen Recording fix (#12), for Accessibility:
getAccessibilityPermissionStatus() calls isTrustedAccessibilityClient(false),
a passive read that never prompts or registers the app in System Settings.
requestAccessibilityPermission() (isTrustedAccessibilityClient(true)) already
existed in the backend and is exposed to the renderer, but was never called
anywhere - startStudioRecording jumped straight to opening System Settings
when accessibility wasn't trusted, leaving nothing there to grant on first use.

Verified directly this session: after fixing Screen Recording, an otherwise
fresh app install kept showing "Accessibility permission is required" even
after toggling what appeared to be the correct entry in System Settings and
doing a full quit-and-reopen, because that request path was never exercised.

Now mirrors the Screen Recording fix: call requestAccessibilityPermission()
when not yet trusted, then re-check, before falling back to Settings.
@Alfredoalv13
Alfredoalv13 merged commit d9018d4 into main Jul 24, 2026
1 check passed
@Alfredoalv13
Alfredoalv13 deleted the fix/trigger-accessibility-prompt branch July 24, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants