Repository: flutter
Issue: [url_launcher] nested Link element not working [web]
Labels: c: new feature,platform-web,p: url_launcher,package,has reproducible steps,P3,team-web,triaged-web,found in release: 3.19,found in release: 3.22

### Steps to reproduce

1. Place one Link widget somewhere inside another Link widget
2. Run it for web
3. Try hovering or clicking the inner Link widget (will not work in web)

(it does work on android but not on web)

### Expected results

Both the outer and the inner Link widget should open the Uri they have been assigned.

### Actual results

The other Link widget works as expected.
The inner Link widget does not allow clicks at all AND the browser shows the outer's Uri on hover.

### Code sample

I created a simple app only to demonstrate this, all the code is in the ```main.dart``` file: https://github.com/quaaantumdev/urllauncher_nested_link_issue

The App is very simple, it shows a stream of dummy-posts, each made by some user. It should be possible to click the post, leading to the page for the post. It should also be possible to click the part for the user and this should lead you to the user's page.

<img src="https://github.com/flutter/flutter/assets/94001411/f8327a33-9274-402b-a578-557ed3f78bc6" width="600"/>

You can simply run the app and try to click the user-part to see the issue.

<details open><summary>Code sample from the example app which creates the two Link widgets</summary>

```dart
Widget _buildSinglePost({
  required BuildContext context,
  required String postId,
  required String userId,
}) {
  return Card(
    /// here is the [Link] widget that creates the the "outer layer"
    child: Link(
      uri: Uri.parse('/post/$postId'),
      builder: (context, followLink) => InkWell(
        onTap: followLink,
        child: Column(
          mainAxisSize: MainAxisSize.min,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            Padding(
              padding: const EdgeInsets.all(16),
              child: Text('A short post that goes by the id $postId. '
                  'Clicking this outer InkWell should open page for post $postId.'),
            ),

            /// here is the [Link] widget that creates the the "inner layer"
            Link(
              uri: Uri.parse('/user/$userId'),
              builder: (context, followLink) {
                return Padding(
                  padding: const EdgeInsets.fromLTRB(16, 0, 16, 16),
                  child: InkWell(
                    onTap: followLink,
                    child: Container(
                      decoration: BoxDecoration(
                          border: Border.all(
                              width: 1, color: const Color(0xcccccccc))),
                      padding: const EdgeInsets.all(16),
                      child: Text('Attributed to user $userId. '
                          'Clicking this inner InkWell should open the page for user $userId.'),
                    ),
                  ),
                );
              },
            ),
          ],
        ),
      ),
    ),
  );
}
```
</details>

I also tried this with GestureDetector instead of the Inkwell, same result there.

### Screenshots or Video

_No response_

### Logs

_No response_

### Flutter Doctor output

<details open><summary>Doctor output</summary>

```console
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.19.6, on Microsoft Windows [Version 10.0.19045.4291], locale en-GB)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Build Tools 2019 16.11.32)
[√] Android Studio (version 2023.1)
[√] VS Code (version 1.88.0)
[√] Connected device (3 available)
[√] Network resources

• No issues found!
```

</details>