Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[Bug]: macOS Accessibility warning persists after permission is enabled

Ouverte
#1,196 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
Une demi-journée
Accessibilité débutants
50/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
electron, macos, typescript
Domaine
desktop

Piste de recherche

Start in src/hooks/useScreenRecorder.ts, where the darwin editable-overlay preflight calls requestNativeMacCursorAccess and shows recording.cursorAccessibilityUnavailable on a not-determined helper result. The proposed change removes that toast and the System Settings prompt, keeping the position-only fallback. Done means a regression test shows recording starts without the Accessibility toast, and the change is checked on a macOS build.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Search existing issues
  • I have searched the existing issues
  • Related: #878 and merged fix #886
Describe the bug

On macOS, OpenScreen can still show the Accessibility warning even after Accessibility is enabled for the OpenScreen app in System Settings.

Observed message:

Accessibility is off. Recording will continue, but cursor effects may be limited. Enable it in System Settings for full cursor effects.

The warning is misleading in this state: the main app is authorized, recording can start, and the warning appears to be based on the result of a separate native cursor helper process rather than the main OpenScreen app's TCC grant.

This was first observed in a local 2.0.1-hans.7 build and reproduced in a local arm64 build based on the official v2.0.0 code line. I have not yet claimed that it reproduces in the unmodified notarized v2.0.0 DMG.

Expected behavior
  • Accessibility should be treated as optional for recording.
  • If the main app is authorized, no Accessibility warning should be shown.
  • If Accessibility is unavailable, recording should still start with position-only cursor telemetry, without repeatedly opening System Settings.
  • A warning should only be shown when the app can reliably determine that the main app's permission is missing.
To Reproduce
  1. On macOS, enable OpenScreen under System Settings → Privacy & Security → Accessibility.
  2. Restart OpenScreen.
  3. Use the cursor/editable-overlay recording mode.
  4. Start a recording.
  5. Observe that the Accessibility warning can still appear even though the permission is enabled.
  6. The recording itself can still succeed.
Environment
  • OS: macOS 26.6.2
  • Architecture: Apple Silicon (arm64)
  • Official release line: v2.0.0
  • Bundle identifier: com.etiennelescot.openscreen
Proposed fix

Treat the native cursor-access request as best-effort and do not use its helper-process status as a recording-start gate or as proof that the main app lacks Accessibility.

In src/hooks/useScreenRecorder.ts, the recording preflight can be reduced to:

if (platform === "darwin" && cursorCaptureMode === "editable-overlay") {
  await window.electronAPI.requestNativeMacCursorAccess();
}

Remove the recording-start path that:

  • tracks cursorAccessibilityWarningShown;
  • shows recording.cursorAccessibilityUnavailable based on a not-determined helper result;
  • opens System Settings from that toast.

Keep the native cursor session's position-only fallback and add a regression test asserting that recording starts and the misleading Accessibility toast is not shown.

I applied this change locally. Targeted tests passed, and a real 87.9-second H.264/AAC recording completed successfully.

Separate packaging note

During local testing, an ad-hoc package whose main executable identifier was Electron produced SCStream -3805 (application connection interrupted). Restoring the official bundle identifier com.etiennelescot.openscreen and preserving the correct app identity removed that failure. This appears to be a local packaging/signing issue rather than an upstream runtime regression, but the release packaging should continue to preserve the app bundle identity.

Langage dominant
TypeScript
Étoiles
3.7k
Forks
231
Merge moyen
16 h 38 min
PR mergées (30 j)
327

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de getopenscreen/openscreen

Toutes les issues de getopenscreen/openscreen

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.