Udostępnij za pośrednictwem


Tworzenie aplikacji z ułatwieniami dostępu za pomocą właściwości semantycznych

Semantyka ułatwień dostępu dotyczy tworzenia środowisk, które sprawiają, że aplikacje są integracyjne dla osób korzystających z technologii w wielu środowiskach i podejście do interfejsu użytkownika z wieloma potrzebami i środowiskami. W wielu sytuacjach wymagania prawne dotyczące ułatwień dostępu mogą stanowić impuls dla deweloperów do rozwiązywania problemów z ułatwieniami dostępu. Niezależnie od tego zaleca się tworzenie aplikacji inkluzywnych i dostępnych, aby aplikacje docierały do największych możliwych odbiorców.

Wytyczne dotyczące ułatwień dostępu do zawartości internetowej (WCAG) to globalny standard ułatwień dostępu i test porównawczy prawny dla sieci Web i urządzeń przenośnych. Te wytyczne opisują różne sposoby, w jakie aplikacje mogą być bardziej zrozumiałe, czytelne, zrozumiałe i niezawodne dla wszystkich.

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.

Czytniki zawartości ekranu zazwyczaj zawierają opisy kontrolek wyświetlanych na ekranie. Te opisy ułatwiają użytkownikom przechodzenie przez aplikację i udostępnianie odwołań do kontrolek, takich jak obrazy, które nie mają żadnych danych wejściowych ani tekstowych. Czytniki ekranu są często kontrolowane za pomocą gestów na ekranie dotykowym, klawiaturze lub klawiaturze. Aby uzyskać informacje na temat włączania czytników zawartości ekranu, zobacz Włączanie czytników zawartości ekranu.

Systemy operacyjne mają własne czytniki zawartości ekranu z własnym unikatowym zachowaniem i konfiguracją. Na przykład większość czytników zawartości ekranu odczytuje tekst skojarzony z kontrolką po odebraniu fokusu, umożliwiając użytkownikom orientację podczas przechodzenia przez aplikację. Jednak niektóre czytniki zawartości ekranu mogą również odczytywać cały interfejs użytkownika aplikacji po wyświetleniu strony, co umożliwia użytkownikowi odbieranie całej dostępnej zawartości informacyjnej strony przed podjęciem próby nawigowania po niej.

Większość czytników zawartości ekranu automatycznie odczytuje dowolny tekst skojarzony z kontrolką, która otrzymuje fokus ułatwień dostępu. Oznacza to, że kontrolki, takie jak Label lub Button, z zestawem Text właściwości będą dostępne dla użytkownika. Jednak , , ImageButtonActivityIndicatori inne mogą nie znajdować się w drzewie ułatwień dostępu, Imageponieważ żaden tekst nie jest z nimi skojarzony.

Interfejs użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) obsługuje dwa podejścia do zapewniania dostępu do środowiska ułatwień dostępu podstawowej platformy. Właściwości semantyczne to podejście .NET MAUI do udostępniania wartości ułatwień dostępu w aplikacjach i jest zalecanym podejściem. Właściwości automatyzacji to podejście platformy Xamarin.Forms do udostępniania wartości ułatwień dostępu w aplikacjach i zastąpione przez właściwości semantyczne. W obu przypadkach domyślna kolejność ułatwień dostępu kontrolek jest taka sama, w jakiej są one wyświetlane w języku XAML lub dodawane do układu. Jednak różne układy mogą mieć dodatkowe czynniki wpływające na kolejność ułatwień dostępu. Na przykład kolejność StackLayout ułatwień dostępu elementu jest również oparta na jego orientacji, a kolejność Grid ułatwień dostępu elementu jest oparta na układzie wierszy i kolumn. Aby uzyskać więcej informacji na temat porządkowania zawartości, zobacz Opis porządkowania zawartości w blogu platformy Xamarin.

Uwaga

Gdy zostanie WebView wyświetlona witryna internetowa, która jest dostępna, będzie również dostępna w aplikacji .NET MAUI. Z drugiej strony, gdy WebView zostanie wyświetlona witryna internetowa, która nie jest dostępna, nie będzie dostępna w aplikacji .NET MAUI.

Właściwości semantyczne

Właściwości semantyczne służą do definiowania informacji o tym, które kontrolki powinny otrzymywać fokus ułatwień dostępu i który tekst powinien być odczytywany na głos dla użytkownika. Właściwości semantyczne to dołączone właściwości, które można dodać do dowolnego elementu w celu ustawienia podstawowych interfejsów API ułatwień dostępu platformy.

Ważne

Właściwości semantyczne nie próbują wymuszać zachowania równoważnego na każdej platformie. Zamiast tego polegają na środowisku ułatwień dostępu udostępnianym przez każdą platformę.

Klasa SemanticProperties definiuje następujące dołączone właściwości:

  • Description, typu string, który reprezentuje opis, który będzie odczytywany na głos przez czytnik zawartości ekranu. Aby uzyskać więcej informacji, zobacz Opis.
  • Hint, typu string, który jest podobny do Description, ale zapewnia dodatkowy kontekst, taki jak cel kontrolki. Aby uzyskać więcej informacji, zobacz Wskazówka.
  • HeadingLevel, typu SemanticHeadingLevel, który umożliwia oznaczenie elementu jako nagłówka w celu organizowania interfejsu użytkownika i ułatwia nawigację. Aby uzyskać więcej informacji, zobacz Poziomy nagłówków.

Te dołączone właściwości ustawiają wartości ułatwień dostępu platformy, aby czytnik zawartości ekranu mógł mówić o elemecie . Aby uzyskać więcej informacji na temat dołączonych właściwości, zobacz Dołączone właściwości.

opis

Dołączona Description właściwość reprezentuje krótki opis, string którego czytnik zawartości ekranu używa do ogłaszania elementu. Ta właściwość powinna być ustawiona dla elementów, które mają znaczenie ważne dla zrozumienia zawartości lub interakcji z interfejsem użytkownika. Ustawienie tej właściwości można wykonać w języku XAML:

<Image Source="dotnet_bot.png"
       SemanticProperties.Description="Cute dot net bot waving hi to you!" />

Alternatywnie można go ustawić w języku C#:

Image image = new Image { Source = "dotnet_bot.png" };
SemanticProperties.SetDescription(image, "Cute dot net bot waving hi to you!");

Ponadto metodę SetValue można również użyć do ustawienia dołączonej Description właściwości:

image.SetValue(SemanticProperties.DescriptionProperty, "Cute dot net bot waving hi to you!");

Informacje o ułatwieniach dostępu dla elementu można również zdefiniować w innym elemecie. Na przykład Label obok elementu Switch można użyć elementu , aby opisać, co Switch reprezentuje. Można to zrobić w języku XAML w następujący sposób:

<Label x:Name="label"
       Text="Enable dark mode: " />
<Switch SemanticProperties.Description="{Binding Source={x:Reference label} Path=Text}" />

Alternatywnie można go ustawić w języku C# w następujący sposób:

Label label = new Label
{
    Text = "Enable dark mode: "
};
Switch mySwitch = new Switch();
SemanticProperties.SetDescription(mySwitch, label.Text);

Ostrzeżenie

  • Unikaj ustawiania dołączonej Description właściwości na obiekcie Label. Spowoduje to zatrzymanie Text wypowiadania właściwości przez czytnik zawartości ekranu. Jest to spowodowane tym, że tekst wizualny powinien idealnie odpowiadać tekstowi odczytywane na głos przez czytnik zawartości ekranu.
  • Unikaj ustawiania dołączonej właściwości na urządzeniu DescriptionEntry lub Editor w systemie Android. Spowoduje to zatrzymanie działania funkcji Talkback. Zamiast tego użyj Placeholder właściwości lub dołączonej Hint właściwości.
  • W systemie iOS, jeśli ustawisz Description właściwość na dowolnej kontrolce, która ma elementy podrzędne, czytnik zawartości ekranu nie będzie mógł uzyskać dostępu do elementów podrzędnych. Dzieje się tak, ponieważ system iOS nie udostępnia funkcji ułatwień dostępu, które umożliwiają nawigację z elementu nadrzędnego do elementu podrzędnego.

