Subject: bug#79070: [PATCH] Fix macOS dictation post NSTextInputClient migration in v30

From: Eli Zaretskii <[email-masked]>
Date: Wed, 23 Jul 2025 19:23:01 +0300

> From: Alvaro Ramirez <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked],
>   [email-masked],  [email-masked]
> Date: Wed, 23 Jul 2025 14:02:28 +0100
> 
> >   This should explain better what are the indications of the 
> >   problem.
> >
> > is still not addressed.
> 
> Updated PROBLEMS in 
> 0006-Enabled-macOS-dictation-post-NSTextInputClient-migration.patch.
> Hope that's better now.

Are you sure you sent the right patch?  The text in PROBLEMS looks the
same to me.

What I had in mind is something like this:

 ** Text dictation doesn't work on macOS

 The indication is that <describe here what users will see>.

 One reason for this is that the Emacs permissions for using the
 microphone were rejected in the past.  To reset the permissions, run
 this command:

etc.

> >> A tiny bit of additional info with respect to roll back (yields
> >> deprecation warning) vs roll forward fix... macOS seems to use a
> >> different dictation mechanism after NSTextInputClient was
> >> introduced (Emacs v30). Attaching screenshots showing different
> >> UI dictation triggered by either patch.
> >
> > Could you please spell out what that means for Emacs users?
> 
> Not much really. This is more of a macOS implementation 
> detail. Emacs users will get their dictation feature back, 
> regressed in Emacs 30. Fixing the regression leads to using a 
> newer API, which triggers a slightly different-looking UI. The way 
> the feature is triggered (global keyboard shortcut) and 
> transcription behaviour remain the same, so no significant change 
> in expectation as to how the feature works.
> 
> In a little more detail...
> 
> Introducing NSTextInputClient in Emacs v30 broke/removed dictation 
> as a side effect. This introduction seems to signal to macOS to 
> rely more on NSTextInputClient (new class) and less on NSTextInput 
> (deprecated class) to power separate internal dictation 
> subsystems. The screenshots I shared show the slightly 
> different-looking UI for each internal subsystem. One uses a large 
> microphone icon vs the tiny blue microphone icon (newer). Enabling 
> dictation (global keyboard shortcut) and transcription behaviour 
> remain the same.

How about explaining some of this in NEWS?  If the UI looks a bit
different, users could be confused, so maybe we should tell them it's
a bit different?