docs: function(ev) {
              // Ignore if the focus isn't on one of our items
              if (ev.target !== ev.currentTarget) {
                  return;
              }
  
              var ctrlKey = Garnish.isCtrlKeyPressed(ev);
              var shiftKey = ev.shiftKey;
  
              var anchor, $item;
  
              if (!this.settings.checkboxMode || !this.$focusable.length) {
                  anchor = ev.shiftKey ? this.last : this.first;
              }
              else {
                  anchor = $.inArray(this.$focusable[0], this.$items);
  
                  if (anchor === -1) {
                      anchor = 0;
                  }
              }
  
              // Ok, what are we doing here?
              switch (ev.keyCode) {
                  case Garnish.LEFT_KEY: {
                      ev.preventDefault();
  
                      // Select the last item if none are selected
                      if (this.first === null) {
                          if (Garnish.ltr) {
                              $item = this.getLastItem();
                          }
                          else {
                              $item = this.getFirstItem();
                          }
                      }
                      else {
                          if (ctrlKey) {
                              $item = this.getFurthestItemToTheLeft(anchor);
                          }
                          else {
                              $item = this.getItemToTheLeft(anchor);
                          }
                      }
  
                      break;
                  }
  
                  case Garnish.RIGHT_KEY: {
                      ev.preventDefault();
  
                      // Select the first item if none are selected
                      if (this.first === null) {
                          if (Garnish.ltr) {
                              $item = this.getFirstItem();
                          }
                          else {
                              $item = this.getLastItem();
                          }
                      }
                      else {
                          if (ctrlKey) {
                              $item = this.getFurthestItemToTheRight(anchor);
                          }
                          else {
                              $item = this.getItemToTheRight(anchor);
                          }
                      }
  
                      break;
                  }
  
                  case Garnish.UP_KEY: {
                      ev.preventDefault();
  
                      // Select the last item if none are selected
                      if (this.first === null) {
                          if (this.$focusable) {
                              $item = this.$focusable.prev();
                          }
  
                          if (!this.$focusable || !$item.length) {
                              $item = this.getLastItem();
                          }
                      }
                      else {
                          if (ctrlKey) {
                              $item = this.getFurthestItemAbove(anchor);
                          }
                          else {
                              $item = this.getItemAbove(anchor);
                          }
  
                          if (!$item) {
                              $item = this.getFirstItem();
                          }
                      }
  
                      break;
                  }
  
                  case Garnish.DOWN_KEY: {
                      ev.preventDefault();
  
                      // Select the first item if none are selected
                      if (this.first === null) {
                          if (this.$focusable) {
                              $item = this.$focusable.next();
                          }
  
                          if (!this.$focusable || !$item.length) {
                              $item = this.getFirstItem();
                          }
                      }
                      else {
                          if (ctrlKey) {
                              $item = this.getFurthestItemBelow(anchor);
                          }
                          else {
                              $item = this.getItemBelow(anchor);
                          }
  
                          if (!$item) {
                              $item = this.getLastItem();
                          }
                      }
  
                      break;
                  }
  
                  case Garnish.SPACE_KEY: {
                      if (!ctrlKey && !shiftKey) {
                          ev.preventDefault();
  
                          if (this.isSelected(this.$focusable)) {
                              if (this._canDeselect(this.$focusable)) {
                                  this.deselectItem(this.$focusable);
                              }
                          }
                          else {
                              this.selectItem(this.$focusable, true);
                          }
                      }
  
                      break;
                  }
  
                  case Garnish.A_KEY: {
                      if (ctrlKey) {
                          ev.preventDefault();
                          this.selectAll();
                      }
  
                      break;
                  }
              }
  
              // Is there an item queued up for focus/selection?
              if ($item && $item.length) {
                  if (!this.settings.checkboxMode) {
                      // select it
                      if (this.first !== null && ev.shiftKey) {
                          this.selectRange($item);
                      }
                      else {
                          this.deselectAll();
                          this.selectItem($item, true);
                      }
                  }
                  else {
                      // just set the new item to be focusable
                      this.setFocusableItem($item);
                      $item.focus();
                      this.$focusedItem = $item;
                      this.trigger('focusItem', {item: $item});
                  }
              }
          }