Unverified Commit 912b81f6 authored by Pierre-Louis's avatar Pierre-Louis Committed by GitHub

Add toggled semantics to `ToggleButtons` (#106096)

parent fe41b6ab
...@@ -790,6 +790,7 @@ class ToggleButtons extends StatelessWidget { ...@@ -790,6 +790,7 @@ class ToggleButtons extends StatelessWidget {
return MergeSemantics( return MergeSemantics(
child: Semantics( child: Semantics(
container: true, container: true,
toggled: isSelected[index],
enabled: onPressed != null, enabled: onPressed != null,
child: _InputPadding( child: _InputPadding(
minSize: minPaddingSize, minSize: minPaddingSize,
......
...@@ -2006,6 +2006,7 @@ void main() { ...@@ -2006,6 +2006,7 @@ void main() {
SemanticsFlag.isButton, SemanticsFlag.isButton,
SemanticsFlag.isEnabled, SemanticsFlag.isEnabled,
SemanticsFlag.hasEnabledState, SemanticsFlag.hasEnabledState,
SemanticsFlag.hasToggledState,
SemanticsFlag.isFocusable, SemanticsFlag.isFocusable,
], ],
actions: <SemanticsAction>[ actions: <SemanticsAction>[
...@@ -2018,6 +2019,7 @@ void main() { ...@@ -2018,6 +2019,7 @@ void main() {
SemanticsFlag.isButton, SemanticsFlag.isButton,
SemanticsFlag.isEnabled, SemanticsFlag.isEnabled,
SemanticsFlag.hasEnabledState, SemanticsFlag.hasEnabledState,
SemanticsFlag.hasToggledState,
SemanticsFlag.isFocusable, SemanticsFlag.isFocusable,
], ],
actions: <SemanticsAction>[ actions: <SemanticsAction>[
...@@ -2030,6 +2032,7 @@ void main() { ...@@ -2030,6 +2032,7 @@ void main() {
SemanticsFlag.isButton, SemanticsFlag.isButton,
SemanticsFlag.isEnabled, SemanticsFlag.isEnabled,
SemanticsFlag.hasEnabledState, SemanticsFlag.hasEnabledState,
SemanticsFlag.hasToggledState,
SemanticsFlag.isFocusable, SemanticsFlag.isFocusable,
], ],
actions: <SemanticsAction>[ actions: <SemanticsAction>[
...@@ -2045,6 +2048,65 @@ void main() { ...@@ -2045,6 +2048,65 @@ void main() {
), ),
); );
semantics.dispose();
});
testWidgets('Toggle buttons have correct semantics', (WidgetTester tester) async {
final SemanticsTester semantics = SemanticsTester(tester);
await tester.pumpWidget(
Material(
child: boilerplate(
child: ToggleButtons(
isSelected: const <bool>[false, true],
onPressed: (int index) {},
children: const <Widget>[
Icon(Icons.check),
Icon(Icons.access_alarm),
],
),
),
),
);
expect(
semantics,
hasSemantics(
TestSemantics.root(
children: <TestSemantics>[
TestSemantics(
flags: <SemanticsFlag>[
SemanticsFlag.isButton,
SemanticsFlag.isEnabled,
SemanticsFlag.hasEnabledState,
SemanticsFlag.hasToggledState,
SemanticsFlag.isFocusable,
],
actions: <SemanticsAction>[
SemanticsAction.tap,
],
),
TestSemantics(
flags: <SemanticsFlag>[
SemanticsFlag.isButton,
SemanticsFlag.isEnabled,
SemanticsFlag.hasEnabledState,
SemanticsFlag.isToggled,
SemanticsFlag.hasToggledState,
SemanticsFlag.isFocusable,
],
actions: <SemanticsAction>[
SemanticsAction.tap,
],
),
],
),
ignoreId: true,
ignoreRect: true,
ignoreTransform: true,
),
);
semantics.dispose(); semantics.dispose();
}); });
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment