Skip to content

[iOS 27] Tap coordinates offset in upper AppBar region, single/short taps miss target, long-press hits correctly #191114

Description

@Rdiger-36

Steps to reproduce

  1. Run flutter create bugtest and replace lib/main.dart with the code sample below
  2. Run on an iPad with iOS 27.0 (reproduces on both the iOS 27 Simulator and a physical iPad Pro on iOS 27.0 beta build 24A5408d)
  3. Tap the exact center of the IconButton in the AppBar's actions
  4. Observe that onPressed does not fire
  5. Tap slightly below the same icon (still within its visible bounds), onPressed fires correctly
  6. Long-press the same original dead spot, the tooltip and ripple/highlight appear correctly
  7. Repeat the same test on the iOS 26.5 Simulator, the bug does not reproduce there

Expected results

A tap anywhere within the visible bounds of an AppBar action IconButton should trigger onPressed, consistent with behavior on iOS 26.5 with identical code.

Actual results

Taps in the upper portion of an AppBar action icon are not registered, onPressed never fires. Taps slightly lower on the same icon (still visually within the same IconButton) work correctly. A long-press at the exact same non-working coordinates correctly shows the tooltip and ripple highlight, indicating the touch event does reach Flutter, it appears to be resolved to a different position than where it visually lands, specifically in the upper region of the screen. Only reproduces on iOS 27.0; identical code on iOS 26.5 works correctly.

Code sample

Code sample
import 'package:flutter/material.dart';

void main() => runApp(const TestApp());

class TestApp extends StatelessWidget {
  const TestApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          toolbarHeight: 56,
          centerTitle: true,
          title: const Text('Test'),
          actions: [
            IconButton(
              icon: const Icon(Icons.swap_horiz_rounded, size: 26),
              tooltip: 'Swap Test',
              onPressed: () => debugPrint('SWAP PRESSED'),
            ),
          ],
        ),
        body: const Center(child: Text('some test strings')),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
flutter: SWAP PRESSED (only when hitting right under the icon)

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.47.0, on macOS 27.0 26A5406e darwin-arm64, locale de-DE) [684ms]
    • Flutter version 3.47.0 on channel stable at /opt/homebrew/share/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4cf2416426 (3 days ago), 2026-08-11 11:53:49 -0700
    • Engine revision 5f77625673
    • Dart version 3.13.0
    • DevTools version 2.60.0
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios, cli-animations, enable-native-assets, enable-record-use, enable-swift-package-manager,
      omit-legacy-version-file, enable-lldb-debugging, enable-uiscene-migration

[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [2,0s]
    • Android SDK at /Users/[user]/Library/Android/sdk
    • Emulator version 37.1.11.0 (build_id 15917651) (CL:N/A)
    • Platform android-36.1, build-tools 36.1.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 25.0.2+-15348964-b329.117)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 26.6) [1.341ms]
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 17F113
    • CocoaPods version 1.16.2

[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome) [4ms]
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Connected device (3 available) [6,6s]
    • iPhone (wireless)   • [device id removed] • ios          • iOS 27.0 24A5408d
    • iPad Pro (wireless) • [device id removed] • ios          • iOS 27.0 24A5408d
    • macOS (desktop)     • macos                • darwin-arm64 • macOS 27.0 26A5406e darwin-arm64

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

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    c: regressionIt was better in the past than it is nowengineflutter/engine related. See also e: labels.found in release: 3.47Found to occur in 3.47in triagePresently being triaged by the triage teamplatform-iosiOS applications specificallyteam-iosOwned by iOS platform team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions