[GH-ISSUE #100] KeyCastr does not display command keys once VoiceOver is enabled #81

Open
opened 2026-05-05 04:52:04 -06:00 by gitea-mirror · 16 comments
Owner

Originally created by @gurix on GitHub (Nov 14, 2017).
Original GitHub issue: https://github.com/keycastr/keycastr/issues/100

I plan to use keyCastr to record Screencasts demonstrating accessibility related stuff using mac internals VoiceOver. The problem is, as soon as I start VoiceOver keyCastr does not work anymore. It looks like VoiceOver hijacks the key and override the keyCastr hijacking.

Originally created by @gurix on GitHub (Nov 14, 2017). Original GitHub issue: https://github.com/keycastr/keycastr/issues/100 I plan to use keyCastr to record Screencasts demonstrating accessibility related stuff using mac internals VoiceOver. The problem is, as soon as I start VoiceOver keyCastr does not work anymore. It looks like VoiceOver hijacks the key and override the keyCastr hijacking.
gitea-mirror added the
compatibility
bug
help wanted
labels 2026-05-05 04:52:04 -06:00
Author
Owner

@akitchen commented on GitHub (Dec 5, 2017):

Can you clarify your use case, and what you mean by 'hijacking'?

KeyCastr is receiving key events and displaying certain ones depending on your settings. Are you creating key events in VoiceOver that you expect to see displayed by KeyCastr?

<!-- gh-comment-id:349190660 --> @akitchen commented on GitHub (Dec 5, 2017): Can you clarify your use case, and what you mean by 'hijacking'? KeyCastr is receiving key events and displaying certain ones depending on your settings. Are you creating key events in VoiceOver that you expect to see displayed by KeyCastr?
Author
Owner

@gurix commented on GitHub (Dec 8, 2017):

My assumption is that VoiceOver hijacks the user input before KeyCastr gets the input and does not propagate it properly to KeyCastr afterwards.

Here I recorded a little screencast that demonstrates the issue: https://youtu.be/cE7z5xLkC2g

<!-- gh-comment-id:350195132 --> @gurix commented on GitHub (Dec 8, 2017): My assumption is that VoiceOver hijacks the user input before KeyCastr gets the input and does not propagate it properly to KeyCastr afterwards. Here I recorded a little screencast that demonstrates the issue: https://youtu.be/cE7z5xLkC2g
Author
Owner

@akitchen commented on GitHub (Dec 8, 2017):

Thank you very much for the demonstration video! I see that you are entering command key sequences with the keyboard once voiceover enabled, and while they are working they are not being received/displayed by KeyCastr. It is very interesting that the other keys you are typing are still being displayed.

I will try to set aside some time to look into this. It is not clear why the command keys are no longer being displayed once voiceover is enabled. With this information we should be able to investigate further.

<!-- gh-comment-id:350301805 --> @akitchen commented on GitHub (Dec 8, 2017): Thank you very much for the demonstration video! I see that you are entering command key sequences with the keyboard once voiceover enabled, and while they are working they are not being received/displayed by KeyCastr. It is very interesting that the other keys you are typing are still being displayed. I will try to set aside some time to look into this. It is not clear why the command keys are no longer being displayed once voiceover is enabled. With this information we should be able to investigate further.
Author
Owner

@gurix commented on GitHub (Dec 12, 2017):

I just observed that the virtual keyboard on mac suffers from almost the same issue.

I started the virtual keyboard, and pressed the ctrl-option-command-h keys. Every keystroke is clearly visible and one can see which keys I am holding. As soon as I start voiceover and I press the option key of the ctrl-option-command-h sequence, the keyboard switches back to its default state as I don' t press any button. But ctrl-command-h without the option button, works as expected. So It looks like that as soon as I press ctrl-option having VoiceOver on, any additional input is trapped in VoiceOver. And it does not matter if I am press ctrl first and then option or vice versa, the result is the same.

By default ctrl-option is defined as the "VoiceOver"-Key. So my intention was that os x maps this combination to a new Key that is not visible on the keyboard. So I tried to do the same and logged the keys using KeyCodes. I hopped that magically a new key code appears, but the result was the same as before. It stopped logging as soon I pressed ctrl-option while VoiceOver was active.

So I hope with this thoughts, we could better understand the behaviour.

<!-- gh-comment-id:351083172 --> @gurix commented on GitHub (Dec 12, 2017): I just observed that the virtual keyboard on mac suffers from almost the same issue. I started the virtual keyboard, and pressed the ctrl-option-command-h keys. Every keystroke is clearly visible and one can see which keys I am holding. As soon as I start voiceover and I press the option key of the ctrl-option-command-h sequence, the keyboard switches back to its default state as I don' t press any button. But ctrl-command-h without the option button, works as expected. So It looks like that as soon as I press ctrl-option having VoiceOver on, any additional input is trapped in VoiceOver. And it does not matter if I am press ctrl first and then option or vice versa, the result is the same. By default ctrl-option is defined as the "VoiceOver"-Key. So my intention was that os x maps this combination to a new Key that is not visible on the keyboard. So I tried to do the same and logged the keys using [KeyCodes](https://manytricks.com/keycodes/). I hopped that magically a new key code appears, but the result was the same as before. It stopped logging as soon I pressed ctrl-option while VoiceOver was active. So I hope with this thoughts, we could better understand the behaviour.
Author
Owner

@akitchen commented on GitHub (Dec 12, 2017):

Thanks for the additional info.

Does this reproduce every time for you? I was able to reproduce the issue
once, but in subsequent sessions I was able to see command key sequences in
KeyCastr with VoiceOver enabled, so I'm not sure what to do about it.

<!-- gh-comment-id:351158401 --> @akitchen commented on GitHub (Dec 12, 2017): Thanks for the additional info. Does this reproduce every time for you? I was able to reproduce the issue once, but in subsequent sessions I was able to see command key sequences in KeyCastr with VoiceOver enabled, so I'm not sure what to do about it.
Author
Owner

@gurix commented on GitHub (Dec 14, 2017):

Thank your for reviewing this issue. It happens all the time regardless if I start KeyCastr first or vice versa. I will ask @jmuheim if he could reproduce it as well. But he is working with El Capitan, I am working with high Sierra. What Version of OS X was it in your case?

<!-- gh-comment-id:351748184 --> @gurix commented on GitHub (Dec 14, 2017): Thank your for reviewing this issue. It happens all the time regardless if I start KeyCastr first or vice versa. I will ask @jmuheim if he could reproduce it as well. But he is working with El Capitan, I am working with high Sierra. What Version of OS X was it in your case?
Author
Owner

@jmuheim commented on GitHub (Jan 23, 2018):

I reproduced this. It seems that KeyCastr only displays key presses that are NOT VoiceOver commands. So for example, while pressing the bare arrow keys is displayed as expected, pressing ctrl+option+space (for activating a link using VoiceOver) isn't displayed.

<!-- gh-comment-id:359750332 --> @jmuheim commented on GitHub (Jan 23, 2018): I reproduced this. It seems that KeyCastr only displays key presses that are NOT VoiceOver commands. So for example, while pressing the bare arrow keys is displayed as expected, pressing ctrl+option+space (for activating a link using VoiceOver) isn't displayed.
Author
Owner

@dpersing commented on GitHub (Aug 13, 2018):

Hello! I'm running into the same issue in High Sierra (10.13.6). I was planning to use KeyCastr for training sessions using VoiceOver, and I'm too finding that it does not cast any keystrokes that use the VoiceOver modifier keys (control + option).

<!-- gh-comment-id:412580876 --> @dpersing commented on GitHub (Aug 13, 2018): Hello! I'm running into the same issue in High Sierra (10.13.6). I was planning to use KeyCastr for training sessions using VoiceOver, and I'm too finding that it does not cast any keystrokes that use the VoiceOver modifier keys (<key>control</key> + <key>option</key>).
Author
Owner

@CleezyITP commented on GitHub (Dec 13, 2018):

Same issue here! Would be great/super useful to have this issue resolved.

<!-- gh-comment-id:447156410 --> @CleezyITP commented on GitHub (Dec 13, 2018): Same issue here! Would be great/super useful to have this issue resolved.
Author
Owner

@caseymhunt commented on GitHub (Aug 7, 2019):

Can confirm. I need this feature to assist with training users on Voiceover usage. Having the keyboard shortcut combos visual on screen is critical. Is there a known workaround?

<!-- gh-comment-id:519164208 --> @caseymhunt commented on GitHub (Aug 7, 2019): Can confirm. I need this feature to assist with training users on Voiceover usage. Having the keyboard shortcut combos visual on screen is critical. Is there a known workaround?
Author
Owner

@diegohaz commented on GitHub (Apr 16, 2020):

Same issue on MacOS Catalina 10.15.3.

<!-- gh-comment-id:614795074 --> @diegohaz commented on GitHub (Apr 16, 2020): Same issue on MacOS Catalina 10.15.3.
Author
Owner

@varungandhi-src commented on GitHub (May 8, 2022):

Reproduced on macOS Monterey 12.2.1 with KeyCastr 0.9.11 as well.

<!-- gh-comment-id:1120481059 --> @varungandhi-src commented on GitHub (May 8, 2022): Reproduced on macOS Monterey 12.2.1 with KeyCastr 0.9.11 as well.
Author
Owner

@tempertemper commented on GitHub (Dec 13, 2022):

Same issue on Ventura 13.0.1 with KeyCastr 0.9.13.

<!-- gh-comment-id:1349117140 --> @tempertemper commented on GitHub (Dec 13, 2022): Same issue on Ventura 13.0.1 with KeyCastr 0.9.13.
Author
Owner

@Codisy commented on GitHub (Jul 11, 2023):

Same problem in Ventura 13.2

<!-- gh-comment-id:1631012598 --> @Codisy commented on GitHub (Jul 11, 2023): Same problem in Ventura 13.2
Author
Owner

@KenjiYANAGAWA commented on GitHub (Oct 22, 2023):

Same problem with macOS Sonoma 14.0

<!-- gh-comment-id:1774161208 --> @KenjiYANAGAWA commented on GitHub (Oct 22, 2023): Same problem with macOS Sonoma 14.0
Author
Owner

@nloding commented on GitHub (Feb 20, 2026):

I've been experimenting with keystroke visualizers, and KeyCastr is my favorite because it is open source, but this one issue makes it really hard for me to use - as the first commenter said, a lot of demos are showing how to use VO. Keystroke Pro does capture the VO commands, so it is possible. Somehow. I'm trying to see if I can connect with someone at Apple who might be able to shed some light? 🤞🏻

<!-- gh-comment-id:3937515091 --> @nloding commented on GitHub (Feb 20, 2026): I've been experimenting with keystroke visualizers, and KeyCastr is my favorite because it is open source, but this one issue makes it really hard for me to use - as the first commenter said, a lot of demos are showing how to use VO. Keystroke Pro _does_ capture the VO commands, so it _is_ possible. Somehow. I'm trying to see if I can connect with someone at Apple who might be able to shed some light? 🤞🏻
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/keycastr#81
No description provided.