This PR is to wire up `MenuAnchor` related widgets to SemanticsRole.
* When use `MenuAnchor` and a menu is opened, the menu has
`SemanticsRole.menu`.
* `MenuBar` has `SemanticsRole.menuBar`
* `MenuItemButton` has `SemanticsRole.menuItem`
* `SubmenuButton` has `SemanticsRole.menuItem` with `aria-haspopup`
attribute setup.
* `CheckboxMenuButton` has `SemanticsRole.menuItemCheckbox`
* `RadioMenuButton` has `SemanticsRole.menuItemRadio`
This PR also includes some changes related to `OverlayPortal` and
`RawMenuAnchor` so the "button" and the "menu" that the button opens has
a "parent-children" relationship. Previously, they are siblings
relationship which will cause some navigation issue in a11y.
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.