tree 104f7ae7ca4d919ecdc49af11c643c03794e8f77
parent 9caa77c796c2f554a4c91d23aadfa8f21b4c3bc3
author Bruno Corona <brunocorona.alcantar@gmail.com> 1789139315 -0600
committer GitHub <noreply@github.com> 1789139315 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqpBlzCRC1aQ7uu5UhlAAArSEQALBfw4fN45ItGuZYcEjmi0Ya
 5zzJloxdetliZ0DHdgDZKSwFEy2dwagVtR4Ioo0sUlny9wPtne/Xf+vk7qEL7pd7
 5wauhIUP0wIzFk6TxnbgkQs2ZYYsIqNfljf2HICOTnDC3Z8O87FEobOPA2OoYFmh
 gOUJylaBUf98/HClUdJdr28NeHhdYFgF80wvFhf6Zo85upXdbq0OpUXwxwaXZYx5
 kw+dvTvNQyaHsBXM99eSwYM1ukk0ZlQehOv0fxbw3WYMmeATbKYlmhwb/zDgsaQe
 tgw8ptgKN/QNaRigL1LgY2vmYz+agMlDWiD83PrjuL4YOx2AoclbMcacHFgPdNsn
 wmRRYfKmU0JWjWuAzsdHXMxLRca+4ly1I7JRG4+p2lwF/eb7KWDKg77J37kmYy7r
 iK7iCimzVP/OSnVoFO258AjlMi8wZHSRLIK/94+USXiIv4RJ5X3SGZRZnj3WdPXs
 QfICQsn/5pejqCebZcreUC4X7p82HpiaWmjxnrciZba1uQCbv4bowqLzKD0dUTr5
 vaOjJY+tfRP8CcX+Mfu6UbhXnYEL1SdKJMZTrV1Blsdyehh2O57WTLNQe4WVTdpK
 ZBG0oIFrzQbIC8KUk34w9/sbDkm0iIgITXHq6fHp/eadujKZYRq1dXDApXCJpBiT
 OajDHcVf29+KQKJgJqKV
 =dZsl
 -----END PGP SIGNATURE-----
 

[material_ui] Port flutter/flutter #185475 "Accessibility: Add semanticLabel to MenuAnchor" (#12806)

Ports flutter/flutter#185475 to `material_ui`, following the instructions in flutter/flutter#188444. The commits were cherry-picked from the original PR, with only file paths adjusted for this repo.

`MenuAnchor` had no way to label the expanded menu overlay, so screen readers announced nothing useful when a menu opened. This adds a `semanticLabel` property, applied to a `Semantics` node wrapping the submenu in `_buildOverlay`, and only when a label is provided.

The original PR also announced the label with `SemanticsService.announce` when the menu opened. Following @chunhtai's review feedback on flutter/flutter#185475, that part is dropped here: a semantics label should not double as announcement text, and anyone who wants an announcement can call `SemanticsService.announce` from `onOpen`. The last commit on this branch removes it.

## Tests

New test `MenuAnchor applies semanticLabel to the expanded menu overlay` in `packages/material_ui/test/menu_anchor_test.dart`, checking that the label is absent before the menu opens and present once it expands. The `menu_anchor.0` API example now sets a `semanticLabel`, and its example test still passes.

Fixes flutter/flutter#184876

Supersedes flutter/flutter#185475, which will be closed with a pointer to this PR.

## Pre-Review Checklist

**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.