diff --git a/src/wp-admin/css/customize-nav-menus.css b/src/wp-admin/css/customize-nav-menus.css
index fc14598fd7..45331aed1a 100644
--- a/src/wp-admin/css/customize-nav-menus.css
+++ b/src/wp-admin/css/customize-nav-menus.css
@@ -91,7 +91,14 @@
}
/* Menu-item reordering nav. */
-#customize-theme-controls button.reorder-toggle {
+#customize-theme-controls .reordering .reorder,
+#customize-theme-controls .reorder-done {
+ display: none;
+}
+
+#customize-theme-controls .reorder,
+#customize-theme-controls .reordering .reorder-done {
+ display: inline-block;
padding: 5px 8px;
}
diff --git a/src/wp-admin/js/customize-nav-menus.js b/src/wp-admin/js/customize-nav-menus.js
index 42e362c46b..6a2a449dd6 100644
--- a/src/wp-admin/js/customize-nav-menus.js
+++ b/src/wp-admin/js/customize-nav-menus.js
@@ -1932,6 +1932,9 @@
* @param {Boolean} showOrHide to enable/disable reordering
*/
toggleReordering: function( showOrHide ) {
+ var addNewItemBtn = this.container.find( '.add-new-menu-item' ),
+ reorderBtn = this.container.find( '.reorder-toggle' );
+
showOrHide = Boolean( showOrHide );
if ( showOrHide === this.$sectionContent.hasClass( 'reordering' ) ) {
@@ -1941,6 +1944,15 @@
this.isReordering = showOrHide;
this.$sectionContent.toggleClass( 'reordering', showOrHide );
this.$sectionContent.sortable( this.isReordering ? 'disable' : 'enable' );
+ if ( this.isReordering ) {
+ addNewItemBtn.attr( 'tabindex', '-1' );
+ reorderBtn.find( '.reorder-done' ).focus();
+ wp.a11y.speak( api.Menus.data.l10n.reorderModeOn );
+ } else {
+ addNewItemBtn.removeAttr( 'tabindex' );
+ reorderBtn.find( '.reorder' ).focus();
+ wp.a11y.speak( api.Menus.data.l10n.reorderModeOff );
+ }
if ( showOrHide ) {
_( this.getMenuItemControls() ).each( function( formControl ) {
diff --git a/src/wp-includes/class-wp-customize-control.php b/src/wp-includes/class-wp-customize-control.php
index 600fe158f4..ae7e3f30b0 100644
--- a/src/wp-includes/class-wp-customize-control.php
+++ b/src/wp-includes/class-wp-customize-control.php
@@ -1450,10 +1450,11 @@ class WP_Customize_Nav_Menu_Control extends WP_Customize_Control {
-