Skip to content

iOS a11y gets stuck in WebView #93024

@jmagman

Description

@jmagman

Turn on VoiceOver. In the following repro case, once you swipe into the WebView, you can't swipe out.

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Demo'),
        ),
        body: WebView(
          initialUrl: 'https://google.com',
          javascriptMode: JavascriptMode.disabled,
        ),
      ),
    );
  }
}

When it gets stuck, the logs say:

[Accessibility] Went all the way up the container chain from @, but could not find any container that was one of the ordered children of @.  This may be acceptable if it happened right around a layout change, but it would be best to double check by swiping left/right to see if you can get to all elements.

I bisected the bug to flutter/engine#24308. We need to make sure we don't regress #73716.

b/203632573

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressiona: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)customer: money (g3)engineflutter/engine related. See also e: labels.platform-iosiOS applications specificallywaiting for PR to land (fixed)A fix is in flight

Type

No type

Projects

Status

Engineer reviewed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions