On a physical iPhone Duo running iOS 27.1 and later, the system dictation button
is placed inside the system keyboard, next to the space bar. Because the button
belongs to the system keyboard layout, it isn't available while a third-party
keyboard is active.
On other iPhone models, the dictation button appears separately from the
keyboard, so it stays available with third-party keyboards. On iPhone Duo, our
users have no way to start dictation without switching back to the system
keyboard.
The iPhone Duo Simulator shows the button at the far right, which doesn't match
the physical device, so this can't be evaluated accurately in the Simulator.
As far as I can tell, there is no public API that lets a keyboard extension
start system dictation, so we can't work around this from the extension.
My questions:
- Is this placement intended on iPhone Duo?
- Is there a supported way for a keyboard extension to offer dictation on this
device? - If not, are there plans for a separate system dictation button, as on other
iPhone models, or a public API for keyboard extensions?
I've filed this as FB[number]. If you develop a keyboard extension and see the
same issue, please file your own report and reference this number.
Hello @SeanChoi
Please reply with your FB number, I will make sure your report is routed to the relevant engineering team that can confirm if the placement is intended.
“Supported" can mean a few things in this context:
- What is available in the SDK,
- What is documented
- What is allowed in the App Store.
When it comes to support: whether something is documented or not does not solely determine support.
You may come across behavior that is not documented but runs on device, however, some of it may be an implementation detail that is not intended to be relied on by apps. If you share your sample project in your report, I can confirm with the team if a behvior is intended.
As far as what is documented, Custom Keyboard states it clearly:
"Custom keyboards, like all app extensions in iOS 8.0, have no access to the device microphone, so dictation input is not possible."
The same page says "there is no API to obtain a list of enabled keyboards or for picking a particular keyboard to switch to." That means an extension can't reliably send people to the system keyboard either. UIInputViewController offers advanceToNextInputMode() and handleInputModeList(from:with:) for cycling keyboards.
The guide is archived and was written for iOS 8, so its wording is dated. I'm not aware of any later public API that changes this. I'd still treat the guide as the documented baseline. Until the team confirms otherwise, I'd suggest offering in-app voice input in your containing app, or letting people switch to the system keyboard to dictate – but I'd still be interested in sharing that report with the team.
I hope this information is helpful.
Travis