From 93495cc35765ccb791a03703b615a8ddd686c982 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Wed, 28 Jan 2026 23:12:50 +0530 Subject: [PATCH 1/6] Fixed the double announcement for switches --- src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx b/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx index 5eb1303e03666..3ce4b57cba7e4 100644 --- a/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx +++ b/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx @@ -178,6 +178,7 @@ function ToggleSettingOptionRow({ ); const shouldMakeContentPressable = isActive && onPress; + const isSwitchAccessibilityLabelAndSubtitleAreEqual = switchAccessibilityLabel === subtitle; return ( { shouldAnimateAccordionSection.set(true); onToggle(isOn); From d3a874cae2b5db5227d27161c75c96bde146b825 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Wed, 28 Jan 2026 23:15:10 +0530 Subject: [PATCH 2/6] Removed interactive roles from MenuItem --- src/components/MenuItem.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MenuItem.tsx b/src/components/MenuItem.tsx index ba06841c08c1b..e02823a14c5d6 100644 --- a/src/components/MenuItem.tsx +++ b/src/components/MenuItem.tsx @@ -761,7 +761,7 @@ function MenuItem({ role={role} accessibilityLabel={accessibilityLabel ?? defaultAccessibilityLabel} accessible={shouldBeAccessible} - tabIndex={tabIndex} + tabIndex={interactive ? tabIndex : -1} onFocus={onFocus} sentryLabel={sentryLabel} > From 46be5fca63654568cde0541c87a58526085e4ac5 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 29 Jan 2026 16:32:13 +0530 Subject: [PATCH 3/6] Updated the tabIndex to prevent actionable announcement only for Native platforms like Android or iOS --- src/components/MenuItem.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/MenuItem.tsx b/src/components/MenuItem.tsx index e02823a14c5d6..422b8fffeecaa 100644 --- a/src/components/MenuItem.tsx +++ b/src/components/MenuItem.tsx @@ -15,6 +15,7 @@ import {canUseTouchScreen, hasHoverSupport} from '@libs/DeviceCapabilities'; import {containsCustomEmoji, containsOnlyCustomEmoji} from '@libs/EmojiUtils'; import type {ForwardedFSClassProps} from '@libs/Fullstory/types'; import getButtonState from '@libs/getButtonState'; +import getPlatform from '@libs/getPlatform'; import mergeRefs from '@libs/mergeRefs'; import Parser from '@libs/Parser'; import type {AvatarSource} from '@libs/UserAvatarUtils'; @@ -761,7 +762,7 @@ function MenuItem({ role={role} accessibilityLabel={accessibilityLabel ?? defaultAccessibilityLabel} accessible={shouldBeAccessible} - tabIndex={interactive ? tabIndex : -1} + tabIndex={getPlatform() !== CONST.PLATFORM.WEB && !interactive ? -1 : tabIndex} onFocus={onFocus} sentryLabel={sentryLabel} > From 7622586861535a0536fc17911db3b10f67f2237c Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 29 Jan 2026 18:42:28 +0530 Subject: [PATCH 4/6] Fixed the minor bug in double announcement issue --- src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx b/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx index 3ce4b57cba7e4..2f1f4bc6c7ce9 100644 --- a/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx +++ b/src/pages/workspace/workflows/ToggleSettingsOptionRow.tsx @@ -178,7 +178,6 @@ function ToggleSettingOptionRow({ ); const shouldMakeContentPressable = isActive && onPress; - const isSwitchAccessibilityLabelAndSubtitleAreEqual = switchAccessibilityLabel === subtitle; return ( { shouldAnimateAccordionSection.set(true); From 7cae57c54ee30201206109a6b592e233ec5e2c1c Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Fri, 13 Feb 2026 22:59:09 +0530 Subject: [PATCH 5/6] Modified the second issue solution and solved the first issue --- src/components/ImportSpreadsheetColumns.tsx | 8 +++++- src/components/MenuItem.tsx | 8 +++++- .../BaseRecordTroubleshootDataToolMenu.tsx | 5 +++- .../ReportActionItem/MoneyRequestView.tsx | 14 +++++++++-- src/components/TestToolMenu.tsx | 25 +++++++++++++++---- src/components/TestToolRow.tsx | 12 +++++++-- .../domain/Saml/SamlLoginSectionContent.tsx | 14 +++++++++-- .../settings/Preferences/PreferencesPage.tsx | 14 +++++++++-- .../settings/Profile/TimezoneInitialPage.tsx | 8 +++++- .../categories/CategoryRequiredFieldsPage.tsx | 16 ++++++++++-- .../categories/CategorySettingsPage.tsx | 8 +++++- .../PolicyDistanceRateDetailsPage.tsx | 7 +++++- .../PolicyDistanceRatesSettingsPage.tsx | 8 +++++- .../reports/ReportFieldsValueSettingsPage.tsx | 7 +++++- .../MerchantRules/MerchantRulePageBase.tsx | 16 +++++++++++- .../rules/RulesProhibitedDefaultPage.tsx | 8 +++++- .../tags/ImportMultiLevelTagsSettingsPage.tsx | 24 +++++++++++++++--- src/pages/workspace/tags/TagSettingsPage.tsx | 7 +++++- .../tags/WorkspaceTagsSettingsPage.tsx | 16 ++++++++++-- .../workspace/taxes/WorkspaceEditTaxPage.tsx | 7 +++++- .../workflows/ToggleSettingsOptionRow.tsx | 21 ++++++++++++++-- 21 files changed, 219 insertions(+), 34 deletions(-) diff --git a/src/components/ImportSpreadsheetColumns.tsx b/src/components/ImportSpreadsheetColumns.tsx index d05c309da9ed6..e90b8660c66b6 100644 --- a/src/components/ImportSpreadsheetColumns.tsx +++ b/src/components/ImportSpreadsheetColumns.tsx @@ -80,7 +80,13 @@ function ImportSpreadsheetColumns({ {shouldShowColumnHeader && ( - {translate('spreadsheet.fileContainsHeader')} + + {translate('spreadsheet.fileContainsHeader')} + diff --git a/src/components/RecordTroubleshootDataToolMenu/BaseRecordTroubleshootDataToolMenu.tsx b/src/components/RecordTroubleshootDataToolMenu/BaseRecordTroubleshootDataToolMenu.tsx index 7e8462ec9c56a..57d47872168ca 100644 --- a/src/components/RecordTroubleshootDataToolMenu/BaseRecordTroubleshootDataToolMenu.tsx +++ b/src/components/RecordTroubleshootDataToolMenu/BaseRecordTroubleshootDataToolMenu.tsx @@ -165,7 +165,10 @@ function BaseRecordTroubleshootDataToolMenu({ return ( <> - + - {Str.UCFirst(translate('iou.reimbursable'))} + + {Str.UCFirst(translate('iou.reimbursable'))} + - {translate('common.billable')} + + {translate('common.billable')} + {!!getErrorForField('billable') && ( {/* When toggled the app will be put into debug mode. */} - + + + {/* When toggled the app will randomly change internet connection every 2-5 seconds */} - + {/* When toggled all network requests will fail. */} - + - {title} + + {title} + {children} diff --git a/src/pages/domain/Saml/SamlLoginSectionContent.tsx b/src/pages/domain/Saml/SamlLoginSectionContent.tsx index de65b3c27bac0..65929b08d0dd4 100644 --- a/src/pages/domain/Saml/SamlLoginSectionContent.tsx +++ b/src/pages/domain/Saml/SamlLoginSectionContent.tsx @@ -57,7 +57,12 @@ function SamlLoginSectionContent({accountID, domainName, isSamlEnabled, isSamlRe > - {translate('domain.samlLogin.enableSamlLogin')} + + {translate('domain.samlLogin.enableSamlLogin')} + - {translate('domain.samlLogin.requireSamlLogin')} + + {translate('domain.samlLogin.requireSamlLogin')} + - {translate('preferencesPage.receiveRelevantFeatureUpdatesAndExpensifyNews')} + + {translate('preferencesPage.receiveRelevantFeatureUpdatesAndExpensifyNews')} + - {translate('preferencesPage.muteAllSounds')} + + {translate('preferencesPage.muteAllSounds')} + {translate('timezonePage.isShownOnProfile')} - {translate('timezonePage.getLocationAutomatically')} + + {translate('timezonePage.getLocationAutomatically')} + - {translate('workspace.rules.categoryRules.requireDescription')} + + {translate('workspace.rules.categoryRules.requireDescription')} + - {translate('workspace.rules.categoryRules.requireAttendees')} + + {translate('workspace.rules.categoryRules.requireAttendees')} + - {translate('workspace.categories.enableCategory')} + + {translate('workspace.categories.enableCategory')} + clearErrorFields('enabled')} > - {translate('workspace.distanceRates.enableRate')} + + {translate('workspace.distanceRates.enableRate')} + - {translate('workspace.distanceRates.trackTax')} + + {translate('workspace.distanceRates.trackTax')} + - {translate('workspace.reportFields.enableValue')} + + {translate('workspace.reportFields.enableValue')} + + + + {translate('workspace.rules.merchantRules.applyToExistingUnsubmittedExpenses')} + + +