Hallo allerseits,
ich möchte ein kleines WPF Testprogramm entwickeln, welches mit Screenreadern welche z.B. von blinden Usern als Bedienhilfe verwendet werden, bei dem der Name und ein Hilfetext des Fokusierten Controls vorgelesen werden.
Dazu verwende ich die AutomationProperties. Allerdings scheint NVDA ausschließlich den Title meines Windows vorzulesen, und den Focus auf den anderen Controls zu ignorieren.
Hat zufällig jemand Erfahrung auf dem Gebiet oder eine Ahnung, woran das liegen könnte?
<Window x:Class="AutomationPropertiesTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="394" Width="307"
>
<Grid>
<Label Content="Summand" Height="28" HorizontalAlignment="Left" Margin="12,8,0,0" Name="label1" VerticalAlignment="Top" />
<Label Content="Summand" Height="28" HorizontalAlignment="Left" Margin="12,43,0,0" Name="label2" VerticalAlignment="Top" />
<Label Content="Summe" Height="28" HorizontalAlignment="Left" Margin="12,125,0,0" Name="label3" VerticalAlignment="Top" />
<Rectangle Height="2" HorizontalAlignment="Left" Margin="0,80,0,0" Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="336" />
<Button x:Name="btnBerechnen" Content="Berechnen" AutomationProperties.AutomationId="MainWindow_Button_Berechnen" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summe Berechnen" AutomationProperties.HelpText="Mit diesem Knopf starten Sie die Berechnung" Height="23" HorizontalAlignment="Left" Margin="12,88,0,0" VerticalAlignment="Top" Width="261" />
<TextBox x:Uid="summand 1" AutomationProperties.AutomationId="MainWindow_TextBox_Summand1" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summand 1" AutomationProperties.HelpText="Bitte geben Sie den ersten Summanden ein" Height="23" HorizontalAlignment="Left" Margin="82,10,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
<TextBox AutomationProperties.AutomationId="MainWindow_TextBox_Summand2" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summand 2" AutomationProperties.HelpText="Bitte geben Sie den zweiten Summanden ein" Height="23" HorizontalAlignment="Left" Margin="82,43,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />
<TextBox AutomationProperties.AutomationId="MainWindow_TextBox_Summe" AutomationProperties.IsRequiredForForm="False" AutomationProperties.Name="Summe" AutomationProperties.HelpText="Hier steht das Ergebnis" Height="26" HorizontalAlignment="Left" Margin="82,125,0,0" Name="textBox3" VerticalAlignment="Top" Width="120" />
</Grid>
</Window>
Danke schonmal 😃
Steav
Habe die Antwort gefunden...
aus irgendeinem Grund liest NVDA die Texte nicht, wenn man das Programm aus Visual Studio heraus startet. Startet man die .exe direkt funktioniert es einwandfrei.
Für Hintergründe, warum das so ist wäre ich trotzdem noch dankbar =)
Das lustige ist eigentlich, dass wenn man nach "nvda wpf" sucht, die ersten paar Treffer Bugreports sind 😉 So super ausgereift scheint es wohl nicht zu sein.
Der Grund warum es aus VS direkt nicht geht, dürfte wohl der Hostingprozess des Debuggers sein. Warum das dann nicht tut, weiß ich auch nicht, aber das ist der einzige Unterschied.
Baka wa shinanakya naoranai.
Mein XING Profil.