anchor.diff:    void openMenuAndActivateFirstItem() {
       if (hasMenu) {
         activeModel.menu = menuItem.subMenu;
  +    }
  +    _viewModel.trigger();
  +  }
  +
  +  /// Sets the [activeModel.menu] and activates the last item in the menu.
  +  void openMenuAndActivateLastItem() {
  +    if (hasMenu) {
  +      activeModel.menu = menuItem.subMenu;
  +      activeModel.activateLast();
       }
       _viewModel.trigger();
     }
  
positive.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].
  
negative.code:   /// accessibility and improves with a11y navigation.
    @HostListener('keydown')
    void handleKeyDown(KeyboardEvent event) {
      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)) {
  