Skip to content

Support Full Keyboard Access on iOS for keyboard navigation events #76497

@hkwinslow

Description

@hkwinslow

Internal: b/368112319

Internal: b/374883991

Steps to Reproduce

  1. Connect iPhone to an external keyboard via bluetooth
  2. Run/open an iOS flutter app (on a physical device)
  3. Try to navigate the app using only an external keyboard

Expected results:

  • Able to access & interact with all input elements (text fields, buttons, checkboxes, etc.) by making use of keys such as tab, up, down, space, enter, etc.

Actual results:

  • Not able to access any input fields or interact with the app in any way

Details

  • I tried using the 1Keyboard app to use my Mac keyboard through bluetooth, and I also bought a bluetooth keyboard to try. Both yielded same result.
  • There is one workaround I have found but it only applies to text fields. That is to set autofocus to true and then adding this code to the text field: textInputAction: TextInputAction.next, onEditingComplete: () => FocusScope.of(context).nextFocus(), But, I would expect it to work out of the box and for any type of input element. Also this requires autofocus to be set to true which is not ideal in many cases.
  • I have tried using a small sample app I've built, as well as the Flutter Catalog app which I read should have this support.

Flutter Doctor Results
Screen Shot 2021-02-21 at 2 25 38 PM

@gspencergoog Hixie said you have done work on keyboard for mobile. Any ideas? Thanks for looking at this!

Metadata

Metadata

Labels

P1High-priority issues at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)customer: castawaycustomer: chalk (g3)f: focusFocus traversal, gaining or losing focusfound in release: 3.19Found to occur in 3.19found in release: 3.22Found to occur in 3.22frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyr: fixedIssue is closed as already fixed in a newer versionteam-accessibilityOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)triaged-accessibilityTriaged by Framework Accessibility team

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions