diff --git a/src/components/ImportSpreadsheetColumns.tsx b/src/components/ImportSpreadsheetColumns.tsx index 1fd8a430972df..3faa2545ad90d 100644 --- a/src/components/ImportSpreadsheetColumns.tsx +++ b/src/components/ImportSpreadsheetColumns.tsx @@ -80,7 +80,13 @@ function ImportSpreadsheetColumns({ {shouldShowColumnHeader && ( - {translate('spreadsheet.fileContainsHeader')} + + {translate('spreadsheet.fileContainsHeader')} + - {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 ebc693545c2ae..43aca1047c707 100644 --- a/src/pages/domain/Saml/SamlLoginSectionContent.tsx +++ b/src/pages/domain/Saml/SamlLoginSectionContent.tsx @@ -66,7 +66,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')} + + {translate('workspace.rules.merchantRules.applyToExistingUnsubmittedExpenses')} + - {translate(`workspace.rules.individualExpenseRules.${prohibitedExpense}`)} + + {translate(`workspace.rules.individualExpenseRules.${prohibitedExpense}`)} + {translate('workspace.tags.configureMultiLevelTags')} - {translate('workspace.tags.importMultiLevelTags.firstRowTitle')} + + {translate('workspace.tags.importMultiLevelTags.firstRowTitle')} + - {translate('workspace.tags.importMultiLevelTags.independentTags')} + + {translate('workspace.tags.importMultiLevelTags.independentTags')} + - {translate('workspace.tags.importMultiLevelTags.glAdjacentColumn')} + + {translate('workspace.tags.importMultiLevelTags.glAdjacentColumn')} + - {translate('workspace.tags.enableTag')} + + {translate('workspace.tags.enableTag')} + - {translate('workspace.tags.requiresTag')} + + {translate('workspace.tags.requiresTag')} + - {translate('workspace.tags.trackBillable')} + + {translate('workspace.tags.trackBillable')} + - {translate('workspace.taxes.actions.enable')} + + {translate('workspace.taxes.actions.enable')} + { isAccordionExpanded.set(isActive); }, [isAccordionExpanded, isActive]); @@ -151,7 +154,19 @@ function ToggleSettingOptionRow({ ); } - return {subtitle}; + /** + * We hide the subtitle from screen readers to avoid double announcements + * 'aria-hidden' is used for compatibility with iOS mWeb, while 'accessible={false}' works on iOS native. + */ + return ( + + {subtitle} + + ); } return subtitle; @@ -166,6 +181,7 @@ function ToggleSettingOptionRow({ shouldPlaceSubtitleBelowSwitch, subtitleStyle, processedSubtitle, + areSubtitleAndSwitchAccessibilityLabelEqual, ]); const contentArea = ( @@ -198,7 +214,9 @@ function ToggleSettingOptionRow({ const switchComponent = ( { shouldAnimateAccordionSection.set(true); onToggle(isOn);