public void Initialize(object parentWidget, IAccessibleEventSink eventSink) { this.eventSink = eventSink; widget = parentWidget as INSAccessibility; if (widget == null) { throw new ArgumentException("The widget does not implement INSAccessibility.", nameof(parentWidget)); } eventProxy = widget as INSAccessibleEventSource; }
public void Initialize(object parentWidget, IAccessibleEventSink eventSink) { this.eventSink = eventSink; if (parentWidget is EmbedNativeWidgetBackend) // bypass embedding container and bind to the embedded view { widget = ((EmbedNativeWidgetBackend)parentWidget).EmbeddedView; } else if (parentWidget is CustomAlignedContainer) // bypass alignment containers { widget = ((CustomAlignedContainer)parentWidget).Child; } if (widget == null) { widget = parentWidget as INSAccessibility; } if (widget == null) { throw new ArgumentException("The widget does not implement INSAccessibility.", nameof(parentWidget)); } eventProxy = widget as INSAccessibleEventSource; }
public static Accessibility.Role GetXwtRole(INSAccessibility widget) { var r = widget.AccessibilityRole; var sr = widget.AccessibilitySubrole; if (r == NSAccessibilityRoles.ButtonRole) { if (sr == NSAccessibilitySubroles.CloseButtonSubrole) { return(Accessibility.Role.ButtonClose); } if (sr == NSAccessibilitySubroles.MinimizeButtonSubrole) { return(Accessibility.Role.ButtonMinimize); } if (sr == NSAccessibilitySubroles.ZoomButtonSubrole) { return(Accessibility.Role.ButtonMaximize); } if (sr == NSAccessibilitySubroles.FullScreenButtonSubrole) { return(Accessibility.Role.ButtonFullscreen); } return(Accessibility.Role.Button); } if (r == NSAccessibilityRoles.CellRole) { return(Accessibility.Role.Cell); } if (r == NSAccessibilityRoles.CheckBoxRole) { return(Accessibility.Role.CheckBox); } if (r == NSAccessibilityRoles.ColorWellRole) { return(Accessibility.Role.ColorChooser); } if (r == NSAccessibilityRoles.ColumnRole) { return(Accessibility.Role.Column); } if (r == NSAccessibilityRoles.ComboBoxRole) { return(Accessibility.Role.ComboBox); } if (r == NSAccessibilityRoles.ComboBoxRole) { return(Accessibility.Role.ComboBox); } if (r == NSAccessibilityRoles.DisclosureTriangleRole) { return(Accessibility.Role.Disclosure); } if (r == NSAccessibilityRoles.GroupRole) { return(Accessibility.Role.Group); } if (r == NSAccessibilityRoles.ImageRole) { return(Accessibility.Role.Image); } if (r == NSAccessibilityRoles.LevelIndicatorRole) { return(Accessibility.Role.LevelIndicator); } if (r == NSAccessibilityRoles.LinkRole) { return(Accessibility.Role.Link); } if (r == NSAccessibilityRoles.ListRole) { return(Accessibility.Role.List); } if (r == "NSAccessibilityMenuBarRole") { return(Accessibility.Role.MenuBar); } if (r == NSAccessibilityRoles.MenuBarItemRole) { return(Accessibility.Role.MenuBarItem); } if (r == NSAccessibilityRoles.MenuItemRole) { return(Accessibility.Role.MenuItem); } if (r == NSAccessibilityRoles.MenuRole) { return(Accessibility.Role.Menu); } if (r == NSAccessibilityRoles.OutlineRole) { return(Accessibility.Role.Tree); } if (r == NSAccessibilityRoles.PopUpButtonRole) { return(Accessibility.Role.MenuButton); } if (r == NSAccessibilityRoles.PopoverRole) { return(Accessibility.Role.Popup); } if (r == NSAccessibilityRoles.ProgressIndicatorRole) { return(Accessibility.Role.ProgressBar); } if (r == NSAccessibilityRoles.RadioButtonRole) { return(Accessibility.Role.RadioButton); } if (r == NSAccessibilityRoles.RadioGroupRole) { return(Accessibility.Role.RadioGroup); } if (r == NSAccessibilityRoles.RowRole) { return(Accessibility.Role.Row); } if (r == NSAccessibilityRoles.ScrollAreaRole) { return(Accessibility.Role.ScrollView); } if (r == NSAccessibilityRoles.ScrollBarRole) { return(Accessibility.Role.ScrollBar); } if (r == NSAccessibilityRoles.SliderRole) { return(Accessibility.Role.Slider); } if (r == NSAccessibilityRoles.SplitGroupRole) { return(Accessibility.Role.Paned); } if (r == NSAccessibilityRoles.SplitterRole) { return(Accessibility.Role.PanedSplitter); } if (r == NSAccessibilityRoles.StaticTextRole) { return(Accessibility.Role.Label); } if (r == NSAccessibilityRoles.TabGroupRole) { return(Accessibility.Role.Notebook); } if (r == NSAccessibilityRoles.TableRole) { return(Accessibility.Role.Table); } if (r == NSAccessibilityRoles.TextAreaRole) { return(Accessibility.Role.TextEntry); } if (r == NSAccessibilityRoles.TextFieldRole) { if (sr == NSAccessibilitySubroles.SearchFieldSubrole) { return(Accessibility.Role.TextEntrySearch); } if (sr == NSAccessibilitySubroles.SecureTextFieldSubrole) { return(Accessibility.Role.TextEntryPassword); } return(Accessibility.Role.TextEntry); } if (r == NSAccessibilityRoles.ToolbarRole) { return(Accessibility.Role.ToolBar); } if (r == NSAccessibilityRoles.ValueIndicatorRole) { return(Accessibility.Role.SpinButton); } //if (r == NSAccessibilityRoles.WindowRole) // return Accessibility.Role.Window; return(Accessibility.Role.Custom); // TODO: //NSAccessibilityRoles.ApplicationRole; //NSAccessibilityRoles.BrowserRole; //NSAccessibilityRoles.BusyIndicatorRole; //NSAccessibilityRoles.DrawerRole; //NSAccessibilityRoles.GridRole; //NSAccessibilityRoles.GrowAreaRole; //NSAccessibilityRoles.HandleRole; //NSAccessibilityRoles.HelpTagRole; //NSAccessibilityRoles.IncrementorRole; //NSAccessibilityRoles.LayoutAreaRole; //NSAccessibilityRoles.LayoutItemRole; //NSAccessibilityRoles.IncrementorRole //NSAccessibilityRoles.MatteRole; //NSAccessibilityRoles.MenuButtonRole; //NSAccessibilityRoles.RelevanceIndicatorRole; //NSAccessibilityRoles.RulerMarkerRole; //NSAccessibilityRoles.RulerRole; //NSAccessibilityRoles.SheetRole; //NSAccessibilityRoles.UnknownRole; }