Index: src/wp-admin/css/common.css
===================================================================
--- src/wp-admin/css/common.css	(revision 41604)
+++ src/wp-admin/css/common.css	(working copy)
@@ -2966,7 +2966,7 @@
 }
 
 /* Metabox collapse arrow indicators */
-.js .sidebar-name .sidebar-name-arrow:before,
+.sidebar-name .toggle-indicator:before,
 .js .meta-box-sortables .postbox .toggle-indicator:before,
 .bulk-action-notice .toggle-indicator:before {
 	content: "\f142";
@@ -2978,26 +2978,12 @@
 	text-decoration: none !important;
 }
 
-.js .widgets-holder-wrap.closed .sidebar-name-arrow:before,
+.js .widgets-holder-wrap.closed .toggle-indicator:before,
 .js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,
 .bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before {
 	content: "\f140";
 }
 
-.js .sidebar-name .sidebar-name-arrow:before {
-	padding: 10px;
-	left: 0;
-}
-
-.js #widgets-left .sidebar-name .sidebar-name-arrow {
-	display: none;
-}
-
-.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow,
-.js #widgets-left .sidebar-name:hover .sidebar-name-arrow {
-	display: block;
-}
-
 .js .postbox .handlediv .toggle-indicator:before {
 	margin-top: 4px;
 	width: 20px;
@@ -3171,7 +3157,7 @@
 .handlediv,
 .postbox .handlediv.button-link,
 .item-edit,
-.sidebar-name-arrow,
+.toggle-indicator,
 .accordion-section-title:after {
 	color: #72777c;
 }
@@ -3188,7 +3174,7 @@
 .postbox .handlediv.button-link:focus,
 .item-edit:hover,
 .item-edit:focus,
-.sidebar-name:hover .sidebar-name-arrow,
+.sidebar-name:hover .toggle-indicator,
 .accordion-section-title:hover:after {
 	color: #23282d;
 }
@@ -3488,8 +3474,8 @@
 	#screen-meta-links a.show-settings,
 	.widget-top .widget-action,
 	.widget-top .widget-action:hover,
-	.sidebar-name-arrow,
-	.sidebar-name:hover .sidebar-name-arrow,
+	.sidebar-name .toggle-indicator,
+	.sidebar-name:hover .toggle-indicator,
 	.meta-box-sortables .postbox:hover .handlediv,
 	#bulk-titles div a,
 	#bulk-titles div a:hover {
Index: src/wp-admin/css/widgets.css
===================================================================
--- src/wp-admin/css/widgets.css	(revision 41604)
+++ src/wp-admin/css/widgets.css	(working copy)
@@ -260,17 +260,52 @@
 	box-sizing: border-box;
 }
 
-.sidebar-name-arrow {
-	position: absolute;
-	top: 0;
-	right: 0;
-	bottom: 0;
+.js .sidebar-name {
+	cursor: pointer;
 }
 
-.js .sidebar-name {
+.sidebar-name .handlediv {
+	float: right;
+	width: 38px;
+	height: 38px;
+	border: 0;
+	margin: 0;
+	padding: 8px;
+	background: none;
 	cursor: pointer;
+	outline: none;
 }
 
+#widgets-right .sidebar-name .handlediv {
+	margin: 5px 3px 0 0;
+}
+
+.sidebar-name .handlediv:focus {
+	box-shadow: none;
+	outline: none;
+}
+
+#widgets-left .sidebar-name .toggle-indicator {
+	display: none;
+}
+
+#widgets-left .widgets-holder-wrap.closed .sidebar-name .toggle-indicator,
+#widgets-left .sidebar-name:hover .toggle-indicator,
+#widgets-left .sidebar-name .handlediv:focus .toggle-indicator {
+	display: block;
+}
+
+.sidebar-name .toggle-indicator:before {
+	padding: 1px 2px 1px 0;
+	border-radius: 50%;
+}
+
+.sidebar-name .handlediv:focus .toggle-indicator:before {
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 .sidebar-name h2,
 .sidebar-name h3 {
 	margin: 0;
@@ -325,10 +360,6 @@
 	margin: 0 10px 0 0;
 }
 
-#widgets-left .sidebar-name .sidebar-name-arrow:before {
-	padding: 9px;
-}
-
 #widgets-left .widgets-holder-wrap,
 div#widgets-left .widget-holder {
 	background: transparent;
