From 2573e6e05dc2aa2bdf4e007dd6e5fd772ea2016f Mon Sep 17 00:00:00 2001 From: Ganeshguru5 Date: Sun, 1 Nov 2026 13:59:09 +0530 Subject: [PATCH 1/2] fix(fab): expose expanded state on the FAB.Menu trigger The trigger FAB toggles the menu but never set aria-expanded, so assistive technology announced it as a plain button with no open or closed state. Forward `expanded` to Shell, which already passes aria-expanded through to the interactive control. Co-Authored-By: Claude Opus 5.5 --- src/components/FAB/Menu.tsx | 1 + src/components/__tests__/FABMenu.test.tsx | 17 +++++++++++++++++ .../__snapshots__/FABMenu.test.tsx.snap | 14 +++++++------- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/components/FAB/Menu.tsx b/src/components/FAB/Menu.tsx index e4884647d6..f17ca2954e 100644 --- a/src/components/FAB/Menu.tsx +++ b/src/components/FAB/Menu.tsx @@ -454,6 +454,7 @@ const MorphingTrigger = ({ visible={visible} onPress={onPress} aria-label={ariaLabel} + aria-expanded={expanded} testID={testID} widthShared={widthShared} heightShared={heightShared} diff --git a/src/components/__tests__/FABMenu.test.tsx b/src/components/__tests__/FABMenu.test.tsx index 0e03ff6823..c2a98586a3 100644 --- a/src/components/__tests__/FABMenu.test.tsx +++ b/src/components/__tests__/FABMenu.test.tsx @@ -192,3 +192,20 @@ it('calls onDismiss when trigger is pressed while menu is open', async () => { await userEvent.press(screen.getByTestId('fab-shell')); expect(onDismiss).toHaveBeenCalledTimes(1); }); + +it('exposes the expanded state on the trigger', async () => { + const menu = (expanded: boolean) => ( + + ); + + await render(menu(false)); + expect(screen.getByRole('button', { name: 'Actions' })).toBeCollapsed(); + + await screen.rerender(menu(true)); + expect(screen.getByRole('button', { name: 'Actions' })).toBeExpanded(); +}); diff --git a/src/components/__tests__/__snapshots__/FABMenu.test.tsx.snap b/src/components/__tests__/__snapshots__/FABMenu.test.tsx.snap index 8b66657112..a53bf5199e 100644 --- a/src/components/__tests__/__snapshots__/FABMenu.test.tsx.snap +++ b/src/components/__tests__/__snapshots__/FABMenu.test.tsx.snap @@ -588,7 +588,7 @@ exports[`renders FAB.Menu closed 1`] = ` "busy": undefined, "checked": undefined, "disabled": true, - "expanded": undefined, + "expanded": false, "selected": undefined, } } @@ -1365,7 +1365,7 @@ exports[`renders FAB.Menu not expanded when trigger is not visible 1`] = ` "busy": undefined, "checked": undefined, "disabled": true, - "expanded": undefined, + "expanded": false, "selected": undefined, } } @@ -2142,7 +2142,7 @@ exports[`renders FAB.Menu open 1`] = ` "busy": undefined, "checked": undefined, "disabled": false, - "expanded": undefined, + "expanded": true, "selected": undefined, } } @@ -3623,7 +3623,7 @@ exports[`renders FAB.Menu with 6 items 1`] = ` "busy": undefined, "checked": undefined, "disabled": false, - "expanded": undefined, + "expanded": true, "selected": undefined, } } @@ -4401,7 +4401,7 @@ exports[`renders FAB.Menu with center alignment 1`] = ` "busy": undefined, "checked": undefined, "disabled": false, - "expanded": undefined, + "expanded": true, "selected": undefined, } } @@ -5238,7 +5238,7 @@ exports[`renders FAB.Menu with items having icons 1`] = ` "busy": undefined, "checked": undefined, "disabled": false, - "expanded": undefined, + "expanded": true, "selected": undefined, } } @@ -6015,7 +6015,7 @@ exports[`renders FAB.Menu with start alignment 1`] = ` "busy": undefined, "checked": undefined, "disabled": false, - "expanded": undefined, + "expanded": true, "selected": undefined, } } From 5bbb78e5318fa9d46725a0db0785bc862ea8c473 Mon Sep 17 00:00:00 2001 From: Ganeshguru5 Date: Mon, 2 Nov 2026 21:55:44 +0530 Subject: [PATCH 2/2] test(fab): press the enabled trigger in the expanded state test Without onPress the closed trigger renders disabled, so the collapsed check ran against a disabled control. Co-Authored-By: Claude Opus 5.5 --- src/components/__tests__/FABMenu.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/__tests__/FABMenu.test.tsx b/src/components/__tests__/FABMenu.test.tsx index c2a98586a3..dcabf1ae28 100644 --- a/src/components/__tests__/FABMenu.test.tsx +++ b/src/components/__tests__/FABMenu.test.tsx @@ -198,7 +198,7 @@ it('exposes the expanded state on the trigger', async () => { );