react / react/react-native

🐞 iOS: Dictation Mic doesn't work properly with TextInput multiline

Open
#37,991 16 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Accessibility Component: TextInput Needs: Triage :mag: Never gets stale Platform: iOS
Dominant language
C++
Stars
127k
Forks
25.3k
Avg merge
1d 23h
Merged PRs (30d)
4

Description

Description

I tried using Dictation mic on iOS with TextInput. It works fine when multiline is OFF. But it doesn't work if multiline is set to true. It paste the text to the input but as soon as I start to type, it removed the dictation text.

React Native Version

0.71.8

Output of npx react-native info
System:
    OS: macOS 13.4
    CPU: (8) x64 Intel(R) Core(TM) i7-8569U CPU @ 2.80GHz
    Memory: 1.13 GB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.16.0 - /usr/local/opt/node@18/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.5.1 - /usr/local/opt/node@18/bin/npm
    Watchman: 2023.05.15.00 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.12.1 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
    Android SDK: Not Found
  IDEs:
    Android Studio: Not Found
    Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
  Languages:
    Java: Not Found
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0 
    react-native: 0.71.8 => 0.71.8 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found
Steps to reproduce

Use the following Input and play with the dictation mic.

const [message, setMessage] = useState('');
<TextInput onChangeText={setMessage} value={message} multiline={true} />
Snack, code example, screenshot, or link to a repository

Minimal reproduction case is to just use TextInput with multiline set to True

<TextInput onChangeText={setMessage} value={message} multiline={true} />

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the minimal React Native TextInput reproduction on iOS, using multiline={true}, value, and onChangeText as described. Confirm that dictation text is inserted and then removed when typing begins; done means the dictated text remains available while continuing to type.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, react-native
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.