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()