docs: function (event) {
              var domUtil = ariaUtilsDom;
  
              var inputField = this.getTextInputField();
              var inputFieldValue = inputField.value;
              var inputFieldIsEmpty = (ariaUtilsString.trim(inputFieldValue) === "");
  
              switch (event.keyCode) {
  
                  case event.KC_ARROW_LEFT :
                      if (this.hasInsertedOptions()) {
  
                          if (this.isInputFieldFocused()) {
                              var position = ariaUtilsCaret.getPosition(inputField);
                              if (position.start === 0 && position.end === 0) {
                                  event.preventDefault();
  
                                  // Close the dropdown in order not to mess with focus events and so on
                                  this._closeDropdown();
  
                                  // Highlight last option
                                  this.highlightOption(this.insertedOptionsCount());
                                  break;
                              }
                          }
  
                          if (this.isInHighlightedMode()) {
                              event.preventDefault();
  
                              this.__navigateLeftInHighlightedMode();
                              break;
                          }
                      }
  
                      break;
  
                  case event.KC_ARROW_RIGHT :
                      if (this.isInHighlightedMode()) {
                          event.preventDefault();
  
                          this.__navigateRightInHighlightedMode();
                      }
  
                      break;
  
                  case event.KC_TAB :
                      if (this.isInputFieldFocused()) {
                          if (inputFieldIsEmpty) {
                              if (inputField.nextSibling != null) {
                                  event.preventDefault();
  
                                  this._makeInputFieldLastChild();
                                  this.setHelpText(false);
                                  inputField.focus();
                              }
                          }
                      }
  
                      break;
  
                  case event.KC_BACKSPACE :
                      if (inputFieldIsEmpty) {
                          var highlightedElementIndex = this.getHighlightedOptionIndex();
                          var highlightedElement = this.getHighlightedOption();
  
                          if (highlightedElement) {
                              var highlightedElementLabel = highlightedElement.textContent
                                      || highlightedElement.innerText;
                              domUtil.removeElement(highlightedElement);
  
                              var newIndex = highlightedElementIndex - 1;
                              if (newIndex >= 1) {
                                  this.highlightOption(newIndex);
                              } else {
                                  if (this.insertedOptionsCount() > 0) {
                                      this.highlightOption(1);
                                  } else {
                                      this._enterInputField();
                                  }
                              }
  
                              this._removeValue(highlightedElementLabel);
                          } else {
                              var previousSiblingElement = domUtil.getPreviousSiblingElement(inputField);
                              if (previousSiblingElement) {
                                  var previousSiblingLabel = previousSiblingElement.firstChild.textContent
                                          || previousSiblingElement.firstChild.innerText;
                                  domUtil.removeElement(previousSiblingElement);
                                  this._removeValue(previousSiblingLabel);
                              }
                          }
                          event.preventDefault();
                      }
  
                      break;
  
                  case event.KC_DELETE :
                      if (inputFieldIsEmpty) {
                          var highlightedElementIndex = this.getHighlightedOptionIndex();
                          var highlightedElement = this.getHighlightedOption();
  
                          if (highlightedElement) {
                              var highlightedElementLabel = highlightedElement.textContent
                                      || highlightedElement.innerText;
                              domUtil.removeElement(highlightedElement);
  
                              if (highlightedElementIndex <= this.insertedOptionsCount()) {
                                  this.highlightOption(highlightedElementIndex);
                              } else {
                                  this._enterInputField();
                              }
  
                              this._removeValue(highlightedElementLabel);
                          }
                      }
  
                      break;
              }
  
              if (this.isInputFieldFocused()) {
                  this.$AutoComplete._dom_onkeydown.call(this, event);
              }
          }