Skip to content

[iOS] Extra silent accessibility focus before first ListView item #164483

@luomo-pro

Description

@luomo-pro

In Flutter master version 3.30.0-1.0.pre.428, I've identified a regression in iOS accessibility behavior. When using a ListView, there is now an extra, silent accessibility focus that appears before the first item in the list. This empty focus point doesn't announce anything when navigated to with VoiceOver, creating a confusing experience for blind users.
This issue was not present in versions from approximately 6 months ago. It appears to be a regression introduced in recent builds.

Steps to Reproduce

  1. Run the minimal example code below on an iOS device
  2. Enable VoiceOver on the device
  3. Navigate to the list
  4. Observe that when swiping right to move through list items, there's a silent focus before the first item

Expected results

VoiceOver should focus directly on the first item in the ListView when navigating to it.

Actual results

When using VoiceOver, an empty, silent accessibility focus appears before the first ListView item. This focus point doesn't announce anything, and users must swipe again to reach the actual first item.

Code sample

Code sample
import 'package:flutter/material.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: 'VoiceOver Issue Demo',
      home: const AccessibilityIssueDemo(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('VoiceOver Issue Demo'),
      ),
      body: ListView.builder(
        itemCount: 20,
        itemBuilder: (context, index) {
          return ListTile(
            title: Text('Item ${index + 1}'),
          );
        },
      ),
    );
  }
}

Screenshots or Video

No response

Logs

No response

Flutter Doctor output

Doctor output
[✓] Flutter (Channel master, 3.30.0-1.0.pre.428, on macOS 14.4.1 23E224

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)f: scrollingViewports, list views, slivers, etc.found in release: 3.29Found to occur in 3.29found in release: 3.30Found to occur in 3.30frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyteam-iosOwned by iOS platform teamtriaged-iosTriaged by iOS platform team

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions