Index: src/wp-admin/includes/ajax-actions.php
===================================================================
--- src/wp-admin/includes/ajax-actions.php	(revision 38081)
+++ src/wp-admin/includes/ajax-actions.php	(working copy)
@@ -3851,6 +3851,7 @@
 
 	ob_start();
 	$wp_list_table->display();
+	$status['count'] = (int) $wp_list_table->get_pagination_arg( 'total_items' );
 	$status['items'] = ob_get_clean();
 
 	wp_send_json_success( $status );
Index: src/wp-admin/includes/class-wp-plugin-install-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-plugin-install-list-table.php	(revision 38081)
+++ src/wp-admin/includes/class-wp-plugin-install-list-table.php	(working copy)
@@ -285,7 +285,7 @@
 		?>
 	</ul>
 
-	<?php install_search_form( isset( $views['plugin-install-search'] ) ); ?>
+	<?php install_search_form(); ?>
 </div>
 <?php
 	}
Index: src/wp-admin/includes/plugin-install.php
===================================================================
--- src/wp-admin/includes/plugin-install.php	(revision 38081)
+++ src/wp-admin/includes/plugin-install.php	(working copy)
@@ -246,33 +246,24 @@
  * Display search form for searching plugins.
  *
  * @since 2.7.0
+ * @since 4.6.0 The optional `$type_selector` parameter was deprecated and renamed to `$deprecated`.
  *
- * @param bool $type_selector
+ * @param bool $deprecated Not used.
  */
-function install_search_form( $type_selector = true ) {
+function install_search_form( $deprecated = true ) {
 	$type = isset($_REQUEST['type']) ? wp_unslash( $_REQUEST['type'] ) : 'term';
 	$term = isset($_REQUEST['s']) ? wp_unslash( $_REQUEST['s'] ) : '';
-	$input_attrs = '';
-	$button_type = 'button screen-reader-text';
-
-	// assume no $type_selector means it's a simplified search form
-	if ( ! $type_selector ) {
-		$input_attrs = 'class="wp-filter-search" placeholder="' . esc_attr__( 'Search Plugins' ) . '" ';
-	}
-
 	?><form class="search-form search-plugins" method="get">
 		<input type="hidden" name="tab" value="search" />
-		<?php if ( $type_selector ) : ?>
 		<select name="type" id="typeselector">
 			<option value="term"<?php selected('term', $type) ?>><?php _e('Keyword'); ?></option>
 			<option value="author"<?php selected('author', $type) ?>><?php _e('Author'); ?></option>
 			<option value="tag"<?php selected('tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option>
 		</select>
-		<?php endif; ?>
 		<label><span class="screen-reader-text"><?php _e('Search Plugins'); ?></span>
-			<input type="search" name="s" value="<?php echo esc_attr($term) ?>" <?php echo $input_attrs; ?>/>
+			<input type="search" name="s" value="<?php echo esc_attr($term) ?>" class="wp-filter-search" placeholder="<?php esc_attr__( 'Search Plugins' ); ?>" />
 		</label>
-		<?php submit_button( __( 'Search Plugins' ), $button_type, false, false, array( 'id' => 'search-submit' ) ); ?>
+		<input type="submit" id="search-submit" class="button hide-if-js" value="<?php echo esc_attr__( 'Search Plugins' ); ?>">
 	</form><?php
 }
 
Index: src/wp-admin/js/updates.js
===================================================================
--- src/wp-admin/js/updates.js	(revision 38081)
+++ src/wp-admin/js/updates.js	(working copy)
@@ -1598,10 +1598,11 @@
 	};
 
 	$( function() {
-		var $pluginFilter    = $( '#plugin-filter' ),
-			$bulkActionForm  = $( '#bulk-action-form' ),
-			$filesystemModal = $( '#request-filesystem-credentials-dialog' ),
-			$pluginSearch    = $( '.plugins-php .wp-filter-search' );
+		var $pluginFilter        = $( '#plugin-filter' ),
+		    $bulkActionForm      = $( '#bulk-action-form' ),
+		    $filesystemModal     = $( '#request-filesystem-credentials-dialog' ),
+		    $pluginSearch        = $( '.plugins-php .wp-filter-search' ),
+		    $pluginInstallSearch = $( '.plugin-install-php .wp-filter-search' );
 
 		/*
 		 * Whether a user needs to submit filesystem credentials.
@@ -2021,6 +2022,12 @@
 			wp.updates.queueChecker();
 		} );
 
+		if ( $pluginInstallSearch.length > 0 ) {
+			$pluginInstallSearch.attr( 'aria-describedby', 'live-search-desc' );
+		}
+
+		// Handle changes in the new plign search type dropdown.
+
 		/**
 		 * Handles changes to the plugin search box on the new-plugin page,
 		 * searching the repository dynamically.
@@ -2027,25 +2034,46 @@
 		 *
 		 * @since 4.6.0
 		 */
-		$( '.plugin-install-php .wp-filter-search' ).on( 'keyup search', _.debounce( function() {
-			var $form = $( '#plugin-filter' ).empty(),
-				data  = _.extend( {
-					_ajax_nonce: wp.updates.ajaxNonce,
-					s:           $( '<p />' ).html( $( this ).val() ).text(),
-					tab:         'search',
-					type:        $( '#typeselector' ).val()
-				}, { type: 'term' } );
+		$pluginInstallSearch.on( 'keyup input', _.debounce( function( event, eventtype ) {
+			var $form          = $( '#plugin-filter' ),
+			    $searchTab     = $( '.plugin-install-search' ),
+			    data           = {
+				    _ajax_nonce: wp.updates.ajaxNonce,
+				    s:           event.target.value,
+				    tab:         'search',
+				    type:        $( '#typeselector' ).val()
+			    },
+			    searchLocation = location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, '_ajax_nonce' ) );
 
-			if ( wp.updates.searchTerm === data.s ) {
+			// Clear on escape.
+			if ( 'keyup' === event.type && 27 === event.which ) {
+				event.target.value = '';
+			}
+
+			if ( wp.updates.searchTerm === data.s && 'typechange' !== eventtype ) {
 				return;
 			} else {
+				$form.empty();
 				wp.updates.searchTerm = data.s;
 			}
 
 			if ( history.pushState ) {
-				history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, '_ajax_nonce' ) ) );
+				history.pushState( null, '', searchLocation );
 			}
 
+			if ( ! $searchTab.length ) {
+				$searchTab = $( '<li class="plugin-install-search"><a></a></li>' );
+				$searchTab.find( 'a' )
+					.addClass( 'current' )
+					.attr( 'href', searchLocation )
+					.text( wp.updates.l10n.searchResultsLabel );
+
+				$( '.wp-filter .filter-links .current' )
+					.removeClass( 'current' )
+					.parents( '.filter-links' )
+					.prepend( $searchTab );
+			}
+
 			if ( 'undefined' !== typeof wp.updates.searchRequest ) {
 				wp.updates.searchRequest.abort();
 			}
@@ -2055,6 +2083,12 @@
 				$( 'body' ).removeClass( 'loading-content' );
 				$form.append( response.items );
 				delete wp.updates.searchRequest;
+
+				if ( 0 === response.count ) {
+					wp.a11y.speak( wp.updates.l10n.noPluginsFound );
+				} else {
+					wp.a11y.speak( wp.updates.l10n.pluginsFound.replace( '%d', response.count ) );
+				}
 			} );
 		}, 500 ) );
 
