Index: src/js/_enqueues/wp/theme.js
===================================================================
--- src/js/_enqueues/wp/theme.js	(revision 50439)
+++ src/js/_enqueues/wp/theme.js	(working copy)
@@ -404,12 +404,9 @@
 		var data = this.model.toJSON();
 
 		// Render themes using the html template.
-		this.$el.html( this.html( data ) ).attr({
-			tabindex: 0,
-			'aria-describedby' : data.id + '-action ' + data.id + '-name',
-			'data-slug': data.id
-		});
 
+		this.$el.html(this.html(data)).attr('data-slug', data.id);
+
 		// Renders active theme styles.
 		this.activeTheme();
 
@@ -462,8 +459,8 @@
 			return;
 		}
 
-		// Set focused theme to current element.
-		themes.focusedTheme = this.$el;
+		// Set focusedTheme to current themes more details button
+		themes.focusedTheme = this.$el.find( '.more-details' );
 
 		this.trigger( 'theme:expand', self.model.cid );
 	},
@@ -502,8 +499,8 @@
 
 		event = event || window.event;
 
-		// Set focus to current theme.
-		themes.focusedTheme = this.$el;
+		// Set focusedTheme to current themes preview button
+		themes.focusedTheme = this.$el.find('.install-theme-preview');
 
 		// Construct a new Preview view.
 		themes.preview = preview = new themes.view.Preview({
@@ -762,7 +759,7 @@
 				// Restore scroll position.
 				document.body.scrollTop = scroll;
 
-				// Return focus to the theme div.
+				// Return focus to the curren themes more details button.
 				if ( themes.focusedTheme ) {
 					themes.focusedTheme.trigger( 'focus' );
 				}
Index: src/wp-admin/css/themes.css
===================================================================
--- src/wp-admin/css/themes.css	(revision 50439)
+++ src/wp-admin/css/themes.css	(working copy)
@@ -65,8 +65,7 @@
 	margin-right: 0;
 }
 
-.theme-browser .theme:hover,
-.theme-browser .theme:focus {
+.theme-browser .theme:hover {
 	cursor: pointer;
 }
 
@@ -84,23 +83,13 @@
 	background: rgba(255, 255, 255, 0.65);
 }
 
-/* Activate and Customize buttons, shown on hover and focus */
+/* Details, activate and Customize buttons */
 .theme-browser .theme .theme-actions {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
-	opacity: 0;
-	transition: opacity 0.1s ease-in-out;
 	height: auto;
 	background: rgba(246, 247, 247, 0.7);
 	border-left: 1px solid rgba(0, 0, 0, 0.05);
 }
 
-.theme-browser .theme:hover .theme-actions,
-.theme-browser .theme.focus .theme-actions,
-.theme-browser .theme:focus .theme-actions {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-	opacity: 1;
-}
-
 .theme-browser .theme .theme-actions .button-primary {
 	margin-right: 3px;
 }
@@ -110,6 +99,12 @@
 	margin-left: 3px;
 }
 
+.theme-browser .theme:hover .more-details {
+	background: #f0f0f1;
+	border-color: #0a4b78;
+	color: #0a4b78;
+}
+
 /**
  * Theme Screenshot
  *
@@ -121,7 +116,6 @@
 	overflow: hidden;
 	position: relative;
 	-webkit-backface-visibility: hidden; /* Prevents flicker of the screenshot on hover. */
-	transition: opacity 0.2s ease-in-out;
 }
 
 .theme-browser .theme .theme-screenshot:after {
@@ -136,59 +130,8 @@
 	left: 0;
 	top: 0;
 	width: 100%;
-	transition: opacity 0.2s ease-in-out;
 }
 
-.theme-browser .theme:hover .theme-screenshot,
-.theme-browser .theme:focus .theme-screenshot {
-	background: #fff;
-}
-
-.theme-browser.rendered .theme:hover .theme-screenshot img,
-.theme-browser.rendered .theme:focus .theme-screenshot img {
-	opacity: 0.4;
-}
-
-.theme-browser .theme .more-details {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
-	opacity: 0;
-	position: absolute;
-	top: 35%;
-	right: 20%;
-	left: 20%;
-	background: #1d2327;
-	background: rgba(0, 0, 0, 0.7);
-	color: #fff;
-	font-size: 15px;
-	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.6);
-	-webkit-font-smoothing: antialiased;
-	font-weight: 600;
-	padding: 15px 12px;
-	text-align: center;
-	border-radius: 3px;
-	transition: opacity 0.1s ease-in-out;
-}
-
-.theme-browser .theme:focus {
-	border-color: #4f94d4;
-	box-shadow: 0 0 2px rgba(79, 148, 212, 0.8);
-}
-
-.theme-browser .theme:focus .more-details {
-	opacity: 1;
-}
-
-/* Current theme needs to have its action always on view */
-.theme-browser .theme.active:focus .theme-actions {
-	display: block;
-}
-
-.theme-browser.rendered .theme:hover .more-details,
-.theme-browser.rendered .theme:focus .more-details {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-	opacity: 1;
-}
-
 /**
  * The currently active theme
  */
@@ -209,7 +152,7 @@
 }
 
 .theme-browser .theme.active .theme-actions {
-	background: rgba(44, 51, 56, 0.7);
+	background: #1d2327;
 	border-left: none;
 	opacity: 1;
 }
@@ -220,9 +163,6 @@
 
 .theme-browser .theme.active .theme-actions,
 .theme-browser .theme .theme-actions {
-	position: absolute;
-	top: 50%;
-	transform: translateY(-50%);
 	right: 0;
 	padding: 9px 15px;
 	box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1);
@@ -875,13 +815,6 @@
 		width: auto;
 	}
 
