Repository: flutter
Issue: Activating a switch or radio with Semantics.onTap do not gives feedback about state with TalkBack
Labels: platform-android,framework,f: material design,a: accessibility,has reproducible steps,P2,customer: castaway,found in release: 3.24,team-accessibility,triaged-accessibility,found in release: 3.26

### Steps to reproduce

1. Turn on TalkBack on an Android device
2. Create a page with a Text widget and a Switch, grouped inside a Semantics widget
3. Focus the Semantic group, containing the text + switch
4. The state of this widget is read by the Talkback  : "unchecked, text, double tap to activate"
5. Double tap

### Expected results

The new state of the widget is read by the Talkback : "checked"

### Actual results

Nothing happens. This is also the case with a Radio widget

However, the state is read : 
- on an iOS device, with VoiceOver
- if the switch is alone and has no custom semantics on top of it

I found 2 issues about this. Even if they are solved it doesn't work in my case : 
- https://github.com/flutter/flutter/issues/17775
- https://github.com/flutter/flutter/issues/14092

### Code sample

<details open><summary>Code sample</summary>

```dart
import 'package:flutter/material.dart';

class MyPage extends StatefulWidget {
  const MyPage({super.key});

  @override
  State<MyPage> createState() => _MyPageState();
}

class _MyPageState extends State<MyPage> {
  bool _isActivated = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Semantics(
          container: true,
          label: "Activate my switch",
          toggled: _isActivated,
          enabled: true,
          onTap: () => _saveState(!_isActivated),
          excludeSemantics: true,
          child: GestureDetector(
            onTap: () => _saveState(!_isActivated),
            excludeFromSemantics: true,
            behavior: HitTestBehavior.opaque,
            child: Row(
              children: [
                const Expanded(child: Text("Activate my switch")),
                Switch(value: _isActivated, onChanged: _saveState),
              ],
            ),
          ),
        ),
      ),
    );
  }

  _saveState(bool consent) {
    setState(() {
      _isActivated = consent;
    });
  }
}

```

</details>


### Screenshots or Video

<details open>
<summary>Screenshots / Video demonstration</summary>

![Capture d’écran 2024-09-17 à 16 10 20](https://github.com/user-attachments/assets/17c722b2-6f86-48fc-ac17-abfa791d8da2)


</details>


### Logs

<details open><summary>Logs</summary>

```console
[Paste your logs here]
```

</details>


### Flutter Doctor output

<details open><summary>Doctor output</summary>

```console
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.3, on macOS 14.6.1 23G93 darwin-x64, locale fr-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.4)
[✓] Connected device (4 available)
[✓] Network resources

• No issues found!

```

</details>