anchor.diff:    /// accessibility and improves with a11y navigation.
     @HostListener('keydown')
     void handleKeyDown(KeyboardEvent event) {
  -    if (event.keyCode == KeyCode.DOWN || event.keyCode == KeyCode.UP) {
  -      openMenuAndActivateFirstItem();
  -    }
  -  }
  -
  -  /// Keypress callback is used to handle Enter and Space keys.
  +    switch (event.keyCode) {
  +      case KeyCode.UP:
  +        openMenuAndActivateLastItem();
  +        break;
  +      case KeyCode.DOWN:
  +        openMenuAndActivateFirstItem();
  +        break;
  +    }
  +  }
  +
  +  /// Keypress callback is used to handle ENTER and SPACE keys.
     @HostListener('keypress')
     void handleKeyPress(KeyboardEvent event) {
       if (event.keyCode == KeyCode.ENTER || isSpaceKey(event)) {
  
positive.code:   void openMenuAndActivateFirstItem() {
      if (hasMenu) {
        activeModel.menu = menuItem.subMenu;
      }
      _viewModel.trigger();
    }
  
negative.code: 
    bool get hasIcons => _viewModel.hasIcons;
  
    /// Keypress callback is used to handle UP and DOWN keys.
    ///
    /// Unprintable keys use this listener while printable keys
    /// use [handleKeyPress].
  