diff --git src/wp-admin/includes/ajax-actions.php src/wp-admin/includes/ajax-actions.php
index 5e04365..9751bc5 100644
--- src/wp-admin/includes/ajax-actions.php
+++ src/wp-admin/includes/ajax-actions.php
@@ -3344,6 +3344,8 @@ function wp_ajax_install_theme() {
 		wp_send_json_error( $status );
 	}
 
+	$status['themeName'] = wp_get_theme( $slug )->get( 'Name' );
+
 	if ( current_user_can( 'switch_themes' ) ) {
 		if ( is_multisite() ) {
 			$status['activateUrl'] = add_query_arg( array(
diff --git src/wp-admin/includes/theme.php src/wp-admin/includes/theme.php
index d758480..9bdfbcb 100644
--- src/wp-admin/includes/theme.php
+++ src/wp-admin/includes/theme.php
@@ -635,7 +635,11 @@ function customize_themes_print_templates() {
 			<# if ( ! data.active ) { #>
 				<div class="theme-actions">
 					<div class="inactive-theme">
-						<a href="<?php echo $preview_url; ?>" target="_top" class="button button-primary"><?php _e( 'Live Preview' ); ?></a>
+						<?php
+						/* translators: %s: Theme name */
+						$aria_label = sprintf( __( 'Preview %s' ), '{{ data.name }}' );
+						?>
+						<a href="<?php echo $preview_url; ?>" target="_top" class="button button-primary" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Live Preview' ); ?></a>
 					</div>
 				</div>
 			<# } #>
diff --git src/wp-admin/includes/update.php src/wp-admin/includes/update.php
index 8845219..468b2af 100644
--- src/wp-admin/includes/update.php
+++ src/wp-admin/includes/update.php
@@ -716,13 +716,23 @@ function wp_print_update_row_templates() {
 	<script id="tmpl-item-deleted-row" type="text/template">
 		<tr class="plugin-deleted-tr inactive deleted" id="{{ data.slug }}-deleted" data-slug="{{ data.slug }}" <# if ( data.plugin ) { #>data-plugin="{{ data.plugin }}"<# } #>>
 			<td colspan="{{ data.colspan }}" class="plugin-update colspanchange">
+				<# if ( data.plugin ) { #>
 				<?php
 				printf(
-					/* translators: %s: Plugin or Theme name */
-					__( '%s was successfully deleted.' ),
+					/* translators: %s: Plugin name */
+					_x( '%s was successfully deleted.', 'plugin' ),
 					'<strong>{{{ data.name }}}</strong>'
 				);
 				?>
+				<# } else { #>
+					<?php
+					printf(
+					/* translators: %s: Theme name */
+						_x( '%s was successfully deleted.', 'theme' ),
+						'<strong>{{{ data.name }}}</strong>'
+					);
+					?>
+				<# } #>
 			</td>
 		</tr>
 	</script>
diff --git src/wp-admin/js/updates.js src/wp-admin/js/updates.js
index 0de60b5..2a6e263 100644
--- src/wp-admin/js/updates.js
+++ src/wp-admin/js/updates.js
@@ -508,7 +508,9 @@
 			$message.text( wp.updates.l10n.installing );
 		}
 
-		$message.addClass( 'updating-message' );
+		$message
+			.addClass( 'updating-message' )
+			.attr( 'aria-label', wp.updates.l10n.pluginInstallingLabel.replace( '%s', $message.data( 'name' ) ) );
 
 		wp.a11y.speak( wp.updates.l10n.installingMsg, 'polite' );
 
@@ -535,6 +537,7 @@
 		$message
 			.removeClass( 'updating-message' )
 			.addClass( 'updated-message installed button-disabled' )
+			.attr( 'aria-label', wp.updates.l10n.pluginInstalledLabel.replace( '%s', response.pluginName ) )
 			.text( wp.updates.l10n.installed );
 
 		wp.a11y.speak( wp.updates.l10n.installedMsg, 'polite' );
@@ -547,6 +550,7 @@
 				// Transform the 'Install' button into an 'Activate' button.
 				$message.removeClass( 'install-now installed button-disabled updated-message' ).addClass( 'activate-now button-primary' )
 					.attr( 'href', response.activateUrl )
+					.attr( 'aria-label', wp.updates.l10n.activatePluginLabel.replace( '%s', response.pluginName ) )
 					.text( wp.updates.l10n.activatePlugin );
 			}, 1000 );
 		}
@@ -595,7 +599,7 @@
 
 		$button
 			.removeClass( 'updating-message' ).addClass( 'button-disabled' )
-			.attr( 'aria-label', wp.updates.l10n.installFailedLabel.replace( '%s', response.pluginName ) )
+			.attr( 'aria-label', wp.updates.l10n.pluginInstallFailedLabel.replace( '%s', $button.data( 'name' ) ) )
 			.text( wp.updates.l10n.installFailedShort );
 
 		wp.a11y.speak( errorMessage, 'assertive' );
@@ -1003,7 +1007,9 @@
 			$message.data( 'originaltext', $message.html() );
 		}
 
-		$message.text( wp.updates.l10n.installing );
+		$message
+			.text( wp.updates.l10n.installing )
+			.attr( 'aria-label', wp.updates.l10n.themeInstallingLabel.replace( '%s', $message.data( 'name' ) ) );
 		wp.a11y.speak( wp.updates.l10n.installingMsg, 'polite' );
 
 		// Remove previous error messages, if any.
@@ -1032,12 +1038,12 @@
 		$message = $card.find( '.button-primary' )
 			.removeClass( 'updating-message' )
 			.addClass( 'updated-message disabled' )
+			.attr( 'aria-label', wp.updates.l10n.themeInstalledLabel.replace( '%s', response.themeName ) )
 			.text( wp.updates.l10n.installed );
 
 		wp.a11y.speak( wp.updates.l10n.installedMsg, 'polite' );
 
 		setTimeout( function() {
-
 			if ( response.activateUrl ) {
 
 				// Transform the 'Install' button into an 'Activate' button.
@@ -1045,6 +1051,7 @@
 					.attr( 'href', response.activateUrl )
 					.removeClass( 'theme-install updated-message disabled' )
 					.addClass( 'activate' )
+					.attr( 'aria-label', wp.updates.l10n.activateThemeLabel.replace( '%s', response.themeName ) )
 					.text( wp.updates.l10n.activateTheme );
 			}
 
@@ -1098,7 +1105,7 @@
 
 		$button
 			.removeClass( 'updating-message' )
-			.attr( 'aria-label', wp.updates.l10n.installFailedLabel.replace( '%s', $card.find( '.theme-name' ).text() ) )
+			.attr( 'aria-label', wp.updates.l10n.themeInstallFailedLabel.replace( '%s', $button.data( 'name' ) ) )
 			.text( wp.updates.l10n.installFailedShort );
 
 		wp.a11y.speak( errorMessage, 'assertive' );
diff --git src/wp-admin/theme-install.php src/wp-admin/theme-install.php
index 646203e..33f9208 100644
--- src/wp-admin/theme-install.php
+++ src/wp-admin/theme-install.php
@@ -248,8 +248,12 @@ if ( $tab ) {
 
 	<div class="theme-actions">
 		<# if ( data.installed ) { #>
+			<?php
+			/* translators: %s: Theme name */
+			$aria_label = sprintf( __( 'Activate %s' ), '{{ data.name }}' );
+			?>
 			<# if ( data.activate_url ) { #>
-				<a class="button button-primary activate" href="{{ data.activate_url }}"><?php esc_html_e( 'Activate' ); ?></a>
+				<a class="button button-primary activate" href="{{ data.activate_url }}" aria-label="<?php echo $aria_label; ?>"><?php esc_html_e( 'Activate' ); ?></a>
 			<# } #>
 			<# if ( data.customize_url ) { #>
 				<a class="button button-secondary load-customize" href="{{ data.customize_url }}"><?php esc_html_e( 'Live Preview' ); ?></a>
@@ -257,7 +261,11 @@ if ( $tab ) {
 				<button class="button-secondary preview install-theme-preview"><?php esc_html_e( 'Preview' ); ?></button>
 			<# } #>
 		<# } else { #>
-			<a class="button button-primary theme-install" data-slug="{{ data.id }}" href="{{ data.install_url }}"><?php esc_html_e( 'Install' ); ?></a>
+			<?php
+			/* translators: %s: Theme name */
+			$aria_label = sprintf( __( 'Install %s' ), '{{ data.name }}' );
+			?>
+			<a class="button button-primary theme-install" data-name="{{ data.name }}" data-slug="{{ data.id }}" href="{{ data.install_url }}" aria-label="<?php echo $aria_label; ?>"><?php esc_html_e( 'Install' ); ?></a>
 			<button class="button-secondary preview install-theme-preview"><?php esc_html_e( 'Preview' ); ?></button>
 		<# } #>
 	</div>
@@ -276,7 +284,7 @@ if ( $tab ) {
 			<# if ( data.installed ) { #>
 				<a class="button button-primary activate" href="{{ data.activate_url }}"><?php esc_html_e( 'Activate' ); ?></a>
 			<# } else { #>
-				<a href="{{ data.install_url }}" class="button button-primary theme-install" data-slug="{{ data.id }}"><?php _e( 'Install' ); ?></a>
+				<a href="{{ data.install_url }}" class="button button-primary theme-install" data-name="{{ data.name }}" data-slug="{{ data.id }}"><?php _e( 'Install' ); ?></a>
 			<# } #>
 		</div>
 		<div class="wp-full-overlay-sidebar-content">
diff --git src/wp-admin/themes.php src/wp-admin/themes.php
index 580318e..db01754 100644
--- src/wp-admin/themes.php
+++ src/wp-admin/themes.php
@@ -277,7 +277,11 @@ foreach ( $themes as $theme ) :
 			<a class="button button-primary customize load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Customize' ); ?></a>
 		<?php } ?>
 	<?php } else { ?>
-		<a class="button button-secondary activate" href="<?php echo $theme['actions']['activate']; ?>"><?php _e( 'Activate' ); ?></a>
+		<?php
+		/* translators: %s: Theme name */
+		$aria_label = sprintf( __( 'Activate %s' ), '{{ data.name }}' );
+		?>
+		<a class="button button-secondary activate" href="<?php echo $theme['actions']['activate']; ?>" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Activate' ); ?></a>
 		<?php if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { ?>
 			<a class="button button-primary load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Live Preview' ); ?></a>
 		<?php } ?>
@@ -402,7 +406,11 @@ $can_install = current_user_can( 'install_themes' );
 				<a class="button button-primary customize load-customize hide-if-no-customize" href="{{{ data.actions.customize }}}"><?php _e( 'Customize' ); ?></a>
 			<# } #>
 		<# } else { #>
-			<a class="button button-secondary activate" href="{{{ data.actions.activate }}}"><?php _e( 'Activate' ); ?></a>
+			<?php
+			/* translators: %s: Theme name */
+			$aria_label = sprintf( __( 'Activate %s' ), '{{ data.name }}' );
+			?>
+			<a class="button button-secondary activate" href="{{{ data.actions.activate }}}" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Activate' ); ?></a>
 			<a class="button button-primary load-customize hide-if-no-customize" href="{{{ data.actions.customize }}}"><?php _e( 'Live Preview' ); ?></a>
 		<# } #>
 	</div>
@@ -456,8 +464,12 @@ $can_install = current_user_can( 'install_themes' );
 				<?php echo implode( ' ', $current_theme_actions ); ?>
 			</div>
 			<div class="inactive-theme">
+				<?php
+				/* translators: %s: Theme name */
+				$aria_label = sprintf( __( 'Activate %s' ), '{{ data.name }}' );
+				?>
 				<# if ( data.actions.activate ) { #>
-					<a href="{{{ data.actions.activate }}}" class="button button-secondary activate"><?php _e( 'Activate' ); ?></a>
+					<a href="{{{ data.actions.activate }}}" class="button button-secondary activate" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Activate' ); ?></a>
 				<# } #>
 				<a href="{{{ data.actions.customize }}}" class="button button-primary load-customize hide-if-no-customize"><?php _e( 'Live Preview' ); ?></a>
 			</div>
diff --git src/wp-includes/script-loader.php src/wp-includes/script-loader.php
index 2945b48..c2dadf2 100644
--- src/wp-includes/script-loader.php
+++ src/wp-includes/script-loader.php
@@ -628,12 +628,18 @@ function wp_default_scripts( &$scripts ) {
 				'installFailedShort'         => __( 'Install Failed!' ),
 				/* translators: Error string for a failed installation */
 				'installFailed'              => __( 'Installation failed: %s' ),
-				/* translators: Plugin/Theme name and version */
-				'installingLabel'            => __( 'Installing %s...' ), // no ellipsis
-				/* translators: Plugin/Theme name and version */
-				'installedLabel'             => __( '%s installed!' ),
-				/* translators: Plugin/Theme name and version */
-				'installFailedLabel'         => __( '%s installation failed' ),
+				/* translators: Plugin name and version */
+				'pluginInstallingLabel'      => _x( 'Installing %s...', 'plugin' ), // no ellipsis
+				/* translators: Theme name and version */
+				'themeInstallingLabel'       => _x( 'Installing %s...', 'theme' ), // no ellipsis
+				/* translators: Plugin name and version */
+				'pluginInstalledLabel'       => _x( '%s installed!', 'plugin' ),
+				/* translators: Theme name and version */
+				'themeInstalledLabel'        => _x( '%s installed!', 'theme' ),
+				/* translators: Plugin name and version */
+				'pluginInstallFailedLabel'   => _x( '%s installation failed', 'plugin' ),
+				/* translators: Theme name and version */
+				'themeInstallFailedLabel'    => _x( '%s installation failed', 'theme' ),
 				'installingMsg'              => __( 'Installing... please wait.' ),
 				'installedMsg'               => __( 'Installation completed successfully.' ),
 				/* translators: Activation URL */
@@ -649,10 +655,15 @@ function wp_default_scripts( &$scripts ) {
 				'deleteFailed'               => __( 'Deletion failed: %s' ),
 				'deleted'                    => __( 'Deleted!' ),
 				'livePreview'                => __( 'Live Preview' ),
+				/* translators: %s: Theme name */
 				'activatePlugin'             => is_network_admin() ? __( 'Network Activate' ) : __( 'Activate' ),
 				'activateTheme'              => is_network_admin() ? __( 'Network Enable' ) : __( 'Activate' ),
+				/* translators: %s: Plugin name */
+				'activatePluginLabel'        => is_network_admin() ? _x( 'Network Activate %s', 'plugin' ) : _x( 'Activate %s', 'plugin' ),
+				/* translators: %s: Theme name */
+				'activateThemeLabel'         => is_network_admin() ? _x( 'Network Activate %s', 'theme' ) : _x( 'Activate %s', 'theme' ),
 				'activateImporter'           => __( 'Activate importer' ),
-				'unknownError'               => __( 'An unknown error occured' ),
+				'unknownError'               => __( 'An unknown error occurred' ),
 				'pluginsFound'               => __( 'Number of plugins found: %d' ),
 				'noPluginsFound'             => __( 'No plugins found. Try a different search.' ),
 			),
diff --git tests/qunit/fixtures/updates.js tests/qunit/fixtures/updates.js
index d570aa6..8332039 100644
--- tests/qunit/fixtures/updates.js
+++ tests/qunit/fixtures/updates.js
@@ -22,9 +22,12 @@ window._wpUpdatesSettings = {
 		'installed': 'Installed!',
 		'installFailedShort': 'Install Failed!',
 		'installFailed': 'Installation failed: %s',
-		'installingLabel': 'Installing %s...', // No ellipsis
-		'installedLabel': '%s installed!',
-		'installFailedLabel': '%s installation failed',
+		'pluginInstallingLabel': 'Installing %s...', // No ellipsis
+		'themeInstallingLabel': 'Installing %s...', // No ellipsis
+		'pluginInstalledLabel': '%s installed!',
+		'themeInstalledLabel': '%s installed!',
+		'pluginInstallFailedLabel': '%s installation failed',
+		'themeInstallFailedLabel': '%s installation failed',
 		'installingMsg': 'Installing... please wait.',
 		'installedMsg': 'Installation completed successfully.',
 		'importerInstalledMsg': 'Importer installed successfully. <a href="%s">Activate plugin &#38; run importer</a>',
@@ -37,9 +40,11 @@ window._wpUpdatesSettings = {
 		'deleted': 'Deleted!',
 		'livePreview': 'Live Preview',
 		'activatePlugin': 'Activate',
-		'activateTheme': 'Activate',
+		'activateTheme':       'Activate',
+		'activatePluginLabel': 'Activate %s',
+		'activateThemeLabel':  'Activate %s',
 		'activateImporter': 'Activate importer',
-		'unknownError': 'An unknown error occured',
+		'unknownError': 'An unknown error occurred',
 		'pluginsFound': 'Number of plugins found: %d',
 		'noPluginsFound': 'No plugins found. Try a different search.'
 	}