Wskazówka

Dołączona Hint właściwość reprezentuje string element, który zapewnia dodatkowy kontekst do dołączonej Description właściwości, na przykład przeznaczenie kontrolki. Ustawienie tej właściwości można wykonać w języku XAML:

<Image Source="like.png"
       SemanticProperties.Description="Like"
       SemanticProperties.Hint="Like this post." />

Alternatywnie można go ustawić w języku C#:

Image image = new Image { Source = "like.png" };
SemanticProperties.SetDescription(image, "Like");
SemanticProperties.SetHint(image, "Like this post.");

Ponadto metodę SetValue można również użyć do ustawienia dołączonej Hint właściwości:

image.SetValue(SemanticProperties.HintProperty, "Like this post.");

W systemie Android ta właściwość działa nieco inaczej w zależności od kontrolki, do którego jest dołączona. Na przykład w przypadku kontrolek bez wartości tekstowych, takich jak Switch i CheckBox, kontrolki będą wyświetlać wskazówkę z kontrolką . Jednak w przypadku kontrolek z wartościami tekstowymi wskazówka nie jest wyświetlana i jest odczytywana po wartości tekstowej.

Ostrzeżenie

Właściwość Hint powoduje konflikt z właściwością Entry.Placeholder w systemie Android, która jest mapowania na tę samą właściwość platformy. W związku z tym ustawienie innej Hint wartości na Entry.Placeholder wartość nie jest zalecane.

Poziomy nagłówków

Dołączona HeadingLevel właściwość umożliwia oznaczenie elementu jako nagłówka w celu zorganizowania interfejsu użytkownika i ułatwienia nawigowania. Niektóre czytniki zawartości ekranu umożliwiają użytkownikom szybkie przechodzenie między nagłówkami.

Nagłówki mają poziom od 1 do 9 i są reprezentowane przez SemanticHeadingLevel wyliczenie, które definiuje Noneelement , i Level1 za pośrednictwem Level9 elementów członkowskich.

Ważne

Chociaż system Windows oferuje 9 poziomów nagłówków, android i iOS oferują tylko jeden nagłówek. W związku z tym po HeadingLevel ustawieniu w systemie Windows jest mapowanie na prawidłowy poziom nagłówka. Jednak po ustawieniu w systemach Android i iOS jest mapowanie na jeden poziom nagłówka.

W poniższym przykładzie pokazano ustawienie tej dołączonej właściwości:

<Label Text="Get started with .NET MAUI"
       SemanticProperties.HeadingLevel="Level1" />
<Label Text="Paragraphs of text go here." />
<Label Text="Installation"
       SemanticProperties.HeadingLevel="Level2" />
<Label Text="Paragraphs of text go here." />    
<Label Text="Build your first app"
       SemanticProperties.HeadingLevel="Level3" />
<Label Text="Paragraphs of text go here." />     
<Label Text="Publish your app"
       SemanticProperties.HeadingLevel="Level4" />
<Label Text="Paragraphs of text go here." />   

Alternatywnie można go ustawić w języku C#:

Label label1 = new Label { Text = "Get started with .NET MAUI" };
Label label2 = new Label { Text = "Paragraphs of text go here." };
Label label3 = new Label { Text = "Installation" };
Label label4 = new Label { Text = "Paragraphs of text go here." };
Label label5 = new Label { Text = "Build your first app" };
Label label6 = new Label { Text = "Paragraphs of text go here." };
Label label7 = new Label { Text = "Publish your app" };
Label label8 = new Label { Text = "Paragraphs of text go here." };
SemanticProperties.SetHeadingLevel(label1, SemanticHeadingLevel.Level1);
SemanticProperties.SetHeadingLevel(label3, SemanticHeadingLevel.Level1);
SemanticProperties.SetHeadingLevel(label5, SemanticHeadingLevel.Level1);
SemanticProperties.SetHeadingLevel(label7, SemanticHeadingLevel.Level1);

Ponadto metodę SetValue można również użyć do ustawienia dołączonej HeadingLevel właściwości:

label1.SetValue(SemanticProperties.HeadingLevelProperty, SemanticHeadingLevel.Level1);

Fokus semantyczny

Kontrolki mają metodę SetSemanticFocus rozszerzenia, która wymusza fokus czytnika zawartości ekranu do określonego elementu. Na przykład, biorąc pod uwagę Label nazwę label, można wymusić fokus czytnika zawartości ekranu do elementu za pomocą następującego kodu:

label.SetSemanticFocus();

Semantyczny czytnik zawartości ekranu

Program .NET MAUI udostępnia ISemanticScreenReader interfejs, za pomocą którego można poinstruować czytnik zawartości ekranu o ogłaszaniu tekstu użytkownikowi. Interfejs jest udostępniany za pośrednictwem Default właściwości i jest dostępny w Microsoft.Maui.Accessibility przestrzeni nazw.

Aby poinstruować czytnik zawartości ekranu o ogłaszaniu tekstu, użyj Announce metody , przekazując string argument reprezentujący tekst. W poniższym przykładzie pokazano użycie tej metody:

SemanticScreenReader.Default.Announce("This is the announcement text.");

Ograniczenia

Domyślny czytnik zawartości ekranu platformy musi być włączony, aby tekst był odczytywany na głos.

Właściwości automatyzacji

Właściwości automatyzacji są dołączone właściwości, które można dodać do dowolnego elementu, aby wskazać, jak element jest raportowany do platformy ułatwień dostępu platformy bazowej.

Klasa AutomationProperties definiuje następujące dołączone właściwości:

  • ExcludedWithChildren, typu bool?, określa, czy element i jego elementy podrzędne powinny zostać wykluczone z drzewa ułatwień dostępu. Aby uzyskać więcej informacji, zobacz ExcludedWithChildren.
  • IsInAccessibleTree, typu bool?, wskazuje, czy element jest dostępny w drzewie ułatwień dostępu. Aby uzyskać więcej informacji, zobacz IsInAccessibleTree.
  • Name, typu string, reprezentuje krótki opis elementu, który służy jako identyfikator czytelny dla tego elementu. Aby uzyskać więcej informacji, zobacz Nazwa.
  • HelpText, typu string, reprezentuje dłuższy opis elementu, który można traktować jako tekst etykietki narzędzia skojarzony z elementem. Aby uzyskać więcej informacji, zobacz HelpText.
  • LabeledBy, typu VisualElement, który umożliwia innemu elementowi definiowanie informacji o ułatwieniach dostępu dla bieżącego elementu. Aby uzyskać więcej informacji, zobacz LabeledBy.

Te dołączone właściwości ustawiają wartości ułatwień dostępu platformy, aby czytnik zawartości ekranu mógł mówić o elemecie . Aby uzyskać więcej informacji na temat dołączonych właściwości, zobacz Dołączone właściwości.

Różne czytniki zawartości ekranu odczytują różne wartości ułatwień dostępu. W związku z tym w przypadku korzystania z właściwości automatyzacji zaleca się przeprowadzenie dokładnego testowania ułatwień dostępu na każdej platformie w celu zapewnienia optymalnego środowiska.

Ważne

Właściwości automatyzacji to podejście platformy Xamarin.Forms do udostępniania wartości ułatwień dostępu w aplikacjach i zastąpione przez właściwości semantyczne. Aby uzyskać więcej informacji na temat właściwości semantycznych, zobacz Semantic properties (Właściwości semantyczne).

Wykluczony z uczniami

Dołączona ExcludedWithChildren właściwość typu bool?określa, czy element i jego elementy podrzędne powinny zostać wykluczone z drzewa ułatwień dostępu. Umożliwia to obsługę scenariuszy, takich jak wyświetlanie innego AbsoluteLayout układu, takiego jak StackLayout, z StackLayout wykluczeniem z drzewa ułatwień dostępu, gdy nie jest widoczny. Można go użyć z XAML w następujący sposób:

<StackLayout AutomationProperties.ExcludedWithChildren="true">
...
</StackLayout>

Alternatywnie można go ustawić w języku C# w następujący sposób:

StackLayout stackLayout = new StackLayout();
...
AutomationProperties.SetExcludedWithChildren(stackLayout, true);

Po ustawieniu tej dołączonej właściwości program .NET MAUI ustawia dołączoną IsInAccessibleTree właściwość na false określony element i jego elementy podrzędne.

IsInAccessibleTree

Ostrzeżenie

Ta dołączona właściwość powinna zwykle pozostać niezastawiona. Większość kontrolek powinna znajdować się w drzewie ułatwień dostępu, a AutomationProperties.ExcludedWithChildren dołączona właściwość może być ustawiana w scenariuszach, w których element i jego elementy podrzędne wymagają usunięcia z drzewa ułatwień dostępu.

Dołączona IsInAccessibleTree właściwość typu bool?określa, czy element jest widoczny dla czytników zawartości ekranu. Musi być ustawiona tak, aby true korzystała z innych właściwości automatyzacji. Można to zrobić w języku XAML w następujący sposób:

<Entry AutomationProperties.IsInAccessibleTree="true" />

Alternatywnie można go ustawić w języku C# w następujący sposób:

Entry entry = new Entry();
AutomationProperties.SetIsInAccessibleTree(entry, true);

Ostrzeżenie

W systemie iOS, jeśli IsInAccessibleTree właściwość znajduje się true w dowolnej kontrolce, która ma elementy podrzędne, czytnik zawartości ekranu nie będzie mógł uzyskać dostępu do elementów podrzędnych. Dzieje się tak, ponieważ system iOS nie udostępnia funkcji ułatwień dostępu, które umożliwiają nawigację z elementu nadrzędnego do elementu podrzędnego.

Nazwisko

Ważne

Dołączona Name właściwość została przestarzała na platformie .NET 8. Zamiast tego użyj dołączonej Description właściwości.

Dołączona Name wartość właściwości powinna być krótkim, opisowym ciągiem tekstowym używanym przez czytnik zawartości ekranu do ogłaszania elementu. Ta właściwość powinna być ustawiona dla elementów, które mają znaczenie ważne dla zrozumienia zawartości lub interakcji z interfejsem użytkownika. Można to zrobić w języku XAML w następujący sposób:

<ActivityIndicator AutomationProperties.IsInAccessibleTree="true"
                   AutomationProperties.Name="Progress indicator" />

Alternatywnie można go ustawić w języku C# w następujący sposób:

ActivityIndicator activityIndicator = new ActivityIndicator();
AutomationProperties.SetIsInAccessibleTree(activityIndicator, true);
AutomationProperties.SetName(activityIndicator, "Progress indicator");

Helptext

Ważne

Dołączona HelpText właściwość została przestarzała na platformie .NET 8. Zamiast tego użyj dołączonej Hint właściwości.

Dołączona właściwość powinna być ustawiona HelpText na tekst opisujący element interfejsu użytkownika i może być uważana za tekst etykietki narzędzia skojarzony z elementem. Można to zrobić w języku XAML w następujący sposób:

<Button Text="Toggle ActivityIndicator"
        AutomationProperties.IsInAccessibleTree="true"
        AutomationProperties.HelpText="Tap to toggle the activity indicator" />

Alternatywnie można go ustawić w języku C# w następujący sposób:

Button button = new Button { Text = "Toggle ActivityIndicator" };
AutomationProperties.SetIsInAccessibleTree(button, true);
AutomationProperties.SetHelpText(button, "Tap to toggle the activity indicator");

Na niektórych platformach w przypadku kontrolek edycji, takich jak Entry, HelpText właściwość może czasami zostać pominięta i zastąpiona tekstem zastępczym. Na przykład "Wprowadź swoją nazwę tutaj" jest dobrym kandydatem do Entry.Placeholder właściwości, która umieszcza tekst w kontrolce przed rzeczywistymi danymi wejściowymi użytkownika.

