Skip to content

Commit 0dd225f

Browse files
authored
Merge pull request Expensify#89816 from Expensify/claude-selectAllAccessibilityLabels
Add descriptive accessibility labels to Select all checkboxes
2 parents 10e6e6d + fa42603 commit 0dd225f

25 files changed

Lines changed: 103 additions & 2 deletions

src/components/SelectionList/BaseSelectionList.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ function BaseSelectionList<TItem extends ListItem>({
8282
shouldShowRightCaret = false,
8383
shouldStopPropagation = false,
8484
shouldHeaderBeInsideList = false,
85+
selectAllAccessibilityLabel,
8586
shouldScrollToFocusedIndex = true,
8687
shouldScrollToFocusedIndexOnMount = true,
8788
shouldHighlightInitiallyFocusedItem = false,
@@ -582,6 +583,7 @@ function BaseSelectionList<TItem extends ListItem>({
582583
selectAllTextStyle={style?.listHeaderSelectAllTextStyle}
583584
shouldShowSelectAllButton={!!onSelectAll}
584585
shouldPreventDefaultFocusOnSelectRow={shouldPreventDefaultFocusOnSelectRow}
586+
selectAllAccessibilityLabel={selectAllAccessibilityLabel}
585587
/>
586588
);
587589

src/components/SelectionList/components/ListHeader.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ type ListHeaderProps<TItem extends ListItem> = {
3333

3434
/** Whether to prevent default focus when selecting rows */
3535
shouldPreventDefaultFocusOnSelectRow?: boolean;
36+
37+
/** Custom accessibility label for the select all checkbox, providing context about what is being selected */
38+
selectAllAccessibilityLabel?: string;
3639
};
3740

3841
function ListHeader<TItem extends ListItem>({
@@ -44,6 +47,7 @@ function ListHeader<TItem extends ListItem>({
4447
selectAllTextStyle,
4548
shouldShowSelectAllButton,
4649
shouldPreventDefaultFocusOnSelectRow,
50+
selectAllAccessibilityLabel,
4751
}: ListHeaderProps<TItem>) {
4852
const styles = useThemeStyles();
4953
const {translate} = useLocalize();
@@ -69,7 +73,7 @@ function ListHeader<TItem extends ListItem>({
6973
<View style={[styles.flexRow, styles.alignItemsCenter]}>
7074
<Checkbox
7175
testID="selection-list-select-all-checkbox"
72-
accessibilityLabel={translate('accessibilityHints.selectAllItems')}
76+
accessibilityLabel={selectAllAccessibilityLabel ?? translate('accessibilityHints.selectAllItems')}
7377
isChecked={dataDetails.allSelected}
7478
isIndeterminate={dataDetails.someSelected}
7579
onPress={onSelectAll}
@@ -80,7 +84,7 @@ function ListHeader<TItem extends ListItem>({
8084
<PressableWithFeedback
8185
style={[styles.userSelectNone, styles.flexRow, styles.alignItemsCenter]}
8286
onPress={onSelectAll}
83-
accessibilityLabel={translate('accessibilityHints.selectAllItems')}
87+
accessibilityLabel={selectAllAccessibilityLabel ?? translate('accessibilityHints.selectAllItems')}
8488
sentryLabel={CONST.SENTRY_LABEL.SELECTION_LIST.LIST_HEADER_SELECT_ALL}
8589
accessibilityRole="button"
8690
accessibilityState={{checked: dataDetails.allSelected, disabled: allDisabled}}

src/components/SelectionList/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@ type SelectionListProps<TItem extends ListItem> = Partial<ChildrenProps> &
185185

186186
/** Whether to place customListHeader in the list so it scrolls with data */
187187
shouldHeaderBeInsideList?: boolean;
188+
189+
/** Custom accessibility label for the select all checkbox, providing context about what is being selected */
190+
selectAllAccessibilityLabel?: string;
188191
};
189192

190193
type SelectionListStyle = {

src/languages/de.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8141,6 +8141,14 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
81418141
selectAllFeatures: 'Alle Funktionen auswählen',
81428142
selectAllTransactions: 'Alle Transaktionen auswählen',
81438143
selectAllItems: 'Alle Einträge auswählen',
8144+
selectAllCategories: 'Alle Kategorien auswählen',
8145+
selectAllDistanceRates: 'Alle Entfernungssätze auswählen',
8146+
selectAllTags: 'Alle Tags auswählen',
8147+
selectAllTaxes: 'Alle Steuern auswählen',
8148+
selectAllPerDiemRates: 'Alle Pauschalspesen-Sätze auswählen',
8149+
selectAllMembers: 'Alle Mitglieder auswählen',
8150+
selectAllValues: 'Alle Werte auswählen',
8151+
selectAllRules: 'Alle Regeln auswählen',
81448152
},
81458153
parentReportAction: {
81468154
deletedReport: 'Gelöschter Bericht',

src/languages/en.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8135,6 +8135,14 @@ const translations = {
81358135
selectAllFeatures: 'Select all features',
81368136
selectAllTransactions: 'Select all transactions',
81378137
selectAllItems: 'Select all items',
8138+
selectAllCategories: 'Select all categories',
8139+
selectAllDistanceRates: 'Select all distance rates',
8140+
selectAllTags: 'Select all tags',
8141+
selectAllTaxes: 'Select all taxes',
8142+
selectAllPerDiemRates: 'Select all per diem rates',
8143+
selectAllMembers: 'Select all members',
8144+
selectAllValues: 'Select all values',
8145+
selectAllRules: 'Select all rules',
81388146
},
81398147
parentReportAction: {
81408148
deletedReport: 'Deleted report',

src/languages/es.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8412,6 +8412,14 @@ ${amount} para ${merchant} - ${date}`,
84128412
selectAllFeatures: 'Seleccionar todas las características',
84138413
selectAllItems: 'Seleccionar todos los elementos',
84148414
selectAllTransactions: 'Seleccionar todas las transacciones',
8415+
selectAllCategories: 'Seleccionar todas las categorías',
8416+
selectAllDistanceRates: 'Seleccionar todas las tarifas de distancia',
8417+
selectAllTags: 'Seleccionar todas las etiquetas',
8418+
selectAllTaxes: 'Seleccionar todos los impuestos',
8419+
selectAllPerDiemRates: 'Seleccionar todas las tarifas de viáticos',
8420+
selectAllMembers: 'Seleccionar todos los miembros',
8421+
selectAllValues: 'Seleccionar todos los valores',
8422+
selectAllRules: 'Seleccionar todas las reglas',
84158423
},
84168424
parentReportAction: {
84178425
deletedReport: 'Informe eliminado',

src/languages/fr.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8163,6 +8163,14 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
81638163
selectAllFeatures: 'Sélectionner toutes les fonctionnalités',
81648164
selectAllTransactions: 'Sélectionner toutes les transactions',
81658165
selectAllItems: 'Sélectionner tous les éléments',
8166+
selectAllCategories: 'Sélectionner toutes les catégories',
8167+
selectAllDistanceRates: 'Sélectionner tous les taux de distance',
8168+
selectAllTags: 'Sélectionner toutes les étiquettes',
8169+
selectAllTaxes: 'Sélectionner toutes les taxes',
8170+
selectAllPerDiemRates: 'Sélectionner tous les taux de per diem',
8171+
selectAllMembers: 'Sélectionner tous les membres',
8172+
selectAllValues: 'Sélectionner toutes les valeurs',
8173+
selectAllRules: 'Sélectionner toutes les règles',
81668174
},
81678175
parentReportAction: {
81688176
deletedReport: 'Note de frais supprimée',

src/languages/it.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8132,6 +8132,14 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
81328132
selectAllFeatures: 'Seleziona tutte le funzionalità',
81338133
selectAllTransactions: 'Seleziona tutte le transazioni',
81348134
selectAllItems: 'Seleziona tutti gli elementi',
8135+
selectAllCategories: 'Seleziona tutte le categorie',
8136+
selectAllDistanceRates: 'Seleziona tutte le tariffe chilometriche',
8137+
selectAllTags: 'Seleziona tutti i tag',
8138+
selectAllTaxes: 'Seleziona tutte le imposte',
8139+
selectAllPerDiemRates: 'Seleziona tutte le tariffe giornaliere',
8140+
selectAllMembers: 'Seleziona tutti i membri',
8141+
selectAllValues: 'Seleziona tutti i valori',
8142+
selectAllRules: 'Seleziona tutte le regole',
81358143
},
81368144
parentReportAction: {
81378145
deletedReport: 'Report eliminato',

src/languages/ja.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8031,6 +8031,14 @@ ${reportName}
80318031
selectAllFeatures: 'すべての機能を選択',
80328032
selectAllTransactions: 'すべての取引を選択',
80338033
selectAllItems: 'すべての項目を選択',
8034+
selectAllCategories: 'すべてのカテゴリを選択',
8035+
selectAllDistanceRates: 'すべての距離レートを選択',
8036+
selectAllTags: 'すべてのタグを選択',
8037+
selectAllTaxes: 'すべての税を選択',
8038+
selectAllPerDiemRates: 'すべての日当レートを選択',
8039+
selectAllMembers: 'すべてのメンバーを選択',
8040+
selectAllValues: 'すべての値を選択',
8041+
selectAllRules: 'すべてのルールを選択',
80348042
},
80358043
parentReportAction: {
80368044
deletedReport: '削除されたレポート',

src/languages/nl.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8103,6 +8103,14 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
81038103
selectAllFeatures: 'Selecteer alle functies',
81048104
selectAllTransactions: 'Selecteer alle transacties',
81058105
selectAllItems: 'Alle items selecteren',
8106+
selectAllCategories: 'Selecteer alle categorieën',
8107+
selectAllDistanceRates: 'Selecteer alle afstandstarieven',
8108+
selectAllTags: 'Alle tags selecteren',
8109+
selectAllTaxes: 'Selecteer alle belastingen',
8110+
selectAllPerDiemRates: 'Selecteer alle dagvergoedingen',
8111+
selectAllMembers: 'Alle leden selecteren',
8112+
selectAllValues: 'Selecteer alle waarden',
8113+
selectAllRules: 'Selecteer alle regels',
81068114
},
81078115
parentReportAction: {
81088116
deletedReport: 'Verwijderd rapport',

0 commit comments

Comments
 (0)