diff --git a/src/js/_enqueues/admin/postbox.js b/src/js/_enqueues/admin/postbox.js
index 9789518b65..2e3583a302 100644
--- a/src/js/_enqueues/admin/postbox.js
+++ b/src/js/_enqueues/admin/postbox.js
@@ -41,12 +41,29 @@
 			var $el = $( this ),
 				p = $el.parent( '.postbox' ),
 				id = p.attr( 'id' ),
-				ariaExpandedValue;
+				ariaExpandedValue,
+				closestPostbox = $( this ).closest( '.postbox' );
 
 			if ( 'dashboard_browser_nag' === id ) {
 				return;
 			}
 
+			if ( $el.hasClass( 'handle-order-prev' ) ) {
+				// The handle order prev button was clicked.
+				closestPostbox.prev().before( closestPostbox );
+				postboxes.save_order( postboxes.page );
+				$el.focus();
+				return;
+			}
+
+			if ( $el.hasClass( 'handle-order-next' ) ) {
+				// The handle order next button was clicked.
+				closestPostbox.next().after( closestPostbox );
+				postboxes.save_order( postboxes.page );
+				$el.focus();
+				return;
+			}
+
 			p.toggleClass( 'closed' );
 
 			ariaExpandedValue = ! p.hasClass( 'closed' );
@@ -99,7 +116,7 @@
 		 * @return {void}
 		 */
 		add_postbox_toggles : function (page, args) {
-			var $handles = $( '.postbox .hndle, .postbox .handlediv' );
+			var $handles = $( '.postbox .hndle, .postbox .handlediv, .postbox .handle-order-next, .postbox .handle-order-prev' );
 
 			this.page = page;
 			this.init( page, args );
@@ -202,7 +219,7 @@
 		 */
 		init : function(page, args) {
 			var isMobile = $( document.body ).hasClass( 'mobile' ),
-				$handleButtons = $( '.postbox .handlediv' );
+				$handleButtons = $( '.postbox .ui-actions .handlediv' );
 
 			$.extend( this, args || {} );
 			$('#wpbody-content').css('overflow','hidden');
diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css
index a8b8112b00..32e32accdb 100644
--- a/src/wp-admin/css/common.css
+++ b/src/wp-admin/css/common.css
@@ -2057,6 +2057,8 @@ html.wp-toolbar {
 	font-weight: 400;
 }
 
+.postbox .handle-order-prev,
+.postbox .handle-order-next,
 .postbox .handlediv {
 	display: none;
 	float: right;
@@ -2069,8 +2071,10 @@ html.wp-toolbar {
 	cursor: pointer;
 }
 
+.postbox .handle-order-prev,
+.postbox .handle-order-next,
 .js .postbox .handlediv {
-	display: block;
+	display: inline-block;
 }
 
 .sortable-placeholder {
@@ -3048,6 +3052,16 @@ img {
 	content: "\f140";
 }
 
+.js .postbox .handle-order-next .toggle-indicator:before {
+	content: "\f347";
+}
+
+.js .postbox .handle-order-prev .toggle-indicator:before {
+	content: "\f343";
+}
+
+.js .postbox .handle-order-next .toggle-indicator:before,
+.js .postbox .handle-order-prev .toggle-indicator:before,
 .js .postbox .handlediv .toggle-indicator:before {
 	margin-top: 4px;
 	width: 20px;
@@ -3055,6 +3069,8 @@ img {
 	text-indent: -1px; /* account for the dashicon alignment */
 }
 
+.rtl.js .postbox .handle-order-next .toggle-indicator:before,
+.rtl.js .postbox .handle-order-prev .toggle-indicator:before,
 .rtl.js .postbox .handlediv .toggle-indicator:before {
 	text-indent: 1px; /* account for the dashicon alignment */
 }
@@ -3065,11 +3081,15 @@ img {
 	color: #72777c;
 }
 
+.js .postbox .handle-order-next:focus,
+.js .postbox .handle-order-prev:focus,
 .js .postbox .handlediv:focus {
 	box-shadow: none;
 	outline: none;
 }
 
+.js .postbox .handle-order-next:focus .toggle-indicator:before,
+.js .postbox .handle-order-prev:focus .toggle-indicator:before,
 .js .postbox .handlediv:focus .toggle-indicator:before {
 	box-shadow:
 		0 0 0 1px #5b9dd9,
diff --git a/src/wp-admin/includes/template.php b/src/wp-admin/includes/template.php
index 5e6838eab1..9257d803d3 100644
--- a/src/wp-admin/includes/template.php
+++ b/src/wp-admin/includes/template.php
@@ -1315,6 +1315,24 @@ function do_meta_boxes( $screen, $context, $object ) {
 						) . '</span>';
 						echo '<span class="toggle-indicator" aria-hidden="true"></span>';
 						echo '</button>';
+
+						echo '<button type="button" class="handle-order-next">';
+						echo '<span class="screen-reader-text">' . sprintf(
+							/* translators: Meta box title. */
+							__( 'Move %s panel to next position' ),
+							$widget_title
+						) . '</span>';
+						echo '<span class="toggle-indicator" aria-hidden="true"></span>';
+						echo '</button>';
+
+						echo '<button type="button" class="handle-order-prev">';
+						echo '<span class="screen-reader-text">' . sprintf(
+							/* translators: Meta box title. */
+							__( 'Move %s panel to previous position' ),
+							$widget_title
+						) . '</span>';
+						echo '<span class="toggle-indicator" aria-hidden="true"></span>';
+						echo '</button>';
 					}
 					echo '<h2 class="hndle">';
 					if ( 'dashboard_php_nag' === $box['id'] ) {
