fix(bulk-upload): i18n hardcoded strings in BulkDropZone and FileSwitcherStrip

- Add bulk_drop_desc, bulk_select_files, bulk_drop_zone_label, bulk_remove_file
  keys to de/en/es message files
- BulkDropZone: use m.bulk_drop_zone_label(), m.bulk_drop_desc(),
  m.bulk_select_files() — removes all hardcoded German
- FileSwitcherStrip: use m.bulk_remove_file() on × button; move aria-live
  from <ul> to a dedicated visually-hidden region above the strip (screen
  readers now announce changes without coupling the live region to the list)
- Spec: import FileEntry from component instead of re-declaring; use
  data-remove-id selector instead of hardcoded German aria-label

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-24 20:38:39 +02:00
committed by marcel
parent a6cd10f219
commit f06d034b36
7 changed files with 24 additions and 22 deletions

View File

@@ -52,9 +52,9 @@ describe('BulkDocumentEditLayout', () => {
makeFile('file2.pdf')
]);
// Remove the chip for file1 via its "Entfernen" remove button (second × button)
// Remove the chip for file1 via its remove button (identified by data-remove-id)
const removeButtons = container.querySelectorAll<HTMLButtonElement>(
'[data-testid="file-switcher-strip"] button[aria-label="Entfernen"]'
'[data-testid="file-switcher-strip"] button[data-remove-id]'
);
expect(removeButtons.length).toBe(3);
removeButtons[1].click(); // remove file1