-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Adds dialog and alertdialog role #162692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds dialog and alertdialog role #162692
Conversation
fcb31f0 to
1e34753
Compare
1e34753 to
7fb60d5
Compare
| /// reader better understand this section of screen. | ||
| /// | ||
| /// Screen-readers takes advantage of "aria-label" to describe the visual. | ||
| class SemanticDialog extends SemanticRole with RouteLike { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be simpler to maintain all route semantics in the same file, route.dart. WDYT?
| import 'semantics.dart'; | ||
| import 'route.dart'; | ||
|
|
||
| /// Indicates the container as a pop dialog |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: end with a period.
| /// Setting this role will also set aria-modal to true, which helps screen | ||
| /// reader better understand this section of screen. | ||
| /// | ||
| /// Screen-readers takes advantage of "aria-label" to describe the visual. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: s/takes/take/
| /// Setting this role will also set aria-modal to true, which helps screen | ||
| /// reader better understand this section of screen. | ||
| /// | ||
| /// Screen-readers takes advantage of "aria-label" to describe the visual. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The situation with labeling is a bit more complicated, what with all the namesRoute. Just mentioning aria-label alone may be a bit misleading.
| import '../semantics.dart'; | ||
| import '../util.dart'; | ||
|
|
||
| mixin RouteLike on SemanticRole { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like all our route types are expressible using a simple class hierarchy:
class SemanticRouteBase extends SemanticRole;
class SemanticRoute extends SemanticRouteBase;
class SemanticDialog extends SemanticRouteBase;
class SemanticAlertDialog extends SemanticRouteBase;
| group('tabs', () { | ||
| _testTabs(); | ||
| }); | ||
| group('dialogs', () { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd either put this into the existing 'route' group (see comment about combining all routes into the same library), or put it next to the 'route' group since the two a closely related.
| }); | ||
| } | ||
|
|
||
| void _testDialogs() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider moving into/closer to the route tests.
| child: dialogChild, | ||
| return Semantics( | ||
| role: SemanticsRole.alertDialog, | ||
| child: Dialog( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid having two roles set on the dialog that need to be resolve by merging or something, can we instead have the Dialog constructor take an optional semanticsRole argument (similar to semanticLabel that many of our widgets accept):
Dialog({
SemanticsRole semanticRole = SemanticsRole.dialog,
... other args ...
});
99f6a75 to
7eb9af4
Compare
7eb9af4 to
2aced4b
Compare
| class SemanticRoute extends SemanticRole { | ||
| SemanticRoute(SemanticsObject semanticsObject) | ||
| : super.blank(EngineSemanticsRole.route, semanticsObject) { | ||
| class SemanticRoutBase extends SemanticRole { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Rout/Route/
|
|
||
| /// Denotes that all descendant nodes are inside a route. | ||
| /// | ||
| /// Routes can include dialogs, pop-up menus, sub-screens, and more. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This role is no longer used for dialogs, correct?
| SemanticRoute(SemanticsObject semanticsObject) | ||
| : super.blank(EngineSemanticsRole.route, semanticsObject) { | ||
| class SemanticRoutBase extends SemanticRole { | ||
| SemanticRoutBase(EngineSemanticsRole kind, SemanticsObject object) : super.blank(kind, object) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This class seems to hard-code "dialog" ARIA. Should we use different ARIA roles for different types of routes? E.g. the SemanticAlertDialog could use https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alertdialog_role
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like i missed this when i refactored, will fix
yjbanov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| /// | ||
| /// See also: | ||
| /// | ||
| /// * [RouteName], which provides a description for this route in the absent |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: s/absent/absence/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, for some reason my ide told me absence is wrong, but it is not. will fix
Roll Flutter from 892f9c1 to e8f34a9 (71 revisions) flutter/flutter@892f9c1...e8f34a9 2025-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (#163127)" (flutter/flutter#163133) 2025-02-12 [email protected] Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (flutter/flutter#163127) 2025-02-12 [email protected] Update .ci.yaml to support Fuchsia cherrypick branches (flutter/flutter#163000) 2025-02-12 [email protected] Roll Skia from 6f17f2ebb2e5 to f31c733c86c4 (1 revision) (flutter/flutter#163112) 2025-02-12 [email protected] Roll Skia from a9dbb2479c26 to 6f17f2ebb2e5 (2 revisions) (flutter/flutter#163109) 2025-02-12 [email protected] [devicelab] dont strip symbols in platform views layout test. (flutter/flutter#163101) 2025-02-12 [email protected] [Impeller] mirror tile mode requires highp for Adreno. (flutter/flutter#163066) 2025-02-12 [email protected] Roll Skia from 5b56d9a91633 to a9dbb2479c26 (6 revisions) (flutter/flutter#163100) 2025-02-12 [email protected] Roll Dart SDK from d9d7f103b6b7 to fcef25f18e4d (3 revisions) (flutter/flutter#163098) 2025-02-12 [email protected] Generate a correct `.flutter-plugin-dependencies` file for iOS/macOS projects (flutter/flutter#162834) 2025-02-12 [email protected] Remove unsound artifacts, remove `*Sound` qualifier. (flutter/flutter#163015) 2025-02-12 [email protected] [Impeller] libImpeller: Add support for Metal and Vulkan rendering. (flutter/flutter#161547) 2025-02-11 [email protected] Marks Mac_benchmark basic_material_app_macos__compile to be flaky (flutter/flutter#162365) 2025-02-11 [email protected] Roll pub packages (flutter/flutter#163083) 2025-02-11 [email protected] Adds hasSelectedState parameter to matchesSemantics for migration (flutter/flutter#163014) 2025-02-11 [email protected] fix: Dispose codec after completing frame creation (flutter/flutter#159945) 2025-02-11 [email protected] [ios][secure_paste]show menu item based on info sent from framework (flutter/flutter#161103) 2025-02-11 [email protected] Update conductor to support monorepos (flutter/flutter#161704) 2025-02-11 [email protected] [Android] fix hcpp tapping, again, and add test. (flutter/flutter#163035) 2025-02-11 [email protected] Add new builder for experiment with dynamic modules. (flutter/flutter#162855) 2025-02-11 [email protected] Roll vulkan-deps to 9edf248c597b (flutter/flutter#162549) 2025-02-11 [email protected] Adds dialog and alertdialog role (flutter/flutter#162692) 2025-02-11 [email protected] Roll Dart SDK from 99789828cc95 to d9d7f103b6b7 (12 revisions) (flutter/flutter#163060) 2025-02-11 [email protected] [ Widget Preview ] Cleanup PreviewDetector code (flutter/flutter#163050) 2025-02-11 [email protected] Fix `SkiaException` -> `TestFailure`, add tests. (flutter/flutter#163054) 2025-02-11 [email protected] [Android] fix hcpp overlay layer intersection. (flutter/flutter#163024) 2025-02-11 [email protected] [ Widget Preview ] Update generated scaffold project to include early preview rendering (flutter/flutter#162847) 2025-02-11 [email protected] [Embedder] Implement merged platform and UI thread (flutter/flutter#162944) 2025-02-11 [email protected] [Android] Remove overlay when platform views are removed from screen. (flutter/flutter#162908) 2025-02-11 [email protected] Roll Dart to 3.8.0-76.0.dev (flutter/flutter#162913) 2025-02-11 [email protected] [Android] add HCPP platform views benchmark and integration test. (flutter/flutter#163018) 2025-02-11 [email protected] Roll Skia from 8c377e8bedd2 to 5b56d9a91633 (9 revisions) (flutter/flutter#163021) 2025-02-11 [email protected] Try golden-testing on a Mokey (`bringup: true`), retry on an emulator (flutter/flutter#163029) 2025-02-11 [email protected] Fix Linux keyboard support for AltGr (flutter/flutter#162495) 2025-02-11 [email protected] Update gen_keycodes output to new engine location. (flutter/flutter#162479) 2025-02-10 [email protected] [Android] add runtime flag to determine if HCPP is supported. (flutter/flutter#163004) 2025-02-10 [email protected] [iOS][Engine] Fix view removal process for AutofillContextAction.cancel (flutter/flutter#160653) 2025-02-10 [email protected] Re-land #162644: Remove `--verbose` from devicelab task executions. (flutter/flutter#163017) 2025-02-10 [email protected] Include device lab version for how to run test (flutter/flutter#163010) 2025-02-10 [email protected] Change the default optimization level to `-O2` for wasm in release mode. (flutter/flutter#162917) 2025-02-10 [email protected] [web] robustify safaridriver launch sequence (flutter/flutter#162919) 2025-02-10 [email protected] Return more eagerly when toggling service extensions (flutter/flutter#162774) 2025-02-10 [email protected] Fix doc reference typos (flutter/flutter#162893) 2025-02-10 [email protected] Roll Skia from 180ed4fc263d to 8c377e8bedd2 (4 revisions) (flutter/flutter#162998) 2025-02-10 [email protected] FYI matanlurey (does not require review, but probably should) on dev/test infra. (flutter/flutter#162642) 2025-02-10 [email protected] [Impeller] rrect_blur: scale max radius clamp by transform (flutter/flutter#161238) ...
Roll Flutter from 892f9c1 to e8f34a9 (71 revisions) flutter/flutter@892f9c1...e8f34a9 2025-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (#163127)" (flutter/flutter#163133) 2025-02-12 [email protected] Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (flutter/flutter#163127) 2025-02-12 [email protected] Update .ci.yaml to support Fuchsia cherrypick branches (flutter/flutter#163000) 2025-02-12 [email protected] Roll Skia from 6f17f2ebb2e5 to f31c733c86c4 (1 revision) (flutter/flutter#163112) 2025-02-12 [email protected] Roll Skia from a9dbb2479c26 to 6f17f2ebb2e5 (2 revisions) (flutter/flutter#163109) 2025-02-12 [email protected] [devicelab] dont strip symbols in platform views layout test. (flutter/flutter#163101) 2025-02-12 [email protected] [Impeller] mirror tile mode requires highp for Adreno. (flutter/flutter#163066) 2025-02-12 [email protected] Roll Skia from 5b56d9a91633 to a9dbb2479c26 (6 revisions) (flutter/flutter#163100) 2025-02-12 [email protected] Roll Dart SDK from d9d7f103b6b7 to fcef25f18e4d (3 revisions) (flutter/flutter#163098) 2025-02-12 [email protected] Generate a correct `.flutter-plugin-dependencies` file for iOS/macOS projects (flutter/flutter#162834) 2025-02-12 [email protected] Remove unsound artifacts, remove `*Sound` qualifier. (flutter/flutter#163015) 2025-02-12 [email protected] [Impeller] libImpeller: Add support for Metal and Vulkan rendering. (flutter/flutter#161547) 2025-02-11 [email protected] Marks Mac_benchmark basic_material_app_macos__compile to be flaky (flutter/flutter#162365) 2025-02-11 [email protected] Roll pub packages (flutter/flutter#163083) 2025-02-11 [email protected] Adds hasSelectedState parameter to matchesSemantics for migration (flutter/flutter#163014) 2025-02-11 [email protected] fix: Dispose codec after completing frame creation (flutter/flutter#159945) 2025-02-11 [email protected] [ios][secure_paste]show menu item based on info sent from framework (flutter/flutter#161103) 2025-02-11 [email protected] Update conductor to support monorepos (flutter/flutter#161704) 2025-02-11 [email protected] [Android] fix hcpp tapping, again, and add test. (flutter/flutter#163035) 2025-02-11 [email protected] Add new builder for experiment with dynamic modules. (flutter/flutter#162855) 2025-02-11 [email protected] Roll vulkan-deps to 9edf248c597b (flutter/flutter#162549) 2025-02-11 [email protected] Adds dialog and alertdialog role (flutter/flutter#162692) 2025-02-11 [email protected] Roll Dart SDK from 99789828cc95 to d9d7f103b6b7 (12 revisions) (flutter/flutter#163060) 2025-02-11 [email protected] [ Widget Preview ] Cleanup PreviewDetector code (flutter/flutter#163050) 2025-02-11 [email protected] Fix `SkiaException` -> `TestFailure`, add tests. (flutter/flutter#163054) 2025-02-11 [email protected] [Android] fix hcpp overlay layer intersection. (flutter/flutter#163024) 2025-02-11 [email protected] [ Widget Preview ] Update generated scaffold project to include early preview rendering (flutter/flutter#162847) 2025-02-11 [email protected] [Embedder] Implement merged platform and UI thread (flutter/flutter#162944) 2025-02-11 [email protected] [Android] Remove overlay when platform views are removed from screen. (flutter/flutter#162908) 2025-02-11 [email protected] Roll Dart to 3.8.0-76.0.dev (flutter/flutter#162913) 2025-02-11 [email protected] [Android] add HCPP platform views benchmark and integration test. (flutter/flutter#163018) 2025-02-11 [email protected] Roll Skia from 8c377e8bedd2 to 5b56d9a91633 (9 revisions) (flutter/flutter#163021) 2025-02-11 [email protected] Try golden-testing on a Mokey (`bringup: true`), retry on an emulator (flutter/flutter#163029) 2025-02-11 [email protected] Fix Linux keyboard support for AltGr (flutter/flutter#162495) 2025-02-11 [email protected] Update gen_keycodes output to new engine location. (flutter/flutter#162479) 2025-02-10 [email protected] [Android] add runtime flag to determine if HCPP is supported. (flutter/flutter#163004) 2025-02-10 [email protected] [iOS][Engine] Fix view removal process for AutofillContextAction.cancel (flutter/flutter#160653) 2025-02-10 [email protected] Re-land #162644: Remove `--verbose` from devicelab task executions. (flutter/flutter#163017) 2025-02-10 [email protected] Include device lab version for how to run test (flutter/flutter#163010) 2025-02-10 [email protected] Change the default optimization level to `-O2` for wasm in release mode. (flutter/flutter#162917) 2025-02-10 [email protected] [web] robustify safaridriver launch sequence (flutter/flutter#162919) 2025-02-10 [email protected] Return more eagerly when toggling service extensions (flutter/flutter#162774) 2025-02-10 [email protected] Fix doc reference typos (flutter/flutter#162893) 2025-02-10 [email protected] Roll Skia from 180ed4fc263d to 8c377e8bedd2 (4 revisions) (flutter/flutter#162998) 2025-02-10 [email protected] FYI matanlurey (does not require review, but probably should) on dev/test infra. (flutter/flutter#162642) 2025-02-10 [email protected] [Impeller] rrect_blur: scale max radius clamp by transform (flutter/flutter#161238) ...
Roll Flutter from 892f9c1 to e8f34a9 (71 revisions) flutter/flutter@892f9c1...e8f34a9 2025-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (#163127)" (flutter/flutter#163133) 2025-02-12 [email protected] Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (flutter/flutter#163127) 2025-02-12 [email protected] Update .ci.yaml to support Fuchsia cherrypick branches (flutter/flutter#163000) 2025-02-12 [email protected] Roll Skia from 6f17f2ebb2e5 to f31c733c86c4 (1 revision) (flutter/flutter#163112) 2025-02-12 [email protected] Roll Skia from a9dbb2479c26 to 6f17f2ebb2e5 (2 revisions) (flutter/flutter#163109) 2025-02-12 [email protected] [devicelab] dont strip symbols in platform views layout test. (flutter/flutter#163101) 2025-02-12 [email protected] [Impeller] mirror tile mode requires highp for Adreno. (flutter/flutter#163066) 2025-02-12 [email protected] Roll Skia from 5b56d9a91633 to a9dbb2479c26 (6 revisions) (flutter/flutter#163100) 2025-02-12 [email protected] Roll Dart SDK from d9d7f103b6b7 to fcef25f18e4d (3 revisions) (flutter/flutter#163098) 2025-02-12 [email protected] Generate a correct `.flutter-plugin-dependencies` file for iOS/macOS projects (flutter/flutter#162834) 2025-02-12 [email protected] Remove unsound artifacts, remove `*Sound` qualifier. (flutter/flutter#163015) 2025-02-12 [email protected] [Impeller] libImpeller: Add support for Metal and Vulkan rendering. (flutter/flutter#161547) 2025-02-11 [email protected] Marks Mac_benchmark basic_material_app_macos__compile to be flaky (flutter/flutter#162365) 2025-02-11 [email protected] Roll pub packages (flutter/flutter#163083) 2025-02-11 [email protected] Adds hasSelectedState parameter to matchesSemantics for migration (flutter/flutter#163014) 2025-02-11 [email protected] fix: Dispose codec after completing frame creation (flutter/flutter#159945) 2025-02-11 [email protected] [ios][secure_paste]show menu item based on info sent from framework (flutter/flutter#161103) 2025-02-11 [email protected] Update conductor to support monorepos (flutter/flutter#161704) 2025-02-11 [email protected] [Android] fix hcpp tapping, again, and add test. (flutter/flutter#163035) 2025-02-11 [email protected] Add new builder for experiment with dynamic modules. (flutter/flutter#162855) 2025-02-11 [email protected] Roll vulkan-deps to 9edf248c597b (flutter/flutter#162549) 2025-02-11 [email protected] Adds dialog and alertdialog role (flutter/flutter#162692) 2025-02-11 [email protected] Roll Dart SDK from 99789828cc95 to d9d7f103b6b7 (12 revisions) (flutter/flutter#163060) 2025-02-11 [email protected] [ Widget Preview ] Cleanup PreviewDetector code (flutter/flutter#163050) 2025-02-11 [email protected] Fix `SkiaException` -> `TestFailure`, add tests. (flutter/flutter#163054) 2025-02-11 [email protected] [Android] fix hcpp overlay layer intersection. (flutter/flutter#163024) 2025-02-11 [email protected] [ Widget Preview ] Update generated scaffold project to include early preview rendering (flutter/flutter#162847) 2025-02-11 [email protected] [Embedder] Implement merged platform and UI thread (flutter/flutter#162944) 2025-02-11 [email protected] [Android] Remove overlay when platform views are removed from screen. (flutter/flutter#162908) 2025-02-11 [email protected] Roll Dart to 3.8.0-76.0.dev (flutter/flutter#162913) 2025-02-11 [email protected] [Android] add HCPP platform views benchmark and integration test. (flutter/flutter#163018) 2025-02-11 [email protected] Roll Skia from 8c377e8bedd2 to 5b56d9a91633 (9 revisions) (flutter/flutter#163021) 2025-02-11 [email protected] Try golden-testing on a Mokey (`bringup: true`), retry on an emulator (flutter/flutter#163029) 2025-02-11 [email protected] Fix Linux keyboard support for AltGr (flutter/flutter#162495) 2025-02-11 [email protected] Update gen_keycodes output to new engine location. (flutter/flutter#162479) 2025-02-10 [email protected] [Android] add runtime flag to determine if HCPP is supported. (flutter/flutter#163004) 2025-02-10 [email protected] [iOS][Engine] Fix view removal process for AutofillContextAction.cancel (flutter/flutter#160653) 2025-02-10 [email protected] Re-land #162644: Remove `--verbose` from devicelab task executions. (flutter/flutter#163017) 2025-02-10 [email protected] Include device lab version for how to run test (flutter/flutter#163010) 2025-02-10 [email protected] Change the default optimization level to `-O2` for wasm in release mode. (flutter/flutter#162917) 2025-02-10 [email protected] [web] robustify safaridriver launch sequence (flutter/flutter#162919) 2025-02-10 [email protected] Return more eagerly when toggling service extensions (flutter/flutter#162774) 2025-02-10 [email protected] Fix doc reference typos (flutter/flutter#162893) 2025-02-10 [email protected] Roll Skia from 180ed4fc263d to 8c377e8bedd2 (4 revisions) (flutter/flutter#162998) 2025-02-10 [email protected] FYI matanlurey (does not require review, but probably should) on dev/test infra. (flutter/flutter#162642) 2025-02-10 [email protected] [Impeller] rrect_blur: scale max radius clamp by transform (flutter/flutter#161238) ...

fixes #162124
fixes #157207
fixes #157204
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.