접근성에 대한 의미 체계는 다양한 환경에서 기술을 사용하고 다양한 요구 사항과 환경으로 UI에 접근하는 사람들을 위해 앱을 포괄하는 환경을 구축하는 것과 관련이 있습니다. 대부분의 경우 접근성에 대한 법적 요구 사항은 개발자가 접근성 문제를 해결할 수 있는 원동력이 될 수 있습니다. 그럼에도 불구하고 앱이 가능한 가장 큰 대상 그룹에 도달할 수 있도록 포괄적이고 액세스 가능한 앱을 빌드하는 것이 좋습니다.
WCAG(웹 콘텐츠 접근성 지침)는 웹 및 모바일에 대한 글로벌 접근성 표준 및 법적 벤치마크입니다. 이러한 지침은 모든 앱이 더 인지 가능하고, 작동 가능하고, 이해할 수 있고, 견고하게 만들 수 있는 다양한 방법을 설명합니다.
사용자가 설치한 보조 기술 제품 또는 운영 체제에서 제공하는 도구 및 설정으로 많은 사용자 접근성 요구 사항을 충족합니다. 여기에는 화면 읽기 프로그램, 화면 배율 및 고대비 설정과 같은 기능이 포함됩니다.
화면 읽기 프로그램은 일반적으로 화면에 표시되는 컨트롤에 대한 청각적 설명을 제공합니다. 이러한 설명은 사용자가 앱을 탐색하고 입력이나 텍스트가 없는 이미지와 같은 컨트롤에 대한 참조를 제공하는 데 도움이 됩니다. 화면 읽기 프로그램은 터치 스크린, 트랙 패드 또는 키보드의 제스처를 통해 제어되는 경우가 많습니다. 화면 읽기 프로그램을 사용하도록 설정하는 방법에 대한 자세한 내용은 화면 읽기 프로그램 사용을 참조하세요.
운영 체제에는 고유한 동작 및 구성을 갖춘 자체 화면 읽기 프로그램이 있습니다. 예를 들어 대부분의 화면 읽기 프로그램은 포커스를 받을 때 컨트롤과 연결된 텍스트를 읽어 사용자가 앱을 탐색할 때 방향을 지정할 수 있도록 합니다. 그러나 일부 화면 읽기 프로그램은 페이지가 표시될 때 전체 앱 사용자 인터페이스를 읽을 수 있으므로 탐색을 시도하기 전에 사용자가 페이지의 사용 가능한 모든 정보 콘텐츠를 받을 수 있습니다.
대부분의 화면 읽기 프로그램은 접근성 포커스를 받는 컨트롤과 연결된 텍스트를 자동으로 읽습니다. 즉, Label 속성이 설정된 컨트롤, 예를 들어 Button 또는 Text
, 사용자가 액세스할 수 있습니다. 그러나 Image, ImageButton, ActivityIndicator 및 다른 요소는 텍스트가 연결되지 않아 접근성 트리에서 없을 수 있습니다.
.NET 다중 플랫폼 앱 UI(.NET MAUI)는 기본 플랫폼의 접근성 환경에 대한 액세스를 제공하는 두 가지 방법을 지원합니다. 의미 체계 속성 은 앱에서 접근성 값을 제공하는 .NET MAUI 접근 방식이며 권장되는 방법입니다. 자동화 속성 은 앱에서 접근성 값을 제공하는 Xamarin.Forms 접근 방식이며 의미 체계 속성으로 대체되었습니다. 두 경우 모두 컨트롤의 기본 접근성 순서는 XAML에 나열되거나 레이아웃에 추가되는 순서와 동일합니다. 그러나 레이아웃이 다르면 접근성 순서에 영향을 주는 추가 요소가 있을 수 있습니다. 예를 들어 접근성 순서 StackLayout 도 방향을 기반으로 하며, 접근성 순서 Grid 는 행과 열 정렬을 기반으로 합니다. 콘텐츠 순서 지정에 대한 자세한 내용은 Xamarin 블로그에서 의미 있는 콘텐츠 순서 지정 을 참조하세요.
비고
WebView 액세스할 수 있는 웹 사이트가 표시되면 .NET MAUI 앱에서도 액세스할 수 있습니다. 반대로 액세스할 수 없는 웹 사이트가 표시되면 WebView .NET MAUI 앱에서 액세스할 수 없습니다.
의미 속성
의미 체계 속성은 접근성 포커스를 받아야 하는 컨트롤과 사용자에게 소리 내어 읽어야 하는 텍스트에 대한 정보를 정의하는 데 사용됩니다. 의미 체계 속성은 기본 플랫폼 접근성 API를 설정하기 위해 모든 요소에 추가할 수 있는 연결된 속성입니다.
중요합니다
의미 체계 속성은 각 플랫폼에서 동일한 동작을 강제로 시도하지 않습니다. 대신 각 플랫폼에서 제공하는 접근성 환경을 사용합니다.
클래스는 SemanticProperties 다음과 같은 연결된 속성을 정의합니다.
-
Description
- 화면 읽기 프로그램에서 소리 내어 읽을 설명을 나타내는 형식string
입니다. 자세한 내용은 설명을 참조하세요. -
Hint
는string
와 유사하지만, 컨트롤의 목적과 같은 추가적인 컨텍스트를 제공하는Description
유형입니다. 자세한 내용은 힌트를 참조 하세요. -
HeadingLevel
- 요소를 제목으로 표시하여 UI를 구성하고 더 쉽게 탐색할 수 있도록 하는 형식 SemanticHeadingLevel입니다. 자세한 내용은 제목 수준을 참조하세요.
이러한 연결된 속성은 화면 판독기에서 요소에 대해 말할 수 있도록 플랫폼 접근성 값을 설정합니다. 연결된 속성에 대한 자세한 내용은 참조하세요.
설명
연결된 속성은 Description
스크린 리더가 요소를 설명하는 데 사용하는 짧고 설명적인 string
속성을 나타냅니다. 콘텐츠를 이해하거나 사용자 인터페이스와 상호 작용하는 데 중요한 의미가 있는 요소에 대해 이 속성을 설정해야 합니다. 이 속성 설정은 XAML에서 수행할 수 있습니다.
<Image Source="dotnet_bot.png"
SemanticProperties.Description="Cute dot net bot waving hi to you!" />
또는 C#에서 설정할 수 있습니다.
Image image = new Image { Source = "dotnet_bot.png" };
SemanticProperties.SetDescription(image, "Cute dot net bot waving hi to you!");
또한 SetValue 메서드를 사용하여 Description
연결된 속성을 설정할 수도 있습니다.
image.SetValue(SemanticProperties.DescriptionProperty, "Cute dot net bot waving hi to you!");
요소에 대한 접근성 정보는 다른 요소에서도 정의할 수 있습니다. 예를 들어 Label가 Switch 옆에 있을 때, 그것으로 Switch가 무엇을 나타내는지 설명할 수 있습니다. 이 작업은 다음과 같이 XAML에서 수행할 수 있습니다.
<Label x:Name="label"
Text="Enable dark mode: " />
<Switch SemanticProperties.Description="{Binding x:DataType='Label', Source={x:Reference label}, Path=Text}" />
또는 다음과 같이 C#으로 설정할 수 있습니다.
Label label = new Label
{
Text = "Enable dark mode: "
};
Switch mySwitch = new Switch();
SemanticProperties.SetDescription(mySwitch, label.Text);
경고
-
Description
에 Label 붙여진 속성을 설정하지 마십시오. 이것은 화면 읽기 프로그램에서Text
속성이 읽히지 않게 됩니다. 시각적 텍스트가 화면 읽기 프로그램을 통해 음성으로 읽은 텍스트와 이상적으로 일치해야 하기 때문입니다. - Android에서
Description
또는 Entry에 Editor 연결된 속성을 설정하지 않도록 하십시오. 이렇게 하면 Talkback 작업이 작동하지 않습니다. 대신 Placeholder 속성 또는Hint
연결된 속성을 사용합니다. - iOS에서 자식을 포함한 어떤 컨트롤에
Description
속성을 설정하면 화면 읽기 프로그램이 자식 요소를 탐색할 수 없습니다. iOS는 부모 요소에서 자식 요소로의 탐색을 허용하는 접근성 기능을 제공하지 않기 때문입니다.
힌트
연결된 속성 Hint
은 컨트롤의 용도와 같이 연결된 속성 string
에 대한 추가 컨텍스트를 제공하는 Description
를 나타냅니다. 이 속성 설정은 XAML에서 수행할 수 있습니다.
<Image Source="like.png"
SemanticProperties.Description="Like"
SemanticProperties.Hint="Like this post." />
또는 C#에서 설정할 수 있습니다.
Image image = new Image { Source = "like.png" };
SemanticProperties.SetDescription(image, "Like");
SemanticProperties.SetHint(image, "Like this post.");
또한 SetValue 메서드를 사용하여 Hint
연결된 속성을 설정할 수도 있습니다.
image.SetValue(SemanticProperties.HintProperty, "Like this post.");
Android에서 이 속성은 연결된 컨트롤에 따라 약간 다르게 동작합니다. 예를 들어, 텍스트 값이 없는 컨트롤 Switch 및 CheckBox의 경우, 해당 컨트롤은 컨트롤과 함께 힌트를 표시합니다. 그러나 텍스트 값이 있는 컨트롤의 경우 힌트가 표시되지 않고 텍스트 값 이후에 읽혀집니다.
경고
속성이 Hint
Android의 Entry.Placeholder
속성과 충돌하며, 둘 다 동일한 플랫폼 속성에 매핑됩니다. 따라서 다른 Hint
값을 Entry.Placeholder
값으로 설정하는 것은 권장되지 않습니다.
제목 수준
HeadingLevel
연결된 속성을 사용하면 요소를 제목으로 표시하여 UI를 구성하고 더 쉽게 탐색할 수 있습니다. 일부 화면 읽기 프로그램을 사용하면 사용자가 제목 사이를 빠르게 이동할 수 있습니다.
머리글의 수준은 1에서 9 사이이며 멤버를 SemanticHeadingLevel 통해 정의하는 None
Level1
Level9
열거형으로 표시됩니다.
중요합니다
Windows는 9개 수준의 제목을 제공하지만 Android 및 iOS는 단일 제목만 제공합니다. 따라서 HeadingLevel
Windows에서 설정되면 올바른 제목 수준에 매핑됩니다. 그러나 Android 및 iOS에서 설정하면 단일 제목 수준에 매핑됩니다.
다음 예제에서는 이 연결된 속성을 설정하는 방법을 보여 줍니다.
<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." />
또는 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.Level2);
SemanticProperties.SetHeadingLevel(label5, SemanticHeadingLevel.Level3);
SemanticProperties.SetHeadingLevel(label7, SemanticHeadingLevel.Level4);
또한 SetValue 메서드를 사용하여 HeadingLevel
연결된 속성을 설정할 수도 있습니다.
label1.SetValue(SemanticProperties.HeadingLevelProperty, SemanticHeadingLevel.Level1);
의미적 초점
컨트롤에는 화면 판독기 포커스를 SetSemanticFocus 지정된 요소로 강제 적용하는 확장 메서드가 있습니다. 예를 들어 "Label"라는 label
화면 읽기 프로그램의 포커스는 다음 코드를 사용하여 요소로 강제로 이동할 수 있습니다.
label.SetSemanticFocus();
의미 체계 화면 읽기 프로그램
.NET MAUI는 ISemanticScreenReader 사용자에게 텍스트를 알리도록 화면 읽기 프로그램을 지시할 수 있는 인터페이스를 제공합니다. 인터페이스는 Default 속성을 통해 노출되며, Microsoft.Maui.Accessibility 네임스페이스에서 사용할 수 있습니다.
화면 읽기 프로그램에서 텍스트를 알리도록 지시하려면 이 메서드를 Announce 사용하여 텍스트를 나타내는 인수를 string
전달합니다. 다음 예제에서는 이 메서드를 사용하는 방법을 보여 줍니다.
SemanticScreenReader.Default.Announce("This is the announcement text.");
제한점
텍스트를 소리 내어 읽으려면 기본 플랫폼 화면 읽기 프로그램을 사용하도록 설정해야 합니다.
자동화 속성
Automation 속성은 요소가 기본 플랫폼의 접근성 프레임워크에 보고되는 방식을 나타내기 위해 모든 요소에 추가할 수 있는 연결된 속성입니다.
클래스는 AutomationProperties 다음과 같은 연결된 속성을 정의합니다.
-
ExcludedWithChildren
형식bool?
의 은 요소와 해당 자식을 접근성 트리에서 제외해야 하는지 여부를 결정합니다. 자세한 내용은 ExcludedWithChildren를 참조하세요. -
IsInAccessibleTree
형식bool?
의 는 접근성 트리에서 요소를 사용할 수 있는지 여부를 나타냅니다. 자세한 내용은 IsInAccessibleTree를 참조하세요. -
Name
형식string
의 는 해당 요소에 대해 말할 수 있는 식별자로 사용되는 요소에 대한 간단한 설명을 나타냅니다. 자세한 내용은 이름을 참조하세요. -
HelpText
형식string
의 는 요소에 대한 더 긴 설명을 나타내며 요소와 연결된 도구 설명 텍스트로 간주할 수 있습니다. 자세한 내용은 HelpText를 참조하세요. -
LabeledBy
다른 요소가 현재 요소에 대한 접근성 정보를 정의할 수 있도록 하는 형식 VisualElement의 입니다. 자세한 내용은 LabeledBy를 참조하세요.
이러한 연결된 속성은 화면 판독기에서 요소에 대해 말할 수 있도록 플랫폼 접근성 값을 설정합니다. 연결된 속성에 대한 자세한 내용은 참조하세요.
화면 읽기 프로그램이 서로 다른 접근성 값을 읽습니다. 따라서 자동화 속성을 사용하는 경우 최적의 환경을 보장하기 위해 각 플랫폼에서 철저한 접근성 테스트를 수행하는 것이 좋습니다.
중요합니다
자동화 속성은 앱에서 접근성 값을 제공하는 Xamarin.Forms 접근 방식이며 의미 체계 속성으로 대체되었습니다. 의미 체계 속성에 대한 자세한 내용은 의미 체계 속성을 참조하세요.
자녀 제외됨
형식ExcludedWithChildren
의 연결된 속성은 bool?
요소와 해당 자식을 접근성 트리에서 제외해야 하는지 여부를 결정합니다. 이렇게 하면 AbsoluteLayout가 StackLayout와 같은 다른 레이아웃 위에 표시될 수 있으며, StackLayout가 보이지 않을 때 접근성 트리에서 제외되는 등의 시나리오를 가능하게 합니다. XAML에서 다음과 같이 사용할 수 있습니다.
<StackLayout AutomationProperties.ExcludedWithChildren="true">
...
</StackLayout>
또는 다음과 같이 C#으로 설정할 수 있습니다.
StackLayout stackLayout = new StackLayout();
...
AutomationProperties.SetExcludedWithChildren(stackLayout, true);
이 연결된 속성이 설정되면, .NET MAUI는 지정된 요소와 그 자식들에 대해 IsInAccessibleTree
연결된 속성을 false
로 설정합니다.
접근 가능한 트리에 포함되어 있는가
경고
이 연결된 속성은 일반적으로 설정되지 않은 상태로 유지되어야 합니다. 대부분의 컨트롤은 접근성 트리에 있어야 하며, 요소와 AutomationProperties.ExcludedWithChildren
해당 자식이 접근성 트리에서 제거해야 하는 시나리오에서 연결된 속성을 설정할 수 있습니다.
형식IsInAccessibleTree
의 연결된 속성은 bool?
요소가 화면 판독기에서 표시되는지 여부를 결정합니다. 다른 자동화 속성을 사용하기 위해서는 true
로 설정해야 합니다. 이 작업은 다음과 같이 XAML에서 수행할 수 있습니다.
<Entry AutomationProperties.IsInAccessibleTree="true" />
또는 다음과 같이 C#으로 설정할 수 있습니다.
Entry entry = new Entry();
AutomationProperties.SetIsInAccessibleTree(entry, true);
경고
iOS에서 IsInAccessibleTree
속성이 자식이 있는 컨트롤에 true
으로 설정되어 있으면 화면 읽기 프로그램이 자식에게 접근할 수 없습니다. iOS는 부모 요소에서 자식 요소로의 탐색을 허용하는 접근성 기능을 제공하지 않기 때문입니다.
이름
중요합니다
Name
연결된 속성은 .NET 8에서 더 이상 사용되지 않습니다. 대신 연결된 속성을 사용합니다 Description
.
연결된 속성 값은 Name
화면 읽기 프로그램에서 요소를 알리는 데 사용하는 짧고 설명이 포함된 텍스트 문자열이어야 합니다. 콘텐츠를 이해하거나 사용자 인터페이스와 상호 작용하는 데 중요한 의미가 있는 요소에 대해 이 속성을 설정해야 합니다. 이 작업은 다음과 같이 XAML에서 수행할 수 있습니다.
<ActivityIndicator AutomationProperties.IsInAccessibleTree="true"
AutomationProperties.Name="Progress indicator" />
또는 다음과 같이 C#으로 설정할 수 있습니다.
ActivityIndicator activityIndicator = new ActivityIndicator();
AutomationProperties.SetIsInAccessibleTree(activityIndicator, true);
AutomationProperties.SetName(activityIndicator, "Progress indicator");
도움말 텍스트
연결된 속성은 HelpText
사용자 인터페이스 요소를 설명하는 텍스트로 설정해야 하며 요소와 연결된 도구 설명 텍스트로 생각할 수 있습니다. 이 작업은 다음과 같이 XAML에서 수행할 수 있습니다.
<Button Text="Toggle ActivityIndicator"
AutomationProperties.IsInAccessibleTree="true"
AutomationProperties.HelpText="Tap to toggle the activity indicator" />
또는 다음과 같이 C#으로 설정할 수 있습니다.
Button button = new Button { Text = "Toggle ActivityIndicator" };
AutomationProperties.SetIsInAccessibleTree(button, true);
AutomationProperties.SetHelpText(button, "Tap to toggle the activity indicator");
일부 플랫폼에서 편집 컨트롤(Entry 등)이 적용될 때, 때로는 HelpText
속성을 생략하고 대신 자리 표시자 텍스트를 사용할 수 있습니다. 예를 들어 "여기에 이름 입력"은 사용자가 실제 입력하기 전에 컨트롤에 텍스트를 배치하는 속성에 적합한 후보 Entry.Placeholder
입니다.
라벨링에 의해
중요합니다
LabeledBy
연결된 속성은 .NET 8에서 더 이상 사용되지 않습니다. 대신 바인딩을 SemanticProperties.Description
사용합니다. 자세한 내용은 SemanticProperties: 설명을 참조하세요.
LabeledBy
연결된 속성을 사용하면 다른 요소가 현재 요소에 대한 접근성 정보를 정의할 수 있습니다. 예를 들어 Label가 Entry 옆에 있을 때, 그것으로 Entry가 무엇을 나타내는지 설명할 수 있습니다. 이 작업은 다음과 같이 XAML에서 수행할 수 있습니다.
<Label x:Name="label" Text="Enter your name: " />
<Entry AutomationProperties.IsInAccessibleTree="true"
AutomationProperties.LabeledBy="{x:Reference label}" />
또는 다음과 같이 C#으로 설정할 수 있습니다.
Label label = new Label { Text = "Enter your name: " };
Entry entry = new Entry();
AutomationProperties.SetIsInAccessibleTree(entry, true);
AutomationProperties.SetLabeledBy(entry, label);
중요합니다
AutomationProperties.LabeledByProperty
iOS에서는 지원되지 않습니다.
접근성 테스트
.NET MAUI 앱은 일반적으로 여러 플랫폼을 대상으로 합니다. 즉, 플랫폼에 따라 접근성 기능을 테스트합니다. 다음 링크를 따라 각 플랫폼에서 접근성을 테스트하는 방법을 알아봅니다.
- Android에서 앱의 접근성을 테스트합니다.
- iOS에서 앱 접근성 확인
- OS X에서 접근성 테스트
- Windows에서 접근성 테스트.
다음 도구는 접근성 테스트를 지원할 수 있습니다.
- Android 및 Windows 앱에 대한 접근성 인사이트입니다.
- Android 앱용 접근성 스캐너.
- iOS 및 macOS 앱에 대한 접근성 검사기입니다.
- Android 앱용 Android Studio 레이아웃 검사기입니다.
- iOS 및 macOS 앱용 Xcode 뷰 디버거
그러나 이러한 도구 중 어느 것도 화면 읽기 프로그램 사용자 환경을 완벽하게 에뮬레이트할 수 없으며, 접근성을 위해 앱을 테스트하고 문제를 해결하는 가장 좋은 방법은 항상 화면 읽기 프로그램을 사용하는 물리적 디바이스에서 수동으로 수행됩니다.
화면 읽기 프로그램 사용
각 플랫폼에는 접근성 값을 내레이션하는 다른 기본 화면 읽기 프로그램이 있습니다.
- Android에는 TalkBack이 있습니다. TalkBack을 사용하도록 설정하는 방법에 대한 자세한 내용은 TalkBack 사용을 참조하세요.
- iOS 및 macOS에는 VoiceOver가 있습니다. VoiceOver를 사용하도록 설정하는 방법에 대한 자세한 내용은 VoiceOver 사용을 참조하세요.
- Windows에는 내레이터가 있습니다. 내레이터를 사용하도록 설정하는 방법에 대한 자세한 내용은 내레이터 사용을 참조하세요.
TalkBack 사용
TalkBack은 Android에서 사용되는 기본 화면 읽기 프로그램입니다. 사용하도록 설정하는 방법은 디바이스 제조업체, Android 버전 및 TalkBack 버전에 따라 달라집니다. 그러나 일반적으로 디바이스 설정을 통해 Android 디바이스에서 TalkBack을 사용하도록 설정할 수 있습니다.
- 설정 앱을 엽니다.
- 접근성>TalkBack을 선택합니다.
- TalkBack 사용을 켭니다.
- 확인을 선택합니다.
비고
이러한 단계는 대부분의 디바이스에 적용되지만 몇 가지 차이점이 발생할 수 있습니다.
TalkBack을 처음 사용하도록 설정하면 TalkBack 자습서가 자동으로 열립니다.
TalkBack을 사용하도록 설정하는 다른 방법은 Talkback 설정 또는 해제를 참조하세요.
VoiceOver 켜기
VoiceOver는 iOS 및 macOS에서 사용되는 기본 화면 읽기 프로그램입니다. iOS에서 VoiceOver는 다음과 같이 사용하도록 설정할 수 있습니다.
- 설정 앱을 엽니다.
- 접근성>VoiceOver를 선택합니다.
- VoiceOver를 켭니다.
VoiceOver를 사용하도록 설정하면 VoiceOver 연습을 선택하여 VoiceOver 자습서를 열 수 있습니다.
VoiceOver를 사용하도록 설정하는 다른 방법은 iPhone에서 VoiceOver를 켜고 연습하고 iPad에서VoiceOver를 켜고 연습하는 방법을 참조하세요.
macOS에서 VoiceOver는 다음과 같이 사용하도록 설정할 수 있습니다.
- 시스템 기본 설정을 엽니다.
- 접근성>VoiceOver를 선택합니다.
- VoiceOver 사용을 선택합니다.
- VoiceOver 사용을 선택합니다.
VoiceOver 자습서는 VoiceOver 교육 열기를 선택하여 열 수 있습니다.
VoiceOver를 사용하도록 설정하는 다른 방법은 Mac에서 VoiceOver 켜기 또는 끄기를 참조하세요.
내레이터 기능 활성화
내레이터는 Windows에서 사용되는 기본 화면 읽기 프로그램입니다. Windows 로고 키 + Ctrl + Enter를 함께 눌러 내레이터를 사용하도록 설정할 수 있습니다. 내레이터를 중지하려면 이러한 키를 다시 누릅니다.
내레이터에 대한 자세한 내용은 내레이터에 대한 전체 가이드를 참조하세요.
접근성 검사 목록
다음 팁을 따라 가능한 가장 많은 사용자가 .NET MAUI 앱에 액세스할 수 있도록 합니다.
- WCAG(웹 콘텐츠 접근성 지침)에 따라 앱이 인식 가능하고, 작동 가능하고, 이해할 수 있고, 강력해야 합니다. WCAG는 웹 및 모바일에 대한 글로벌 접근성 표준 및 법적 벤치마크입니다. 자세한 내용은 WCAG(웹 콘텐츠 접근성 지침) 개요를 참조하세요.
- 사용자 인터페이스가 자체 설명되어 있는지 확인합니다. 사용자 인터페이스의 모든 요소가 화면 읽기 프로그램에서 액세스할 수 있는지 테스트합니다. 필요한 경우 설명 텍스트와 힌트를 추가합니다.
- 이미지와 아이콘에 대체 텍스트 설명이 있는지 확인합니다.
- 큰 글꼴과 고대비를 지원합니다. 컨트롤 차원의 하드코딩을 방지하고 더 큰 글꼴 크기를 수용하도록 크기를 조정하는 레이아웃을 선호합니다. 고대비 모드에서 색 구성표를 테스트하여 읽을 수 있는지 확인합니다.
- 탐색을 염두에 두고 시각적 트리를 디자인합니다. 적절한 레이아웃 컨트롤을 사용하면 대체 입력 메서드를 사용하는 컨트롤 간 탐색이 터치 사용과 동일한 논리 흐름을 따르도록 합니다. 또한 화면 읽기 프로그램에서 불필요한 요소를 제외합니다(예: 이미 액세스할 수 있는 필드의 장식 이미지 또는 레이블).
- 오디오 또는 색상 신호에만 의존하지 마세요. 진행률, 완료 또는 기타 상태의 유일한 표시가 소리 또는 색 변경인 경우를 방지합니다. 보강 전용 소리와 색으로 명확한 시각적 신호를 포함하도록 사용자 인터페이스를 디자인하거나 특정 접근성 표시기를 추가합니다. 색을 선택할 때 색맹을 가진 사용자를 구분하기 어려운 색상표를 피하려고 합니다.
- 비디오 콘텐츠에 대한 캡션과 오디오 콘텐츠에 대해 읽을 수 있는 스크립트를 제공합니다. 오디오 또는 비디오 콘텐츠의 속도를 조정하는 컨트롤을 제공하고 볼륨 및 전송 컨트롤을 쉽게 찾고 사용할 수 있도록 하는 것도 유용합니다.
- 앱이 여러 언어를 지원하는 경우 접근성 설명을 지역화합니다.
- 대상으로 하는 각 플랫폼에서 앱의 접근성 기능을 테스트합니다. 자세한 내용은 접근성 테스트를 참조하세요.
.NET MAUI