Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
fee1d6b
#74853 - added announcement for Social links in Landing page
Uzaifm127 Jan 26, 2026
347c70a
#74855 - Added announcement for Language picker combobox in landing page
Uzaifm127 Jan 26, 2026
903c3b1
#76906 - Updated announcement for Switch buttons in Distance rates
Uzaifm127 Jan 26, 2026
8c08609
#77365 - Updated status button announcement for emoji not selected in…
Uzaifm127 Jan 26, 2026
4b80927
Fix prettier formatting for - #77365
Uzaifm127 Jan 26, 2026
760e004
#77412 - Updated the announcement for chat messages to include sender…
Uzaifm127 Jan 26, 2026
401ea43
#76905 - Updated the announcement for Step buttons
Uzaifm127 Jan 26, 2026
54ff111
#77369 - Though a Talkback issue, included the amount value in Amount…
Uzaifm127 Jan 26, 2026
ad7ead6
Fix prettier formatting for - #77369
Uzaifm127 Jan 26, 2026
8196e83
#77369 - Updated the announcement for checkbox and Add to group butto…
Uzaifm127 Jan 27, 2026
7725aeb
Implemented the expected behaviour in step buttons issue
Uzaifm127 Feb 2, 2026
93cf24d
Resolved merge conflicts
Uzaifm127 Feb 2, 2026
ae337d7
Fixed merge conflicts
Uzaifm127 Feb 5, 2026
7e51bf3
Fixed prettier issue and moved unit translation outside distanceRates…
Uzaifm127 Feb 5, 2026
3d46541
Reverted the fix for Language dropdown as it has been solved by other PR
Uzaifm127 Feb 5, 2026
db3d79c
Fixed the failing jest test and added accessibilityHint in PureReport…
Uzaifm127 Feb 5, 2026
72ce1cd
Resolved the merge conflicts
Uzaifm127 Feb 12, 2026
6685a42
Removed alternateText from accessibilityLabel in PolicyDistanceRatesPage
Uzaifm127 Feb 12, 2026
9d0c6c8
fixed ts error
Uzaifm127 Feb 12, 2026
a23e7a9
Reverted the changes in MoneyRequestAmountInput and NumberWithSymbolForm
Uzaifm127 Feb 12, 2026
a299f63
removed isWeb boolean from aria-hidden
Uzaifm127 Feb 12, 2026
97b93ab
added sentryLabels to interactive components
Uzaifm127 Feb 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/CONST/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand Down
14 changes: 10 additions & 4 deletions src/components/InteractiveStepSubHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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) {
Expand All @@ -67,7 +69,11 @@ function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected
const amountOfUnions = stepNames.length - 1;

return (
<View style={[styles.interactiveStepHeaderContainer, containerWidthStyle]}>
<View
style={[styles.interactiveStepHeaderContainer, containerWidthStyle]}
focusable
accessibilityLabel={translate('stepCounter', {step: currentStep + 1, total: stepNames.length})}
>
{stepNames.map((stepName, index) => {
const isCompletedStep = currentStep > index;
const isLockedStep = currentStep < index;
Expand Down Expand Up @@ -99,10 +105,10 @@ function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected
]}
disabled={isLockedStep || !onStepSelected}
onPress={moveToStep}
accessible
accessibilityLabel={`${index + 1}`}
aria-current={currentStep === index ? 'step' : undefined}
accessible={false}
aria-hidden
role={CONST.ROLE.BUTTON}
sentryLabel={CONST.SENTRY_LABEL.INTERACTIVE_STEP_SUB_HEADER.STEP_BUTTON}
>
{isCompletedStep ? (
<Icon
Expand Down
7 changes: 3 additions & 4 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,7 @@ const translations: TranslationDeepObject<typeof en> = {
nameEmailOrPhoneNumber: 'Name, E-Mail-Adresse oder Telefonnummer',
findMember: 'Mitglied finden',
searchForSomeone: 'Nach jemandem suchen',
userSelected: (username: string) => `${username} ausgewählt`,
},
customApprovalWorkflow: {
title: 'Benutzerdefinierter Genehmigungsworkflow',
Expand Down Expand Up @@ -3081,10 +3082,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 ein Jahr auswählen',
Expand Down Expand Up @@ -6531,6 +6529,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und
symbols: 'Symbole',
flags: 'Markierungen',
},
emojiNotSelected: 'Emoji nicht ausgewählt',
},
newRoomPage: {
newRoom: 'Neuer Raum',
Expand Down
3 changes: 3 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,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',
Expand Down Expand Up @@ -3105,6 +3106,7 @@ const translations = {
newChatPage: {
startGroup: 'Start group',
addToGroup: 'Add to group',
addUserToGroup: (username: string) => `Add ${username} to group`,
},
yearPickerPage: {
year: 'Year',
Expand Down Expand Up @@ -6453,6 +6455,7 @@ const translations = {
onboardingHelp: 'Onboarding help',
},
emojiPicker: {
emojiNotSelected: 'Emoji not selected',
skinTonePickerLabel: 'Change default skin tone',
headers: {
frequentlyUsed: 'Frequently Used',
Expand Down
3 changes: 3 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,7 @@ const translations: TranslationDeepObject<typeof en> = {
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',
Expand Down Expand Up @@ -2852,6 +2853,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',
Expand Down Expand Up @@ -6242,6 +6244,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',
Expand Down
3 changes: 3 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,7 @@ const translations: TranslationDeepObject<typeof en> = {
nameEmailOrPhoneNumber: 'Nom, e-mail ou numéro de téléphone',
findMember: 'Trouver un membre',
searchForSomeone: 'Rechercher une personne',
userSelected: (username: string) => `${username} sélectionné`,
},
customApprovalWorkflow: {
title: 'Workflow d’approbation personnalisé',
Expand Down Expand Up @@ -3090,6 +3091,7 @@ ${
newChatPage: {
startGroup: 'Commencer le groupe',
addToGroup: 'Ajouter au groupe',
addUserToGroup: (username: string) => `Ajouter ${username} au groupe`,
},
yearPickerPage: {
year: 'Année',
Expand Down Expand Up @@ -6552,6 +6554,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip
symbols: 'Symboles',
flags: 'Drapeaux',
},
emojiNotSelected: 'Emoji non sélectionné',
},
newRoomPage: {
newRoom: 'Nouvelle salle',
Expand Down
7 changes: 3 additions & 4 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,7 @@ const translations: TranslationDeepObject<typeof en> = {
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',
Expand Down Expand Up @@ -3071,10 +3072,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',
Expand Down Expand Up @@ -6515,6 +6513,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo
symbols: 'Simboli',
flags: 'Segnalazioni',
},
emojiNotSelected: 'Emoji non selezionata',
},
newRoomPage: {
newRoom: 'Nuova stanza',
Expand Down
7 changes: 3 additions & 4 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,7 @@ const translations: TranslationDeepObject<typeof en> = {
nameEmailOrPhoneNumber: '名前、メールアドレス、または電話番号',
findMember: 'メンバーを検索',
searchForSomeone: '誰かを検索',
userSelected: (username: string) => `${username} 選択された`,
},
customApprovalWorkflow: {
title: 'カスタム承認ワークフロー',
Expand Down Expand Up @@ -3058,10 +3059,7 @@ ${
detailsPage: {
localTime: '現地時間',
},
newChatPage: {
startGroup: 'グループを開始',
addToGroup: 'グループに追加',
},
newChatPage: {startGroup: 'グループを開始', addToGroup: 'グループに追加', addUserToGroup: (username: string) => `${username} をグループに追加`},
yearPickerPage: {
year: '年',
selectYear: '年を選択してください',
Expand Down Expand Up @@ -6461,6 +6459,7 @@ ${reportName}
symbols: '記号',
flags: 'フラグ',
},
emojiNotSelected: '絵文字が選択されていません',
},
newRoomPage: {
newRoom: '新しいルーム',
Expand Down
7 changes: 3 additions & 4 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,7 @@ const translations: TranslationDeepObject<typeof en> = {
nameEmailOrPhoneNumber: 'Naam, e-mail of telefoonnummer',
findMember: 'Lid zoeken',
searchForSomeone: 'Iemand zoeken',
userSelected: (username: string) => `${username} geselecteerd`,
},
customApprovalWorkflow: {
title: 'Aangepaste goedkeuringsworkflow',
Expand Down Expand Up @@ -3072,10 +3073,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',
Expand Down Expand Up @@ -6503,6 +6501,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar
symbols: 'Symbolen',
flags: 'Vlaggen',
},
emojiNotSelected: 'Emoji niet geselecteerd',
},
newRoomPage: {
newRoom: 'Nieuwe ruimte',
Expand Down
7 changes: 3 additions & 4 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,7 @@ const translations: TranslationDeepObject<typeof en> = {
nameEmailOrPhoneNumber: 'Imię i nazwisko, e-mail lub numer telefonu',
findMember: 'Znajdź członka',
searchForSomeone: 'Wyszukaj osobę',
userSelected: (username: string) => `Wybrano: ${username}`,
},
customApprovalWorkflow: {
title: 'Niestandardowy przepływ zatwierdzania',
Expand Down Expand Up @@ -3064,10 +3065,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',
Expand Down Expand Up @@ -6493,6 +6491,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',
Expand Down
7 changes: 3 additions & 4 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,7 @@ const translations: TranslationDeepObject<typeof en> = {
nameEmailOrPhoneNumber: 'Nome, e-mail ou número de telefone',
findMember: 'Encontrar membro',
searchForSomeone: 'Buscar alguém',
userSelected: (username: string) => `${username} selecionado`,
},
customApprovalWorkflow: {
title: 'Fluxo de aprovação personalizado',
Expand Down Expand Up @@ -3064,10 +3065,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',
Expand Down Expand Up @@ -6497,6 +6495,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e
symbols: 'Símbolos',
flags: 'Bandeiras',
},
emojiNotSelected: 'Emoji não selecionado',
},
newRoomPage: {
newRoom: 'Nova sala',
Expand Down
7 changes: 3 additions & 4 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -767,6 +767,7 @@ const translations: TranslationDeepObject<typeof en> = {
nameEmailOrPhoneNumber: '姓名、电子邮件或电话号码',
findMember: '查找成员',
searchForSomeone: '搜索联系人',
userSelected: (username: string) => `已选择 ${username}`,
},
customApprovalWorkflow: {
title: '自定义审批流程',
Expand Down Expand Up @@ -3024,10 +3025,7 @@ ${
detailsPage: {
localTime: '本地时间',
},
newChatPage: {
startGroup: '开始群组',
addToGroup: '添加到群组',
},
newChatPage: {startGroup: '开始群组', addToGroup: '添加到群组', addUserToGroup: (username: string) => `将 ${username} 添加到群组`},
yearPickerPage: {
year: '年份',
selectYear: '请选择年份',
Expand Down Expand Up @@ -6372,6 +6370,7 @@ ${reportName}
symbols: '符号',
flags: '标记',
},
emojiNotSelected: '未选择表情符号',
},
newRoomPage: {
newRoom: '新房间',
Expand Down
4 changes: 2 additions & 2 deletions src/pages/NewChatPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -414,8 +414,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]}
>
<SelectCircle
Expand All @@ -431,6 +430,7 @@ function NewChatPage({ref}: NewChatPageProps) {
onPress={() => toggleOption(item)}
style={[styles.pl2]}
text={translate('newChatPage.addToGroup')}
accessibilityLabel={item.text ? translate('newChatPage.addUserToGroup', item.text) : ''}
innerStyles={buttonInnerStyles}
small
/>
Expand Down
11 changes: 9 additions & 2 deletions src/pages/inbox/report/PureReportActionItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,7 @@ function PureReportActionItem({
reportMetadata,
}: PureReportActionItemProps) {
const {transitionActionSheetState} = ActionSheetAwareScrollView.useActionSheetAwareScrollViewActions();
const {translate, formatPhoneNumber, localeCompare, formatTravelDate, getLocalDateFromDatetime} = useLocalize();
const {translate, formatPhoneNumber, localeCompare, formatTravelDate, getLocalDateFromDatetime, datetimeToCalendarTime} = useLocalize();
const {showConfirmModal} = useConfirmModal();
const personalDetail = useCurrentUserPersonalDetails();
const {shouldUseNarrowLayout} = useResponsiveLayout();
Expand Down Expand Up @@ -2047,6 +2047,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 (
<View>
{shouldShowCreatedAction && createdActionContent}
Expand All @@ -2067,7 +2073,8 @@ function PureReportActionItem({
onSecondaryInteraction={showPopover}
preventDefaultContextMenu={draftMessage === undefined && !hasErrors}
withoutFocusOnSecondaryInteraction
accessibilityLabel={translate('accessibilityHints.chatMessage')}
accessibilityLabel={accessibilityLabel}
accessibilityHint={translate('accessibilityHints.chatMessage')}
accessibilityRole={CONST.ROLE.BUTTON}
sentryLabel={CONST.SENTRY_LABEL.REPORT.PURE_REPORT_ACTION_ITEM}
>
Expand Down
4 changes: 3 additions & 1 deletion src/pages/settings/InitialSettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,9 @@ function InitialSettingsPage({currentUserPersonalDetails}: InitialSettingsPagePr
<AccountSwitcher isScreenFocused={isScreenFocused} />
<Tooltip text={translate('statusPage.status')}>
<PressableWithFeedback
accessibilityLabel={emojiCode ? `${translate('statusPage.status')}: ${emojiCode}` : translate('statusPage.status')}
accessibilityLabel={
emojiCode ? `${translate('statusPage.status')}: ${emojiCode}` : `${translate('statusPage.status')}, ${translate('emojiPicker.emojiNotSelected')}`
}
accessibilityRole="button"
accessible
sentryLabel={CONST.SENTRY_LABEL.ACCOUNT.STATUS_PICKER}
Expand Down
3 changes: 2 additions & 1 deletion src/pages/signin/Socials.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,10 @@ function Socials() {
e?.preventDefault();
openExternalLink(social.link);
}}
accessible={false}
accessibilityLabel={social.iconURL}
style={[styles.mr1, styles.mt1]}
shouldUseAutoHitSlop={false}
sentryLabel={`${CONST.SENTRY_LABEL.SOCIALS.LINK}-${social.iconURL}`}
>
{({hovered, pressed}) => (
<Icon
Expand Down
Loading
Loading