diff --git a/reviewboard/static/rb/css/pages/review-request.less b/reviewboard/static/rb/css/pages/review-request.less
index 9684c655b4fa9a1a06b219ebd56b2f039f16a06e..7ebb996005ecb892b0b6550921db682158c26364 100644
--- a/reviewboard/static/rb/css/pages/review-request.less
+++ b/reviewboard/static/rb/css/pages/review-request.less
@@ -497,30 +497,58 @@ a.mobile-actions-menu-label {
  * Review request tabs
  ****************************************************************************/
 
-.review-request-tabs {
+/**
+ * Review request tabs.
+ *
+ * Structure:
+ *     <menu class="rb-c-review-request-tabs" role="menu">
+ *      ...
+ *     </menu>
+ */
+.rb-c-review-request-tabs {
   background-color: @review-request-action-bg;
   border-color: @review-request-border-color;
   border-radius: @box-border-radius @box-border-radius 0 0;
   border-style: solid;
   border-width: 1px 1px 0 1px;
   float: right;
-  margin-left: 1.5rem;
+  list-style: none;
+  margin: 0 0 0 1.5rem;
   overflow: hidden;
+  padding: 0;
 
-  .review-ui-box & .active {
-    /*
-     * The active tab in review UIs has a slightly different color to match the
-     * review UI header color.
-     */
-     background-color: @review-ui-header-bg;
-  }
-
-  li {
+  /* TODO: dedupe with .review-request-action */
+  /**
+   * A review request tab.
+   *
+   * Modifiers:
+   *     -is-active:
+   *         Designates the active tab element.
+   *
+   * Structure:
+   *     <li class="rb-c-review-request-tabs__tab -is-active"
+   *         role="presentation">
+   *      <a href="..." role="menuitem" aria-current="page">...</a>
+   *     </li>
+   *     <li class="rb-c-review-request-tabs__tab" role="presentation">
+   *      <a href="..." role="menuitem">...</a>
+   *     </li>
+   */
+  &__tab {
     border-bottom: 1px @review-request-action-border-color solid;
+    float: left;
     min-width: 4rem;
     text-align: center;
 
-    &.active {
+    &:hover {
+      background-color: @review-request-action-hover-bg;
+    }
+
+    &:active {
+      background-color: @review-request-action-active-bg;
+    }
+
+    &.-is-active {
       background: @review-request-bg-gradient-start;
       border-color: @review-request-border-color;
       border-bottom-color: transparent;
@@ -535,6 +563,31 @@ a.mobile-actions-menu-label {
         border-right: 0;
       }
     }
+
+    .review-ui-box &.-is-active {
+      /*
+       * The active tab in review UIs has a slightly different color to match the
+       * review UI header color.
+       */
+       background-color: @review-ui-header-bg;
+    }
+
+    a {
+      color: black;
+      cursor: pointer;
+      display: block;
+      margin: 0;
+      line-height: @review-request-action-line-height;
+      text-decoration: none;
+      padding: @review-request-action-padding-vert
+               @review-request-action-padding-horiz-text;
+
+      .on-mobile-medium-screen-720({
+        /* Give some extra room for tapping. */
+        padding: @review-request-action-mobile-padding
+                 @review-request-action-padding-horiz-text;
+      });
+    }
   }
 }
 
diff --git a/reviewboard/templates/reviews/review_request_header.html b/reviewboard/templates/reviews/review_request_header.html
index ddb1510c88a556bc56c84f3d05e3a05b162c55b9..7328669f8a4e2560e0cb66202bd627f829cb5164 100644
--- a/reviewboard/templates/reviews/review_request_header.html
+++ b/reviewboard/templates/reviews/review_request_header.html
@@ -1,13 +1,16 @@
 {% load reviewtags %}
 
 <div class="review-request-header">
- <ul class="review-request-actions review-request-tabs">
+ <menu class="rb-c-review-request-tabs" role="menu">
 {%   for tab in tabs %}
-  <li class="review-request-action{% if tab.active or tab.url == request.path %} active{% endif %}">
-   <a href="{{tab.url}}">{{tab.text}}</a>
+  <li class="rb-c-review-request-tabs__tab{% if tab.active or tab.url == request.path %} -is-active{% endif %}"
+      role="presentation">
+   <a role="menuitem" href="{{tab.url}}"
+      {% if tab.active or tab.url == request.path %}aria-current="page"{% endif %}
+      >{{tab.text}}</a>
   </li>
 {%   endfor %}
- </ul>
+ </menu>
 
  <div class="review-request-actions-container">
   <ul class="review-request-actions review-request-actions-left">
