diff --git a/src/System.Windows.Forms/System/Windows/Forms/Controls/ToolStrips/ToolStripItem.cs b/src/System.Windows.Forms/System/Windows/Forms/Controls/ToolStrips/ToolStripItem.cs index cd1b49f055c..676cbb28b10 100644 --- a/src/System.Windows.Forms/System/Windows/Forms/Controls/ToolStrips/ToolStripItem.cs +++ b/src/System.Windows.Forms/System/Windows/Forms/Controls/ToolStrips/ToolStripItem.cs @@ -573,12 +573,12 @@ public Rectangle ContentRectangle /// Determines whether or not the item can be selected. /// [Browsable(false)] - public virtual bool CanSelect => Enabled; + public virtual bool CanSelect => true; /// /// Usually the same as can select, but things like the control box in an MDI window are exceptions /// - internal virtual bool CanKeyboardSelect => CanSelect; + internal virtual bool CanKeyboardSelect => CanSelect && Enabled; /// /// Occurs when the control is clicked. @@ -3158,7 +3158,7 @@ internal void Select(bool forceRaiseAccessibilityFocusChanged) forceRaiseAccessibilityFocusChanged = true; } - if (forceRaiseAccessibilityFocusChanged) + if (forceRaiseAccessibilityFocusChanged && Enabled) { bool accessibilityIsOn = IsAccessibilityObjectCreated || // When ToolStripItem is selected automatically for the first time diff --git a/src/test/unit/System.Windows.Forms/System/Windows/Forms/ToolStripButtonTests.cs b/src/test/unit/System.Windows.Forms/System/Windows/Forms/ToolStripButtonTests.cs index 55a66945e8d..b22bc991dd7 100644 --- a/src/test/unit/System.Windows.Forms/System/Windows/Forms/ToolStripButtonTests.cs +++ b/src/test/unit/System.Windows.Forms/System/Windows/Forms/ToolStripButtonTests.cs @@ -1040,8 +1040,8 @@ public void ToolStripButton_CreateAccessibilityInstance_InvokeCheckOnClick_Retur [WinFormsTheory] [InlineData(true, CheckState.Checked, AccessibleStates.Focusable | AccessibleStates.Checked)] [InlineData(true, CheckState.Indeterminate, AccessibleStates.Focusable | AccessibleStates.Checked)] - [InlineData(false, CheckState.Checked, AccessibleStates.None)] - [InlineData(false, CheckState.Indeterminate, AccessibleStates.None)] + [InlineData(false, CheckState.Checked, AccessibleStates.Unavailable)] + [InlineData(false, CheckState.Indeterminate, AccessibleStates.Unavailable)] public void ToolStripButton_CreateAccessibilityInstance_InvokeChecked_ReturnsExpected(bool enabled, CheckState checkState, AccessibleStates expectedState) { using SubToolStripButton item = new() @@ -1058,7 +1058,7 @@ public void ToolStripButton_CreateAccessibilityInstance_InvokeChecked_ReturnsExp [WinFormsTheory] [InlineData(true, AccessibleStates.Focused | AccessibleStates.HotTracked | AccessibleStates.Focusable)] - [InlineData(false, AccessibleStates.None)] + [InlineData(false, AccessibleStates.Unavailable | AccessibleStates.Focused)] public void ToolStripButton_CreateAccessibilityInstance_InvokeSelected_ReturnsExpected(bool enabled, AccessibleStates expectedState) { using SubToolStripButton item = new()