Skip to content

[web] Using tab to navigate through focus nodes doesn't seem to work in all browsers #45250

@Pherne

Description

@Pherne

This is my flutter doctor -v:

[✓] Flutter (Channel dev, v1.12.4, on Linux, locale de_DE.UTF-8)
    • Flutter version 1.12.4 at /home/anna/Schreibtisch/flutter_linux_v1.9.1+hotfix.6-stable/flutter
    • Framework revision 2461c75600 (vor 2 Tagen), 2019-11-18 12:26:51 -0500
    • Engine revision 5fb7eb753b
    • Dart version 2.7.0

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /home/anna/Android/Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /snap/android-studio/81/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /snap/android-studio/81/android-studio
    • Flutter plugin version 41.1.2
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (2 available)
    • Chrome     • chrome     • web-javascript • Google Chrome 78.0.3904.108
    • Web Server • web-server • web-javascript • Flutter Tools

• No issues found!

This is the example I use:

                    Padding(
                      padding: EdgeInsets.only(
                          top:20,
                          bottom: 10,
                      child: Form(
                        key: _emailKey,
                        child: TextFormField(
                          style: whiteText,
                          controller: _emailController,
                          focusNode: _focusEmail,
                          decoration: InputDecoration(
                            hintText: 'E-Mail-Adresse',
                            hintStyle: greyText,
                          ),
                          validator: (value) {
                            RegExp regExp = RegExp(
                              r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)",
                              caseSensitive: false,
                              multiLine: false,
                            );
                            if (value.trim().isEmpty ||
                                regExp.hasMatch(value.trim()) == false) {
                              return 'Keine gültige E-Mail-Adresse';
                            }
                            return null;
                          },
                          onFieldSubmitted: (term) {
                            _focusEmail.unfocus();
                            FocusScope.of(context).requestFocus(_focusPassword);
                          },
                        ),
                      ),
                    ),
                    Padding(
                      padding: EdgeInsets.only(
                          top: 10,
                          bottom: 20,
                      child: Form(
                        key: _passwordKey,
                        child: TextFormField(
                            style: whiteText,
                            obscureText: true,
                            focusNode: _focusPassword,
                            controller: _passwordController,
                            decoration: InputDecoration(
                              hintText: 'Passwort',
                              hintStyle: greyText,
                            ),
                            validator: (value) {
                              if (value.trim().length < 6) {
                                return 'Kein gültiges Passwort';
                              }
                              return null;
                            },
                            onFieldSubmitted: (term) =>
                                _validateLogin(_emailKey, _passwordKey)),
                      ),
                    ),

It seems to work on MacOS Safari and Chrome and on Windows Firefox, but not Chrome. So far it doesn't work on Ubuntu Chrome or Firefox.

Metadata

Metadata

Assignees

Labels

c: regressionIt was better in the past than it is nowframeworkflutter/packages/flutter repository. See also f: labels.platform-webWeb applications specifically

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions