Osoby widzące mogą wzrokowo odczytać etykietę pola edycyjnego w programie. Osoby używające czytnikó ekranu takich jak NVDA muszą bazować na tym co jest im przeczytane.
W tym wpisie zaproponuję w jaki sposób można to poprawić w aplikacjach WPF (C#), tak aby czytnik ekranu odczytał etykietę przed przejściem do czytania pola edycyjnego.
Jeżęli nie wykonamy jakiś specjalnych zapisów przy tworzeniu aplikacji to NVDA przeczyta:
„Pole edycyjne” oraz zawartość tego pola jeżeli zostało wypełnione.
Jeżęli już są jakieś dane, to można domyślić się na ich podstawie co autor chce mieć w tym polu. Jeżeli nie ma tam żadnego tekstu to mamy problem 🙂
Aby temu zaradzić można wskazać która etykieta dotyczy danego pola edycyjnego. W ten sposób czytnik ekranu najpierw przeczyta etykietę a dopiero później zawartość pola.
AutomationProperties.LabeledBy="{Binding ElementName=LbZaladunekMiasto}"
Przykładowy kod XAML:
<DockPanel HorizontalAlignment="Stretch"> <Label Style="{StaticResource LabelkaPrzedPolemTekstowym}" Name="LbZaladunekMiasto" Content="Miasto"></Label> <dxe:TextEdit AutomationProperties.LabeledBy="{Binding ElementName=LbZaladunekMiasto}" Text="{Binding List.AdresZaladunku.Miasto, UpdateSourceTrigger=PropertyChanged}" /> </DockPanel>
Po takim zabiegu czytnik ekranu przeczyta:
„Miasto ” + „Pole edycyjne” + zawartość pola.
Niedowidzący z wielo letnim doświadczeniem w branży IT (zarządzanie projektami, analiza biznesowa, programowanie)