diff --git src/wp-admin/css/common.css src/wp-admin/css/common.css
index 6a1e9d7..6bd5482 100644
--- src/wp-admin/css/common.css
+++ src/wp-admin/css/common.css
@@ -562,6 +562,18 @@ code {
 	color: #00a0d2;
 }
 
+.wrap > header {
+	display: block;
+	padding: 9px 0 4px 0;
+	position: relative;
+}
+
+.wrap > header:after {
+	content: '';
+	display: table;
+	clear: both;
+}
+
 .wrap h2,
 .subtitle {
 	font-weight: normal;
@@ -572,7 +584,12 @@ code {
 	font-size: 23px;
 	font-weight: 400;
 	padding: 9px 15px 4px 0;
-	line-height: 29px;
+	line-height: 1.261;
+}
+
+.wrap > header h2 {
+	float: left;
+	padding: 0 6px 0 0;
 }
 
 .subtitle {
@@ -597,6 +614,14 @@ code {
 	font-size: 13px;
 }
 
+.wrap > header .add-new-h2,
+.wrap > header .add-new-h2:active {
+	display: block;
+	float: left;
+	margin: 0 4px;
+	top: 2px;
+}
+
 .wrap .add-new-h2:hover {
 	background: #00a0d2;
 	color: #fff;
@@ -971,6 +996,14 @@ th.action-links {
 	margin-right: 20px;
 }
 
+header .title-count {
+	display: block;
+	float: left;
+	padding: 5px 10px;
+	padding: 4px 10px 6px 10px\9; /* Target IE */
+	top: 1px;
+}
+
 .filter-items {
 	float: left;
 }
@@ -3105,11 +3138,20 @@ img {
 		display: none !important;
 	}
 
+	.wrap > header {
+		padding: 10px 0 0 0;
+	}
+
 	.wrap .add-new-h2, .wrap .add-new-h2:active {
 		padding: 10px 15px;
 		font-size: 14px;
 	}
 
+	.wrap > header .add-new-h2, .wrap > header .add-new-h2:active {
+		padding: 11px 15px 10px 15px;
+		top: -4px;
+	}
+
 	.wp-color-result {
 		height: auto;
 		padding-left: 45px;
diff --git src/wp-admin/css/themes.css src/wp-admin/css/themes.css
index c2cab3f..00b9b76 100644
--- src/wp-admin/css/themes.css
+++ src/wp-admin/css/themes.css
@@ -37,6 +37,11 @@
 	line-height: 1.5;
 }
 
+.themes-php header .wp-filter-search {
+	float: left;
+	top: -1px;
+}
+
 /* Position admin messages */
 .themes-php div.updated,
 .themes-php div.error,
@@ -983,6 +988,31 @@ body.folded .theme-overlay .theme-wrap {
 	}
 }
 
+@media screen and ( max-width: 782px ) {	
+	body.themes-php .wrap > header {
+		padding-bottom: 4px;
+	}
+
+	.themes-php .wrap > header h2 {
+		margin-bottom: 15px;
+	}
+
+	.themes-php .wrap > header .add-new-h2, .themes-php .wrap > header .add-new-h2:active {
+		margin-bottom: 9px;
+	}
+
+	body.theme-install-php .wrap > header .add-new-h2, body.theme-install-php .wrap > header .add-new-h2:active {
+		top: -4px;
+	}
+
+	.themes-php header .wp-filter-search {
+		clear: both;
+		display: inline;
+		float: none;
+		top: -3px;
+	}
+}
+
 @media only screen and (max-width: 650px) {
 	.theme-overlay .theme-update,
 	.theme-overlay .theme-description {
@@ -1021,6 +1051,10 @@ body.folded .theme-overlay .theme-wrap {
 		width: 100%;
 	}
 
+	.themes-php .wrap > header h2 {
+		width: auto;
+	}
+
 	.themes-php .wp-filter-search {
 		float: none;
 		clear: both;
@@ -1032,6 +1066,11 @@ body.folded .theme-overlay .theme-wrap {
 		max-width: 280px;
 	}
 
+	.themes-php header .wp-filter-search {
+		display: inline;
+		margin: 0 0 8px 0;
+	}
+
 	.theme-browser .theme.add-new-theme span:after {
 		font: normal 60px/90px 'dashicons';
 		width: 80px;
@@ -1156,6 +1195,11 @@ body.show-upload-theme p.no-themes {
 	display: none !important;
 }
 
+.theme-install-php .wrap > header .add-new-h2,
+.theme-install-php .wrap > header .add-new-h2:active {
+	top: 2px;
+}
+
 @media only screen and (max-width: 1120px) {
 	.upload-theme .wp-upload-form {
 		margin: 20px 0;
diff --git src/wp-admin/edit-comments.php src/wp-admin/edit-comments.php
index 29717d8..88b8a17 100644
--- src/wp-admin/edit-comments.php
+++ src/wp-admin/edit-comments.php
@@ -140,20 +140,12 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 
 <div class="wrap">
-<h2><?php
-if ( $post_id )
-	echo sprintf( __( 'Comments on &#8220;%s&#8221;' ),
-		sprintf( '<a href="%s">%s</a>',
-			get_edit_post_link( $post_id ),
-			wp_html_excerpt( _draft_or_post_title( $post_id ), 50, '&hellip;' )
-		)
-	);
-else
-	echo __('Comments');
-
-if ( isset($_REQUEST['s']) && $_REQUEST['s'] )
-	echo '<span class="subtitle">' . sprintf( __( 'Search results for &#8220;%s&#8221;' ), wp_html_excerpt( esc_html( wp_unslash( $_REQUEST['s'] ) ), 50, '&hellip;' ) ) . '</span>'; ?>
-</h2>
+	<header>
+		<h2><?php if ( $post_id ) echo sprintf( __( 'Comments on &#8220;%s&#8221;' ), sprintf( '<a href="%s">%s</a>', get_edit_post_link( $post_id ), wp_html_excerpt( _draft_or_post_title( $post_id ), 50, '&hellip;' ) ) );
+			else echo __( 'Comments' );?></h2>
+		<?php
+		if ( isset($_REQUEST['s']) && $_REQUEST['s'] ) echo '<span class="subtitle">' . sprintf( __( 'Search results for &#8220;%s&#8221;' ), wp_html_excerpt( esc_html( wp_unslash( $_REQUEST['s'] ) ), 50, '&hellip;' ) ) . '</span>'; ?>
+	</header>
 
 <?php
 if ( isset( $_REQUEST['error'] ) ) {
diff --git src/wp-admin/edit-form-advanced.php src/wp-admin/edit-form-advanced.php
index 92f56b7..cdc9334 100644
--- src/wp-admin/edit-form-advanced.php
+++ src/wp-admin/edit-form-advanced.php
@@ -401,22 +401,26 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 
 <div class="wrap">
-<h2><?php
-echo esc_html( $title );
-if ( isset( $post_new_file ) && current_user_can( $post_type_object->cap->create_posts ) )
-	echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
-?></h2>
-<?php if ( $notice ) : ?>
-<div id="notice" class="notice notice-warning"><p id="has-newer-autosave"><?php echo $notice ?></p></div>
-<?php endif; ?>
-<?php if ( $message ) : ?>
-<div id="message" class="updated"><p><?php echo $message; ?></p></div>
-<?php endif; ?>
-<div id="lost-connection-notice" class="error hidden">
-	<p><span class="spinner"></span> <?php _e( '<strong>Connection lost.</strong> Saving has been disabled until you&#8217;re reconnected.' ); ?>
-	<span class="hide-if-no-sessionstorage"><?php _e( 'We&#8217;re backing up this post in your browser, just in case.' ); ?></span>
-	</p>
-</div>
+	<header>
+		<h2><?php echo esc_html( $title );?></h2>
+		<?php if ( isset( $post_new_file ) && current_user_can( $post_type_object->cap->create_posts ) )
+			echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';?>
+		<br class="clear" />
+		<?php if ( $notice ) : ?>
+			<div id="notice" class="notice notice-warning"><p id="has-newer-autosave"><?php echo $notice ?></p></div>
+		<?php endif; ?>
+		<?php if ( $message ) : ?>
+			<div id="message" class="updated">
+				<p><?php echo $message; ?></p>
+			</div>
+		<?php endif; ?>
+		<div id="lost-connection-notice" class="error hidden">
+			<p><span class="spinner"></span> <?php _e( '<strong>Connection lost.</strong> Saving has been disabled until you&#8217;re reconnected.' ); ?>
+				<span class="hide-if-no-sessionstorage"><?php _e( 'We&#8217;re backing up this post in your browser, just in case.' ); ?></span>
+			</p>
+		</div>
+	</header>
+
 <form name="post" action="post.php" method="post" id="post"<?php
 /**
  * Fires inside the post editor form tag.
diff --git src/wp-admin/edit.php src/wp-admin/edit.php
index 10b4e46..cd5cc90 100644
--- src/wp-admin/edit.php
+++ src/wp-admin/edit.php
@@ -277,13 +277,15 @@ $bulk_counts = array_filter( $bulk_counts );
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 <div class="wrap">
-<h2><?php
-echo esc_html( $post_type_object->labels->name );
-if ( current_user_can( $post_type_object->cap->create_posts ) )
-	echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
-if ( ! empty( $_REQUEST['s'] ) )
-	printf( ' <span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() );
-?></h2>
+	<header>
+		<h2><?php echo esc_html( $post_type_object->labels->name );?></h2>
+		<?php
+		if ( current_user_can( $post_type_object->cap->create_posts ) )
+			echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
+		if ( ! empty( $_REQUEST['s'] ) )
+			printf( ' <span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() );
+		?>
+	</header>
 
 <?php
 // If we have a bulk message to issue:
diff --git src/wp-admin/js/common.js src/wp-admin/js/common.js
index dda9247..48dea8f 100644
--- src/wp-admin/js/common.js
+++ src/wp-admin/js/common.js
@@ -369,7 +369,10 @@ $(document).ready( function() {
 	}
 
 	// Move .notice, .updated and .error alert boxes. Don't move boxes designed to be inline.
-	$firstHeading = $( 'div.wrap h2:first' );
+	$firstHeading = $( 'div.wrap > header' );
+	if ( $firstHeading.length === 0 ) {
+		$firstHeading = $( 'div.wrap h2:first' );
+	}
 	$firstHeading.nextAll( 'div.updated, div.error, div.notice' ).addClass( 'below-h2' );
 	$( 'div.updated, div.error, div.notice' ).not( '.below-h2, .inline' ).insertAfter( $firstHeading );
 
diff --git src/wp-admin/js/theme.js src/wp-admin/js/theme.js
index fbd3789..f6cd873 100644
--- src/wp-admin/js/theme.js
+++ src/wp-admin/js/theme.js
@@ -85,7 +85,7 @@ themes.view.Appearance = wp.Backbone.View.extend({
 	},
 
 	// Defines search element container
-	searchContainer: $( '#wpbody h2:first' ),
+	searchContainer: $( '#wpbody .wrap > header' ),
 
 	// Search input and view
 	// for current theme collection
diff --git src/wp-admin/plugin-install.php src/wp-admin/plugin-install.php
index 653113a..3d9d9fe 100644
--- src/wp-admin/plugin-install.php
+++ src/wp-admin/plugin-install.php
@@ -94,21 +94,19 @@ get_current_screen()->set_help_sidebar(
 include(ABSPATH . 'wp-admin/admin-header.php');
 ?>
 <div class="wrap">
-<h2>
-	<?php
-	echo esc_html( $title );
-	if ( ! empty( $tabs['upload'] ) && current_user_can( 'upload_plugins' ) ) {
-		if ( $tab === 'upload' ) {
-			$href = self_admin_url( 'plugin-install.php' );
-			$text = _x( 'Browse', 'plugins' );
-		} else {
-			$href = self_admin_url( 'plugin-install.php?tab=upload' );
-			$text = __( 'Upload Plugin' );
-		}
-		echo ' <a href="' . $href . '" class="upload add-new-h2">' . $text . '</a>';
-	}
-	?>
-</h2>
+	<header>
+		<h2><?php echo esc_html( $title );?></h2>
+		<?php if ( ! empty( $tabs['upload'] ) && current_user_can( 'upload_plugins' ) ) {
+			if ( $tab === 'upload' ) {
+				$href = self_admin_url( 'plugin-install.php' );
+				$text = _x( 'Browse', 'plugins' );
+			} else {
+				$href = self_admin_url( 'plugin-install.php?tab=upload' );
+				$text = __( 'Upload Plugin' );
+			}
+			echo ' <a href="' . $href . '" class="upload add-new-h2">' . $text . '</a>';
+		}?>
+	</header>
 
 <?php
 if ( $tab !== 'upload' ) {
diff --git src/wp-admin/plugins.php src/wp-admin/plugins.php
index df5d788..f7d3ada 100644
--- src/wp-admin/plugins.php
+++ src/wp-admin/plugins.php
@@ -435,13 +435,14 @@ if ( !empty($invalid) )
 <?php endif; ?>
 
 <div class="wrap">
-<h2><?php echo esc_html( $title );
-if ( ( ! is_multisite() || is_network_admin() ) && current_user_can('install_plugins') ) { ?>
- <a href="<?php echo self_admin_url( 'plugin-install.php' ); ?>" class="add-new-h2"><?php echo esc_html_x('Add New', 'plugin'); ?></a>
+	<header>
+		<h2><?php echo esc_html( $title );?></h2>
+		<?php if ( ( ! is_multisite() || is_network_admin() ) && current_user_can('install_plugins') ) { ?>
+		<a href="<?php echo self_admin_url( 'plugin-install.php' ); ?>" class="add-new-h2"><?php echo esc_html_x('Add New', 'plugin'); ?></a>
+	</header>
 <?php }
 if ( $s )
 	printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( $s ) ); ?>
-</h2>
 
 <?php
 /**
diff --git src/wp-admin/theme-install.php src/wp-admin/theme-install.php
index 73e343a..ff51439 100644
--- src/wp-admin/theme-install.php
+++ src/wp-admin/theme-install.php
@@ -99,25 +99,25 @@ include(ABSPATH . 'wp-admin/admin-header.php');
 
 ?>
 <div class="wrap">
-	<h2><?php
-	echo esc_html( $title );
-
-	/**
-	 * Filter the tabs shown on the Add Themes screen.
-	 *
-	 * This filter is for backwards compatibility only, for the suppression
-	 * of the upload tab.
-	 *
-	 * @since 2.8.0
-	 *
-	 * @param array $tabs The tabs shown on the Add Themes screen. Default is 'upload'.
-	 */
-	$tabs = apply_filters( 'install_themes_tabs', array( 'upload' => __( 'Upload Theme' ) ) );
-	if ( ! empty( $tabs['upload'] ) && current_user_can( 'upload_themes' ) ) {
-		echo ' <a href="#" class="upload add-new-h2">' . __( 'Upload Theme' ) . '</a>';
-		echo ' <a href="#" class="browse-themes add-new-h2">' . _x( 'Browse', 'themes' ) . '</a>';
-	}
-	?></h2>
+	<header>
+		<h2><?php echo esc_html( $title );?></h2>
+		<?php
+		/**
+		 * Filter the tabs shown on the Add Themes screen.
+		 *
+		 * This filter is for backwards compatibility only, for the suppression
+		 * of the upload tab.
+		 *
+		 * @since 2.8.0
+		 *
+		 * @param array $tabs The tabs shown on the Add Themes screen. Default is 'upload'.
+		 */
+		$tabs = apply_filters( 'install_themes_tabs', array( 'upload' => __( 'Upload Theme' ) ) );
+		if ( ! empty( $tabs['upload'] ) && current_user_can( 'upload_themes' ) ) {
+			echo ' <a href="#" class="upload add-new-h2">' . __( 'Upload Theme' ) . '</a>';
+			echo ' <a href="#" class="browse-themes add-new-h2">' . _x( 'Browse', 'themes' ) . '</a>';
+		} ?>
+	</header>
 
 	<div class="upload-theme">
 	<?php install_themes_upload(); ?>
diff --git src/wp-admin/themes.php src/wp-admin/themes.php
index 52e3531..3c3bde0 100644
--- src/wp-admin/themes.php
+++ src/wp-admin/themes.php
@@ -121,12 +121,13 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 
 <div class="wrap">
-	<h2><?php esc_html_e( 'Themes' ); ?>
+	<header>
+		<h2><?php esc_html_e( 'Themes' ); ?></h2>
 		<span class="title-count theme-count"><?php echo count( $themes ); ?></span>
-	<?php if ( ! is_multisite() && current_user_can( 'install_themes' ) ) : ?>
-		<a href="<?php echo admin_url( 'theme-install.php' ); ?>" class="hide-if-no-js add-new-h2"><?php echo esc_html_x( 'Add New', 'Add new theme' ); ?></a>
-	<?php endif; ?>
-	</h2>
+		<?php if ( ! is_multisite() && current_user_can( 'install_themes' ) ) : ?>
+			<a href="<?php echo admin_url( 'theme-install.php' ); ?>" class="hide-if-no-js add-new-h2"><?php echo esc_html_x( 'Add New', 'Add new theme' ); ?></a>
+		<?php endif; ?>
+	</header>
 <?php
 if ( ! validate_current_theme() || isset( $_GET['broken'] ) ) : ?>
 <div id="message1" class="updated"><p><?php _e('The active theme is broken. Reverting to the default theme.'); ?></p></div>
diff --git src/wp-admin/upload.php src/wp-admin/upload.php
index c62c219..dc4df21 100644
--- src/wp-admin/upload.php
+++ src/wp-admin/upload.php
@@ -71,14 +71,13 @@ if ( 'grid' === $mode ) {
 	require_once( ABSPATH . 'wp-admin/admin-header.php' );
 	?>
 	<div class="wrap" id="wp-media-grid" data-search="<?php _admin_search_query() ?>">
-		<h2>
-		<?php
-		echo esc_html( $title );
-		if ( current_user_can( 'upload_files' ) ) { ?>
-			<a href="media-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'file' ); ?></a><?php
-		}
-		?>
-		</h2>
+		<header>
+			<h2>
+			<?php echo esc_html( $title ); ?></h2>
+			<?php if ( current_user_can( 'upload_files' ) ) { ?>
+				<a href="media-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'file' ); ?></a>
+			<?php } ?>
+		</header>
 		<div class="error hide-if-js">
 			<p><?php _e( 'The grid view for the Media Library requires JavaScript. <a href="upload.php?mode=list">Switch to the list view</a>.' ); ?></p>
 		</div>
diff --git src/wp-admin/users.php src/wp-admin/users.php
index 39d3ae4..0226f28 100644
--- src/wp-admin/users.php
+++ src/wp-admin/users.php
@@ -428,18 +428,18 @@ if ( ! empty($messages) ) {
 } ?>
 
 <div class="wrap">
-<h2>
-<?php
-echo esc_html( $title );
-if ( current_user_can( 'create_users' ) ) { ?>
-	<a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'user' ); ?></a>
-<?php } elseif ( is_multisite() && current_user_can( 'promote_users' ) ) { ?>
-	<a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add Existing', 'user' ); ?></a>
-<?php }
-
-if ( $usersearch )
-	printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( $usersearch ) ); ?>
-</h2>
+	<header>
+		<h2><?php echo esc_html( $title );?></h2>
+		<?php
+		if ( current_user_can( 'create_users' ) ) { ?>
+			<a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'user' ); ?></a>
+		<?php } elseif ( is_multisite() && current_user_can( 'promote_users' ) ) { ?>
+			<a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add Existing', 'user' ); ?></a>
+		<?php }
+		if ( $usersearch )
+			printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( $usersearch ) ); ?>
+	</header>
+
 
 <?php $wp_list_table->views(); ?>
 
diff --git src/wp-admin/widgets.php src/wp-admin/widgets.php
index 42ebc1b..5d7c731 100644
--- src/wp-admin/widgets.php
+++ src/wp-admin/widgets.php
@@ -310,24 +310,24 @@ $errors = array(
 require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 
 <div class="wrap">
-<h2>
-<?php
-	echo esc_html( $title );
-	if ( current_user_can( 'customize' ) ) {
-		printf(
-			' <a class="add-new-h2 hide-if-no-customize" href="%1$s">%2$s</a>',
-			esc_url( add_query_arg(
-				array(
-					array( 'autofocus' => array( 'panel' => 'widgets' ) ),
-					'return' => urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) )
-				),
-				admin_url( 'customize.php' )
-			) ),
-			__( 'Manage in Customizer' )
-		);
-	}
-?>
-</h2>
+	<header>
+		<h2><?php echo esc_html( $title );?></h2>
+		<?php
+		if ( current_user_can( 'customize' ) ) {
+			printf(
+				' <a class="add-new-h2 hide-if-no-customize" href="%1$s">%2$s</a>',
+				esc_url( add_query_arg(
+					array(
+						array( 'autofocus' => array( 'panel' => 'widgets' ) ),
+						'return' => urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) )
+					),
+					admin_url( 'customize.php' )
+				) ),
+				__( 'Manage in Customizer' )
+			);
+		}
+		?>
+	</header>
 
 <?php if ( isset($_GET['message']) && isset($messages[$_GET['message']]) ) { ?>
 <div id="message" class="updated"><p><?php echo $messages[$_GET['message']]; ?></p></div>
