Skip to content

iOS a11y text entry is incomplete #14543

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
5 tasks
yjbanov opened this issue Feb 8, 2018 · 5 comments
Open
5 tasks

iOS a11y text entry is incomplete #14543

yjbanov opened this issue Feb 8, 2018 · 5 comments
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: fidelity Matching the OEM platforms better a: text input Entering text in a text field or keyboard related problems customer: flex f: cupertino flutter/packages/flutter/cupertino repository found in release: 3.19 Found to occur in 3.19 found in release: 3.22 Found to occur in 3.22 framework flutter/packages/flutter repository. See also f: labels. fyi-text-input For the attention of Text Input team has reproducible steps The issue has been confirmed reproducible and is ready to work on P2 Important issues not at the top of the work list platform-ios iOS applications specifically team-ios Owned by iOS platform team triaged-ios Triaged by iOS platform team

Comments

@yjbanov
Copy link
Contributor

yjbanov commented Feb 8, 2018

This is a follow-up for issue #12786.

As of flutter/engine#4575 we have partial support for a11y text entry on iOS.

What works:

  • When "tabbed" or "dragged" into
    • Text fields are announced as "Text field"
    • The hint "double tap to edit"
    • Content of text field is announced
    • It is announced weather a text field is in edit mode
    • The insert mode (e.g. character mode) is not announced.
  • Entered characters are echoed back
  • After inserting space the last word is echoed back
  • Swiping up or down moves the courser
  • Selecting text with reverse-pinch

What remains to be done:

  • No announcement when a currently edited text field gains focus via the "tap" gesture
  • The position of the cursor is not announced
  • Copy&paste does not work when rotor is in edit mode
  • TextFields for passwords (secureTextEntry = YES) are not announced as "secure text fields"
  • TextFields for passwords (secureTextEntry = YES) announce their content (e.g. "5 bullets") instead of the number of characters

/cc @goderbauer

@yjbanov yjbanov added a: text input Entering text in a text field or keyboard related problems platform-ios iOS applications specifically a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) labels Feb 8, 2018
@yjbanov yjbanov mentioned this issue Mar 7, 2018
11 tasks
@yjbanov yjbanov added this to the 3: Current Milestone milestone Mar 7, 2018
@goderbauer
Copy link
Member

I just noticed that text fields for secure entry (e.g. Passwords) are also not announced correctly on iOS even though we set secureTextEntry = YES on the UITextInput. Added two points for this to the bullet list above.

@Hixie Hixie modified the milestones: 3: Current Milestone, 4: Next milestone Apr 11, 2018
@Hixie Hixie added a: fidelity Matching the OEM platforms better f: cupertino flutter/packages/flutter/cupertino repository labels Nov 26, 2018
@zoechi zoechi added the framework flutter/packages/flutter repository. See also f: labels. label Dec 13, 2018
@kf6gpe kf6gpe added the P2 Important issues not at the top of the work list label May 29, 2020
@Hixie Hixie removed this from the None. milestone Aug 17, 2020
@darshankawar
Copy link
Member

darshankawar commented Sep 4, 2020

Issue replicable on latest stable (1.20.3)

flutter doctor -v
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.20.3, on Mac OS X 10.15.2 19C57, locale en-US)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 3.6)
[✓] Connected device (1 available)
code sample
body: Column(
          children: [
            TextField(
              decoration: InputDecoration(
                hintText: 'email'
              ),
            ),
            TextField(
              decoration: InputDecoration(
                hintText: 'pass'
              ),
              obscureText: true,
            )
          ],
        )

@darshankawar darshankawar added found in release: 1.20 Found to occur in 1.20 has reproducible steps The issue has been confirmed reproducible and is ready to work on labels Sep 4, 2020
@justinmc
Copy link
Contributor

justinmc commented Oct 5, 2022

@chunhtai Is this old issue on your radar for accessibility?

@chunhtai
Copy link
Contributor

chunhtai commented Oct 5, 2022

No, I am not aware of this issue, The voice over is interacting with the text inputplugin, not sure why it is not working, needs more investigations.

@darshankawar
Copy link
Member

What remains to be done:

  • No announcement when a currently edited text field gains focus via the "tap" gesture
  • The position of the cursor is not announced
  • Copy&paste does not work when rotor is in edit mode
  • TextFields for passwords (secureTextEntry = YES) are not announced as "secure text fields"
  • TextFields for passwords (secureTextEntry = YES) announce their content (e.g. "5 bullets") instead of the number of characters

Verified above features using latest stable and code sample as provided earlier, below is the latest behavior of each:

  • No announcement when a currently edited text field gains focus via the "tap" gesture

This sometimes work and sometimes doesn't. When it works, it reads textfield is editing, character mode, insertion point on end. If we move the cursor to the start of the editing text, it reads textfield is editing, character mode, insertion point at start.

  • The position of the cursor is not announced

Currently it reads, insertion point at start or insertion point at end depending on the cursor position.

  • Copy&paste does not work when rotor is in edit mode

This still persists.

  • TextFields for passwords (secureTextEntry = YES) are not announced as "secure text fields"
  • TextFields for passwords (secureTextEntry = YES) announce their content (e.g. "5 bullets") instead of the number of characters

These still persists as mentioned.

Based on the verification and indifferent behavior observed, I'll keep the issue open and update labels to reflect current and correct status of this issue.

stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.19.6, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.19.6 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 54e66469a9 (6 days ago), 2024-04-17 13:08:03 -0700
    • Engine revision c4cd48e186
    • Dart version 3.3.4
    • DevTools version 2.31.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.22.0-14.0.pre.67, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.22.0-14.0.pre.67 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 1a905d508d (20 hours ago), 2024-04-21 06:44:23 -0400
    • Engine revision 75ca2195c9
    • Dart version 3.5.0 (build 3.5.0-83.0.dev)
    • DevTools version 2.35.0-dev.8
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.
      
[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.



@darshankawar darshankawar added found in release: 3.19 Found to occur in 3.19 found in release: 3.22 Found to occur in 3.22 and removed found in release: 1.20 Found to occur in 1.20 labels Apr 24, 2024
@justinmc justinmc added the fyi-text-input For the attention of Text Input team label May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: fidelity Matching the OEM platforms better a: text input Entering text in a text field or keyboard related problems customer: flex f: cupertino flutter/packages/flutter/cupertino repository found in release: 3.19 Found to occur in 3.19 found in release: 3.22 Found to occur in 3.22 framework flutter/packages/flutter repository. See also f: labels. fyi-text-input For the attention of Text Input team has reproducible steps The issue has been confirmed reproducible and is ready to work on P2 Important issues not at the top of the work list platform-ios iOS applications specifically team-ios Owned by iOS platform team triaged-ios Triaged by iOS platform team
Projects
None yet
Development

No branches or pull requests

9 participants