diff --git a/css/admin.toolbar.css b/css/admin.toolbar.css
index 9e32e1ac..38c27611 100644
--- a/css/admin.toolbar.css
+++ b/css/admin.toolbar.css
@@ -120,3 +120,28 @@
   background-image: url('../misc/icons/0074bd/chevron-left.svg');
   background-repeat: no-repeat;
 }
+
+/* Make the toolbar menu navigable with keyboard */
+ul.toolbar-menu li.menu-item--expanded.focused > ul {
+  display: block;
+  position: absolute;
+  width: 200px;
+  box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.4);
+  z-index: 1;
+}
+.toolbar-tray-horizontal ul.toolbar-menu li.menu-item--expanded.focused > ul {
+  display: block;
+  position: absolute;
+  width: 200px;
+  box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.4);
+  z-index: 1;
+}
+.toolbar-tray-horizontal ul li.menu-item--expanded .menu-item.focused > ul {
+  display: block;
+}
+.toolbar-tray-horizontal ul li.menu-item--expanded .menu-item.focused ul {
+  margin: -39px 0 0 200px;
+}
+.toolbar-tray-horizontal li.focused li {
+  float: none;
+}
diff --git a/js/admin_toolbar.js b/js/admin_toolbar.js
index a52568a2..bc9c3b8e 100644
--- a/js/admin_toolbar.js
+++ b/js/admin_toolbar.js
@@ -1,5 +1,15 @@
 (function($) {
   $(document).ready(function() {
     $('a.toolbar-icon').removeAttr('title');
+
+    // Make the toolbar menu navigable with keyboard.
+    $('ul.toolbar-menu li.menu-item--expanded a').on('focusin', function(){
+      $('li.menu-item--expanded').removeClass('focused');
+      $(this).parents('li.menu-item--expanded').addClass('focused');
+    });
+
+    $('body').on('click', function(){
+      $('li.menu-item--expanded').removeClass('focused');
+    });
   });
 })(jQuery);
