Udostępnij przez


Omówienie ułatwień dostępu

Ten artykuł zawiera omówienie pojęć i technologii związanych ze scenariuszami ułatwień dostępu dla aplikacji systemu Windows.

Ułatwienia dostępu i twoja aplikacja

Istnieje wiele możliwych niepełnosprawności lub upośledzonych, w tym ograniczeń dotyczących mobilności, wzroku, percepcji kolorów, słuchu, mowy, poznania i umiejętności czytania i pisania. Jednak większość wymagań można spełnić, postępując zgodnie z wytycznymi oferowanymi tutaj. Oznacza to zapewnienie:

  • Obsługa interakcji z klawiaturą i czytników zawartości ekranu.
  • Obsługa dostosowywania przez użytkownika, takich jak czcionka, ustawienia powiększenia, kolor i ustawienia wysokiego kontrastu.
  • Alternatywy lub suplementy dla części interfejsu użytkownika.

Kontrolki języka XAML zapewniają wbudowaną obsługę klawiatury i obsługę technologii pomocniczych, takich jak czytniki zawartości ekranu, które korzystają z platform ułatwień dostępu, które już obsługują aplikacje platformy uniwersalnej systemu Windows, kod HTML i inne technologie interfejsu użytkownika. Ta wbudowana obsługa umożliwia podstawowy poziom ułatwień dostępu, który można dostosować z bardzo małą ilością pracy, ustawiając tylko kilka właściwości. Jeśli tworzysz własne niestandardowe komponenty i kontrolki XAML, możesz również dodać podobną obsługę tych kontrolek, korzystając z koncepcji tzw. elementu równorzędnego automatyzacji .

Ponadto powiązania danych, stylu i funkcji szablonu ułatwiają implementowanie obsługi dynamicznych zmian w ustawieniach wyświetlania i tekście alternatywnych interfejsów użytkownika.

Automatyzacja interfejsu użytkownika

Obsługa ułatwień dostępu pochodzi głównie ze zintegrowanej obsługi struktury automatyzacji interfejsu użytkownika firmy Microsoft. Ta obsługa jest zapewniana za pomocą klas bazowych i wbudowanego zachowania implementacji klasy dla typów elementów sterujących oraz reprezentacji interfejsu API dostawcy automatyzacji interfejsu użytkownika. Każda klasa sterowania używa koncepcji automatyzacji interfejsu użytkownika elementów równorzędnych i wzorców automatyzacji, które zgłaszają rolę i zawartość kontrolki klientom automatyzacji interfejsu użytkownika. Aplikacja jest traktowana jako okno najwyższego poziomu przez automatyzację interfejsu użytkownika, a za pośrednictwem struktury automatyzacji interfejsu użytkownika wszystkie zawartości istotne dla ułatwień dostępu w tym oknie aplikacji są dostępne dla klienta automatyzacji interfejsu użytkownika. Aby uzyskać więcej informacji na temat automatyzacji interfejsu użytkownika, zobacz Omówienie automatyzacji interfejsu użytkownika.

Technologia asystacyjna

Wiele potrzeb dotyczących ułatwień dostępu użytkowników jest świadczona przez produkty technologiczne instalowane przez użytkownika lub przez narzędzia i ustawienia udostępniane przez system operacyjny. Obejmuje to funkcje, takie jak czytniki ekranu, powiększenie ekranu i ustawienia dużego kontrastu.

Produkty technologii pomocniczych obejmują szeroką gamę oprogramowania i sprzętu. Produkty te działają za pośrednictwem standardowego interfejsu klawiaturowego i struktur ułatwień dostępu, które zgłaszają informacje o zawartości i strukturze interfejsu użytkownika do czytników zawartości ekranu i innych technologii pomocniczych. Przykłady produktów technologii pomocniczych obejmują:

  • Klawiatura ekranowa, która umożliwia użytkownikom używanie wskaźnika zamiast klawiatury do wpisywania tekstu.
  • Oprogramowanie do rozpoznawania głosu, które konwertuje słowa mówione na tekst wpisany.
  • Czytniki zawartości ekranu, które konwertują tekst na słowa mówione lub inne formy, takie jak Braille.
  • Czytnik ekranu Narrator, który jest integralną częścią systemu Windows. Narrator ma tryb dotykowy, który może wykonywać zadania odczytu ekranu przez przetwarzanie gestów dotykowych, jeśli klawiatura nie jest dostępna.
  • Programy lub ustawienia, które dostosowują ekran lub jego obszary, na przykład motywy o wysokim kontraście, ustawienia punktów na cal (dpi) wyświetlacza lub narzędzie lupa.

Aplikacje, które mają dobrą obsługę klawiatury i czytnika zawartości ekranu, zwykle działają dobrze z różnymi produktami technologii pomocniczych. W wielu przypadkach aplikacja platformy UWP współpracuje z tymi produktami bez dodatkowej modyfikacji informacji lub struktury. Można jednak zmodyfikować niektóre ustawienia optymalnego środowiska ułatwień dostępu lub zaimplementować dodatkową obsługę.

Niektóre opcje, których można użyć do testowania podstawowych scenariuszy ułatwień dostępu z technologiami pomocniczymi, są wymienione w artykule Testowanie ułatwień dostępu.

Obsługa czytnika zawartości ekranu i podstawowe informacje o ułatwieniach dostępu

Czytniki zawartości ekranu zapewniają dostęp do tekstu w aplikacji przez renderowanie go w innym formacie, takim jak język mówiony lub dane wyjściowe Braille'a. Dokładne zachowanie czytnika zawartości ekranu zależy od oprogramowania i jego konfiguracji.

Na przykład niektórzy czytniki zawartości ekranu odczytują cały interfejs użytkownika aplikacji, gdy użytkownik uruchamia lub przełącza się do wyświetlanej aplikacji, co umożliwia użytkownikowi odbieranie całej dostępnej zawartości informacyjnej przed podjęciem próby nawigowania po niej. Niektóre czytniki ekranu odczytują również tekst skojarzony z poszczególnymi kontrolkami, gdy skoncentrują się na nim podczas nawigacji za pomocą klawisza Tab. Dzięki temu użytkownicy mogą orientować się w miarę przechodzenia między kontrolkami wejściowymi aplikacji. Narrator jest przykładem czytnika zawartości ekranu, który zapewnia oba zachowania w zależności od wyboru użytkownika.

Najważniejsze informacje, których potrzebuje czytnik zawartości ekranu lub jakiejkolwiek innej technologii pomocniczej, aby ułatwić użytkownikom zrozumienie lub nawigowanie po aplikacji, to dostępna nazwa dla części aplikacji. W wielu przypadkach kontrolka lub element ma już dostępną nazwę, która jest obliczana na podstawie innych wartości właściwości, które zostały podane w inny sposób. Najczęstszym przypadkiem użycia już obliczonej nazwy jest element, który obsługuje i wyświetla tekst wewnętrzny. W przypadku innych elementów czasami trzeba uwzględnić inne sposoby zapewnienia dostępnej nazwy, postępując zgodnie z najlepszymi rozwiązaniami dotyczącymi struktury elementów. Czasami należy podać nazwę, która jest jawnie przeznaczona jako nazwa ułatwiająca dostępność aplikacji. Aby uzyskać listę liczby tych wartości obliczeniowych, które działają we wspólnych elementach interfejsu użytkownika, i aby uzyskać więcej informacji o nazwach dostępnych ogólnie, zobacz Podstawowe informacje o ułatwieniach dostępu.

Dostępnych jest kilka innych właściwości automatyzacji (w tym właściwości klawiatury opisane w następnej sekcji). Jednak nie wszystkie czytniki zawartości ekranu obsługują wszystkie właściwości automatyzacji. Ogólnie rzecz biorąc, należy ustawić wszystkie odpowiednie właściwości automatyzacji i przetestować, aby zapewnić najszerszą możliwą obsługę czytników zawartości ekranu.

Obsługa klawiatury

Aby zapewnić dobrą obsługę klawiatury, należy upewnić się, że każda część aplikacji może być używana z klawiaturą. Jeśli aplikacja używa głównie standardowych kontrolek i nie korzysta z żadnych kontrolek niestandardowych, to już prawie gotowe. Podstawowy model sterowania XAML zapewnia wbudowaną obsługę klawiatury, w tym nawigację na kartach, wprowadzanie tekstu i obsługę specyficznych dla kontrolek. Elementy, które służą jako kontenery układu (takie jak panele), używają kolejności układu do ustanowienia domyślnej kolejności tabulacji. Ta kolejność jest często prawidłową kolejnością tabulacji, która ma być używana dla dostępnej reprezentacji interfejsu użytkownika. Jeśli używasz kontrolek ListBox i GridView do wyświetlania danych, zapewniają one wbudowaną nawigację strzałki. Lub jeśli używasz kontrolki przycisk , obsługuje on już Spacja lub Enter na potrzeby aktywacji przycisku.

