doc/articles/features/accessibility/automation-properties.md
[!TIP] This article covers Uno-specific platform mappings for
AutomationProperties. For a full description of each property and usage guidance, see Expose basic accessibility information (Microsoft Learn).
Uno implements the WinUI AutomationProperties and maps each to the platform's native accessibility API. The tables below show how each property is surfaced on each target.
The accessible name is resolved in this order:
AutomationProperties.NameAutomationProperties.LabeledBy target's textButton.Content when it is a string)| Platform | Rendering | Mapping |
|---|---|---|
| Windows (Win32) | Skia | UIAutomation Name property |
| macOS | Skia | NSAccessibility.accessibilityLabel |
| Web (WASM) | Skia / Native | aria-label attribute on the semantic DOM element |
| Android | Native | AccessibilityNodeInfo.contentDescription |
| iOS | Native | UIAccessibility.accessibilityLabel |
[!NOTE] To avoid performance overhead,
AutomationIdonly has an effect when theIsUiAutomationMappingEnabledMSBuild property is set totrue, or whenUno.UI.FrameworkElementHelper.IsUiAutomationMappingEnabledis set in code.
| Platform | Rendering | Mapping |
|---|---|---|
| Windows (Win32) | Skia | UIAutomation AutomationId property |
| macOS | Skia | NSAccessibility.accessibilityIdentifier |
| Web (WASM) | Skia / Native | xamlautomationid attribute + aria-label on the HTML element |
| Android | Native | View.contentDescription |
| iOS | Native | UIAccessibility.accessibilityIdentifier |
| Platform | Rendering | Mapping |
|---|---|---|
| Windows (Win32) | Skia | UIAutomation HelpText property |
| macOS | Skia | NSAccessibility.accessibilityHelp |
| Web (WASM) | Skia / Native | aria-description attribute |
| Platform | Rendering | Mapping |
|---|---|---|
| Windows (Win32) | Skia | UIAutomation HeadingLevel property |
| macOS | Skia | NSAccessibility heading trait |
| Web (WASM) | Skia | Rendered as <h1>–<h6> semantic HTML elements |
Supported values: None (default), Custom, Form, Main, Navigation, Search.
| Platform | Rendering | Mapping |
|---|---|---|
| Windows (Win32) | Skia | UIAutomation LandmarkType property |
| macOS | Skia | NSAccessibility landmark |
| Web (WASM) | Skia / Native | ARIA landmark roles (role="navigation", role="main", role="search", role="form", role="region") |
When using LandmarkType="Custom", provide a human-readable description with LocalizedLandmarkType.
| Platform | Rendering | Mapping |
|---|---|---|
| Windows (Win32) | Skia | UIAutomation LiveSetting property |
| macOS | Skia | NSAccessibility notification |
| Web (WASM) | Skia / Native | aria-live="polite" or aria-live="assertive" attribute |
Controls whether an element appears in the automation tree.
| Value | Meaning |
|---|---|
Content | Visible in both Content and Control views (default) |
Control | Visible in the Control view only |
Raw | Hidden from all automation views |
AutomationProperties.Name. In XAML use the resource naming convention:
MyButton.[using:Microsoft.UI.Xaml.Automation]AutomationProperties.NameOpacity="0" and IsHitTestVisible="False" to hide elements. Use Visibility="Collapsed" instead — screen readers can still focus invisible elements with non-collapsed visibility.AppBarButton.Label even when it is not visually displayed — it is used by the screen reader.