Etykieta wg

Ważne

Dołączona LabeledBy właściwość została przestarzała na platformie .NET 8. Zamiast tego użyj SemanticProperties.Description powiązania. Aby uzyskać więcej informacji, zobacz SemanticProperties: Description (SemanticProperties: Description).

Dołączona LabeledBy właściwość umożliwia innemu elementowi definiowanie informacji o ułatwieniach dostępu dla bieżącego elementu. Na przykład Label obok elementu Entry można użyć elementu , aby opisać, co Entry reprezentuje. Można to zrobić w języku XAML w następujący sposób:

<Label x:Name="label" Text="Enter your name: " />
<Entry AutomationProperties.IsInAccessibleTree="true"
       AutomationProperties.LabeledBy="{x:Reference label}" />

Alternatywnie można go ustawić w języku C# w następujący sposób:

Label label = new Label { Text = "Enter your name: " };
Entry entry = new Entry();
AutomationProperties.SetIsInAccessibleTree(entry, true);
AutomationProperties.SetLabeledBy(entry, label);

Ważne

Element AutomationProperties.LabeledByProperty nie jest obsługiwany w systemie iOS.

Testowanie ułatwień dostępu

Aplikacje MAUI platformy .NET zwykle są przeznaczone dla wielu platform, co oznacza testowanie funkcji ułatwień dostępu zgodnie z platformą. Skorzystaj z poniższych linków, aby dowiedzieć się, jak przetestować ułatwienia dostępu na każdej platformie:

Następujące narzędzia mogą pomóc w testowaniu ułatwień dostępu:

Jednak żadne z tych narzędzi nie może całkowicie emulować środowiska użytkownika czytnika zawartości ekranu, a najlepszym sposobem testowania i rozwiązywania problemów z aplikacjami pod kątem ułatwień dostępu będzie zawsze ręczne na urządzeniach fizycznych z czytnikami zawartości ekranu.

Włączanie czytników zawartości ekranu

Każda platforma ma inny domyślny czytnik zawartości ekranu do narracji wartości ułatwień dostępu:

Włączanie funkcji TalkBack

TalkBack to podstawowy czytnik zawartości ekranu używany w systemie Android. Sposób jego włączenia zależy od producenta urządzenia, wersji systemu Android i wersji TalkBack. Jednak funkcja TalkBack może być zwykle włączona na urządzeniu z systemem Android za pośrednictwem ustawień urządzenia:

  1. Otwórz aplikację Ustawienia.
  2. Wybierz pozycję Ułatwienia dostępu>TalkBack.
  3. Włącz funkcję TalkBack .
  4. Wybierz pozycję OK.

Uwaga

Chociaż te kroki dotyczą większości urządzeń, mogą wystąpić pewne różnice.

Samouczek TalkBack zostanie otwarty automatycznie po raz pierwszy po włączeniu funkcji TalkBack.

Aby zapoznać się z alternatywnymi metodami włączania funkcji TalkBack, zobacz Włączanie lub wyłączanie funkcji Talkback.

Włączanie funkcji VoiceOver

VoiceOver to podstawowy czytnik zawartości ekranu używany w systemach iOS i macOS. W systemie iOS można włączyć funkcję VoiceOver w następujący sposób:

  1. Otwórz aplikację Ustawienia.
  2. Wybierz pozycję Ułatwienia dostępu>VoiceOver.
  3. Włącz funkcję VoiceOver .

Samouczek VoiceOver można otworzyć, wybierając pozycję VoiceOver Practice (Rozwiązanie VoiceOver) po włączeniu funkcji VoiceOver.

Aby zapoznać się z alternatywnymi metodami włączania funkcji VoiceOver, zobacz Włączanie i ćwiczenie funkcji VoiceOver na urządzeniach i Telefon oraz Włączanie i ćwiczenie funkcji VoiceOver na urządzeniu iPad.