Aby uzyskać więcej informacji na temat wszystkich aspektów obsługi klawiatury, w tym kolejności tabulacji oraz aktywacji lub nawigacji opartej na klawiszach, zobacz dostępność klawiatury.

Multimedia i napisy

Zazwyczaj nośniki audiowizualne są wyświetlane za pośrednictwem obiektu MediaElement . Do kontrolowania odtwarzania multimediów można użyć interfejsów API MediaElement. W celach ułatwień dostępu podaj kontrolki, które umożliwiają użytkownikom odtwarzanie, wstrzymywanie i zatrzymywanie multimediów zgodnie z potrzebami. Czasami nośnik zawiera dodatkowe składniki przeznaczone do ułatwień dostępu, takie jak napisy lub alternatywne ścieżki dźwiękowe, które zawierają opisy narracji.

Tekst z ułatwieniami dostępu

Trzy główne aspekty tekstu są istotne dla ułatwień dostępu:

  • Narzędzia muszą określić, czy tekst ma być odczytywany jako część przeglądania sekwencji tabulacji, czy tylko jako część ogólnej reprezentacji dokumentu. Możesz pomóc w kontrolowaniu tej determinacji, wybierając odpowiedni element do wyświetlania tekstu lub dostosowując właściwości tych elementów tekstu. Każdy element tekstowy ma określony cel i ten cel często ma odpowiednią rolę automatyzacji interfejsu użytkownika. Użycie nieprawidłowego elementu może spowodować zgłaszanie niewłaściwej roli do automatyzacji interfejsu użytkownika i powodować dezorientację dla użytkownika technologii wspomagających.
  • Wielu użytkowników ma ograniczenia wzroku, które utrudniają im odczytywanie tekstu, chyba że ma odpowiedni kontrast w tle. Wpływ na użytkownika nie jest intuicyjny dla projektantów aplikacji, którzy nie mają tego ograniczenia wzroku. Na przykład w przypadku użytkowników daltonistów, niewłaściwy wybór kolorów w projekcie może uniemożliwić niektórym czytelnikom odczytywanie tekstu. Zalecenia dotyczące ułatwień dostępu, które zostały pierwotnie wykonane dla zawartości internetowej, definiują standardy kontrastu, które mogą również uniknąć tych problemów w aplikacjach. Aby uzyskać więcej informacji, zobacz Wymagania dotyczące tekstu dostępnego.
  • Wielu użytkowników ma trudności z czytaniem tekstu, który jest po prostu zbyt mały. Możesz zapobiec temu problemowi, sprawiając, że tekst w interfejsie użytkownika twojej aplikacji będzie odpowiednio duży od samego początku. Jednak jest to trudne w przypadku aplikacji, które wyświetlają duże ilości tekstu lub tekstu przeplatane innymi elementami wizualnymi. W takich przypadkach upewnij się, że aplikacja prawidłowo współdziała z funkcjami systemu, które mogą skalować wyświetlacz, dzięki czemu każdy tekst w aplikacjach jest skalowany razem z nim. (Niektórzy użytkownicy zmieniają wartości dpi jako opcję ułatwień dostępu. Ta opcja jest dostępna w Tworzenie elementów na ekranie większym w ułatwienia dostępu, która przekierowuje do interfejsu użytkownika panelu sterowania w celu wyglądu i personalizacji / wyświetlanie).

Obsługa motywów o wysokim kontraście

Kontrolki interfejsu użytkownika używają wizualnej reprezentacji zdefiniowanej jako część słownika zasobów XAML motywów. Co najmniej jeden z tych motywów jest używany, gdy system jest ustawiony na duży kontrast. Gdy użytkownik zmieni się na duży kontrast, wyszukując odpowiedni motyw ze słownika zasobów dynamicznie, wszystkie kontrolki interfejsu użytkownika będą również używać odpowiedniego motywu o wysokim kontraście. Upewnij się, że motywy o wysokim kontraście nie zostały wyłączone poprzez określenie jawnego stylu lub użycie innej techniki stylizacji, która uniemożliwia ich ładowanie i zastępowanie wprowadzonych przez Ciebie zmian stylu. Aby uzyskać więcej informacji, zapoznaj się z motywami o wysokim kontraście .

Projektowanie alternatywnego interfejsu użytkownika

