Index: src/js/_enqueues/lib/admin-bar.js
===================================================================
--- src/js/_enqueues/lib/admin-bar.js	(revision 51624)
+++ src/js/_enqueues/lib/admin-bar.js	(working copy)
@@ -74,6 +74,11 @@
 
 			// Toggle hover class if the enter key is pressed.
 			topMenuItems[i].addEventListener( 'keydown', toggleHoverIfEnter );
+
+			var menuItemToggle = topMenuItems[i].querySelector( 'a[role="menuitem"]' );
+			if ( menuItemToggle ) {
+				menuItemToggle.setAttribute( 'aria-expanded', 'false' );
+			}
 		}
 
 		// Remove hover class if the escape key is pressed.
@@ -149,7 +154,8 @@
 	function toggleHoverIfEnter( event ) {
 		var wrapper;
 
-		if ( event.which !== 13 ) {
+		// Follow link if pressing Ctrl and/or Shift with Enter (opening in a new tab or window).
+		if ( event.which !== 13 || event.ctrlKey || event.shiftKey ) {
 			return;
 		}
 
@@ -336,6 +342,11 @@
 
 			element.className += className;
 		}
+
+		var menuItemToggle = element.querySelector( 'a' );
+ 		if ( className === 'hover' && menuItemToggle && menuItemToggle.hasAttribute( 'aria-expanded' ) ) {
+ 			menuItemToggle.setAttribute( 'aria-expanded', 'true' );
+		}
 	}
 
 	/**
@@ -366,6 +377,11 @@
 
 			element.className = classes.replace( /^[\s]+|[\s]+$/g, '' );
 		}
+
+		var menuItemToggle = element.querySelector( 'a' );
+ 		if ( className === 'hover' && menuItemToggle && menuItemToggle.hasAttribute( 'aria-expanded' ) ) {
+ 			menuItemToggle.setAttribute( 'aria-expanded', 'false' );
+		}
 	}
 
 	/**
Index: src/wp-includes/class-wp-admin-bar.php
===================================================================
--- src/wp-includes/class-wp-admin-bar.php	(revision 51624)
+++ src/wp-includes/class-wp-admin-bar.php	(working copy)
@@ -519,6 +519,11 @@
 		if ( $is_parent ) {
 			$menuclass        = 'menupop ';
 			$aria_attributes .= ' aria-haspopup="true"';
+
+			// Add role to top-level submenus, forcing screen readers out of browse mode.
+			if ( $is_root_top_item || $is_top_secondary_item ) {
+				$aria_attributes .= ' role="menuitem"';
+			}
 		}
 
 		if ( ! empty( $node->meta['class'] ) ) {
