Index: src/wp-admin/includes/class-wp-plugins-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-plugins-list-table.php	(revision 47585)
+++ src/wp-admin/includes/class-wp-plugins-list-table.php	(working copy)
@@ -635,6 +635,8 @@
 		$restrict_network_active = false;
 		$restrict_network_only   = false;
 
+		$plugin_slug = isset( $plugin_data['slug'] ) ? $plugin_data['slug'] : sanitize_title( $plugin_data['Name'] );
+
 		if ( 'mustuse' === $context ) {
 			$is_active = true;
 		} elseif ( 'dropins' === $context ) {
@@ -675,10 +677,11 @@
 				if ( $is_active ) {
 					if ( current_user_can( 'manage_network_plugins' ) ) {
 						$actions['deactivate'] = sprintf(
-							'<a href="%s" aria-label="%s">%s</a>',
+							'<a href="%s" aria-label="%s" id-"deactivate-%s">%s</a>',
 							wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . urlencode( $plugin_file ) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'deactivate-plugin_' . $plugin_file ),
 							/* translators: %s: Plugin name. */
 							esc_attr( sprintf( _x( 'Network Deactivate %s', 'plugin' ), $plugin_data['Name'] ) ),
+							esc_attr( $plugin_slug ),
 							__( 'Network Deactivate' )
 						);
 					}
@@ -685,19 +688,21 @@
 				} else {
 					if ( current_user_can( 'manage_network_plugins' ) ) {
 						$actions['activate'] = sprintf(
-							'<a href="%s" class="edit" aria-label="%s">%s</a>',
+							'<a href="%s" class="edit" aria-label="%s" id="activate-%s">%s</a>',
 							wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . urlencode( $plugin_file ) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'activate-plugin_' . $plugin_file ),
 							/* translators: %s: Plugin name. */
 							esc_attr( sprintf( _x( 'Network Activate %s', 'plugin' ), $plugin_data['Name'] ) ),
+							esc_attr( $plugin_slug ),
 							__( 'Network Activate' )
 						);
 					}
 					if ( current_user_can( 'delete_plugins' ) && ! is_plugin_active( $plugin_file ) ) {
 						$actions['delete'] = sprintf(
-							'<a href="%s" class="delete" aria-label="%s">%s</a>',
+							'<a href="%s" class="delete" aria-label="%s" id="delete-%s">%s</a>',
 							wp_nonce_url( 'plugins.php?action=delete-selected&amp;checked[]=' . urlencode( $plugin_file ) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'bulk-plugins' ),
 							/* translators: %s: Plugin name. */
 							esc_attr( sprintf( _x( 'Delete %s', 'plugin' ), $plugin_data['Name'] ) ),
+							esc_attr( $plugin_slug ),
 							__( 'Delete' )
 						);
 					}
@@ -714,19 +719,21 @@
 				} elseif ( $is_active ) {
 					if ( current_user_can( 'deactivate_plugin', $plugin_file ) ) {
 						$actions['deactivate'] = sprintf(
-							'<a href="%s" aria-label="%s">%s</a>',
+							'<a href="%s" aria-label="%s" id="deactivate-%s">%s</a>',
 							wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . urlencode( $plugin_file ) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'deactivate-plugin_' . $plugin_file ),
 							/* translators: %s: Plugin name. */
 							esc_attr( sprintf( _x( 'Deactivate %s', 'plugin' ), $plugin_data['Name'] ) ),
+							esc_attr( $plugin_slug ),
 							__( 'Deactivate' )
 						);
 					}
 					if ( current_user_can( 'resume_plugin', $plugin_file ) && is_plugin_paused( $plugin_file ) ) {
 						$actions['resume'] = sprintf(
-							'<a class="resume-link" href="%s" aria-label="%s">%s</a>',
+							'<a class="resume-link" href="%s" aria-label="%s" id="resume-%s">%s</a>',
 							wp_nonce_url( 'plugins.php?action=resume&amp;plugin=' . urlencode( $plugin_file ) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'resume-plugin_' . $plugin_file ),
 							/* translators: %s: Plugin name. */
 							esc_attr( sprintf( _x( 'Resume %s', 'plugin' ), $plugin_data['Name'] ) ),
+							esc_attr( $plugin_slug ),
 							__( 'Resume' )
 						);
 					}
@@ -733,10 +740,11 @@
 				} else {
 					if ( current_user_can( 'activate_plugin', $plugin_file ) ) {
 						$actions['activate'] = sprintf(
-							'<a href="%s" class="edit" aria-label="%s">%s</a>',
+							'<a href="%s" class="edit" aria-label="%s" id="activate-%s">%s</a>',
 							wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . urlencode( $plugin_file ) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'activate-plugin_' . $plugin_file ),
 							/* translators: %s: Plugin name. */
 							esc_attr( sprintf( _x( 'Activate %s', 'plugin' ), $plugin_data['Name'] ) ),
+							esc_attr( $plugin_slug ),
 							__( 'Activate' )
 						);
 					}
@@ -743,10 +751,11 @@
 
 					if ( ! is_multisite() && current_user_can( 'delete_plugins' ) ) {
 						$actions['delete'] = sprintf(
-							'<a href="%s" class="delete" aria-label="%s">%s</a>',
+							'<a href="%s" class="delete" aria-label="%s" id="delete-%s">%s</a>',
 							wp_nonce_url( 'plugins.php?action=delete-selected&amp;checked[]=' . urlencode( $plugin_file ) . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'bulk-plugins' ),
 							/* translators: %s: Plugin name. */
 							esc_attr( sprintf( _x( 'Delete %s', 'plugin' ), $plugin_data['Name'] ) ),
+							esc_attr( $plugin_slug ),
 							__( 'Delete' )
 						);
 					}
@@ -860,7 +869,6 @@
 			$class .= ' paused';
 		}
 
-		$plugin_slug = isset( $plugin_data['slug'] ) ? $plugin_data['slug'] : sanitize_title( $plugin_name );
 		printf(
 			'<tr class="%s" data-slug="%s" data-plugin="%s">',
 			esc_attr( $class ),
