Open
Description
Steps to reproduce
- Use Semantics(link: true, child: ...) in your app
- Activate Screenreader (iOS: VoiceOver, Android: Talkback)
- Select links in the rotor (iOS: Two fingers Bottle cap "twist", Android: Swipe left/right with three fingers)
- Try navigating through links (iOS, Android: Swipe vertically with one finger)
Expected results
Links can be navigated using one finger while the Screenreader rotor is set to "Links"
Actual results
Android: Talkback says that that there is no link before or after (roughly translating from German Talkback)
iOS: The option "Links" isn't even shown in the rotor. (possibly because no links are detected)
Code sample
Code sample
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter: Rotor "Links" demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Semantics(
link: true,
child: Text('https://www.example.com'), // raw
), // Should appear in rotor 'Links'
const Text('This should not appear under "Links"'),
Semantics(
link: true,
child: Text('My Linktext'),
), // Should also appear in rotor 'Links'
],
),
),
);
}
}
Screenshots or Video
N/A
Logs
N/A
Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.29.0, on macOS 15.3.2 24D81 darwin-arm64, locale de-DE) [2,0s]
• Flutter version 3.29.0 on channel stable at /Users/jonas/Development/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 35c388afb5 (8 weeks ago), 2025-02-10 12:48:41 -0800
• Engine revision f73bfc4522
• Dart version 3.7.0
• DevTools version 2.42.2
[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) [1.681ms]
• Android SDK at /Users/jonas/Library/Android/sdk
• Platform android-36, build-tools 36.0.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 21.0.5+-13047016-b750.29)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 16.2) [1.439ms]
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 16C5032a
• CocoaPods version 1.16.2
[✓] Chrome - develop for the web [109ms]
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2024.3) [108ms]
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29)
[✓] IntelliJ IDEA Community Edition (version 2024.2) [106ms]
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin version 81.1.3
• Dart plugin version 242.20629
[✓] VS Code (version 1.89.0) [11ms]
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.108.0
[✓] Connected device (6 available) [6,5s]
• SM G991B (mobile) • 192.168.0.64:42525 • android-arm64 • Android 14 (API 34)
• iPhone-JGKC94G2V0 (mobile) • 00008120-0006202C1158201E • ios • iOS 18.4 22E240
• jay (wireless) (mobile) • 00008110-001A71383439401E • ios • iOS 17.7.2 21H221
• macOS (desktop) • macos • darwin-arm64 • macOS 15.3.2 24D81 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 15.3.2 24D81 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 135.0.7049.42
[✓] Network resources [305ms]
• All expected network resources are available.
• No issues found!
Metadata
Metadata
Assignees
Labels
Accessibility, e.g. VoiceOver or TalkBack. (aka a11y)Found to occur in 3.29Found to occur in 3.31flutter/packages/flutter repository. See also f: labels.For the attention of Android platform teamFor the attention of iOS platform teamThe issue has been confirmed reproducible and is ready to work onOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)