Skip to content

Accessibility broken for multi-line TextInput focus accessibility (since 0.71) #44915

@jgillick

Description

@jgillick

Description

With React Native 0.71, multi-line TextInput fields are not announcing "is editing" to assistive devices when the field is activated. This results in assistive keyboards, like braille screen input, from working and renders the text input entirely unusable.

This was verified functional in 0.70.x. and broken since 0.71.0

Using git bisect and the rn-tester app, I believe the source of the bug is:

Removing the accessibilityState attribute of RCTTextInputView in TextInput.js seems to fix it. Is there any reason we need this accessibilityState object for an input field?

Steps to reproduce

  1. Using Expo Go, open an example app on a physical iOS device.
  2. Navigate to a TextInput with multiline={true}
  3. Double-tap to activate the field.
  4. Observe that the screen reader does not announce "is editing".

React Native Version

0.74.2

Affected Platforms

Runtime - iOS

Output of npx react-native info

System:
    OS: macOS 13.0
    CPU: (8) arm64 Apple M1
    Memory: 106.13 MB / 16.00 GB
    Shell: 3.6.0 - /opt/homebrew/bin/fish
  Binaries:
    Node: 19.7.0 - /usr/local/bin/node
    Yarn: 1.22.17 - /usr/local/bin/yarn
    npm: 9.5.0 - /usr/local/bin/npm
    Watchman: 2023.01.30.00 - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: Not Found
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.1, iOS 16.1, macOS 13.0, tvOS 16.1, watchOS 9.1
    Android SDK: Not Found
  IDEs:
    Android Studio: 2022.1 AI-221.6008.13.2211.9619390
    Xcode: 14.1/14B47b - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.11 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0 
    react-native: 0.71.4 => 0.71.4 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Stacktrace or Logs

N/A

Reproducer

https://github.com/jgillick/rn-input-multiline-a11y-bug

Screenshots and Videos

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions