diff --git a/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources.xaml b/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources.xaml
index 7cd762ebf3..692ee167f3 100644
--- a/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources.xaml
+++ b/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources.xaml
@@ -238,7 +238,7 @@
-
+
diff --git a/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources_perf2026.xaml b/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources_perf2026.xaml
index 39e8d87fee..4630d8d52e 100644
--- a/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources_perf2026.xaml
+++ b/controls/dev/AutoSuggestBox/AutoSuggestBox_themeresources_perf2026.xaml
@@ -174,7 +174,7 @@
-
+
diff --git a/controls/dev/CommonStyles/InteractionTests/CommonStylesTests.cs b/controls/dev/CommonStyles/InteractionTests/CommonStylesTests.cs
index b1ec55bdcd..c4e9686885 100644
--- a/controls/dev/CommonStyles/InteractionTests/CommonStylesTests.cs
+++ b/controls/dev/CommonStyles/InteractionTests/CommonStylesTests.cs
@@ -278,6 +278,40 @@ public void HyperlinkIsOffscreenTest()
}
}
+ [TestMethod]
+ [TestProperty("Description", "Verifies the TextBox inline clear (Delete) button is exposed to UIA so Voice Access can target it.")]
+ public void TextBoxClearButtonIsAccessibleTest()
+ {
+ using (var setup = new TestSetupHelper("TextControls Tests"))
+ {
+ Edit textBox = new Edit(FindElement.ByName("ClearButtonTextBox"));
+ Verify.IsNotNull(textBox, "The test TextBox should be found.");
+
+ // The clear (Delete) button is only shown while the TextBox is focused and non-empty.
+ Log.Comment("Focus the TextBox so the clear (Delete) button becomes visible.");
+ textBox.SetFocus();
+ Wait.ForIdle();
+
+ // The clear button (named "Delete") must be exposed to UIA (and therefore to Voice
+ // Access) rather than hidden with AccessibilityView=Raw. Verify it can be found as a
+ // child of the TextBox.
+ Button deleteButton = null;
+ foreach (UIObject elem in textBox.Children)
+ {
+ if (elem.Name.Equals("Delete"))
+ {
+ deleteButton = new Button(elem);
+ break;
+ }
+ }
+ Verify.IsNotNull(deleteButton, "The clear button should be exposed as a UIA element.");
+
+ Log.Comment("Invoke the clear button and verify that the text is cleared.");
+ deleteButton.InvokeAndWait();
+ Verify.AreEqual(string.Empty, textBox.GetText());
+ }
+ }
+
[TestMethod]
[TestProperty("Description", "Scrolls a vertical grouped GridView with Mandatory snap points and with the mouse-wheel.")]
public void ScrollGroupedGridViewWithMandatorySnapPointsTest()
diff --git a/controls/dev/CommonStyles/TestUI/TextControlsPage.xaml b/controls/dev/CommonStyles/TestUI/TextControlsPage.xaml
index afbd1e3b19..733712a687 100644
--- a/controls/dev/CommonStyles/TestUI/TextControlsPage.xaml
+++ b/controls/dev/CommonStyles/TestUI/TextControlsPage.xaml
@@ -26,7 +26,7 @@
-
+
diff --git a/controls/dev/CommonStyles/TextBox_themeresources.xaml b/controls/dev/CommonStyles/TextBox_themeresources.xaml
index 6934b64646..6ef4710db7 100644
--- a/controls/dev/CommonStyles/TextBox_themeresources.xaml
+++ b/controls/dev/CommonStyles/TextBox_themeresources.xaml
@@ -336,7 +336,7 @@
-
+
diff --git a/controls/dev/CommonStyles/TextBox_themeresources_perf2026.xaml b/controls/dev/CommonStyles/TextBox_themeresources_perf2026.xaml
index 8baf383f0b..72897c7087 100644
--- a/controls/dev/CommonStyles/TextBox_themeresources_perf2026.xaml
+++ b/controls/dev/CommonStyles/TextBox_themeresources_perf2026.xaml
@@ -290,7 +290,7 @@
-
+
diff --git a/controls/dev/NumberBox/InteractionTests/NumberBoxTests.cs b/controls/dev/NumberBox/InteractionTests/NumberBoxTests.cs
index b7a63cfa89..b89ad200e8 100644
--- a/controls/dev/NumberBox/InteractionTests/NumberBoxTests.cs
+++ b/controls/dev/NumberBox/InteractionTests/NumberBoxTests.cs
@@ -107,6 +107,44 @@ public void UpDownTest()
}
+ [TestMethod]
+ public void VerifyClearButtonIsAccessible()
+ {
+ using (var setup = new TestSetupHelper("NumberBox Tests"))
+ {
+ RangeValueSpinner numBox = FindElement.ByName("TestNumberBox");
+
+ ComboBox spinModeComboBox = FindElement.ByName("SpinModeComboBox");
+ spinModeComboBox.SelectItemByName("Inline");
+ Wait.ForIdle();
+
+ Log.Comment("Enter a value so that the clear (delete) button becomes visible.");
+ EnterText(numBox, "42");
+ Wait.ForIdle();
+
+ // The clear button (named "Delete") must be exposed to UIA (and therefore to Voice
+ // Access) rather than hidden with AccessibilityView=Raw. The DeleteButton is authored
+ // inside the inner TextBox's template, so its UIA peer is a child of the TextBox peer
+ // (a grandchild of the NumberBox), not a direct child of the NumberBox. Search the
+ // inner TextBox for it, separately from the Increase/Decrease spin buttons which are
+ // direct NumberBox children.
+ Edit edit = FindTextBox(numBox);
+ Verify.IsNotNull(edit, "The inner TextBox should be found.");
+
+ Button deleteButton = FindButton(edit, "Delete");
+ Verify.IsNotNull(deleteButton, "The clear button should be exposed as a UIA element.");
+
+ Button upButton = FindButton(numBox, "Increase");
+ Button downButton = FindButton(numBox, "Decrease");
+ Verify.IsNotNull(upButton, "The Increase spin button should be exposed.");
+ Verify.IsNotNull(downButton, "The Decrease spin button should be exposed.");
+
+ Log.Comment("Invoke the clear button and verify that the text is cleared.");
+ deleteButton.InvokeAndWait();
+ Verify.AreEqual(string.Empty, edit.GetText());
+ }
+ }
+
[TestMethod]
public void UpDownEnabledTest()
{
diff --git a/controls/dev/NumberBox/NumberBox.xaml b/controls/dev/NumberBox/NumberBox.xaml
index d70025ee36..4a844e2506 100644
--- a/controls/dev/NumberBox/NumberBox.xaml
+++ b/controls/dev/NumberBox/NumberBox.xaml
@@ -360,7 +360,7 @@
-
+
diff --git a/controls/dev/NumberBox/NumberBox_perf2026.xaml b/controls/dev/NumberBox/NumberBox_perf2026.xaml
index ac318960b3..e3f8f26369 100644
--- a/controls/dev/NumberBox/NumberBox_perf2026.xaml
+++ b/controls/dev/NumberBox/NumberBox_perf2026.xaml
@@ -312,7 +312,7 @@
-
+