diff --git a/src/wp-admin/async-upload.php b/src/wp-admin/async-upload.php
index ffdfda0..9b82e2f 100644
--- a/src/wp-admin/async-upload.php
+++ b/src/wp-admin/async-upload.php
@@ -90,7 +90,7 @@ if ( isset( $_REQUEST['post_id'] ) ) {
 $id = media_handle_upload( 'async-upload', $post_id );
 if ( is_wp_error( $id ) ) {
 	echo '<div class="error-div error">
-	<a class="dismiss" href="#" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">' . __( 'Dismiss' ) . '</a>
+	<button type="button" class="dismiss button-link" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">' . __('Dismiss') . '</button>
 	<strong>' . sprintf( __( '&#8220;%s&#8221; has failed to upload.' ), esc_html( $_FILES['async-upload']['name'] ) ) . '</strong><br />' .
 	esc_html( $id->get_error_message() ) . '</div>';
 	exit;
diff --git a/src/wp-admin/css/media.css b/src/wp-admin/css/media.css
index f84741b..93d50a0 100644
--- a/src/wp-admin/css/media.css
+++ b/src/wp-admin/css/media.css
@@ -211,10 +211,34 @@
 	padding: 10px 0 10px 14px;
 }
 
-.media-item .error-div a.dismiss {
+.media-item .error-div button.dismiss {
 	display: block;
 	float: right;
 	margin: 0 10px 0 15px;
+	color: #0073aa;
+	outline: 0;
+	text-decoration: underline;
+	-webkit-transition-property: border, background, color;
+	transition-property: border, background, color;
+	-webkit-transition-duration: .05s;
+	transition-duration: .05s;
+	-webkit-transition-timing-function: ease-in-out;
+	transition-timing-function: ease-in-out;
+}
+
+.media-item .error-div button.dismiss:hover,
+.media-item .error-div button.dismiss:active {
+	color: #00a0d2;
+}
+
+.media-item .error-div button.dismiss:focus {
+	color: #124964;
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0px 0px 0px 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 /*------------------------------------------------------------------------------
