Index: src/wp-admin/css/admin-menu.css
===================================================================
--- src/wp-admin/css/admin-menu.css	(revision 29891)
+++ src/wp-admin/css/admin-menu.css	(working copy)
@@ -534,56 +534,75 @@
 }
 
 #collapse-menu {
-	font-size: 13px;
-	line-height: 34px;
-	margin-top: 10px;
-	color: #aaa;
 	-webkit-transition: all .1s ease-in-out;
 	transition: all .1s ease-in-out;
 }
 
-#collapse-menu:hover,
-#collapse-menu:hover #collapse-button div:after {
+#collapse-button:hover,
+#collapse-button:hover .collapse-button-icon:after,
+#collapse-button:focus,
+#collapse-button:focus .collapse-button-icon:after {
 	color: #2ea2cc;
 }
 
-.folded #collapse-menu span {
-	display: none;
+#collapse-button {
+	display: block;
+	width: 100%;
+	height: 34px;
+	margin: 0;
+	border: none;
+	padding: 0;
+	position: relative;
+	overflow: visible;
+	line-height: 34px;
+	background: none;
+	color: #aaa;
+	text-align: left;
+	cursor: pointer;
+	outline: 0;
 }
 
-#collapse-button,
-#collapse-button div {
-	width: 15px;
-	height: 15px;
+#collapse-button .collapse-button-icon,
+#collapse-button .collapse-button-label {
+	/* absolutely positioned to avoid 1px shift in IE when button is pressed */
+	display: block;
+	position: absolute;
+	top: 0;
+	left: 0;
 }
 
-#collapse-button {
-	float: left;
-	height: 15px;
-	margin: 10px 8px 10px 11px;
-	width: 15px;
-	-webkit-border-radius: 10px;
-	border-radius: 10px;
+#collapse-button .collapse-button-icon {
+	width: 36px;
+	height: 34px;
 }
 
-#wpwrap #collapse-button div {
-	padding: 0;
+#collapse-button .collapse-button-label {
+	padding: 8px 0 8px 36px;
+	line-height: 18px;
 }
 
-#collapse-button div:after {
+.folded #collapse-button .collapse-button-label {
+	display: none;
+}
+
+#collapse-button .screen-reader-text {
+	/* hidden also for screen readers, speakable when folded or auto-fold */
+	display: none;
+}
+
+.folded #collapse-button .screen-reader-text {
+	display: inline;
+}
+
+#collapse-button .collapse-button-icon:after {
 	content: '\f148';
 	display: block;
-	line-height: 15px;
-	left: -3px;
-	top: -3px;
+	position: relative;
+	top: 7px;
+	text-align: center;
 	color: #aaa;
 	font: normal 20px/1 'dashicons' !important;
 	speak: none;
-	margin: 0 auto;
-	padding: 0 !important;
-	position: relative;
-	text-align: center;
-	width: 20px;
 	-webkit-transition: all .1s ease-in-out;
 	transition: all .1s ease-in-out;
 	-webkit-font-smoothing: antialiased;
@@ -590,14 +609,14 @@
 	-moz-osx-font-smoothing: grayscale;
 }
 
-.folded #collapse-button div:after,
-.rtl #collapse-button div:after {
+.folded #collapse-button .collapse-button-icon:after,
+.rtl #collapse-button .collapse-button-icon:after {
 	-webkit-transform: rotate(180deg);
 	-ms-transform: rotate(180deg);
 	transform: rotate(180deg);
 }
 
-.rtl.folded #collapse-button div:after {
+.rtl.folded #collapse-button .collapse-button-icon:after {
 	-webkit-transform: none;
 	-ms-transform: none;
 	transform: none;
@@ -708,21 +727,21 @@
 		z-index: 10000;
 	}
 
-	.auto-fold #collapse-menu span {
+	.auto-fold #collapse-menu .collapse-button-label {
 		display: none;
 	}
 
-	.auto-fold #collapse-button div {
-		background: none;
+	.auto-fold #collapse-button .screen-reader-text {
+		display: inline;
 	}
 
-	.auto-fold #collapse-button div:after {
+	.auto-fold #collapse-button .collapse-button-icon:after {
 		-webkit-transform: rotate(180deg);
 		-ms-transform: rotate(180deg);
 		transform: rotate(180deg);
 	}
 
