Index: src/js/_enqueues/admin/common.js
===================================================================
--- src/js/_enqueues/admin/common.js	(revision 53085)
+++ src/js/_enqueues/admin/common.js	(working copy)
@@ -497,7 +497,7 @@
 window.validateForm = function( form ) {
 	return !$( form )
 		.find( '.form-required' )
-		.filter( function() { return $( ':input:visible', this ).val() === ''; } )
+		.filter( function() { return $( ':input:visible', this ).val().trim() === ''; } )
 		.addClass( 'form-invalid' )
 		.find( ':input:visible' )
 		.on( 'change', function() { $( this ).closest( '.form-invalid' ).removeClass( 'form-invalid' ); } )
Index: src/js/_enqueues/admin/tags.js
===================================================================
--- src/js/_enqueues/admin/tags.js	(revision 53085)
+++ src/js/_enqueues/admin/tags.js	(working copy)
@@ -101,9 +101,6 @@
 	$('#submit').on( 'click', function(){
 		var form = $(this).parents('form');
 
-		if ( ! validateForm( form ) )
-			return false;
-
 		if ( addingTerm ) {
 			// If we're adding a term, noop the button to avoid duplicate requests.
 			return false;
@@ -127,8 +124,14 @@
 
 			$('#ajax-response').empty();
 			res = wpAjax.parseAjaxResponse( r, 'ajax-response' );
-			if ( ! res || res.errors )
+
+			if ( res.errors && res.responses[0].errors[0].code === 'empty_term_name' ) {
+				validateForm( form );
+			}
+
+			if ( ! res || res.errors ) {
 				return;
+			}
 
 			parent = form.find( 'select#parent' ).val();
 
Index: src/wp-admin/css/forms.css
===================================================================
--- src/wp-admin/css/forms.css	(revision 53085)
+++ src/wp-admin/css/forms.css	(working copy)
@@ -245,7 +245,7 @@
 .form-invalid.form-required select,
 .form-invalid.form-required select:focus {
 	border-color: #d63638 !important;
-	box-shadow: 0 0 2px rgba(214, 54, 56, 0.8);
+	box-shadow: 0 0 0 1px #d63638;
 }
 
 .form-table .form-required.form-invalid td:after {
Index: src/wp-admin/includes/ajax-actions.php
===================================================================
--- src/wp-admin/includes/ajax-actions.php	(revision 53085)
+++ src/wp-admin/includes/ajax-actions.php	(working copy)
@@ -1071,16 +1071,21 @@
 	}
 
 	if ( ! $tag || is_wp_error( $tag ) ) {
-		$message = __( 'An error has occurred. Please reload the page and try again.' );
+		$message    = __( 'An error has occurred. Please reload the page and try again.' );
+		$error_code = 'error';
 
 		if ( is_wp_error( $tag ) && $tag->get_error_message() ) {
 			$message = $tag->get_error_message();
 		}
 
+		if ( is_wp_error( $tag ) && $tag->get_error_code() ) {
+			$error_code = $tag->get_error_code();
+		}
+
 		$x->add(
 			array(
 				'what' => 'taxonomy',
-				'data' => new WP_Error( 'error', $message ),
+				'data' => new WP_Error( $error_code, $message ),
 			)
 		);
 		$x->send();
Index: src/wp-includes/script-loader.php
===================================================================
--- src/wp-includes/script-loader.php	(revision 53085)
+++ src/wp-includes/script-loader.php	(working copy)
@@ -694,7 +694,7 @@
 
 	$scripts->add( 'clipboard', "/wp-includes/js/clipboard$suffix.js", array(), false, 1 );
 
-	$scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array( 'jquery' ), false, 1 );
+	$scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array( 'jquery', 'wp-a11y' ), false, 1 );
 	did_action( 'init' ) && $scripts->localize(
 		'wp-ajax-response',
 		'wpAjax',
