fix: fix accessibility for dynamic generated form.

This commit is contained in:
Dong Bin
2025-01-10 21:49:56 +08:00
parent 47b39b9e74
commit b707a2ebda
6 changed files with 90 additions and 4 deletions

View File

@@ -26,6 +26,24 @@ public class FormAccessibilityTests
Assert.False(form.NameBox.IsFocused);
Assert.True(form.EmailBox.IsFocused);
}
[AvaloniaFact]
public void Static_Form_With_FormItem_Accessible()
{
var window = new Window();
var form = new StaticForm();
window.Content = form;
window.Show();
Assert.False(form.NameBox.IsFocused);
Assert.False(form.EmailBox.IsFocused);
window.KeyPressQwerty(PhysicalKey.N, RawInputModifiers.Alt);
Assert.True(form.NameBox.IsFocused);
Assert.False(form.EmailBox.IsFocused);
window.KeyPressQwerty(PhysicalKey.E, RawInputModifiers.Alt);
Assert.False(form.NameBox.IsFocused);
Assert.True(form.EmailBox.IsFocused);
}
[AvaloniaFact]
public void Dynamic_Form_Inner_Control_Accessible()

View File

@@ -6,7 +6,7 @@
mc:Ignorable="d" d:DesignWidth="800"
d:DesignHeight="450"
x:Class="HeadlessTest.Ursa.Controls.FormTests.AccessibilityTests.StaticForm">
<u:Form>
<u:Form LabelWidth="200" LabelPosition="Left" LabelAlignment="Left">
<TextBox Name="NameBox" Width="300" u:FormItem.Label="_Name" />
<TextBox Name="EmailBox" Width="300" u:FormItem.Label="_Email" />
</u:Form>

View File

@@ -0,0 +1,17 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:u="https://irihi.tech/ursa"
mc:Ignorable="d" d:DesignWidth="800"
d:DesignHeight="450"
x:Class="HeadlessTest.Ursa.Controls.FormTests.AccessibilityTests.StaticForm2">
<u:Form LabelWidth="200" LabelPosition="Left" LabelAlignment="Left">
<u:FormItem Label="_Name">
<TextBox Name="NameBox" Width="300" />
</u:FormItem>
<u:FormItem Label="_Email">
<TextBox Name="EmailBox" Width="300" />
</u:FormItem>
</u:Form>
</UserControl>

View File

@@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace HeadlessTest.Ursa.Controls.FormTests.AccessibilityTests;
public partial class StaticForm2 : UserControl
{
public StaticForm2()
{
InitializeComponent();
}
}