Index: src/js/media/views/uploader/inline.js
===================================================================
--- src/js/media/views/uploader/inline.js	(revision 50183)
+++ src/js/media/views/uploader/inline.js	(working copy)
@@ -115,6 +115,7 @@
 
 			$browser.detach().text( $placeholder.text() );
 			$browser[0].className = $placeholder[0].className;
+			$browser[0].setAttribute( 'aria-labelledby', $browser[0].id + ' ' + $placeholder[0].getAttribute('aria-labelledby') );
 			$placeholder.replaceWith( $browser.show() );
 		}
 
Index: src/js/media/views/uploader/status.js
===================================================================
--- src/js/media/views/uploader/status.js	(revision 50183)
+++ src/js/media/views/uploader/status.js	(working copy)
@@ -116,8 +116,14 @@
 			message:  error.get( 'message' )
 		} );
 
+		var buttonClose = this.$el.find( 'button' );
+
 		// Can show additional info here while retrying to create image sub-sizes.
 		this.views.add( '.upload-errors', statusError, { at: 0 } );
+		_.defer( function() {
+			buttonClose.trigger( 'focus' );
+			wp.a11y.speak( error.get( 'message' ), 'assertive' );
+		});
 	},
 
 	dismiss: function() {
Index: src/wp-includes/media-template.php
===================================================================
--- src/wp-includes/media-template.php	(revision 50183)
+++ src/wp-includes/media-template.php	(working copy)
@@ -252,12 +252,12 @@
 			<div class="upload-ui">
 				<h2 class="upload-instructions drop-instructions"><?php _e( 'Drop files to upload' ); ?></h2>
 				<p class="upload-instructions drop-instructions"><?php _ex( 'or', 'Uploader: Drop files here - or - Select Files' ); ?></p>
-				<button type="button" class="browser button button-hero"><?php _e( 'Select Files' ); ?></button>
+				<button type="button" class="browser button button-hero" aria-labelledby="post-upload-info"><?php _e( 'Select Files' ); ?></button>
 			</div>
 
 			<div class="upload-inline-status"></div>
 
-			<div class="post-upload-ui">
+			<div class="post-upload-ui" id="post-upload-info">
 				<?php
 				/** This action is documented in wp-admin/includes/media.php */
 				do_action( 'pre-upload-ui' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