-	.theme:not(.active):hover .theme-actions,
-	.theme:not(.active):focus .theme-actions,
-	.theme:hover .more-details,
-	.theme:focus .more-details {
-		display: none;
-	}
-
 	.theme-browser.rendered .theme:hover .theme-screenshot img,
 	.theme-browser.rendered .theme:focus .theme-screenshot img {
 		opacity: 1.0;
Index: src/wp-admin/theme-install.php
===================================================================
--- src/wp-admin/theme-install.php	(revision 50439)
+++ src/wp-admin/theme-install.php	(working copy)
@@ -331,7 +331,6 @@
 		</p></div>
 	<# } #>
 
-	<span class="more-details"><?php _ex( 'Details &amp; Preview', 'theme' ); ?></span>
 	<div class="theme-author">
 		<?php
 		/* translators: %s: Theme author name. */
@@ -358,12 +357,24 @@
 					<# } #>
 					<# if ( data.customize_url ) { #>
 						<# if ( ! data.active ) { #>
-							<a class="button load-customize" href="{{ data.customize_url }}"><?php _e( 'Live Preview' ); ?></a>
+							<?php
+							/* translators: %s: Theme name. */
+							$live_preview_aria_label = sprintf( _x( 'Live Preview %s', 'theme' ), '{{ data.name }}' );
+							?>
+							<a aria-label="<?php echo esc_attr( $live_preview_aria_label ); ?>" class="button load-customize" href="{{ data.customize_url }}"><?php _e( 'Live Preview' ); ?></a>
 						<# } else { #>
-							<a class="button load-customize" href="{{ data.customize_url }}"><?php _e( 'Customize' ); ?></a>
+							<?php
+							/* translators: %s: Theme name. */
+							$customize_aria_label = sprintf( _x( 'Customize %s', 'theme' ), '{{ data.name }}' );
+							?>
+							<a aria-label="<?php echo esc_attr( $customize_aria_label ); ?>" class="button load-customize" href="{{ data.customize_url }}"><?php _e( 'Customize' ); ?></a>
 						<# } #>
 					<# } else { #>
-						<button class="button preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
+						<?php
+						/* translators: %s: Theme name. */
+						$preview_aria_label = sprintf( _x( 'Preview %s', 'theme' ), '{{ data.name }}' );
+						?>
+						<button aria-label="<?php echo esc_attr( $preview_aria_label ); ?>" class="button preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
 					<# } #>
 				<# } else { #>
 					<?php
@@ -374,9 +385,17 @@
 						<a class="button button-primary disabled" aria-label="<?php echo esc_attr( $aria_label ); ?>"><?php _ex( 'Cannot Activate', 'theme' ); ?></a>
 					<# } #>
 					<# if ( data.customize_url ) { #>
-						<a class="button disabled"><?php _e( 'Live Preview' ); ?></a>
+						<?php
+						/* translators: %s: Theme name. */
+						$live_preview_aria_label = sprintf( _x( 'Live Preview %s', 'theme' ), '{{ data.name }}' );
+						?>
+						<a aria-label="<?php echo esc_attr( $live_preview_aria_label ); ?>" class="button disabled"><?php _e( 'Live Preview' ); ?></a>
 					<# } else { #>
-						<button class="button disabled"><?php _e( 'Preview' ); ?></button>
+						<?php
+						/* translators: %s: Theme name. */
+						$preview_aria_label = sprintf( _x( 'Preview %s', 'theme' ), '{{ data.name }}' );
+						?>
+						<button aria-label="<?php echo esc_attr( $preview_aria_label ); ?>" class="button disabled"><?php _e( 'Preview' ); ?></button>
 					<# } #>
 				<# } #>
 			<# } else { #>
@@ -386,7 +405,11 @@
 					$aria_label = sprintf( _x( 'Install %s', 'theme' ), '{{ 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 esc_attr( $aria_label ); ?>"><?php _e( 'Install' ); ?></a>
-					<button class="button preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
+					<?php
+					/* translators: %s: Theme name. */
+					$preview_aria_label = sprintf( _x( 'Preview %s', 'theme' ), '{{ data.name }}' );
+					?>
+					<button aria-label="<?php echo esc_attr( $preview_aria_label ); ?>" class="button preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
 				<# } else { #>
 					<?php
 					/* translators: %s: Theme name. */
Index: src/wp-admin/themes.php
===================================================================
--- src/wp-admin/themes.php	(revision 50439)
+++ src/wp-admin/themes.php	(working copy)
@@ -379,7 +379,7 @@
 		$active_class = ' active';
 	}
 	?>
-<div class="theme<?php echo $active_class; ?>" tabindex="0" aria-describedby="<?php echo $aria_action . ' ' . $aria_name; ?>">
+<div class="theme<?php echo $active_class; ?>">
 	<?php if ( ! empty( $theme['screenshot'][0] ) ) { ?>
 		<div class="theme-screenshot">
 			<img src="<?php echo $theme['screenshot'][0]; ?>" alt="" />
@@ -512,14 +512,6 @@
 	}
 	?>
 
-	<span class="more-details" id="<?php echo $aria_action; ?>"><?php _e( 'Theme Details' ); ?></span>
-	<div class="theme-author">
-		<?php
-		/* translators: %s: Theme author name. */
-		printf( __( 'By %s' ), $theme['author'] );
-		?>
-	</div>
-
 	<div class="theme-id-container">
 		<?php if ( $theme['active'] ) { ?>
 			<h2 class="theme-name" id="<?php echo $aria_name; ?>">
@@ -530,9 +522,18 @@
 		<?php } ?>
 
 		<div class="theme-actions">
+		<?php
+ 		/* translators: %s: Theme name. */
+ 		$details_aria_label = sprintf( _x( 'View Theme Details for %s', 'theme' ), $theme['name'] );
+ 		?>
+		<button type="button" aria-label="<?php echo esc_attr( $details_aria_label ); ?>" class="more-details" id="<?php echo $aria_action; ?>"><?php _e( 'Theme Details' ); ?></button>
 		<?php if ( $theme['active'] ) { ?>
-			<?php if ( $theme['actions']['customize'] && current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { ?>
-				<a class="button button-primary customize load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Customize' ); ?></a>
+			<?php
+			if ( $theme['actions']['customize'] && current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
+				/* translators: %s: Theme name. */
+				$customize_aria_label = sprintf( _x( 'Customize %s', 'theme' ), $theme['name'] );
+				?>
+				<a aria-label="<?php echo esc_attr( $customize_aria_label ); ?>" class="button button-primary customize load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Customize' ); ?></a>
 			<?php } ?>
 		<?php } elseif ( $theme['compatibleWP'] && $theme['compatiblePHP'] ) { ?>
 			<?php
@@ -549,8 +550,12 @@
 			$aria_label = sprintf( _x( 'Cannot Activate %s', 'theme' ), '{{ data.name }}' );
 			?>
 			<a class="button disabled" aria-label="<?php echo esc_attr( $aria_label ); ?>"><?php _ex( 'Cannot Activate', 'theme' ); ?></a>
-			<?php if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { ?>
-				<a class="button button-primary hide-if-no-customize disabled"><?php _e( 'Live Preview' ); ?></a>
+			<?php
+				if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
+					/* translators: %s: Theme name. */
+					$live_preview_aria_label = sprintf( _x( 'Live Preview %s', 'theme' ), '{{ data.name }}' );
+					?>
+					<a aria-label="<?php echo esc_attr( $live_preview_aria_label ); ?>" class="button button-primary hide-if-no-customize disabled"><?php _e( 'Live Preview' ); ?></a>
 			<?php } ?>
 		<?php } ?>
 
@@ -859,14 +864,6 @@
 		</p></div>
 	<# } #>
 
-	<span class="more-details" id="{{ data.id }}-action"><?php _e( 'Theme Details' ); ?></span>
-	<div class="theme-author">
-		<?php
-		/* translators: %s: Theme author name. */
-		printf( __( 'By %s' ), '{{{ data.author }}}' );
-		?>
-	</div>
-
 	<div class="theme-id-container">
 		<# if ( data.active ) { #>
 			<h2 class="theme-name" id="{{ data.id }}-name">
@@ -877,9 +874,18 @@
 		<# } #>
 
 		<div class="theme-actions">
+			<?php
+ 			/* translators: %s: Theme name. */
+ 			$details_aria_label = sprintf( _x( 'View Theme Details for %s', 'theme' ), '{{ data.name }}' );
+ 			?>
+			<button aria-label="<?php echo esc_attr( $details_aria_label ); ?>" class="button more-details" id="{{ data.id }}-action"><?php _e( 'Theme Details' ); ?></button>
 			<# if ( data.active ) { #>
 				<# if ( data.actions.customize ) { #>
-					<a class="button button-primary customize load-customize hide-if-no-customize" href="{{{ data.actions.customize }}}"><?php _e( 'Customize' ); ?></a>
+					<?php
+					/* translators: %s: Theme name. */
+					$customize_aria_label = sprintf( _x( 'Customize %s', 'theme' ), '{{ data.name }}' );
+					?>
+					<a aria-label="<?php echo esc_attr( $customize_aria_label ); ?>" class="button button-primary customize load-customize hide-if-no-customize" href="{{{ data.actions.customize }}}"><?php _e( 'Customize' ); ?></a>
 				<# } #>
 			<# } else { #>
 				<# if ( data.compatibleWP && data.compatiblePHP ) { #>
@@ -888,7 +894,11 @@
 					$aria_label = sprintf( _x( 'Activate %s', 'theme' ), '{{ data.name }}' );
 					?>
 					<a class="button 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>
+					<?php
+					/* translators: %s: Theme name. */
+					$live_preview_aria_label = sprintf( _x( 'Live Preview %s', 'theme' ), '{{ data.name }}' );
+					?>
+					<a aria-label="<?php echo esc_attr( $live_preview_aria_label ); ?>" class="button button-primary load-customize hide-if-no-customize" href="{{{ data.actions.customize }}}"><?php _e( 'Live Preview' ); ?></a>
 				<# } else { #>
 					<?php
 					/* translators: %s: Theme name. */