@@ -423,10 +454,6 @@
 	padding: 15px 7px;
 }
 
-div#widgets-right .sidebar-name .sidebar-name-arrow:before {
-	top: 2px;
-}
-
 div#widgets-right .widget-top {
 	padding: 0;
 }
@@ -556,7 +583,7 @@
 .widget-control-noform,
 #access-off,
 .widgets_access .widget-action,
-.widgets_access .sidebar-name-arrow,
+.widgets_access .handlediv,
 .widgets_access #access-on,
 .widgets_access .widget-holder .description,
 .no-js .widget-holder .description {
Index: src/wp-admin/includes/widgets.php
===================================================================
--- src/wp-admin/includes/widgets.php	(revision 41604)
+++ src/wp-admin/includes/widgets.php	(working copy)
@@ -80,7 +80,10 @@
 	if ( $sidebar_name ) {
 		?>
 		<div class="sidebar-name">
-			<div class="sidebar-name-arrow"><br /></div>
+			<button type="button" class="handlediv hide-if-no-js" aria-expanded="true">
+				<span class="screen-reader-text"><?php echo esc_html( $sidebar_name ); ?></span>
+				<span class="toggle-indicator" aria-hidden="true"></span>
+			</button>
 			<h2><?php echo esc_html( $sidebar_name ); ?> <span class="spinner"></span></h2>
 		</div>
 		<?php
Index: src/wp-admin/js/widgets.js
===================================================================
--- src/wp-admin/js/widgets.js	(revision 41604)
+++ src/wp-admin/js/widgets.js	(working copy)
@@ -39,20 +39,43 @@
 			sidebars = $('div.widgets-sortables'),
 			isRTL = !! ( 'undefined' !== typeof isRtl && isRtl );
 
-		$('#widgets-right .sidebar-name').click( function() {
-			var $this = $(this),
-				$wrap = $this.closest('.widgets-holder-wrap');
+		// Handle the widgets containers in the right column.
+		$( '#widgets-right .sidebar-name' )
+			/*
+			 * Toggle the widgets containers when clicked and update the toggle
+			 * button `aria-expanded` attribute value.
+			 */
+			.click( function() {
+				var $this = $( this ),
+					$wrap = $this.closest( '.widgets-holder-wrap '),
+					$toggle = $this.find( '.handlediv' );
 
-			if ( $wrap.hasClass('closed') ) {
-				$wrap.removeClass('closed');
-				$this.parent().sortable('refresh');
-			} else {
-				$wrap.addClass('closed');
-			}
+				if ( $wrap.hasClass( 'closed' ) ) {
+					$wrap.removeClass( 'closed' );
+					$toggle.attr( 'aria-expanded', 'true' );
+					// Refresh the jQuery UI sortable items.
+					$this.parent().sortable( 'refresh' );
+				} else {
+					$wrap.addClass( 'closed' );
+					$toggle.attr( 'aria-expanded', 'false' );
+				}
 
-			$document.triggerHandler( 'wp-pin-menu' );
-		});
+				// Update the admin menu "sticky" state.
+				$document.triggerHandler( 'wp-pin-menu' );
+			})
+			/*
+			 * Set the initial `aria-expanded` attribute value on the widgets
+			 * containers toggle button. The first one is expanded by default.
+			 */
+			.find( '.handlediv' ).each( function( index ) {
+				if ( 0 === index ) {
+					// jQuery equivalent of `continue` within an `each()` loop.
+					return;
+				}
 
+				$( this ).attr( 'aria-expanded', 'false' );
+			});
+
 		// Show AYS dialog when there are unsaved widget changes.
 		$( window ).on( 'beforeunload.widgets', function( event ) {
 			var dirtyWidgetIds = [], unsavedWidgetsElements;
@@ -86,8 +109,15 @@
 			}
 		});
 
-		$('#widgets-left .sidebar-name').click( function() {
-			$(this).closest('.widgets-holder-wrap').toggleClass('closed');
+		// Handle the widgets containers in the left column.
+		$( '#widgets-left .sidebar-name' ).click( function() {
+			var $wrap = $( this ).closest( '.widgets-holder-wrap' );
+
+			$wrap
+				.toggleClass( 'closed' )
+				.find( '.handlediv' ).attr( 'aria-expanded', ! $wrap.hasClass( 'closed' ) );
+
+			// Update the admin menu "sticky" state.
 			$document.triggerHandler( 'wp-pin-menu' );
 		});
 
@@ -215,7 +245,7 @@
 			/**
 			 * Open Sidebar when a Widget gets dragged over it.
 			 *
-			 * @param event
+			 * @param {object} event jQuery event object.
 			 */
 			over: function( event ) {
 				var $wrap = $( event.target ).parent();
@@ -227,7 +257,9 @@
 
 				if ( $wrap.hasClass( 'closed' ) ) {
 					wpWidgets.hoveredSidebar = $wrap;
-					$wrap.removeClass( 'closed' );
+					$wrap
+						.removeClass( 'closed' )
+						.find( '.handlediv' ).attr( 'aria-expanded', 'true' );
 				}
 
 				$( this ).sortable( 'refresh' );
@@ -236,7 +268,7 @@
 			/**
 			 * Close Sidebar when the Widget gets dragged out of it.
 			 *
-			 * @param event
+			 * @param {object} event jQuery event object.
 			 */
 			out: function( event ) {
 				if ( wpWidgets.hoveredSidebar ) {
@@ -319,7 +351,10 @@
 				$sidebar = $widget.parent();
 
 				if ( $sidebar.parent().hasClass('closed') ) {
-					$sidebar.parent().removeClass('closed');
+					$sidebar.parent()
+						.removeClass( 'closed' )
+						.find( '.handlediv' ).attr( 'aria-expanded', 'true' );
+
 					$children = $sidebar.children('.widget');
 
 					// Make sure the dropped widget is at the top
@@ -622,8 +657,10 @@
 			$( '#' + widgetId ).hide();
 		}
 
-		// Open the widgets container
-		sidebar.closest( '.widgets-holder-wrap' ).removeClass('closed');
+		// Open the widgets container.
+		sidebar.closest( '.widgets-holder-wrap' )
+			.removeClass( 'closed' )
+			.find( '.handlediv' ).attr( 'aria-expanded', 'true' );
 
 		sidebar.append( widget );
 		sidebar.sortable('refresh');
@@ -679,11 +716,14 @@
 	 *
 	 * Used when a Widget gets dragged in/out of the Sidebar and never dropped.
 	 *
-	 * @param sidebar
+	 * @param {object} event jQuery event object.
 	 */
-	closeSidebar: function( sidebar ) {
-		this.hoveredSidebar.addClass( 'closed' );
-		$( sidebar.target ).css( 'min-height', '' );
+	closeSidebar: function( event ) {
+		this.hoveredSidebar
+			.addClass( 'closed' )
+			.find( '.handlediv' ).attr( 'aria-expanded', 'false' );
+
+		$( event.target ).css( 'min-height', '' );
 		this.hoveredSidebar = null;
 	}
 };
Index: src/wp-admin/widgets.php
===================================================================
--- src/wp-admin/widgets.php	(revision 41604)
+++ src/wp-admin/widgets.php	(working copy)
@@ -387,7 +387,10 @@
 <div id="widgets-left">
 	<div id="available-widgets" class="widgets-holder-wrap">
 		<div class="sidebar-name">
-			<div class="sidebar-name-arrow"><br /></div>
+			<button type="button" class="handlediv hide-if-no-js" aria-expanded="true">
+				<span class="screen-reader-text"><?php _e( 'Available Widgets' ); ?></span>
+				<span class="toggle-indicator" aria-hidden="true"></span>
+			</button>
 			<h2><?php _e( 'Available Widgets' ); ?> <span id="removing-widget"><?php _ex( 'Deactivate', 'removing-widget' ); ?> <span></span></span></h2>
 		</div>
 		<div class="widget-holder">