W systemie macOS można włączyć funkcję VoiceOver w następujący sposób:

  1. Otwórz preferencje systemowe.
  2. Wybierz pozycję Ułatwienia dostępu>VoiceOver.
  3. Wybierz pozycję Włącz funkcję VoiceOver.
  4. Wybierz pozycję Użyj funkcji VoiceOver.

Samouczek VoiceOver można otworzyć, wybierając pozycję Open VoiceOver Training... (Szkolenie open VoiceOver).

Aby uzyskać alternatywne metody włączania funkcji VoiceOver, zobacz Włączanie lub wyłączanie funkcji VoiceOver na komputerze Mac.

Włączanie Narratora

Narrator to podstawowy czytnik zawartości ekranu używany w systemie Windows. Narrator może być włączony, naciskając klawisz + logo systemu Windows Ctrl + Enter razem. Te klawisze można nacisnąć ponownie, aby zatrzymać Narratora.

Aby uzyskać więcej informacji na temat Narratora, zobacz Kompletny przewodnik po Narratorze.

Lista kontrolna ułatwień dostępu

Postępuj zgodnie z poniższymi wskazówkami, aby upewnić się, że aplikacje MAUI platformy .NET są dostępne dla najszerszej liczby odbiorców:

  • Upewnij się, że aplikacja jest zrozumiała, zrozumiała i niezawodna dla wszystkich, postępując zgodnie z wytycznymi dotyczącymi ułatwień dostępu do zawartości internetowej (WCAG). WCAG to globalny standard ułatwień dostępu i test porównawczy prawny dla sieci Web i urządzeń przenośnych. Aby uzyskać więcej informacji, zobacz Wskazówki dotyczące ułatwień dostępu do zawartości internetowej (WCAG) — omówienie.
  • Upewnij się, że interfejs użytkownika opisuje się samodzielnie. Przetestuj, czy wszystkie elementy interfejsu użytkownika są dostępne dla czytnika zawartości ekranu. W razie potrzeby dodaj tekst opisowy i wskazówki.
  • Upewnij się, że obrazy i ikony mają alternatywne opisy tekstu.
  • Obsługa dużych czcionek i dużego kontrastu. Unikaj wymiarów kontrolek na twardo, a zamiast tego preferuj układy, które mają rozmiar, aby pomieścić większe rozmiary czcionek. Testowanie schematów kolorów w trybie dużego kontrastu, aby upewnić się, że są one czytelne.
  • Zaprojektuj drzewo wizualne z myślą o nawigacji. Użyj odpowiednich kontrolek układu, aby nawigowanie między kontrolkami przy użyciu alternatywnych metod wejściowych przebiegało zgodnie z tym samym przepływem logicznym co przy użyciu dotyku. Ponadto należy wykluczyć niepotrzebne elementy z czytników zawartości ekranu (na przykład obrazy dekoracyjne lub etykiety pól, które są już dostępne).
  • Nie należy polegać tylko na sygnałach dźwiękowych ani kolorowych. Unikaj sytuacji, w których jedynym wskazaniem postępu, ukończenia lub innego stanu jest zmiana dźwięku lub koloru. Zaprojektuj interfejs użytkownika tak, aby zawierał jasne sygnały wizualne z dźwiękiem i kolorem tylko do wzmocnienia, lub dodaj określone wskaźniki ułatwień dostępu. Podczas wybierania kolorów należy unikać palety, która jest trudna do odróżnienia dla użytkowników z ślepotą kolorów.
  • Podaj podpis dla zawartości wideo i czytelny skrypt zawartości audio. Warto również zapewnić kontrolki, które dostosowują szybkość zawartości audio lub wideo oraz zapewniają łatwość znajdowania i używania kontrolek głośności i transportu.
  • Lokalizuj opisy ułatwień dostępu, gdy aplikacja obsługuje wiele języków.
  • Przetestuj funkcje ułatwień dostępu aplikacji na każdej docelowej platformie. Aby uzyskać więcej informacji, zobacz Testowanie ułatwień dostępu.