-	.rtl.auto-fold #collapse-button div:after {
+	.rtl.auto-fold #collapse-button .collapse-button-icon:after {
 		-webkit-transform: none;
 		-ms-transform: none;
 		transform: none;
Index: src/wp-admin/css/colors/_admin.scss
===================================================================
--- src/wp-admin/css/colors/_admin.scss	(revision 29891)
+++ src/wp-admin/css/colors/_admin.scss	(working copy)
@@ -235,20 +235,22 @@
 
 /* Admin Menu: collapse button */
 
-#collapse-menu {
+#collapse-button {
     color: $menu-collapse-text;
 }
 
-#collapse-menu:hover {
-    color: $menu-collapse-focus-text;
+#collapse-button .collapse-button-icon:after {
+    color: $menu-collapse-icon;
 }
 
-#collapse-button div:after {
-    color: $menu-collapse-icon;
+#collapse-button:hover,
+#collapse-button:focus {
+    color: $menu-submenu-focus-text;
 }
 
-#collapse-menu:hover #collapse-button div:after {
-    color: $menu-collapse-focus-icon;
+#collapse-button:hover .collapse-button-icon:after,
+#collapse-button:focus .collapse-button-icon:after {
+    color: $menu-submenu-focus-text;
 }
 
 
Index: src/wp-admin/js/common.js
===================================================================
--- src/wp-admin/js/common.js	(revision 29891)
+++ src/wp-admin/js/common.js	(working copy)
@@ -184,11 +184,11 @@
 		$(e.target).parent().siblings('a').get(0).click();
 	});
 
-	$('#collapse-menu').on('click.collapse-menu', function() {
+	$( '#collapse-menu' ).on( 'click.collapse-menu', '#collapse-button', function() {
 		var body = $( document.body ), respWidth, state;
 
 		// reset any compensation for submenus near the bottom of the screen
-		$('#adminmenu div.wp-submenu').css('margin-top', '');
+		$( '#adminmenu div.wp-submenu' ).css( 'margin-top', '' );
 
 		if ( window.innerWidth ) {
 			// window.innerWidth is affected by zooming on phones
@@ -199,24 +199,24 @@
 		}
 
 		if ( respWidth && respWidth < 960 ) {
-			if ( body.hasClass('auto-fold') ) {
-				body.removeClass('auto-fold').removeClass('folded');
-				setUserSetting('unfold', 1);
-				setUserSetting('mfold', 'o');
+			if ( body.hasClass( 'auto-fold' ) ) {
+				body.removeClass( 'auto-fold' ).removeClass( 'folded' );
+				setUserSetting( 'unfold', 1 );
+				setUserSetting( 'mfold', 'o' );
 				state = 'open';
 			} else {
-				body.addClass('auto-fold');
-				setUserSetting('unfold', 0);
+				body.addClass( 'auto-fold' );
+				setUserSetting( 'unfold', 0 );
 				state = 'folded';
 			}
 		} else {
-			if ( body.hasClass('folded') ) {
-				body.removeClass('folded');
-				setUserSetting('mfold', 'o');
+			if ( body.hasClass( 'folded' ) ) {
+				body.removeClass( 'folded' );
+				setUserSetting( 'mfold', 'o' );
 				state = 'open';
 			} else {
-				body.addClass('folded');
-				setUserSetting('mfold', 'f');
+				body.addClass( 'folded' );
+				setUserSetting( 'mfold', 'f' );
 				state = 'folded';
 			}
 		}
Index: src/wp-admin/menu-header.php
===================================================================
--- src/wp-admin/menu-header.php	(revision 29891)
+++ src/wp-admin/menu-header.php	(working copy)
@@ -201,9 +201,10 @@
 		echo "</li>";
 	}
 
-	echo '<li id="collapse-menu" class="hide-if-no-js"><div id="collapse-button"><div></div></div>';
-	echo '<span>' . esc_html__( 'Collapse menu' ) . '</span>';
-	echo '</li>';
+	echo '<li id="collapse-menu" class="hide-if-no-js"><button type="button" id="collapse-button">' .
+		'<span class="collapse-button-icon"></span><span class="collapse-button-label">' . esc_html__( 'Collapse menu' ) . '</span>' .
+		'<span class="screen-reader-text">' . esc_html__( 'Expand menu' ) . '</span>' .
+		'</button></li>';
 }
 
 ?>
