I have a lot of typing that I need to do and would like to use voice dictation. However, it doesn't seem to "type" consistently across applications.

I've had success with the feature on a few native applications such as MS Word, gVIM and macOS Notes. I've noticed that it often will not be a consistent stream of "typing", rather it will sometimes burst several words out and then backspace and correct once it determines a better interpretation based on after-the-fact context. For example, if you say "3:26 PM" it will start bursting "three twenty six", backspace and replace it with "3:26 PM" because it eventually realized you were dictating a time of day.

In particular, I'm trying to use this on a Citrix Receiver session to a remote machine. It seems that the "backspace and replacement" adjustments it does do not make their way through to the remote session and I would see something more like "three twenty six 3:26 PM".

I would suspect that it doesn't register key press events since you're not physically pressing keys, but it would appear that Citrix isn't looking at "key PRESSES" anyway given that some input does work. However, I am curious how exactly it is interfacing with the software expecting input? Perhaps corrections aren't simply "backspace" operations but more "remove previous word" operations that some combination of keystrokes would do?

Does anyone have an idea here?

  • Is there a terminal component to the Citrix app? It might be a simple fix with stty to define the backspace character properly... – Francis from ResponseBase Dec 12 '17 at 20:31
  • @FrancisfromResponseBase: no, it is similar to VNC or RDP in that it is just a large window "portal" to a remote desktop; your mouse position/actions are sent along with any other keyboard/HID actions. Essentially a secure, enterprise grade remote desktop platform. – bjb Dec 13 '17 at 13:51
  • Hmmn. Well, if there were an X server and terminal component, which there likely is or perhaps was, it would have been perhaps an easy fix of like ‘stty erase (press the BACKSPACE key)’ in a Terminal window. – Francis from ResponseBase Dec 14 '17 at 8:36

The short answer to your question is it's complicated...

Depending on how the application was developed it might use any number of different APIs from Swift, Cocoa, Carbon.

If your application uses Apple's standard user interface elements like text fields, then it likely has a way to put the text directly into the field, however Apple has probably added functionality to support other software by simulating keypresses.

How well this is supported depends on the application developer.

As an example an application like Citrix likely doesn't use any standard UI elements because it's got no text box to type into, instead it shows an image of a computer and records where you click on that image, sending that to the other computer, similarly it has to record your key presses, but evidently it's not doing that very well.

Microsoft Word is likely a very old code base that has grown from the days of Carbon which may explain why it's not working as expected, and I don't know what gVIM but I think you mean MacVim but as it's a port from another project it may not have been tested for this properly / it's not on their list of priorities.

For what it's worth I have had similar issues using software like TextExpander and Dash which auto complete sentences in Terminal, and using Apple's own remote desktop software like Citrix, so I think this is to be expected.

  • 1
    Actually, I was stating the MS Word does work as does MacVim. FWIW, I think Office 2011 was a complete Cocoa rewrite; the 2008 and earlier versions were Carbon based. – bjb Dec 12 '17 at 18:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .