= {
errorMessage: errorUploading,
percentage: 50,
getUploadingText: (percentage: number) => `${uploadingText} ${percentage}%`,
+ getStatusAnnouncementText: (status: FileStatus, percentage?: number) => {
+ switch (status) {
+ case FileStatus.UPLOADING:
+ return `File upload status changed: Uploading ${percentage}%`;
+ case FileStatus.PAUSED:
+ return `File upload status changed: Paused at ${percentage}%`;
+ case FileStatus.UPLOADED:
+ return 'File upload status changed: Upload completed successfully';
+ case FileStatus.ERROR:
+ return 'File upload status changed: Error';
+ case FileStatus.QUEUED:
+ return 'File upload status changed: Queued';
+ default:
+ return '';
+ }
+ },
getPausedText: () => uploadingPausedText,
uploadSuccessfulText: uploadSuccessful,
};
@@ -105,4 +121,51 @@ describe('FileStatusMessage', () => {
expect(screen.getByTestId('error')).toBeInTheDocument();
expect(container).toMatchSnapshot();
});
+
+ it('announces upload progress when status is uploading', () => {
+ render(
+
+ );
+
+ const announcement = screen.getByRole('status');
+ expect(announcement).toHaveTextContent(
+ 'File upload status changed: Uploading 50%'
+ );
+ });
+
+ it('announces paused status with progress', () => {
+ render();
+
+ const announcement = screen.getByRole('status');
+ expect(announcement).toHaveTextContent(
+ 'File upload status changed: Paused at 50%'
+ );
+ });
+
+ it('announces successful upload completion', () => {
+ render(
+
+ );
+
+ const announcement = screen.getByRole('status');
+ expect(announcement).toHaveTextContent(
+ 'File upload status changed: Upload completed successfully'
+ );
+ });
+
+ it('announces error status', () => {
+ render();
+
+ const announcement = screen.getByRole('status');
+ expect(announcement).toHaveTextContent('File upload status changed: Error');
+ });
+
+ it('announces queued status', () => {
+ render();
+
+ const announcement = screen.getByRole('status');
+ expect(announcement).toHaveTextContent(
+ 'File upload status changed: Queued'
+ );
+ });
});
diff --git a/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileControl.test.tsx.snap b/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileControl.test.tsx.snap
index 770a0cc8379..269e0cfd907 100644
--- a/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileControl.test.tsx.snap
+++ b/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileControl.test.tsx.snap
@@ -75,6 +75,12 @@ exports[`FileControl renders as expected when file is uploading 1`] = `
+
+ File upload status changed: Uploading 0%
+
@@ -137,6 +143,12 @@ exports[`FileControl renders as expected when uploading is paused 1`] = `
+
+ File upload status changed: Paused at 0%
+
@@ -242,6 +254,12 @@ exports[`FileControl renders thumbnails 1`] = `
+
+ File upload status changed: Uploading 0%
+
@@ -347,6 +365,12 @@ exports[`FileControl should default to showThumbnails being true 1`] = `
+
+ File upload status changed: Uploading 0%
+
diff --git a/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileList.test.tsx.snap b/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileList.test.tsx.snap
index 9915ae68c79..9199ef6c7c8 100644
--- a/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileList.test.tsx.snap
+++ b/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileList.test.tsx.snap
@@ -86,6 +86,12 @@ exports[`FileList renders an alert in case of error 1`] = `
+
+ File upload status changed: Uploading 0%
+
@@ -221,6 +227,12 @@ exports[`FileList renders as expected 1`] = `
+
+ File upload status changed: Uploading 0%
+
@@ -313,6 +325,12 @@ exports[`FileList renders as expected when upload is resumable 1`] = `
+
+ File upload status changed: Uploading 0%
+
diff --git a/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileStatusMessage.test.tsx.snap b/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileStatusMessage.test.tsx.snap
index 676c3ab42b7..df2462dc359 100644
--- a/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileStatusMessage.test.tsx.snap
+++ b/packages/react-storage/src/components/StorageManager/ui/FileList/__tests__/__snapshots__/FileStatusMessage.test.tsx.snap
@@ -2,6 +2,12 @@
exports[`FileStatusMessage renders as expected when file is uploaded 1`] = `
+
+ File upload status changed: Upload completed successfully
+
@@ -31,6 +37,12 @@ exports[`FileStatusMessage renders as expected when file is uploaded 1`] = `
exports[`FileStatusMessage renders as expected when file is uploading 1`] = `
+
+ File upload status changed: Uploading 50%
+
@@ -41,6 +53,12 @@ exports[`FileStatusMessage renders as expected when file is uploading 1`] = `
exports[`FileStatusMessage renders as expected when file uploading is paused 1`] = `
+
+ File upload status changed: Paused at 50%
+
@@ -51,6 +69,12 @@ exports[`FileStatusMessage renders as expected when file uploading is paused 1`]
exports[`FileStatusMessage renders as expected when there is an error uploading 1`] = `
+
+ File upload status changed: Error
+
@@ -80,6 +104,12 @@ exports[`FileStatusMessage renders as expected when there is an error uploading
exports[`FileStatusMessage renders custom icons from IconProvider 1`] = `
+
+ File upload status changed: Error
+
@@ -90,6 +120,12 @@ exports[`FileStatusMessage renders custom icons from IconProvider 1`] = `
Error
+
+ File upload status changed: Upload completed successfully
+
@@ -103,4 +139,13 @@ exports[`FileStatusMessage renders custom icons from IconProvider 1`] = `
`;
-exports[`FileStatusMessage renders nothing when status is queued 1`] = `
`;
+exports[`FileStatusMessage renders nothing when status is queued 1`] = `
+
+
+ File upload status changed: Queued
+
+
+`;
diff --git a/packages/react-storage/src/components/StorageManager/ui/FileList/types.ts b/packages/react-storage/src/components/StorageManager/ui/FileList/types.ts
index 265317f32d5..147a117ff10 100644
--- a/packages/react-storage/src/components/StorageManager/ui/FileList/types.ts
+++ b/packages/react-storage/src/components/StorageManager/ui/FileList/types.ts
@@ -38,7 +38,10 @@ export interface FileControlProps {
export interface FileStatusMessageProps
extends Pick<
StorageManagerDisplayTextDefault,
- 'getUploadingText' | 'getPausedText' | 'uploadSuccessfulText'
+ | 'getUploadingText'
+ | 'getPausedText'
+ | 'uploadSuccessfulText'
+ | 'getStatusAnnouncementText'
> {
status: FileStatus;
errorMessage: string;