From fee1d6b33da6e8a8cba2fafc9f4df8eeb0d6f2d9 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 13:27:20 +0530 Subject: [PATCH 01/19] #74853 - added announcement for Social links in Landing page --- src/pages/signin/Socials.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/signin/Socials.tsx b/src/pages/signin/Socials.tsx index 0c225b2d0839..67b372b28607 100644 --- a/src/pages/signin/Socials.tsx +++ b/src/pages/signin/Socials.tsx @@ -53,7 +53,7 @@ function Socials() { e?.preventDefault(); openExternalLink(social.link); }} - accessible={false} + accessibilityLabel={social.iconURL} style={[styles.mr1, styles.mt1]} shouldUseAutoHitSlop={false} > From 347c70acea7aa4168375d56805387ab24b91c6e7 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 13:29:38 +0530 Subject: [PATCH 02/19] #74855 - Added announcement for Language picker combobox in landing page --- src/components/Picker/BasePicker.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/Picker/BasePicker.tsx b/src/components/Picker/BasePicker.tsx index 462646b49123..151a41620447 100644 --- a/src/components/Picker/BasePicker.tsx +++ b/src/components/Picker/BasePicker.tsx @@ -9,6 +9,7 @@ import FormHelpMessage from '@components/FormHelpMessage'; import Icon from '@components/Icon'; import Text from '@components/Text'; import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset'; +import useLocalize from '@hooks/useLocalize'; import useScrollContext from '@hooks/useScrollContext'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; @@ -42,6 +43,7 @@ function BasePicker({ const icons = useMemoizedLazyExpensifyIcons(['DownArrow']); const theme = useTheme(); const styles = useThemeStyles(); + const {translate} = useLocalize(); const [isHighlighted, setIsHighlighted] = useState(false); @@ -206,8 +208,11 @@ function BasePicker({ allowFontScaling: false, }} pickerProps={{ + role: CONST.ROLE.COMBOBOX, + // eslint-disable-next-line @typescript-eslint/naming-convention + 'aria-label': label ?? translate('languagePage.language'), + tabIndex: isDisabled ? -1 : 0, ref: picker, - tabIndex: -1, onFocus: enableHighlight, onBlur: () => { disableHighlight(); From 903c3b1d74e7f753d938a5ba6f56af10485bacb5 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 14:04:03 +0530 Subject: [PATCH 03/19] #76906 - Updated announcement for Switch buttons in Distance rates --- .../distanceRates/PolicyDistanceRatesPage.tsx | 62 ++++++++++--------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx index 24aac8ba48cd..a0fab1e72a83 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx @@ -219,36 +219,40 @@ function PolicyDistanceRatesPage({ const distanceRatesList = useMemo( () => - Object.values(customUnitRates).map((value) => ({ - rate: value.rate, - value: value.customUnitRateID, - text: value.name, - alternateText: `${convertAmountToDisplayString(value.rate, value.currency ?? CONST.CURRENCY.USD)} / ${translate( + Object.values(customUnitRates).map((value) => { + const alternateText = `${convertAmountToDisplayString(value.rate, value.currency ?? CONST.CURRENCY.USD)} / ${translate( `common.${customUnit?.attributes?.unit ?? CONST.CUSTOM_UNITS.DISTANCE_UNIT_MILES}`, - )}`, - keyForList: value.customUnitRateID, - isDisabled: value.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, - pendingAction: - value.pendingAction ?? - value.pendingFields?.rate ?? - value.pendingFields?.enabled ?? - value.pendingFields?.currency ?? - value.pendingFields?.taxRateExternalID ?? - value.pendingFields?.taxClaimablePercentage ?? - value.pendingFields?.name ?? - customUnit?.pendingFields?.attributes ?? - (policy?.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD ? policy?.pendingAction : undefined), - errors: value.errors ?? undefined, - rightElement: ( - updateDistanceRateEnabled(newValue, value.customUnitRateID)} - showLockIcon={!canDisableOrDeleteRate(value.customUnitRateID)} - disabled={value.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE} - /> - ), - })), + )}`; + + return { + rate: value.rate, + value: value.customUnitRateID, + text: value.name, + alternateText, + keyForList: value.customUnitRateID, + isDisabled: value.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, + pendingAction: + value.pendingAction ?? + value.pendingFields?.rate ?? + value.pendingFields?.enabled ?? + value.pendingFields?.currency ?? + value.pendingFields?.taxRateExternalID ?? + value.pendingFields?.taxClaimablePercentage ?? + value.pendingFields?.name ?? + customUnit?.pendingFields?.attributes ?? + (policy?.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD ? policy?.pendingAction : undefined), + errors: value.errors ?? undefined, + rightElement: ( + updateDistanceRateEnabled(newValue, value.customUnitRateID)} + showLockIcon={!canDisableOrDeleteRate(value.customUnitRateID)} + disabled={value.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE} + /> + ), + }; + }), [canDisableOrDeleteRate, customUnitRates, translate, customUnit?.attributes?.unit, customUnit?.pendingFields?.attributes, policy?.pendingAction, updateDistanceRateEnabled], ); From 8c08609683e22f4044676de12ae93fdae9d16915 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 15:46:06 +0530 Subject: [PATCH 04/19] #77365 - Updated status button announcement for emoji not selected in Account --- src/languages/de.ts | 1 + src/languages/en.ts | 1 + src/languages/es.ts | 1 + src/languages/fr.ts | 1 + src/languages/it.ts | 1 + src/languages/ja.ts | 1 + src/languages/nl.ts | 1 + src/languages/pl.ts | 1 + src/languages/pt-BR.ts | 1 + src/languages/zh-hans.ts | 1 + src/pages/settings/InitialSettingsPage.tsx | 2 +- 11 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 336bf871e906..3c9885cdeef1 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -6351,6 +6351,7 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard symbols: 'Symbole', flags: 'Markierungen', }, + emojiNotSelected: 'Emoji nicht ausgewählt', }, newRoomPage: { newRoom: 'Neuer Raum', diff --git a/src/languages/en.ts b/src/languages/en.ts index 200e8335566f..70ef8a61078f 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -6221,6 +6221,7 @@ const translations = { onboardingHelp: 'Onboarding help', }, emojiPicker: { + emojiNotSelected: 'Emoji not selected', skinTonePickerLabel: 'Change default skin tone', headers: { frequentlyUsed: 'Frequently Used', diff --git a/src/languages/es.ts b/src/languages/es.ts index a988d3c80d67..4e5849bec0b9 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -5977,6 +5977,7 @@ ${amount} para ${merchant} - ${date}`, onboardingHelp: 'Ayuda de incorporación', }, emojiPicker: { + emojiNotSelected: 'Emoji no seleccionado', skinTonePickerLabel: 'Elige el tono de piel por defecto', headers: { frequentlyUsed: 'Usado frecuentemente', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index c80f7a1d5879..eb79517d09ef 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -6362,6 +6362,7 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin symbols: 'Symboles', flags: 'Drapeaux', }, + emojiNotSelected: 'Emoji non sélectionné', }, newRoomPage: { newRoom: 'Nouvelle salle', diff --git a/src/languages/it.ts b/src/languages/it.ts index c466864413ba..d5fb701057e2 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -6335,6 +6335,7 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori symbols: 'Simboli', flags: 'Segnalazioni', }, + emojiNotSelected: 'Emoji non selezionata', }, newRoomPage: { newRoom: 'Nuova stanza', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index cbe74fca2668..b28d81502ec3 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -6292,6 +6292,7 @@ ${reportName} symbols: '記号', flags: 'フラグ', }, + emojiNotSelected: '絵文字が選択されていません', }, newRoomPage: { newRoom: '新しいルーム', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index d07a6f98c087..c0a1fdea3858 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -6321,6 +6321,7 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten symbols: 'Symbolen', flags: 'Vlaggen', }, + emojiNotSelected: 'Emoji niet geselecteerd', }, newRoomPage: { newRoom: 'Nieuwe ruimte', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 08e2d8bb294c..49b67cae71a0 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -6315,6 +6315,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i symbols: 'Symbole', flags: 'Flagi', }, + emojiNotSelected: 'Nie wybrano emotikony', }, newRoomPage: { newRoom: 'Nowy pokój', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index cfcc64ebc274..9cac69ba1358 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -6316,6 +6316,7 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe symbols: 'Símbolos', flags: 'Bandeiras', }, + emojiNotSelected: 'Emoji não selecionado', }, newRoomPage: { newRoom: 'Nova sala', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index c38247687c9a..a29e981e97f7 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -6182,6 +6182,7 @@ ${reportName} symbols: '符号', flags: '标记', }, + emojiNotSelected: '未选择表情符号', }, newRoomPage: { newRoom: '新聊天室', diff --git a/src/pages/settings/InitialSettingsPage.tsx b/src/pages/settings/InitialSettingsPage.tsx index e31860ea3789..9a288eb60a38 100755 --- a/src/pages/settings/InitialSettingsPage.tsx +++ b/src/pages/settings/InitialSettingsPage.tsx @@ -429,7 +429,7 @@ function InitialSettingsPage({currentUserPersonalDetails}: InitialSettingsPagePr Navigation.navigate(ROUTES.SETTINGS_STATUS)} From 4b809272daba453bbc3989ce85be015540e1e95c Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 15:52:03 +0530 Subject: [PATCH 05/19] Fix prettier formatting for - #77365 --- src/pages/settings/InitialSettingsPage.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pages/settings/InitialSettingsPage.tsx b/src/pages/settings/InitialSettingsPage.tsx index 9a288eb60a38..5d4368f37e97 100755 --- a/src/pages/settings/InitialSettingsPage.tsx +++ b/src/pages/settings/InitialSettingsPage.tsx @@ -429,7 +429,9 @@ function InitialSettingsPage({currentUserPersonalDetails}: InitialSettingsPagePr Navigation.navigate(ROUTES.SETTINGS_STATUS)} From 760e004bcb36b6b5863d29aeef0b65ff2c3e4ee1 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 17:05:14 +0530 Subject: [PATCH 06/19] #77412 - Updated the announcement for chat messages to include sender name, time sent and message text --- src/pages/home/report/PureReportActionItem.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx index 0119571e5bd3..ca963bec2a5e 100644 --- a/src/pages/home/report/PureReportActionItem.tsx +++ b/src/pages/home/report/PureReportActionItem.tsx @@ -522,7 +522,7 @@ function PureReportActionItem({ reportMetadata, }: PureReportActionItemProps) { const actionSheetAwareScrollViewContext = useContext(ActionSheetAwareScrollView.ActionSheetAwareScrollViewContext); - const {translate, formatPhoneNumber, localeCompare, formatTravelDate, getLocalDateFromDatetime} = useLocalize(); + const {translate, formatPhoneNumber, localeCompare, formatTravelDate, getLocalDateFromDatetime, datetimeToCalendarTime} = useLocalize(); const {showConfirmModal} = useConfirmModal(); const personalDetail = useCurrentUserPersonalDetails(); const {shouldUseNarrowLayout} = useResponsiveLayout(); @@ -1902,6 +1902,12 @@ function PureReportActionItem({ ); }; + // Calculating accessibilityLabel for chat message with sender, date and time and the message content. + const displayName = getDisplayNameOrDefault(personalDetails?.[action.actorAccountID ?? CONST.DEFAULT_NUMBER_ID]); + const formattedTimestamp = datetimeToCalendarTime(action.created, false); + const plainMessage = getReportActionText(action); + const accessibilityLabel = `${displayName}, ${formattedTimestamp}, ${plainMessage}`; + return ( {shouldShowCreatedAction && createdActionContent} @@ -1922,7 +1928,7 @@ function PureReportActionItem({ onSecondaryInteraction={showPopover} preventDefaultContextMenu={draftMessage === undefined && !hasErrors} withoutFocusOnSecondaryInteraction - accessibilityLabel={translate('accessibilityHints.chatMessage')} + accessibilityLabel={accessibilityLabel} accessible sentryLabel={CONST.SENTRY_LABEL.REPORT.PURE_REPORT_ACTION_ITEM} > From 401ea4328c28ecb0f515e626005a5f35b4d2a92d Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 17:16:22 +0530 Subject: [PATCH 07/19] #76905 - Updated the announcement for Step buttons --- src/components/InteractiveStepSubHeader.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/InteractiveStepSubHeader.tsx b/src/components/InteractiveStepSubHeader.tsx index 387eb031a73f..ca0851042717 100644 --- a/src/components/InteractiveStepSubHeader.tsx +++ b/src/components/InteractiveStepSubHeader.tsx @@ -2,6 +2,7 @@ import type {ForwardedRef} from 'react'; import React, {useImperativeHandle, useState} from 'react'; import type {ViewStyle} from 'react-native'; import {View} from 'react-native'; +import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import colors from '@styles/theme/colors'; import variables from '@styles/variables'; @@ -41,6 +42,7 @@ const MIN_AMOUNT_OF_STEPS = 2; function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected, ref}: InteractiveStepSubHeaderProps) { const styles = useThemeStyles(); + const {translate} = useLocalize(); const containerWidthStyle: ViewStyle = stepNames.length < MIN_AMOUNT_FOR_EXPANDING ? styles.mnw60 : styles.mnw100; if (stepNames.length < MIN_AMOUNT_OF_STEPS) { @@ -100,7 +102,7 @@ function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected disabled={isLockedStep || !onStepSelected} onPress={moveToStep} accessible - accessibilityLabel={`${index + 1}`} + accessibilityLabel={translate('stepCounter', {step: index + 1, total: stepNames.length})} aria-current={currentStep === index ? 'step' : undefined} role={CONST.ROLE.BUTTON} > From 54ff111dc2f3fc3eef5c68cff2a1cbc77452c8d2 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 19:31:47 +0530 Subject: [PATCH 08/19] #77369 - Though a Talkback issue, included the amount value in Amount (currency) for Android/iOS --- src/components/MoneyRequestAmountInput.tsx | 3 ++- src/components/NumberWithSymbolForm.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/MoneyRequestAmountInput.tsx b/src/components/MoneyRequestAmountInput.tsx index 0c30556f7512..a146677edc4a 100644 --- a/src/components/MoneyRequestAmountInput.tsx +++ b/src/components/MoneyRequestAmountInput.tsx @@ -1,4 +1,5 @@ import type {ForwardedRef} from 'react'; +import {Platform} from 'react-native'; import React, {useCallback, useEffect, useRef} from 'react'; import type {BlurEvent, StyleProp, TextStyle, ViewStyle} from 'react-native'; import useLocalize from '@hooks/useLocalize'; @@ -258,7 +259,7 @@ function MoneyRequestAmountInput({ toggleNegative={toggleNegative} clearNegative={clearNegative} onFocus={props.onFocus} - accessibilityLabel={`${translate('iou.amount')} (${currency})`} + accessibilityLabel={Platform.OS === 'web' ? `${translate('iou.amount')} (${currency})` : undefined} /> ); } diff --git a/src/components/NumberWithSymbolForm.tsx b/src/components/NumberWithSymbolForm.tsx index 10b373a81660..933e360ec65f 100644 --- a/src/components/NumberWithSymbolForm.tsx +++ b/src/components/NumberWithSymbolForm.tsx @@ -458,7 +458,7 @@ function NumberWithSymbolForm({ isNegative={isNegative} toggleNegative={toggleNegative} onFocus={props.onFocus} - accessibilityLabel={props.accessibilityLabel} + accessibilityLabel={props.accessibilityLabel ?? `${translate('iou.amount')} ${formattedNumber} (${currency})`} /> ); From ad7ead6e08584fa588e882150542076294adf3e4 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 26 Jan 2026 19:50:08 +0530 Subject: [PATCH 09/19] Fix prettier formatting for - #77369 --- src/components/MoneyRequestAmountInput.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MoneyRequestAmountInput.tsx b/src/components/MoneyRequestAmountInput.tsx index a146677edc4a..c06dd6ec2fa8 100644 --- a/src/components/MoneyRequestAmountInput.tsx +++ b/src/components/MoneyRequestAmountInput.tsx @@ -1,6 +1,6 @@ import type {ForwardedRef} from 'react'; -import {Platform} from 'react-native'; import React, {useCallback, useEffect, useRef} from 'react'; +import {Platform} from 'react-native'; import type {BlurEvent, StyleProp, TextStyle, ViewStyle} from 'react-native'; import useLocalize from '@hooks/useLocalize'; import {convertToFrontendAmountAsString, getCurrencyDecimals, getLocalizedCurrencySymbol} from '@libs/CurrencyUtils'; From 8196e83e6aa3ec2489771005f34fe50d32df0146 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Tue, 27 Jan 2026 18:09:38 +0530 Subject: [PATCH 10/19] #77369 - Updated the announcement for checkbox and Add to group button in group chat while selecting participants --- src/languages/de.ts | 6 ++---- src/languages/en.ts | 2 ++ src/languages/es.ts | 2 ++ src/languages/fr.ts | 6 ++---- src/languages/it.ts | 6 ++---- src/languages/ja.ts | 6 ++---- src/languages/nl.ts | 6 ++---- src/languages/pl.ts | 6 ++---- src/languages/pt-BR.ts | 6 ++---- src/languages/zh-hans.ts | 11 ++--------- src/pages/NewChatPage.tsx | 4 ++-- 11 files changed, 22 insertions(+), 39 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 3c9885cdeef1..608b17456877 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -797,6 +797,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: 'Name, E-Mail-Adresse oder Telefonnummer', findMember: 'Mitglied suchen', searchForSomeone: 'Nach jemandem suchen', + userSelected: (username: string) => `${username} ausgewählt`, }, customApprovalWorkflow: { title: 'Benutzerdefinierter Genehmigungsworkflow', @@ -2986,10 +2987,7 @@ ${ detailsPage: { localTime: 'Ortszeit', }, - newChatPage: { - startGroup: 'Gruppe starten', - addToGroup: 'Zur Gruppe hinzufügen', - }, + newChatPage: {startGroup: 'Gruppe starten', addToGroup: 'Zur Gruppe hinzufügen', addUserToGroup: (username: string) => `${username} zur Gruppe hinzufügen`}, yearPickerPage: { year: 'Jahr', selectYear: 'Bitte wählen Sie ein Jahr aus', diff --git a/src/languages/en.ts b/src/languages/en.ts index 70ef8a61078f..f6fe14aba0f6 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -785,6 +785,7 @@ const translations = { nameEmailOrPhoneNumber: 'Name, email, or phone number', findMember: 'Find a member', searchForSomeone: 'Search for someone', + userSelected: (username: string) => `${username} selected`, }, customApprovalWorkflow: { title: 'Custom approval workflow', @@ -2975,6 +2976,7 @@ const translations = { newChatPage: { startGroup: 'Start group', addToGroup: 'Add to group', + addUserToGroup: (username: string) => `Add ${username} to group`, }, yearPickerPage: { year: 'Year', diff --git a/src/languages/es.ts b/src/languages/es.ts index 4e5849bec0b9..c9f8ccbfd97a 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -529,6 +529,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: 'Nombre, correo electrónico o número de teléfono', findMember: 'Encuentra un miembro', searchForSomeone: 'Busca a alguien', + userSelected: (username: string) => `${username} seleccionado`, }, customApprovalWorkflow: { title: 'Flujo de aprobación personalizado', @@ -2693,6 +2694,7 @@ ${amount} para ${merchant} - ${date}`, newChatPage: { startGroup: 'Crear grupo', addToGroup: 'Añadir al grupo', + addUserToGroup: (username: string) => `Añadir ${username} al grupo`, }, yearPickerPage: { year: 'Año', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index eb79517d09ef..b494fb50bd30 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -800,6 +800,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: 'Nom, e-mail ou numéro de téléphone', findMember: 'Trouver un membre', searchForSomeone: 'Rechercher quelqu’un', + userSelected: (username: string) => `${username} sélectionné`, }, customApprovalWorkflow: { title: 'Flux d’approbation personnalisé', @@ -2992,10 +2993,7 @@ ${ detailsPage: { localTime: 'Heure locale', }, - newChatPage: { - startGroup: 'Créer un groupe', - addToGroup: 'Ajouter au groupe', - }, + newChatPage: {startGroup: 'Créer un groupe', addToGroup: 'Ajouter au groupe', addUserToGroup: (username: string) => `Ajouter ${username} au groupe`}, yearPickerPage: { year: 'Année', selectYear: 'Veuillez sélectionner une année', diff --git a/src/languages/it.ts b/src/languages/it.ts index d5fb701057e2..4d8f32bf52a0 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -798,6 +798,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: 'Nome, email o numero di telefono', findMember: 'Trova un membro', searchForSomeone: 'Cerca qualcuno', + userSelected: (username: string) => `${username} selezionato`, }, customApprovalWorkflow: { title: 'Flusso di approvazione personalizzato', @@ -2979,10 +2980,7 @@ ${ detailsPage: { localTime: 'Ora locale', }, - newChatPage: { - startGroup: 'Avvia gruppo', - addToGroup: 'Aggiungi al gruppo', - }, + newChatPage: {startGroup: 'Avvia gruppo', addToGroup: 'Aggiungi al gruppo', addUserToGroup: (username: string) => `Aggiungi ${username} al gruppo`}, yearPickerPage: { year: 'Anno', selectYear: 'Seleziona un anno', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index b28d81502ec3..248ffa814f26 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -796,6 +796,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: '名前、メールアドレス、または電話番号', findMember: 'メンバーを検索', searchForSomeone: 'ユーザーを検索', + userSelected: (username: string) => `${username} が選択されました`, }, customApprovalWorkflow: { title: 'カスタム承認ワークフロー', @@ -2970,10 +2971,7 @@ ${ detailsPage: { localTime: '現地時間', }, - newChatPage: { - startGroup: 'グループを開始', - addToGroup: 'グループに追加', - }, + newChatPage: {startGroup: 'グループを開始', addToGroup: 'グループに追加', addUserToGroup: (username: string) => `${username} をグループに追加`}, yearPickerPage: { year: '年', selectYear: '年を選択してください', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index c0a1fdea3858..f2fc048ad8a1 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -798,6 +798,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: 'Naam, e-mail of telefoonnummer', findMember: 'Lid zoeken', searchForSomeone: 'Zoek iemand', + userSelected: (username: string) => `${username} geselecteerd`, }, customApprovalWorkflow: { title: 'Aangepaste goedkeuringsworkflow', @@ -2977,10 +2978,7 @@ ${ detailsPage: { localTime: 'Lokale tijd', }, - newChatPage: { - startGroup: 'Groep starten', - addToGroup: 'Aan groep toevoegen', - }, + newChatPage: {startGroup: 'Groep starten', addToGroup: 'Aan groep toevoegen', addUserToGroup: (username: string) => `${username} aan groep toevoegen`}, yearPickerPage: { year: 'Jaar', selectYear: 'Selecteer een jaar', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 49b67cae71a0..41d0b4674285 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -797,6 +797,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: 'Imię, adres e‑mail lub numer telefonu', findMember: 'Znajdź członka', searchForSomeone: 'Wyszukaj osobę', + userSelected: (username: string) => `Wybrano: ${username}`, }, customApprovalWorkflow: { title: 'Niestandardowy proces zatwierdzania', @@ -2971,10 +2972,7 @@ ${ detailsPage: { localTime: 'Czas lokalny', }, - newChatPage: { - startGroup: 'Rozpocznij grupę', - addToGroup: 'Dodaj do grupy', - }, + newChatPage: {startGroup: 'Rozpocznij grupę', addToGroup: 'Dodaj do grupy', addUserToGroup: (username: string) => `Dodaj ${username} do grupy`}, yearPickerPage: { year: 'Rok', selectYear: 'Wybierz rok', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 9cac69ba1358..aaf318df286c 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -797,6 +797,7 @@ const translations: TranslationDeepObject = { nameEmailOrPhoneNumber: 'Nome, e-mail ou número de telefone', findMember: 'Encontrar um membro', searchForSomeone: 'Pesquisar alguém', + userSelected: (username: string) => `${username} selecionado`, }, customApprovalWorkflow: { title: 'Fluxo de aprovação personalizado', @@ -2970,10 +2971,7 @@ ${ detailsPage: { localTime: 'Hora local', }, - newChatPage: { - startGroup: 'Iniciar grupo', - addToGroup: 'Adicionar ao grupo', - }, + newChatPage: {startGroup: 'Iniciar grupo', addToGroup: 'Adicionar ao grupo', addUserToGroup: (username: string) => `Adicionar ${username} ao grupo`}, yearPickerPage: { year: 'Ano', selectYear: 'Selecione um ano', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index a29e981e97f7..bc048eace0e4 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -787,11 +787,7 @@ const translations: TranslationDeepObject = { paidBy: '支付方', whatsItFor: '它是用来做什么的?', }, - selectionList: { - nameEmailOrPhoneNumber: '姓名、电子邮箱或电话号码', - findMember: '查找成员', - searchForSomeone: '搜索人员', - }, + selectionList: {nameEmailOrPhoneNumber: '姓名、电子邮箱或电话号码', findMember: '查找成员', searchForSomeone: '搜索人员', userSelected: (username: string) => `已选择 ${username}`}, customApprovalWorkflow: { title: '自定义审批流程', description: '您的公司在此工作区中使用了自定义审批工作流程。请在 Expensify Classic 中执行此操作', @@ -2926,10 +2922,7 @@ ${ detailsPage: { localTime: '本地时间', }, - newChatPage: { - startGroup: '开始群组', - addToGroup: '添加到群组', - }, + newChatPage: {startGroup: '开始群组', addToGroup: '添加到群组', addUserToGroup: (username: string) => `将 ${username} 添加到群组`}, yearPickerPage: { year: '年', selectYear: '请选择年份', diff --git a/src/pages/NewChatPage.tsx b/src/pages/NewChatPage.tsx index 44d5739a3b82..40b9d421ce9e 100755 --- a/src/pages/NewChatPage.tsx +++ b/src/pages/NewChatPage.tsx @@ -399,8 +399,7 @@ function NewChatPage({ref}: NewChatPageProps) { onPress={() => toggleOption(item)} disabled={item.isDisabled} role={CONST.ROLE.CHECKBOX} - accessibilityLabel={item.text ?? ''} - accessibilityState={{checked: item.isSelected}} + accessibilityLabel={item.text ? translate('selectionList.userSelected', item.text) : ''} style={[styles.flexRow, styles.alignItemsCenter, styles.ml5, styles.optionSelectCircle]} > toggleOption(item)} style={[styles.pl2]} text={translate('newChatPage.addToGroup')} + accessibilityLabel={item.text ? translate('newChatPage.addUserToGroup', item.text) : ''} innerStyles={buttonInnerStyles} small /> From 7725aeb9a7c2ab9ca139692aef66e0dbda63e1f5 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Mon, 2 Feb 2026 13:57:38 +0530 Subject: [PATCH 11/19] Implemented the expected behaviour in step buttons issue --- src/components/InteractiveStepSubHeader.tsx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/InteractiveStepSubHeader.tsx b/src/components/InteractiveStepSubHeader.tsx index ca0851042717..a4bf35fcf092 100644 --- a/src/components/InteractiveStepSubHeader.tsx +++ b/src/components/InteractiveStepSubHeader.tsx @@ -4,6 +4,7 @@ import type {ViewStyle} from 'react-native'; import {View} from 'react-native'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import getPlatform from '@libs/getPlatform'; import colors from '@styles/theme/colors'; import variables from '@styles/variables'; import CONST from '@src/CONST'; @@ -68,8 +69,14 @@ function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected const amountOfUnions = stepNames.length - 1; + const isWeb = getPlatform() === CONST.PLATFORM.WEB; + return ( - + {stepNames.map((stepName, index) => { const isCompletedStep = currentStep > index; const isLockedStep = currentStep < index; @@ -101,9 +108,8 @@ function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected ]} disabled={isLockedStep || !onStepSelected} onPress={moveToStep} - accessible - accessibilityLabel={translate('stepCounter', {step: index + 1, total: stepNames.length})} - aria-current={currentStep === index ? 'step' : undefined} + accessible={false} + aria-hidden={!isWeb} role={CONST.ROLE.BUTTON} > {isCompletedStep ? ( From 7e51bf377813f7f78dc443b72897e6bff5468d5b Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 5 Feb 2026 18:20:22 +0530 Subject: [PATCH 12/19] Fixed prettier issue and moved unit translation outside distanceRatesList --- src/components/MoneyRequestAmountInput.tsx | 2 +- .../workspace/distanceRates/PolicyDistanceRatesPage.tsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/MoneyRequestAmountInput.tsx b/src/components/MoneyRequestAmountInput.tsx index a39a8febe276..70d318d47958 100644 --- a/src/components/MoneyRequestAmountInput.tsx +++ b/src/components/MoneyRequestAmountInput.tsx @@ -1,9 +1,9 @@ import type {ForwardedRef} from 'react'; import React, {useCallback, useEffect, useRef} from 'react'; import type {BlurEvent, KeyboardTypeOptions, StyleProp, TextStyle, ViewStyle} from 'react-native'; -import getPlatform from '@libs/getPlatform'; import useLocalize from '@hooks/useLocalize'; import {convertToFrontendAmountAsString, getCurrencyDecimals, getLocalizedCurrencySymbol} from '@libs/CurrencyUtils'; +import getPlatform from '@libs/getPlatform'; import CONST from '@src/CONST'; import NumberWithSymbolForm from './NumberWithSymbolForm'; import type {NumberWithSymbolFormRef} from './NumberWithSymbolForm'; diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx index a0fab1e72a83..160091f156aa 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx @@ -217,12 +217,12 @@ function PolicyDistanceRatesPage({ [canDisableOrDeleteRate, customUnit, policyID], ); + const unitTranslation = translate(`common.${customUnit?.attributes?.unit ?? CONST.CUSTOM_UNITS.DISTANCE_UNIT_MILES}`); + const distanceRatesList = useMemo( () => Object.values(customUnitRates).map((value) => { - const alternateText = `${convertAmountToDisplayString(value.rate, value.currency ?? CONST.CURRENCY.USD)} / ${translate( - `common.${customUnit?.attributes?.unit ?? CONST.CUSTOM_UNITS.DISTANCE_UNIT_MILES}`, - )}`; + const alternateText = `${convertAmountToDisplayString(value.rate, value.currency ?? CONST.CURRENCY.USD)} / ${unitTranslation}`; return { rate: value.rate, From 3d465417c97ace6db87478ffae2655f7f06ec790 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 5 Feb 2026 18:24:30 +0530 Subject: [PATCH 13/19] Reverted the fix for Language dropdown as it has been solved by other PR --- src/components/Picker/BasePicker.tsx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/components/Picker/BasePicker.tsx b/src/components/Picker/BasePicker.tsx index bca4ef085d3b..5bd87d53e69b 100644 --- a/src/components/Picker/BasePicker.tsx +++ b/src/components/Picker/BasePicker.tsx @@ -9,7 +9,6 @@ import FormHelpMessage from '@components/FormHelpMessage'; import Icon from '@components/Icon'; import Text from '@components/Text'; import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset'; -import useLocalize from '@hooks/useLocalize'; import useScrollContext from '@hooks/useScrollContext'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; @@ -45,7 +44,6 @@ function BasePicker({ const icons = useMemoizedLazyExpensifyIcons(['DownArrow']); const theme = useTheme(); const styles = useThemeStyles(); - const {translate} = useLocalize(); const [isHighlighted, setIsHighlighted] = useState(false); @@ -213,9 +211,6 @@ function BasePicker({ allowFontScaling: false, }} pickerProps={{ - role: CONST.ROLE.COMBOBOX, - // eslint-disable-next-line @typescript-eslint/naming-convention - 'aria-label': label ?? translate('languagePage.language'), ref: picker, tabIndex: pickerTabIndex, onFocus: enableHighlight, From db3d79ce0da35a86db809302df293c9bdca4f91e Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 5 Feb 2026 18:58:18 +0530 Subject: [PATCH 14/19] Fixed the failing jest test and added accessibilityHint in PureReportActionItem.tsx --- src/pages/inbox/report/PureReportActionItem.tsx | 1 + tests/ui/PaginationTest.tsx | 2 +- tests/ui/UnreadIndicatorsTest.tsx | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pages/inbox/report/PureReportActionItem.tsx b/src/pages/inbox/report/PureReportActionItem.tsx index 3e27cda0f269..ec74e8f0c35d 100644 --- a/src/pages/inbox/report/PureReportActionItem.tsx +++ b/src/pages/inbox/report/PureReportActionItem.tsx @@ -2069,6 +2069,7 @@ function PureReportActionItem({ preventDefaultContextMenu={draftMessage === undefined && !hasErrors} withoutFocusOnSecondaryInteraction accessibilityLabel={accessibilityLabel} + accessibilityHint={translate('accessibilityHints.chatMessage')} accessible sentryLabel={CONST.SENTRY_LABEL.REPORT.PURE_REPORT_ACTION_ITEM} > diff --git a/tests/ui/PaginationTest.tsx b/tests/ui/PaginationTest.tsx index 663230c4c64d..31ca6debe87b 100644 --- a/tests/ui/PaginationTest.tsx +++ b/tests/ui/PaginationTest.tsx @@ -88,7 +88,7 @@ function triggerListLayout(reportID?: string) { function getReportActions(reportID?: string) { const report = getReportScreen(reportID); return [ - ...within(report).queryAllByLabelText(TestHelper.translateLocal('accessibilityHints.chatMessage')), + ...within(report).queryAllByAccessibilityHint(TestHelper.translateLocal('accessibilityHints.chatMessage')), // Created action has a different accessibility label. ...within(report).queryAllByLabelText(TestHelper.translateLocal('accessibilityHints.chatWelcomeMessage')), ]; diff --git a/tests/ui/UnreadIndicatorsTest.tsx b/tests/ui/UnreadIndicatorsTest.tsx index c800a7736764..ce4a5526aeab 100644 --- a/tests/ui/UnreadIndicatorsTest.tsx +++ b/tests/ui/UnreadIndicatorsTest.tsx @@ -271,7 +271,7 @@ describe('Unread Indicators', () => { const createdAction = screen.queryByLabelText(welcomeMessageHintText); expect(createdAction).toBeTruthy(); const reportCommentsHintText = TestHelper.translateLocal('accessibilityHints.chatMessage'); - const reportComments = screen.queryAllByLabelText(reportCommentsHintText); + const reportComments = screen.queryAllByAccessibilityHint(reportCommentsHintText); expect(reportComments).toHaveLength(9); // Since the last read timestamp is the timestamp of action 3 we should have an unread indicator above the next "unread" action which will // have actionID of 4 From 6685a42b126d70e225546579f147fd82f96beded Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 12 Feb 2026 18:58:25 +0530 Subject: [PATCH 15/19] Removed alternateText from accessibilityLabel in PolicyDistanceRatesPage --- src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx index f315a8b758eb..0fd17fdfc8fc 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx @@ -245,7 +245,7 @@ function PolicyDistanceRatesPage({ rightElement: ( updateDistanceRateEnabled(newValue, value.customUnitRateID)} showLockIcon={!canDisableOrDeleteRate(value.customUnitRateID)} disabled={value.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE} From 9d0c6c8cc1275e46d94d24623b58a5d12f609c69 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 12 Feb 2026 19:12:03 +0530 Subject: [PATCH 16/19] fixed ts error --- src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx index 0fd17fdfc8fc..98f2375d6226 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx @@ -245,7 +245,7 @@ function PolicyDistanceRatesPage({ rightElement: ( updateDistanceRateEnabled(newValue, value.customUnitRateID)} showLockIcon={!canDisableOrDeleteRate(value.customUnitRateID)} disabled={value.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE} From a23e7a9f91eaf06d8e76142d3683933616a03ea7 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 12 Feb 2026 23:37:07 +0530 Subject: [PATCH 17/19] Reverted the changes in MoneyRequestAmountInput and NumberWithSymbolForm --- src/components/MoneyRequestAmountInput.tsx | 3 +-- src/components/NumberWithSymbolForm.tsx | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/MoneyRequestAmountInput.tsx b/src/components/MoneyRequestAmountInput.tsx index 8c933d1f7648..24ab759b25c8 100644 --- a/src/components/MoneyRequestAmountInput.tsx +++ b/src/components/MoneyRequestAmountInput.tsx @@ -4,7 +4,6 @@ import type {BlurEvent, StyleProp, TextStyle, ViewStyle} from 'react-native'; import useCurrencyList from '@hooks/useCurrencyList'; import useLocalize from '@hooks/useLocalize'; import {convertToFrontendAmountAsString, getLocalizedCurrencySymbol} from '@libs/CurrencyUtils'; -import getPlatform from '@libs/getPlatform'; import CONST from '@src/CONST'; import NumberWithSymbolForm from './NumberWithSymbolForm'; import type {NumberWithSymbolFormRef} from './NumberWithSymbolForm'; @@ -261,7 +260,7 @@ function MoneyRequestAmountInput({ toggleNegative={toggleNegative} clearNegative={clearNegative} onFocus={props.onFocus} - accessibilityLabel={getPlatform() === CONST.PLATFORM.WEB ? `${translate('iou.amount')} (${currency})` : undefined} + accessibilityLabel={`${translate('iou.amount')} (${currency})`} /> ); } diff --git a/src/components/NumberWithSymbolForm.tsx b/src/components/NumberWithSymbolForm.tsx index fef5f84ec9fc..37ec58a8d0a6 100644 --- a/src/components/NumberWithSymbolForm.tsx +++ b/src/components/NumberWithSymbolForm.tsx @@ -458,7 +458,7 @@ function NumberWithSymbolForm({ isNegative={isNegative} toggleNegative={toggleNegative} onFocus={props.onFocus} - accessibilityLabel={props.accessibilityLabel ?? `${translate('iou.amount')} ${formattedNumber} (${currency})`} + accessibilityLabel={props.accessibilityLabel} /> ); From a299f633e05d917153cbf9a0bf68308b8658aab5 Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Thu, 12 Feb 2026 23:44:30 +0530 Subject: [PATCH 18/19] removed isWeb boolean from aria-hidden --- src/components/InteractiveStepSubHeader.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/InteractiveStepSubHeader.tsx b/src/components/InteractiveStepSubHeader.tsx index a4bf35fcf092..87d9fb0f9d08 100644 --- a/src/components/InteractiveStepSubHeader.tsx +++ b/src/components/InteractiveStepSubHeader.tsx @@ -4,7 +4,6 @@ import type {ViewStyle} from 'react-native'; import {View} from 'react-native'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; -import getPlatform from '@libs/getPlatform'; import colors from '@styles/theme/colors'; import variables from '@styles/variables'; import CONST from '@src/CONST'; @@ -69,8 +68,6 @@ function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected const amountOfUnions = stepNames.length - 1; - const isWeb = getPlatform() === CONST.PLATFORM.WEB; - return ( {isCompletedStep ? ( From 97b93abefebbe75af18f68d618ee8877bc9c3d0b Mon Sep 17 00:00:00 2001 From: Uzaifm127 Date: Fri, 13 Feb 2026 11:50:38 +0530 Subject: [PATCH 19/19] added sentryLabels to interactive components --- src/CONST/index.ts | 6 ++++++ src/components/InteractiveStepSubHeader.tsx | 1 + src/pages/signin/Socials.tsx | 1 + .../workspace/distanceRates/PolicyDistanceRatesPage.tsx | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 4eb625affacd..f45e259b7b57 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -8454,6 +8454,12 @@ const CONST = { RESEND_CODE: 'ValidateCode-ResendCode', RECOVERY_CODE: 'ValidateCode-RecoveryCode', }, + INTERACTIVE_STEP_SUB_HEADER: { + STEP_BUTTON: 'InteractiveStepSubHeader-StepButton', + }, + SOCIALS: { + LINK: 'Socials', + }, }, DOMAIN: { diff --git a/src/components/InteractiveStepSubHeader.tsx b/src/components/InteractiveStepSubHeader.tsx index 87d9fb0f9d08..de38723de3ba 100644 --- a/src/components/InteractiveStepSubHeader.tsx +++ b/src/components/InteractiveStepSubHeader.tsx @@ -108,6 +108,7 @@ function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected accessible={false} aria-hidden role={CONST.ROLE.BUTTON} + sentryLabel={CONST.SENTRY_LABEL.INTERACTIVE_STEP_SUB_HEADER.STEP_BUTTON} > {isCompletedStep ? ( {({hovered, pressed}) => ( {