From 7126ec5ae7add98b5805dd9e3c7eda12665c3e20 Mon Sep 17 00:00:00 2001 From: Malo Marrec Date: Thu, 9 Jan 2025 14:19:58 +0100 Subject: [PATCH] accessibility: make dropdowns accessible (#9475) #### Motivation Improve accessibility of dropdowns. #### Before Dropdowns are not accessible. Screenshot 2025-01-09 at 10 00 36 #### Ater Dropdowns are accessible ![image](https://github.com/user-attachments/assets/e46d6292-913c-458b-acd4-37ed4e1a1e9b) --- .../components/SingleRecordSelectMenuItemsWithSearch.tsx | 6 +++++- .../currency/components/CurrencyPickerDropdownSelect.tsx | 1 + .../src/modules/ui/layout/dropdown/components/Dropdown.tsx | 4 ++++ .../ui/layout/dropdown/components/DropdownContent.tsx | 5 +++++ .../dropdown/components/DropdownMenuItemsContainer.tsx | 2 ++ .../src/navigation/menu-item/components/MenuItemSelect.tsx | 3 +++ .../menu-item/components/MenuItemSelectAvatar.tsx | 3 +++ 7 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx index a971eecff..1b9e1c378 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx +++ b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx @@ -92,7 +92,11 @@ export const SingleRecordSelectMenuItemsWithSearch = ({ )} - + {(dropdownPlacement?.includes('start') || isUndefinedOrNull(dropdownPlacement)) && ( <> diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/currency/components/CurrencyPickerDropdownSelect.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/currency/components/CurrencyPickerDropdownSelect.tsx index 18891ea4b..14031684e 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/currency/components/CurrencyPickerDropdownSelect.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/currency/components/CurrencyPickerDropdownSelect.tsx @@ -37,6 +37,7 @@ export const CurrencyPickerDropdownSelect = ({ value={searchFilter} onChange={(event) => setSearchFilter(event.target.value)} autoFocus + role="combobox" /> diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx b/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx index 230d4152b..ee55b31c1 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx @@ -136,6 +136,10 @@ export const Dropdown = ({
{clickableComponent}
diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownContent.tsx b/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownContent.tsx index 3c2d2ea0a..acbae1755 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownContent.tsx +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownContent.tsx @@ -122,6 +122,8 @@ export const DropdownContent = ({ {hasMaxHeight ? ( {children} diff --git a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx index 98f8eb715..211b8452a 100644 --- a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx +++ b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx @@ -69,6 +69,9 @@ export const MenuItemSelect = ({ selected={selected} disabled={disabled} hovered={hovered} + role="option" + aria-selected={selected} + aria-disabled={disabled} > {selected && needIconCheck && } diff --git a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelectAvatar.tsx b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelectAvatar.tsx index 4df9e2800..cbc748e1f 100644 --- a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelectAvatar.tsx +++ b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelectAvatar.tsx @@ -40,6 +40,9 @@ export const MenuItemSelectAvatar = ({ disabled={disabled} hovered={hovered} data-testid={testId} + role="option" + aria-selected={selected} + aria-disabled={disabled} > {avatar}