diff --git a/native/Avalonia.Native/src/OSX/automation.mm b/native/Avalonia.Native/src/OSX/automation.mm index 5cd4edaa54..f8c288c489 100644 --- a/native/Avalonia.Native/src/OSX/automation.mm +++ b/native/Avalonia.Native/src/OSX/automation.mm @@ -96,8 +96,8 @@ case AutomationEdit: return NSAccessibilityTextFieldRole; case AutomationHyperlink: return NSAccessibilityLinkRole; case AutomationImage: return NSAccessibilityImageRole; - case AutomationListItem: return NSAccessibilityRowRole; - case AutomationList: return NSAccessibilityTableRole; + case AutomationListItem: return NSAccessibilityGroupRole; + case AutomationList: return NSAccessibilityListRole; case AutomationMenu: return NSAccessibilityMenuBarRole; case AutomationMenuBar: return NSAccessibilityMenuBarRole; case AutomationMenuItem: return NSAccessibilityMenuItemRole; @@ -106,7 +106,7 @@ case AutomationScrollBar: return NSAccessibilityScrollBarRole; case AutomationSlider: return NSAccessibilitySliderRole; case AutomationSpinner: return NSAccessibilityIncrementorRole; - case AutomationStatusBar: return NSAccessibilityTableRole; + case AutomationStatusBar: return NSAccessibilityGroupRole; case AutomationTab: return NSAccessibilityTabGroupRole; case AutomationTabItem: return NSAccessibilityRadioButtonRole; case AutomationText: return NSAccessibilityStaticTextRole; @@ -137,6 +137,11 @@ - (NSAccessibilitySubrole)accessibilitySubrole { + auto controlType = _peer->GetAutomationControlType(); + switch (controlType) { + case AutomationList: return @"AXContentList"; + } + auto landmarkType = _peer->GetLandmarkType(); switch (landmarkType) { case LandmarkBanner: return @"AXLandmarkBanner"; @@ -147,8 +152,9 @@ case LandmarkMain: return @"AXLandmarkMain"; case LandmarkNavigation: return @"AXLandmarkNavigation"; case LandmarkSearch: return @"AXLandmarkSearch"; - default: return NSAccessibilityUnknownSubrole; } + + return NSAccessibilityUnknownSubrole; } - (NSString *)accessibilityRoleDescription