@@ -2130,7 +2164,7 @@
 		$document.on( 'submit', '.search-plugins', function( event ) {
 			event.preventDefault();
 
-			$( 'input.wp-filter-search' ).trigger( 'search' );
+			$( 'input.wp-filter-search' ).trigger( 'input' );
 		} );
 
 		/**
@@ -2139,7 +2173,7 @@
 		 * @since 4.6.0
 		 */
 		$( '#typeselector' ).on( 'change', function() {
-			$( 'input[name="s"]' ).trigger( 'search' );
+			$( 'input[name="s"]' ).trigger( 'input', 'typechange' );
 		} );
 
 		/**
Index: src/wp-admin/plugin-install.php
===================================================================
--- src/wp-admin/plugin-install.php	(revision 38081)
+++ src/wp-admin/plugin-install.php	(working copy)
@@ -70,7 +70,9 @@
 'id'		=> 'overview',
 'title'		=> __('Overview'),
 'content'	=>
-	'<p>' . sprintf(__('Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official <a href="%s" target="_blank">WordPress Plugin Directory</a> are compatible with the license WordPress uses. You can find new plugins to install by searching or browsing the Directory right here in your own Plugins section.'), 'https://wordpress.org/plugins/') . '</p>'
+	'<p>' . sprintf( __('Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official <a href="%s" target="_blank">WordPress Plugin Directory</a> are compatible with the license WordPress uses.' ), 'https://wordpress.org/plugins/' ) . '</p>' .
+	'<p>' . __( 'You can find new plugins to install by searching or browsing the Directory right here in your own Plugins section.' ) . ' <span id="live-search-desc" class="hide-if-no-js">' . __( 'The search results will be updated as you type.' ) . '</span></p>'
+
 ) );
 get_current_screen()->add_help_tab( array(
 'id'		=> 'adding-plugins',
Index: src/wp-includes/script-loader.php
===================================================================
--- src/wp-includes/script-loader.php	(revision 38081)
+++ src/wp-includes/script-loader.php	(working copy)
@@ -600,6 +600,7 @@
 			'l10n'       => array(
 				/* translators: %s: Search string */
 				'searchResults'              => __( 'Search results for &#8220;%s&#8221;' ),
+				'searchResultsLabel'         => __( 'Search Results' ),
 				'noPlugins'                  => __( 'You do not appear to have any plugins available at this time.' ),
 				'noItemsSelected'            => __( 'Please select at least one item to perform this action on.' ),
 				'updating'                   => __( 'Updating...' ), // No ellipsis.
Index: tests/qunit/fixtures/updates.js
===================================================================
--- tests/qunit/fixtures/updates.js	(revision 38081)
+++ tests/qunit/fixtures/updates.js	(working copy)
@@ -2,6 +2,7 @@
 	'ajax_nonce': '719b10f05d',
 	'l10n': {
 		'searchResults': 'Search results for &#8220;%s&#8221;',
+		'searchResultsLabel': 'Search Results',
 		'noPlugins': 'You do not appear to have any plugins available at this time.',
 		'noItemsSelected': 'Please select at least one item to perform this action on.',
 		'updating': 'Updating...',
