Index: src/js/media/views/uploader/inline.js
===================================================================
--- src/js/media/views/uploader/inline.js	(revision 50111)
+++ 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 50111)
+++ src/js/media/views/uploader/status.js	(working copy)
@@ -118,6 +118,7 @@
 
 		// Can show additional info here while retrying to create image sub-sizes.
 		this.views.add( '.upload-errors', statusError, { at: 0 } );
+		this.$el.attr( 'tabindex', '-1' ).trigger( 'focus' );
 	},
 
 	dismiss: function() {
Index: src/wp-includes/media-template.php
===================================================================
--- src/wp-includes/media-template.php	(revision 50111)
+++ 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="upload-inline-status" aria-live="assertive"></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
@@ -330,7 +330,7 @@
 			<span class="upload-detail-separator">&ndash;</span>
 			<span class="upload-filename"></span>
 		</div>
-		<div class="upload-errors"></div>
+		<div class="upload-errors" role="alert"></div>
 	</script>
 
 	<?php // Template for the uploading status errors. ?>