Podczas projektowania aplikacji zastanów się, jak mogą być używane przez osoby z ograniczoną mobilnością, wizją i słuchem. Ponieważ produkty technologii pomocniczej korzystają z standardowego interfejsu użytkownika, szczególnie ważne jest zapewnienie dobrej obsługi klawiatury i czytnika ekranu, nawet jeśli nie wprowadzisz żadnych innych zmian w zakresie ułatwień dostępu.

W wielu przypadkach można przekazać podstawowe informacje przy użyciu wielu technik, aby poszerzyć odbiorców. Na przykład możesz wyróżnić informacje przy użyciu zarówno ikony, jak i koloru, aby ułatwić użytkownikom z daltonizmem, oraz wyświetlać alerty wizualne wraz z efektami dźwiękowymi, aby pomóc użytkownikom niesłyszącym lub niedosłyszącym.

W razie potrzeby można podać alternatywne, dostępne elementy interfejsu użytkownika, które całkowicie usuwają elementy bezznaczności i animacje oraz zapewniają inne uproszczenia, aby usprawnić środowisko użytkownika. Poniższy przykład kodu pokazuje, jak wyświetlić jedno wystąpienie UserControl zamiast innego w zależności od ustawienia użytkownika.

XAML

<StackPanel x:Name="LayoutRoot" Background="White">

  <CheckBox x:Name="ShowAccessibleUICheckBox" Click="ShowAccessibleUICheckBox_Click">
    Show Accessible UI
  </CheckBox>

  <UserControl x:Name="ContentBlock">
    <local:ContentPage/>
  </UserControl>

</StackPanel>

Visual Basic

Private Sub ShowAccessibleUICheckBox_Click(ByVal sender As Object,
    ByVal e As RoutedEventArgs)

    If (ShowAccessibleUICheckBox.IsChecked.Value) Then
        ContentBlock.Content = New AccessibleContentPage()
    Else
        ContentBlock.Content = New ContentPage()
    End If
End Sub

C#

private void ShowAccessibleUICheckBox_Click(object sender, RoutedEventArgs e)
{
    if ((sender as CheckBox).IsChecked.Value)
    {
        ContentBlock.Content = new AccessibleContentPage();
    }
    else
    {
        ContentBlock.Content = new ContentPage();
    }
}

Weryfikacja i publikowanie

Aby uzyskać więcej informacji na temat deklaracji ułatwień dostępu i publikowania aplikacji, zobacz Ułatwienia dostępu w sklepie.

Uwaga / Notatka

Deklarowanie aplikacji jako dostępnej jest istotne tylko dla Sklepu Microsoft.

Obsługa technologii pomocniczych w kontrolkach niestandardowych

Podczas tworzenia niestandardowej kontrolki zalecamy również zaimplementowanie lub rozszerzenie co najmniej jednej z podklas AutomationPeer w celu zapewnienia obsługi ułatwień dostępu. W niektórych przypadkach, o ile używasz tej samej klasy partnerskiej, co podstawowa klasa kontrolna, obsługa automatyzacji dla klasy pochodnej jest odpowiednia na poziomie podstawowym. Niemniej jednak powinieneś to przetestować, a wdrożenie równorzędnego komponentu nadal jest zalecane jako najlepsza praktyka, aby ten komponent mógł poprawnie zgłaszać nazwę klasy Twojej nowej klasy kontrolnej. Zaimplementowanie niestandardowego interfejsu automatyzacji obejmuje kilka kroków. Aby uzyskać więcej informacji, zobacz niestandardowe elementy automatyzacji.

Obsługa technologii wspomagających w aplikacjach obsługujących międzyoperacyjność XAML/Microsoft DirectX

Zawartość Microsoft DirectX, hostowana w interfejsie użytkownika XAML (przy użyciu SwapChainPanel lub SurfaceImageSource), nie jest dostępna domyślnie. Przykład międzyoperacyjności XAML SwapChainPanel DirectX pokazuje, jak utworzyć rówieśników automatyzacji interfejsu użytkownika dla hostowanej zawartości DirectX. Ta technika sprawia, że hostowana zawartość jest dostępna za pośrednictwem automatyzacji interfejsu użytkownika.

Przykłady

Wskazówka

Otwórz aplikację Galeria WinUI 3 i zapoznaj się z następującymi zasadami ułatwień dostępu w działaniu:

Aplikacja z galerii WinUI 3 zawiera interaktywne przykłady większości kontrolek, funkcji i funkcji interfejsu WinUI 3. Pobierz aplikację ze Sklepu Microsoft lub pobierz kod źródłowy w witrynie GitHub