diff options
author | Dominique Louis <dominique@DIPRAJ1.northamerica.corp.microsoft.com> | 2019-05-08 14:39:41 +0300 |
---|---|---|
committer | CartBlanche <savagesoftware@gmail.com> | 2019-10-23 21:19:21 +0300 |
commit | a2ce5d038df8363ed6f7c9cf9a86ab54c57ac978 (patch) | |
tree | 2ef0d6b161d3389cecab1b02ae1873e5417098ca | |
parent | 9dc5296c7a3b44fc475f7813fca4ef0f4ff5324c (diff) |
[Mac] Changed Accessibility text to sound more natural and helpful when read out.
22 files changed, 636 insertions, 219 deletions
diff --git a/Xamarin.PropertyEditing.Mac/Controls/BasePathEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/BasePathEditorControl.cs index 461512e..923281e 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/BasePathEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/BasePathEditorControl.cs @@ -61,8 +61,8 @@ namespace Xamarin.PropertyEditing.Mac this.objects[0] = this.currentTextField;
this.objects[1] = this.browsePathButton; this.objects[2] = this.revealPathButton;
- this.AccessibilityElement = true; - this.AccessibilityRole = NSAccessibilityRoles.GroupRole; + AccessibilityElement = true; + AccessibilityRole = NSAccessibilityRoles.GroupRole; this.currentTextField.AccessibilityRole = NSAccessibilityRoles.TextFieldRole;
this.revealPathButton.AccessibilityRole = NSAccessibilityRoles.ButtonRole;
diff --git a/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingEditorWindow.cs b/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingEditorWindow.cs index f41673f..3413bb9 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingEditorWindow.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingEditorWindow.cs @@ -80,7 +80,9 @@ namespace Xamarin.PropertyEditing.Mac TranslatesAutoresizingMaskIntoConstraints = false }; - this.buttonDone = new NSButton { + this.buttonDone = new FocusableButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingEditorOK, BezelStyle = NSBezelStyle.Rounded, ControlSize = NSControlSize.Regular, Highlighted = true, @@ -90,7 +92,9 @@ namespace Xamarin.PropertyEditing.Mac this.mainContainer.AddSubview (this.buttonDone); - this.buttonCancel = new NSButton { + this.buttonCancel = new FocusableButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingEditorCancel, BezelStyle = NSBezelStyle.Rounded, ControlSize = NSControlSize.Regular, Title = Properties.Resources.Cancel, @@ -114,6 +118,8 @@ namespace Xamarin.PropertyEditing.Mac this.mainContainer.AddSubview (bindingTypeLabel); this.bindingTypePopup = new FocusablePopUpButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingEditorBindingType, ControlSize = NSControlSize.Regular, Font = NSFont.FromFontName (PropertyEditorControl.DefaultFontName, 13), StringValue = String.Empty, @@ -148,6 +154,8 @@ namespace Xamarin.PropertyEditing.Mac this.mainContainer.AddSubview (valueConverterLabel); this.valueConverterPopup = new FocusablePopUpButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingEditorValueConverter, TranslatesAutoresizingMaskIntoConstraints = false, StringValue = String.Empty, ControlSize = NSControlSize.Regular, @@ -159,6 +167,8 @@ namespace Xamarin.PropertyEditing.Mac this.mainContainer.AddSubview (this.valueConverterPopup); this.addConverterButton = new CommandButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingEditorAddConverter, BezelStyle = NSBezelStyle.Rounded, Command = ViewModel.RequestAddValueConverterCommand, Image = NSImage.ImageNamed (NSImageName.AddTemplate), @@ -170,6 +180,8 @@ namespace Xamarin.PropertyEditing.Mac this.mainContainer.AddSubview (this.addConverterButton); this.buttonMoreSettings = new NSButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingEditorMore, BezelStyle = NSBezelStyle.Disclosure, Title = string.Empty, TranslatesAutoresizingMaskIntoConstraints = false, diff --git a/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingPathSelectorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingPathSelectorControl.cs index 2d84be3..10815ce 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingPathSelectorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/BindingPathSelectorControl.cs @@ -63,6 +63,8 @@ namespace Xamarin.PropertyEditing.Mac }); var customCheckBox = new NSButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingPathSelectorCustomCheckbox, ControlSize = NSControlSize.Small, Font = NSFont.FromFontName (PropertyEditorControl.DefaultFontName, PropertyEditorControl.DefaultFontSize), Title = Properties.Resources.Custom, @@ -78,6 +80,8 @@ namespace Xamarin.PropertyEditing.Mac }); this.customPathControl = new NSTextField { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingPathSelectorCustomPath, ControlSize = NSControlSize.Regular, Enabled = false, TranslatesAutoresizingMaskIntoConstraints = false, @@ -95,6 +99,8 @@ namespace Xamarin.PropertyEditing.Mac // create a table view and a scroll view var outlineViewContainer = new NSScrollView { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingPathSelectorPathTable, TranslatesAutoresizingMaskIntoConstraints = false, }; diff --git a/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/CreateValueConverterWindow.cs b/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/CreateValueConverterWindow.cs index b8c5c0e..3e34e91 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/CreateValueConverterWindow.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/BindingEditor/CreateValueConverterWindow.cs @@ -55,6 +55,8 @@ namespace Xamarin.PropertyEditing.Mac }); this.valueConverterName = new NSTextField { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingAddValueConverterName, ControlSize = NSControlSize.Regular, TranslatesAutoresizingMaskIntoConstraints = false, }; @@ -81,7 +83,9 @@ namespace Xamarin.PropertyEditing.Mac NSLayoutConstraint.Create (typeSelectorControl, NSLayoutAttribute.Height, NSLayoutRelation.Equal, container, NSLayoutAttribute.Height, 1f, -95f), }); - var buttonSelect = new NSButton { + var buttonSelect = new FocusableButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingAddValueConverterOK, BezelStyle = NSBezelStyle.Rounded, ControlSize = NSControlSize.Regular, Enabled = false, @@ -104,7 +108,9 @@ namespace Xamarin.PropertyEditing.Mac NSLayoutConstraint.Create (buttonSelect, NSLayoutAttribute.Width, NSLayoutRelation.GreaterThanOrEqual, 1f, 80f), }); - var buttonCancel = new NSButton { + var buttonCancel = new FocusableButton { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityBindingAddValueConverterCancel, BezelStyle = NSBezelStyle.Rounded, ControlSize = NSControlSize.Regular, Title = Properties.Resources.Cancel, diff --git a/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs index af1be83..c0e6344 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs @@ -133,5 +133,11 @@ namespace Xamarin.PropertyEditing.Mac this.popover.SetAppearance (HostResources.GetVibrantAppearance (EffectiveAppearance)); this.popover.ContentViewController.View.Appearance = EffectiveAppearance; } + + protected override void UpdateAccessibilityValues () + { + this.popUpButton.AccessibilityEnabled = this.popUpButton.Enabled; + this.popUpButton.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityPopUp, ViewModel.Property.Name); + } } } diff --git a/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorControl.cs index 27297e3..9726187 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorControl.cs @@ -19,6 +19,8 @@ namespace Xamarin.PropertyEditing.Mac this.hostResources = hostResources; this.collectionView = new NSTableView { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityCollectionEditorTable, HeaderView = null, RowHeight = 24 }; @@ -58,17 +60,19 @@ namespace Xamarin.PropertyEditing.Mac AddSubview (scrollBorder); - this.typeSelector = new NSComboBox { - TranslatesAutoresizingMaskIntoConstraints = false, + this.typeSelector = new FocusableComboBox { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityCollectionTypeSelector, ControlSize = NSControlSize.Mini, Font = NSFont.SystemFontOfSize (NSFont.SystemFontSizeForControlSize (NSControlSize.Mini)), - AccessibilityTitle = Properties.Resources.AccessibilityCollectionTypeSelector + TranslatesAutoresizingMaskIntoConstraints = false, }; this.typeSelector.SelectionChanged += OnSelectedTypeChanged; - this.add = new NSButton { - BezelStyle = NSBezelStyle.SmallSquare, + this.add = new FocusableButton { + AccessibilityEnabled = true, AccessibilityTitle = Properties.Resources.AccessibilityCollectionAddButton, + BezelStyle = NSBezelStyle.SmallSquare, Bordered = false, }; this.add.Activated += OnAddChild; @@ -81,9 +85,10 @@ namespace Xamarin.PropertyEditing.Mac ContentViewMargins = new CGSize (0, 0) }; - this.remove = new NSButton { - BezelStyle = NSBezelStyle.SmallSquare, + this.remove = new FocusableButton { + AccessibilityEnabled = true, AccessibilityTitle = Properties.Resources.AccessibilityCollectionRemoveButton, + BezelStyle = NSBezelStyle.SmallSquare, Bordered = false }; this.remove.Activated += OnRemoveChild; diff --git a/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorWindow.cs b/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorWindow.cs index 5f83b00..6b42de2 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorWindow.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/CollectionEditorWindow.cs @@ -27,11 +27,17 @@ namespace Xamarin.PropertyEditing.Mac ContentView.AddSubview (this.collectionEditor); this.ok = NSButton.CreateButton (Properties.Resources.OK, OnOked); + this.ok.AccessibilityEnabled = true; + this.ok.AccessibilityTitle = Properties.Resources.AccessibilityCollectionOKButton; + this.ok.Highlighted = true; this.ok.TranslatesAutoresizingMaskIntoConstraints = false; + //this.ok.KeyEquivalent = "\r"; // FIXME: The type selector popup doesn't eat this key, so it ends up closing both. ContentView.AddSubview (this.ok); this.cancel = NSButton.CreateButton (Properties.Resources.Cancel, OnCanceled); + this.cancel.AccessibilityEnabled = true; + this.cancel.AccessibilityTitle = Properties.Resources.AccessibilityCollectionCancelButton; this.cancel.TranslatesAutoresizingMaskIntoConstraints = false; ContentView.AddSubview (this.cancel); diff --git a/Xamarin.PropertyEditing.Mac/Controls/CombinablePropertyEditor.cs b/Xamarin.PropertyEditing.Mac/Controls/CombinablePropertyEditor.cs index c62c822..5122f24 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/CombinablePropertyEditor.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/CombinablePropertyEditor.cs @@ -87,6 +87,8 @@ namespace Xamarin.PropertyEditing.Mac this.lastKeyView = this.combinableList.KeyAt (this.combinableList.Count - 1); SetEnabled (); + + UpdateAccessibilityValues (); } protected override void UpdateValue () @@ -106,7 +108,7 @@ namespace Xamarin.PropertyEditing.Mac { foreach (var item in combinableList) { item.Key.AccessibilityEnabled = item.Key.Enabled; - item.Key.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityCombobox, ViewModel.Property.Name); + item.Key.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityBoolean, ViewModel.Property.Name); } } diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/NumericSpinEditor.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/NumericSpinEditor.cs index aa5c648..e7ddd5d 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/Custom/NumericSpinEditor.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/NumericSpinEditor.cs @@ -161,6 +161,16 @@ namespace Xamarin.PropertyEditing.Mac set { this.numericEditor.AllowNegativeValues = value; } } + public override bool AccessibilityEnabled { + get { return this.numericEditor.AccessibilityEnabled; } + set { this.numericEditor.AccessibilityEnabled = value; } + } + + public override string AccessibilityTitle { + get { return this.numericEditor.AccessibilityTitle; } + set { this.numericEditor.AccessibilityTitle = value; } + } + public virtual void Reset () { } diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/PropertyButton.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/PropertyButton.cs index c621392..0070f6c 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/Custom/PropertyButton.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/PropertyButton.cs @@ -31,6 +31,8 @@ namespace Xamarin.PropertyEditing.Mac if (this.viewModel.SupportsBindings) this.viewModel.CreateBindingRequested += OnBindingRequested; ValueSourceChanged (this.viewModel.ValueSource); + + AccessibilityTitle = string.Format (Properties.Resources.AccessibilityPropertiesButton, ViewModel.Property.Name); } if (this.popUpContextMenu != null) { @@ -47,7 +49,6 @@ namespace Xamarin.PropertyEditing.Mac this.hostResources = hostResources; - AccessibilityTitle = Properties.Resources.AccessibilityPropertiesButton; AccessibilityHelp = Properties.Resources.AccessibilityPropertiesButtonDescription; Enabled = true; Image = this.hostResources.GetNamedImage ("pe-property-button-default-mac-10"); diff --git a/Xamarin.PropertyEditing.Mac/Controls/CustomExpressionView.cs b/Xamarin.PropertyEditing.Mac/Controls/CustomExpressionView.cs index af435dc..370c7fc 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/CustomExpressionView.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/CustomExpressionView.cs @@ -34,11 +34,17 @@ namespace Xamarin.PropertyEditing.Mac PropertyInfo customAutocompleteItemsPropertyInfo = vmType.GetProperty (AutocompleteItemsString); if (customAutocompleteItemsPropertyInfo.GetValue (viewModel) is ObservableCollectionEx<string> values) { if (values != null && values.Count > 0) - editorControl = new AutocompleteComboBox (hostResources, viewModel, values, previewCustomExpressionPropertyInfo); + editorControl = new AutocompleteComboBox (hostResources, viewModel, values, previewCustomExpressionPropertyInfo) { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityCustomExpressionCombobox, + }; } if (editorControl == null) - editorControl = new NSTextField (); + editorControl = new NSTextField { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityCustomExpressionEditControl, + }; editorControl.TranslatesAutoresizingMaskIntoConstraints = false; editorControl.StringValue = (string)value ?? string.Empty; diff --git a/Xamarin.PropertyEditing.Mac/Controls/FilePathEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/FilePathEditorControl.cs index 1a28703..731b5d2 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/FilePathEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/FilePathEditorControl.cs @@ -38,6 +38,10 @@ namespace Xamarin.PropertyEditing.Mac {
this.currentTextField.AccessibilityEnabled = this.currentTextField.Enabled;
this.currentTextField.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityPathEditor, ViewModel.Property.Name, Properties.Resources.File);
+
+ this.revealPathButton.AccessibilityEnabled = this.browsePathButton.AccessibilityEnabled = this.currentTextField.AccessibilityEnabled;
+ this.revealPathButton.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityRevealButton, ViewModel.Property.Name, Properties.Resources.File);
+ this.browsePathButton.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityBrowseButton, ViewModel.Property.Name, Properties.Resources.File);
}
protected override void UpdateValue ()
diff --git a/Xamarin.PropertyEditing.Mac/Controls/NumericEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/NumericEditorControl.cs index a7a67bb..05f451d 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/NumericEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/NumericEditorControl.cs @@ -156,6 +156,7 @@ namespace Xamarin.PropertyEditing.Mac if (this.inputModePopup != null) { this.inputModePopup.Hidden = !ViewModel.HasInputModes; this.editorInputModeConstraint.Active = ViewModel.HasInputModes; + UpdateAccessibilityValues (); } SetEnabled (); diff --git a/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs index a98a6b3..55f809e 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs @@ -54,7 +54,8 @@ namespace Xamarin.PropertyEditing.Mac protected override void UpdateAccessibilityValues () { - this.createObject.AccessibilityTitle = String.Format (Properties.Resources.NewInstanceForProperty, ViewModel.Property.Name); + this.createObject.AccessibilityEnabled = this.createObject.Enabled; + this.createObject.AccessibilityTitle = string.Format (Properties.Resources.NewInstanceForProperty, ViewModel.Property.Name); } protected override void OnViewModelChanged (PropertyViewModel oldModel) diff --git a/Xamarin.PropertyEditing.Mac/Controls/PredefinedValuesEditor.cs b/Xamarin.PropertyEditing.Mac/Controls/PredefinedValuesEditor.cs index 8e74659..4cac9a1 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/PredefinedValuesEditor.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/PredefinedValuesEditor.cs @@ -66,7 +66,7 @@ namespace Xamarin.PropertyEditing.Mac { if (ViewModel.IsConstrainedToPredefined) { this.popupButton.AccessibilityEnabled = this.popupButton.Enabled; - this.popupButton.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityCombobox, ViewModel.Property.Name); + this.popupButton.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityPopUp, ViewModel.Property.Name); } else { this.comboBox.AccessibilityEnabled = this.comboBox.Enabled; this.comboBox.AccessibilityTitle = string.Format (Properties.Resources.AccessibilityCombobox, ViewModel.Property.Name); diff --git a/Xamarin.PropertyEditing.Mac/Controls/StringEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/StringEditorControl.cs index e20e85a..39b84ef 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/StringEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/StringEditorControl.cs @@ -77,6 +77,7 @@ namespace Xamarin.PropertyEditing.Mac if (this.inputModePopup != null) { this.inputModePopup.Hidden = !ViewModel.HasInputModes; this.editorInputModeConstraint.Active = ViewModel.HasInputModes; + UpdateAccessibilityValues (); } SetEnabled (); diff --git a/Xamarin.PropertyEditing.Mac/Controls/TypeEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/TypeEditorControl.cs index 44a61a8..7dfa446 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/TypeEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/TypeEditorControl.cs @@ -54,7 +54,8 @@ namespace Xamarin.PropertyEditing.Mac protected override void UpdateAccessibilityValues () { - this.selectType.AccessibilityTitle = String.Format (Properties.Resources.SelectTypeForProperty, ViewModel.Property.Name); + this.selectType.AccessibilityEnabled = this.selectType.Enabled; + this.selectType.AccessibilityTitle = string.Format (Properties.Resources.SelectTypeForProperty, ViewModel.Property.Name); } protected override void OnViewModelChanged (PropertyViewModel oldModel) diff --git a/Xamarin.PropertyEditing.Mac/Controls/TypeSelectorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/TypeSelectorControl.cs index d5574cb..6fe6095 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/TypeSelectorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/TypeSelectorControl.cs @@ -33,6 +33,8 @@ namespace Xamarin.PropertyEditing.Mac public TypeSelectorControl() { this.checkbox = NSButton.CreateCheckbox (Properties.Resources.ShowAllAssemblies, OnCheckedChanged); + this.checkbox.AccessibilityEnabled = true; + this.checkbox.AccessibilityTitle = Properties.Resources.AccessibilityTypeSelectorCheckbox; this.checkbox.TranslatesAutoresizingMaskIntoConstraints = false; AddSubview (this.checkbox); @@ -42,6 +44,8 @@ namespace Xamarin.PropertyEditing.Mac var d = new TypeSelectorDelegate (); this.outlineView = new NSOutlineView { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityTypeSelectorTable, Delegate = d, AutoresizingMask = NSViewResizingMask.WidthSizable, HeaderView = null, @@ -56,8 +60,10 @@ namespace Xamarin.PropertyEditing.Mac AddSubview (scroll); this.filter = new NSSearchField { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityTypeSelectorSearch, + PlaceholderString = "Filter", TranslatesAutoresizingMaskIntoConstraints = false, - PlaceholderString = "Filter" }; this.filter.Changed += OnFilterChanged; diff --git a/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs b/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs index 1463c48..6e5da45 100644 --- a/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs +++ b/Xamarin.PropertyEditing.Mac/PropertyEditorPanel.cs @@ -108,12 +108,16 @@ namespace Xamarin.PropertyEditing.Mac string imageName = GetIconName (item.ArrangeMode); TabButton arrangeMode = new TabButton (this.hostResources, imageName) { Bounds = new CGRect (0, 0, 32, 30), + Selected = item.IsChecked, Tag = i, - Selected = item.IsChecked + ToolTip = GetTooltip (item.ArrangeMode), }; arrangeMode.Clicked += OnArrangeModeChanged; + arrangeMode.AccessibilityEnabled = true; + arrangeMode.AccessibilityTitle = string.Format (Properties.Resources.ArrangeByButtonName, item.ArrangeMode.ToString()); + this.tabStack.AddView (arrangeMode, NSStackViewGravity.Top); } } @@ -160,6 +164,8 @@ namespace Xamarin.PropertyEditing.Mac ((NSView)this.header.ContentView).AddSubview (this.propertyFilter); this.propertyFilter.Changed += OnPropertyFilterChanged; + this.propertyFilter.AccessibilityEnabled = true; + this.propertyFilter.AccessibilityTitle = Properties.Resources.AccessibilityPropertyFilter; this.tabStack = new NSStackView { Orientation = NSUserInterfaceLayoutOrientation.Horizontal, @@ -251,5 +257,17 @@ namespace Xamarin.PropertyEditing.Mac throw new ArgumentException(); } } + + private string GetTooltip (PropertyArrangeMode mode) + { + switch (mode) { + case PropertyArrangeMode.Name: + return string.Format("{0} {1}", Properties.Resources.ArrangeByLabel, Properties.Resources.ArrangeByName); + case PropertyArrangeMode.Category: + return string.Format ("{0} {1}", Properties.Resources.ArrangeByLabel, Properties.Resources.ArrangeByCategory); + default: + throw new ArgumentException (); + } + } } } diff --git a/Xamarin.PropertyEditing.Mac/PropertyList.cs b/Xamarin.PropertyEditing.Mac/PropertyList.cs index 06b76e5..ebacb4e 100644 --- a/Xamarin.PropertyEditing.Mac/PropertyList.cs +++ b/Xamarin.PropertyEditing.Mac/PropertyList.cs @@ -16,6 +16,8 @@ namespace Xamarin.PropertyEditing.Mac public PropertyList () { this.propertyTable = new FirstResponderOutlineView { + AccessibilityEnabled = true, + AccessibilityTitle = Properties.Resources.AccessibilityPropertyTable, IndentationPerLevel = 0, SelectionHighlightStyle = NSTableViewSelectionHighlightStyle.None, HeaderView = null, diff --git a/Xamarin.PropertyEditing/Properties/Resources.Designer.cs b/Xamarin.PropertyEditing/Properties/Resources.Designer.cs index 1d9813f..80259ba 100644 --- a/Xamarin.PropertyEditing/Properties/Resources.Designer.cs +++ b/Xamarin.PropertyEditing/Properties/Resources.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -106,12 +106,6 @@ namespace Xamarin.PropertyEditing.Properties { return ResourceManager.GetString("ColorSpace", resourceCulture); } } - - public static string CollectionEditHelpText { - get { - return ResourceManager.GetString("CollectionEditHelpText", resourceCulture); - } - } public static string CurrentColor { get { @@ -695,12 +689,6 @@ namespace Xamarin.PropertyEditing.Properties { } } - public static string GenericErrorMessage { - get { - return ResourceManager.GetString("GenericErrorMessage", resourceCulture); - } - } - public static string DefineIn { get { return ResourceManager.GetString("DefineIn", resourceCulture); @@ -713,15 +701,21 @@ namespace Xamarin.PropertyEditing.Properties { } } - public static string ApplyToAll { + public static string ThisDocument { get { - return ResourceManager.GetString("ApplyToAll", resourceCulture); + return ResourceManager.GetString("ThisDocument", resourceCulture); } } - public static string ThisDocument { + public static string ResourceDictionary { get { - return ResourceManager.GetString("ThisDocument", resourceCulture); + return ResourceManager.GetString("ResourceDictionary", resourceCulture); + } + } + + public static string ApplyToAll { + get { + return ResourceManager.GetString("ApplyToAll", resourceCulture); } } @@ -743,12 +737,6 @@ namespace Xamarin.PropertyEditing.Properties { } } - public static string ResourceDictionary { - get { - return ResourceManager.GetString("ResourceDictionary", resourceCulture); - } - } - public static string CreateDataBindingMenuItem { get { return ResourceManager.GetString("CreateDataBindingMenuItem", resourceCulture); @@ -797,12 +785,6 @@ namespace Xamarin.PropertyEditing.Properties { } } - public static string ResourcePlural { - get { - return ResourceManager.GetString("ResourcePlural", resourceCulture); - } - } - public static string Custom { get { return ResourceManager.GetString("Custom", resourceCulture); @@ -911,6 +893,12 @@ namespace Xamarin.PropertyEditing.Properties { } } + public static string AccessibilityPopUp { + get { + return ResourceManager.GetString("AccessibilityPopUp", resourceCulture); + } + } + public static string AccessibilityCollection { get { return ResourceManager.GetString("AccessibilityCollection", resourceCulture); @@ -941,6 +929,18 @@ namespace Xamarin.PropertyEditing.Properties { } } + public static string AccessibilityCollectionOKButton { + get { + return ResourceManager.GetString("AccessibilityCollectionOKButton", resourceCulture); + } + } + + public static string AccessibilityCollectionCancelButton { + get { + return ResourceManager.GetString("AccessibilityCollectionCancelButton", resourceCulture); + } + } + public static string AccessibilityString { get { return ResourceManager.GetString("AccessibilityString", resourceCulture); @@ -988,35 +988,11 @@ namespace Xamarin.PropertyEditing.Properties { return ResourceManager.GetString("AccessibilityHeightEditor", resourceCulture); } } - - public static string ArrangeByCategory { - get { - return ResourceManager.GetString("ArrangeByCategory", resourceCulture); - } - } public static string ArrangeByLabel { - get { - return ResourceManager.GetString("ArrangeByLabel", resourceCulture); - } - } - - public static string ArrangeByName { - get { - return ResourceManager.GetString("ArrangeByName", resourceCulture); - } - } - - public static string ArrangeByValueSource { - get { - return ResourceManager.GetString("ArrangeByValueSource", resourceCulture); - } - } - - public static string ArrangeByButtonName { - get { - return ResourceManager.GetString("ArrangeByButtonName", resourceCulture); - } + get { + return ResourceManager.GetString("ArrangeByLabel", resourceCulture); + } } public static string AccessibilityPropertiesButton { @@ -1031,18 +1007,6 @@ namespace Xamarin.PropertyEditing.Properties { } } - public static string AccessibilityActionButton { - get { - return ResourceManager.GetString("AccessibilityActionButton", resourceCulture); - } - } - - public static string AccessibilityActionButtonDescription { - get { - return ResourceManager.GetString("AccessibilityActionButtonDescription", resourceCulture); - } - } - public static string CollectionTargetsHeader { get { return ResourceManager.GetString("CollectionTargetsHeader", resourceCulture); @@ -1151,6 +1115,18 @@ namespace Xamarin.PropertyEditing.Properties { } } + public static string AccessibilityBrowseButton { + get { + return ResourceManager.GetString("AccessibilityBrowseButton", resourceCulture); + } + } + + public static string AccessibilityRevealButton { + get { + return ResourceManager.GetString("AccessibilityRevealButton", resourceCulture); + } + } + public static string ChooseFileOrDirectory { get { return ResourceManager.GetString("ChooseFileOrDirectory", resourceCulture); @@ -1234,106 +1210,262 @@ namespace Xamarin.PropertyEditing.Properties { return ResourceManager.GetString("ResourceNotSupported", resourceCulture); } } - + public static string AddCollectionItem { - get { - return ResourceManager.GetString("AddCollectionItem", resourceCulture); - } + get { + return ResourceManager.GetString("AddCollectionItem", resourceCulture); + } } - + public static string ResourcesAllSources { - get { - return ResourceManager.GetString("ResourcesAllSources", resourceCulture); - } + get { + return ResourceManager.GetString("ResourcesAllSources", resourceCulture); + } } - + public static string ResourcesLocalSource { - get { - return ResourceManager.GetString("ResourcesLocalSource", resourceCulture); - } + get { + return ResourceManager.GetString("ResourcesLocalSource", resourceCulture); + } } - + public static string ResourcesSharedSource { - get { - return ResourceManager.GetString ("ResourcesSharedSource", resourceCulture); - } + get { + return ResourceManager.GetString("ResourcesSharedSource", resourceCulture); + } } - - public static string UncommonPropertiesName { - get { - return ResourceManager.GetString("UncommonPropertiesName", resourceCulture); - } + + public static string ArrangeByCategory { + get { + return ResourceManager.GetString("ArrangeByCategory", resourceCulture); + } } - - public static string PropertyButtonName { - get { - return ResourceManager.GetString("PropertyButtonName", resourceCulture); - } + + public static string ArrangeByName { + get { + return ResourceManager.GetString("ArrangeByName", resourceCulture); + } } - - public static string AutoresizingBottomMarginName { + + public static string ArrangeByValueSource { get { - return ResourceManager.GetString("AutoresizingBottomMarginName", resourceCulture); + return ResourceManager.GetString("ArrangeByValueSource", resourceCulture); } } - - public static string AutoresizingFixedSized { + + public static string CollectionEditHelpText { get { - return ResourceManager.GetString("AutoresizingFixedSized", resourceCulture); + return ResourceManager.GetString("CollectionEditHelpText", resourceCulture); } } - - public static string AutoresizingHeightSizable { + + public static string UncommonPropertiesName { get { - return ResourceManager.GetString("AutoresizingHeightSizable", resourceCulture); + return ResourceManager.GetString("UncommonPropertiesName", resourceCulture); } } - + + public static string ArrangeByButtonName { + get { + return ResourceManager.GetString("ArrangeByButtonName", resourceCulture); + } + } + + public static string PropertyButtonName { + get { + return ResourceManager.GetString("PropertyButtonName", resourceCulture); + } + } + public static string AutoresizingLeftMarginName { get { return ResourceManager.GetString("AutoresizingLeftMarginName", resourceCulture); } } - + + public static string Autosizing { + get { + return ResourceManager.GetString("Autosizing", resourceCulture); + } + } + + public static string Example { + get { + return ResourceManager.GetString("Example", resourceCulture); + } + } + + public static string AutoresizingBottomMarginName { + get { + return ResourceManager.GetString("AutoresizingBottomMarginName", resourceCulture); + } + } + public static string AutoresizingRightMarginName { get { return ResourceManager.GetString("AutoresizingRightMarginName", resourceCulture); } } - + public static string AutoresizingSizingHelpText { get { return ResourceManager.GetString("AutoresizingSizingHelpText", resourceCulture); } } - - public static string AutoresizingSizingName { + + public static string AutoresizingTopMarginName { get { - return ResourceManager.GetString("AutoresizingSizingName", resourceCulture); + return ResourceManager.GetString("AutoresizingTopMarginName", resourceCulture); } } - - public static string AutoresizingTopMarginName { + + public static string AutoresizingFixedSized { get { - return ResourceManager.GetString("AutoresizingTopMarginName", resourceCulture); + return ResourceManager.GetString("AutoresizingFixedSized", resourceCulture); } } - + + public static string AutoresizingHeightSizable { + get { + return ResourceManager.GetString("AutoresizingHeightSizable", resourceCulture); + } + } + + public static string AutoresizingSizingName { + get { + return ResourceManager.GetString("AutoresizingSizingName", resourceCulture); + } + } + public static string AutoresizingWidthHeightSizable { get { return ResourceManager.GetString("AutoresizingWidthHeightSizable", resourceCulture); } } - + public static string AutoresizingWidthSizable { get { return ResourceManager.GetString("AutoresizingWidthSizable", resourceCulture); } } - - public static string Autosizing { + + public static string AccessibilityPropertyFilter { get { - return ResourceManager.GetString("Autosizing", resourceCulture); + return ResourceManager.GetString("AccessibilityPropertyFilter", resourceCulture); + } + } + + public static string AccessibilityTypeSelectorCheckbox { + get { + return ResourceManager.GetString("AccessibilityTypeSelectorCheckbox", resourceCulture); + } + } + + public static string AccessibilityTypeSelectorSearch { + get { + return ResourceManager.GetString("AccessibilityTypeSelectorSearch", resourceCulture); + } + } + + public static string AccessibilityTypeSelectorTable { + get { + return ResourceManager.GetString("AccessibilityTypeSelectorTable", resourceCulture); + } + } + + public static string AccessibilityCollectionEditorTable { + get { + return ResourceManager.GetString("AccessibilityCollectionEditorTable", resourceCulture); + } + } + + public static string AccessibilityPropertyTable { + get { + return ResourceManager.GetString("AccessibilityPropertyTable", resourceCulture); + } + } + + public static string AccessibilityCustomExpressionCombobox { + get { + return ResourceManager.GetString("AccessibilityCustomExpressionCombobox", resourceCulture); + } + } + + public static string AccessibilityCustomExpressionEditControl { + get { + return ResourceManager.GetString("AccessibilityCustomExpressionEditControl", resourceCulture); + } + } + + public static string AccessibilityBindingEditorOK { + get { + return ResourceManager.GetString("AccessibilityBindingEditorOK", resourceCulture); + } + } + + public static string AccessibilityBindingEditorCancel { + get { + return ResourceManager.GetString("AccessibilityBindingEditorCancel", resourceCulture); + } + } + + public static string AccessibilityBindingEditorValueConverter { + get { + return ResourceManager.GetString("AccessibilityBindingEditorValueConverter", resourceCulture); + } + } + + public static string AccessibilityBindingEditorAddConverter { + get { + return ResourceManager.GetString("AccessibilityBindingEditorAddConverter", resourceCulture); + } + } + + public static string AccessibilityBindingPathSelectorCustomCheckbox { + get { + return ResourceManager.GetString("AccessibilityBindingPathSelectorCustomCheckbox", resourceCulture); + } + } + + public static string AccessibilityBindingPathSelectorCustomPath { + get { + return ResourceManager.GetString("AccessibilityBindingPathSelectorCustomPath", resourceCulture); + } + } + + public static string AccessibilityBindingPathSelectorPathTable { + get { + return ResourceManager.GetString("AccessibilityBindingPathSelectorPathTable", resourceCulture); + } + } + + public static string AccessibilityBindingEditorMore { + get { + return ResourceManager.GetString("AccessibilityBindingEditorMore", resourceCulture); + } + } + + public static string AccessibilityBindingEditorBindingType { + get { + return ResourceManager.GetString("AccessibilityBindingEditorBindingType", resourceCulture); + } + } + + public static string AccessibilityBindingAddValueConverterName { + get { + return ResourceManager.GetString("AccessibilityBindingAddValueConverterName", resourceCulture); + } + } + + public static string AccessibilityBindingAddValueConverterOK { + get { + return ResourceManager.GetString("AccessibilityBindingAddValueConverterOK", resourceCulture); + } + } + + public static string AccessibilityBindingAddValueConverterCancel { + get { + return ResourceManager.GetString("AccessibilityBindingAddValueConverterCancel", resourceCulture); } } } diff --git a/Xamarin.PropertyEditing/Properties/Resources.resx b/Xamarin.PropertyEditing/Properties/Resources.resx index 6713737..9fb53b4 100644 --- a/Xamarin.PropertyEditing/Properties/Resources.resx +++ b/Xamarin.PropertyEditing/Properties/Resources.resx @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <root> <!-- Microsoft ResX Schema @@ -127,7 +127,7 @@ </data> <data name="Black" xml:space="preserve"> <value>Black</value> - <comment>Black textbox help text</comment> + <comment>Text describing Black, used in the BlackAndWhiteNames list</comment> </data> <data name="BlackInitial" xml:space="preserve"> <value>K</value> @@ -247,21 +247,27 @@ </data> <data name="MultipleObjectsSelected" xml:space="preserve"> <value>{0} objects selected</value> + <comment>Describes how many objects are selected</comment> </data> <data name="MultipleTypesSelected" xml:space="preserve"> <value>{0} types selected</value> + <comment>Describes how many types are selected</comment> </data> <data name="Name" xml:space="preserve"> <value>Name</value> + <comment>Text used to label the Object Name</comment> </data> <data name="NoName" xml:space="preserve"> <value><No Name></value> + <comment>Text used if there are 0 objects selected</comment> </data> <data name="Properties" xml:space="preserve"> <value>Properties</value> + <comment>Header label for the property list</comment> </data> <data name="PropertiesSelectedElement" xml:space="preserve"> <value>Properties for the selected element</value> + <comment>Tooltip when the Property List is moused over</comment> </data> <data name="Red" xml:space="preserve"> <value>Red</value> @@ -289,9 +295,11 @@ </data> <data name="Reset" xml:space="preserve"> <value>Reset</value> + <comment>Reset MenuItem text</comment> </data> <data name="Type" xml:space="preserve"> <value>Type</value> + <comment>Text used to label the Object Type</comment> </data> <data name="ViewPropertiesOrEvents" xml:space="preserve"> <value>View properties or events</value> @@ -319,117 +327,155 @@ </data> <data name="Opacity" xml:space="preserve"> <value>Opacity</value> + <comment>Label text to describe the opacity of a colour</comment> </data> <data name="Cancel" xml:space="preserve"> <value>Cancel</value> + <comment>Decribes a button that will cancel the changes in a dialog</comment> </data> <data name="OK" xml:space="preserve"> <value>OK</value> + <comment>Decribes a button that will accept the changes in a dialog</comment> </data> <data name="ShowAllAssemblies" xml:space="preserve"> <value>Show All Assemblies</value> + <comment>Describes whether a toggle should show all assemblies or not</comment> </data> <data name="SearchProperties" xml:space="preserve"> - <value>Search properties</value> + <value>Search Properties</value> + <comment>Filter Box AutomationProperties.Name Check this needs translating</comment> </data> <data name="New" xml:space="preserve"> <value>New</value> + <comment>Describes a button that will allow the user to open popup dialog</comment> </data> <data name="SearchObjectsTitle" xml:space="preserve"> <value>Search Objects</value> + <comment>Hint text to describe how users interact with search/filter control</comment> </data> <data name="SelectObjectTitle" xml:space="preserve"> <value>Select Object</value> + <comment>Title text for the Type Selector dialog</comment> </data> <data name="CustomExpression" xml:space="preserve"> <value>Custom Expression</value> + <comment>Title text for the Custom Expression dialog</comment> </data> <data name="ColorEditorTabLabel" xml:space="preserve"> <value>Editor</value> + <comment></comment> </data> <data name="SearchResourcesTitle" xml:space="preserve"> <value>Search Resources</value> + <comment>Search Control placeholder text</comment> </data> <data name="SelectResourceTitle" xml:space="preserve"> <value>Select Resource</value> + <comment>Title text for the Resource Selector dialog</comment> </data> <data name="ShowSystemResources" xml:space="preserve"> <value>Show system resources</value> + <comment>Decribes whether a toggle should show system resources or not</comment> </data> <data name="ResourceEllipsis" xml:space="preserve"> <value>Resource…</value> + <comment>Decribes a menu option that will allow the user to see the resources dialog</comment> </data> <data name="Default" xml:space="preserve"> <value>Default</value> + <comment>Tooltip describing this property has a default value</comment> </data> <data name="Inherited" xml:space="preserve"> <value>Inherited</value> + <comment>Tooltip describing this property has an inherited value</comment> </data> <data name="InvalidValue" xml:space="preserve"> <value>{0} is an Invalid Value</value> + <comment>Error text when an invalid value is found</comment> </data> <data name="Local" xml:space="preserve"> <value>Local</value> + <comment>Tooltip describing this property has a local value</comment> </data> <data name="Unset" xml:space="preserve"> <value>Unset</value> + <comment>Tooltip describing this property has an unset value</comment> </data> <data name="MaterialColorRed" xml:space="preserve"> <value>Red</value> + <comment>Text describing Red used in the MaterialPalettes list</comment> </data> <data name="MaterialColorPink" xml:space="preserve"> <value>Pink</value> + <comment>Text describing Pink used in the MaterialPalettes list</comment> </data> <data name="MaterialColorPurple" xml:space="preserve"> <value>Purple</value> + <comment>Text describing Purple used in the MaterialPalettes list</comment> </data> <data name="MaterialColorDeepPurple" xml:space="preserve"> <value>Deep Purple</value> + <comment>Text describing Deep Purple used in the MaterialPalettes list</comment> </data> <data name="MaterialColorIndigo" xml:space="preserve"> <value>Indigo</value> + <comment>Text describing Indigo used in the MaterialPalettes list</comment> </data> <data name="MaterialColorBlue" xml:space="preserve"> <value>Blue</value> + <comment>Text describing Blue used in the MaterialPalettes list</comment> </data> <data name="MaterialColorLightBlue" xml:space="preserve"> <value>Light Blue</value> + <comment>Text describing Light Blue used in the MaterialPalettes list</comment> </data> <data name="MaterialColorCyan" xml:space="preserve"> <value>Cyan</value> + <comment>Text describing Cyan used in the MaterialPalettes list</comment> </data> <data name="MaterialColorTeal" xml:space="preserve"> <value>Teal</value> + <comment>Text describing Teal used in the MaterialPalettes list</comment> </data> <data name="MaterialColorGreen" xml:space="preserve"> <value>Green</value> + <comment>Text describing Green used in the MaterialPalettes list</comment> </data> <data name="MaterialColorLightGreen" xml:space="preserve"> <value>Light Green</value> + <comment>Text describing Light Green used in the MaterialPalettes list</comment> </data> <data name="MaterialColorLime" xml:space="preserve"> <value>Lime</value> + <comment>Text describing Lime used in the MaterialPalettes list</comment> </data> <data name="MaterialColorYellow" xml:space="preserve"> <value>Yellow</value> + <comment>Text describing Yellow used in the MaterialPalettes list</comment> </data> <data name="MaterialColorAmber" xml:space="preserve"> <value>Amber</value> + <comment>Text describing Amber used in the MaterialPalettes list</comment> </data> <data name="MaterialColorOrange" xml:space="preserve"> <value>Orange</value> + <comment>Text describing Orange used in the MaterialPalettes list</comment> </data> <data name="MaterialColorDeepOrange" xml:space="preserve"> <value>Deep Orange</value> + <comment>Text describing Deep Orange used in the MaterialPalettes list</comment> </data> <data name="MaterialColorBrown" xml:space="preserve"> <value>Brown</value> + <comment>Text describing Brown used in the MaterialPalettes list</comment> </data> <data name="MaterialColorGrey" xml:space="preserve"> <value>Grey</value> + <comment>Text describing Grey used in the MaterialPalettes list</comment> </data> <data name="MaterialColorBlueGrey" xml:space="preserve"> <value>Blue Grey</value> + <comment>Text describing Blue Grey used in the MaterialPalettes list</comment> </data> <data name="MaterialDesignColorBrush" xml:space="preserve"> <value>Material Design Colors</value> @@ -437,16 +483,19 @@ </data> <data name="MaterialColorBlackAndWhite" xml:space="preserve"> <value>Black and White</value> + <comment>Text describing Black and White used in the MaterialPalettes list</comment> </data> <data name="White" xml:space="preserve"> <value>White</value> + <comment>Text describing White, used in the BlackAndWhiteNames list</comment> </data> <data name="NoPreviewAvailable" xml:space="preserve"> <value>No preview available</value> - <comment>Resource selector window preview section text</comment> + <comment>Text for the Resource selector window preview section, when no preview is available</comment> </data> <data name="Resource" xml:space="preserve"> <value>Resource</value> + <comment>Default text when no resource name is available</comment> </data> <data name="ResourceWithName" xml:space="preserve"> <value>Resource ({0})</value> @@ -454,9 +503,11 @@ </data> <data name="Binding" xml:space="preserve"> <value>Binding</value> + <comment>Tooltip describing this property has a bound value</comment> </data> <data name="GoToSource" xml:space="preserve"> <value>Go to Source</value> + <comment>Text describing what is possible when a ValueSource supports navigation</comment> </data> <data name="CollectionValue" xml:space="preserve"> <value>(Collection)</value> @@ -464,12 +515,15 @@ </data> <data name="Ellipsis" xml:space="preserve"> <value>…</value> + <comment></comment> </data> <data name="OtherTypeAction" xml:space="preserve"> <value><Other type…></value> + <comment>Text used for the OtherType.Name</comment> </data> <data name="Items" xml:space="preserve"> <value>Items</value> + <comment>Header Text used denote a list of selected objects in the collection editor.</comment> </data> <data name="CollectionEditorTitle" xml:space="preserve"> <value>Collection Editor: {0}</value> @@ -477,30 +531,39 @@ </data> <data name="MoveItemDown" xml:space="preserve"> <value>Move item down</value> + <comment>Tooltip text for a button that will allow you to move a selected item down in the list</comment> </data> <data name="MoveItemUp" xml:space="preserve"> <value>Move item up</value> + <comment>Tooltip text for a button that will allow you to move a selected item up in the list</comment> </data> <data name="RemoveItem" xml:space="preserve"> <value>Remove item</value> - </data> - <data name="GenericErrorMessage" xml:space="preserve"> - <value>Something went wrong</value> + <comment>Tooltip text for a button that will allow you to remove a selected item from the list</comment> </data> <data name="DefineIn" xml:space="preserve"> <value>Define in</value> + <comment>Header text in Create Resource dialog for where the new resource is defined</comment> </data> <data name="Application" xml:space="preserve"> <value>Application</value> - </data> - <data name="ApplyToAll" xml:space="preserve"> - <value>Apply to all</value> + <comment>Option text within Create Resource dialog denoting that the new resource will be definied in the application</comment> </data> <data name="ThisDocument" xml:space="preserve"> <value>This document</value> + <comment>Option text within Create Resource dialog denoting that the new resource will be definied in this document</comment> + </data> + <data name="ResourceDictionary" xml:space="preserve"> + <value>Resource dictionary</value> + <comment>Option text within Create Resource Window denoting that the new resource will be definied in a resource dictionary</comment> + </data> + <data name="ApplyToAll" xml:space="preserve"> + <value>Apply to all</value> + <comment>Option text within Create Resource Window denoting that the new resource name will apply to all resources</comment> </data> <data name="ConvertToNewResourceEllipsis" xml:space="preserve"> <value>Convert to new resource…</value> + <comment>Menu option text which when selected will launch the Create Resource dialog</comment> </data> <data name="CreateResourceTitle" xml:space="preserve"> <value>Create {0} Resource</value> @@ -511,76 +574,91 @@ </data> <data name="ResourceDictionary" xml:space="preserve"> <value>Resource Dictionary</value> + <comment>Label text for the name of the resource</comment> </data> <data name="CreateDataBindingMenuItem" xml:space="preserve"> <value>Create New Binding…</value> + <comment>Menu option text which when selected will launch the Create Databinding dialog</comment> </data> <data name="AddValueConverterEllipsis" xml:space="preserve"> <value>Add Value Converter…</value> + <comment>Menu option text which when selected will launch the Add Value Converter dialog</comment> </data> <data name="AddValueConverterTitle" xml:space="preserve"> <value>Add Value Converter</value> + <comment>Title window text for the Add Value Converter dialog</comment> </data> <data name="NoValueConverter" xml:space="preserve"> <value>No Value Converter</value> + <comment>Used when no value converter is available</comment> </data> <data name="ValueConverterName" xml:space="preserve"> <value>Value Converter Name</value> + <comment>Name of the value converter</comment> </data> <data name="CreateDataBindingTitle" xml:space="preserve"> <value>Create Data Binding for {0}</value> - <comment>Create Data Binding for Object.Property</comment> + <comment>Create Data Binding for {Object.Property}</comment> </data> <data name="BindingType" xml:space="preserve"> <value>Binding Type</value> + <comment>Label text for the binding type dropdown</comment> </data> <data name="Path" xml:space="preserve"> <value>Path</value> - </data> - <data name="ResourcePlural" xml:space="preserve"> - <value>Resources</value> + <comment>Label text for the path edit box</comment> </data> <data name="Custom" xml:space="preserve"> <value>Custom</value> + <comment>Label text for the custom path check box</comment> </data> <data name="InvalidRatio" xml:space="preserve"> <value>Invalid Ratio</value> + <comment>Error text for when an Invalid ration is entered</comment> </data> <data name="AllResources" xml:space="preserve"> <value>All Resources</value> + <comment>Label text for all resources to be to shown</comment> </data> <data name="Shared" xml:space="preserve"> <value>Shared</value> + <comment>Label text for shared resource to be to shown</comment> </data> <data name="AddVariationHelpText" xml:space="preserve"> <value>Introduce variation based on:</value> + <comment>Label text within the Create Variant dialog</comment> </data> <data name="AddVariationTitle" xml:space="preserve"> <value>Add a Variation</value> + <comment>Title text for the Create Variant dialog</comment> </data> <data name="Any" xml:space="preserve"> <value>Any</value> + <comment>Text denoting any variant for a category</comment> </data> <data name="ErrorCreatingVariant" xml:space="preserve"> <value>Error creating variant: {0}. If this error continues, please report it.</value> + <comment>Error text when unable to create a variant</comment> </data> <data name="UncommonPropertiesTooltip" xml:space="preserve"> <value>Show advanced properties</value> + <comment>Tooltip text used to toggle the visibility of the advanced properties</comment> </data> <data name="NewInstanceForProperty" xml:space="preserve"> - <value>New {0}</value> + <value>This button is for the {0} property.</value> <comment>New {PropertyName}</comment> </data> <data name="Select" xml:space="preserve"> <value>Select</value> + <comment>Text to denote that an the user would like to select an item</comment> </data> <data name="SelectTypeForProperty" xml:space="preserve"> - <value>Select {0} type</value> - <comment>Select {property} type</comment> + <value>This button is for the {0} property.</value> + <comment>Select {Property} type</comment> </data> <data name="PropertyFilterLabel" xml:space="preserve"> <value>Property Filter</value> - <comment>Property Filter placeholder text</comment> + <comment>Label text used as Property Filter placeholder</comment> </data> <data name="PropertyColumnTitle" xml:space="preserve"> <value>Property</value> @@ -591,167 +669,200 @@ <comment>Title text for value column</comment> </data> <data name="AccessibilityNumeric" xml:space="preserve"> - <value>{0} Numeric Editor</value> - <comment>Editor for Numeric Value</comment> + <value>This numeric editor is for the {0} property.</value> + <comment>Editor for {Property.Name} that accepts a numeric value</comment> </data> <data name="AccessibilityBoolean" xml:space="preserve"> - <value>{0} Boolean Editor</value> - <comment>Editor for Boolean Value</comment> + <value>This checkbox is for the {0} property.</value> + <comment>Editor for {Property.Name} that accepts a boolean value</comment> </data> <data name="AccessibilityCombobox" xml:space="preserve"> - <value>{0} Combobox Editor</value> - <comment>Editor for Combobox Value</comment> + <value>This combobox is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to pick a value from a drop-down list</comment> + </data> + <data name="AccessibilityPopUp" xml:space="preserve"> + <value>This popup is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to pick a value from a drop-down list</comment> </data> <data name="AccessibilityCollection" xml:space="preserve"> - <value>{0} property, edit collection</value> - <comment></comment> + <value>This button is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to edit a collection</comment> </data> <data name="AccessibilityCollectionHelp" xml:space="preserve"> <value>Opens a window to edit the collection</value> + <comment>Text to inform the user that this button will open a collection editor dialog</comment> </data> <data name="AccessibilityCollectionTypeSelector" xml:space="preserve"> - <value>Type list</value> + <value>This combobox is for the Type Selector.</value> + <comment>Text denoting this used can select a Type from this list</comment> </data> <data name="AccessibilityCollectionAddButton" xml:space="preserve"> - <value>Add instance of type</value> + <value>This button allows you to add an object instance from the Type Selector to the Collection table.</value> + <comment>Text to inform the user that this button will add an instance of type</comment> </data> <data name="AccessibilityCollectionRemoveButton" xml:space="preserve"> - <value>Remove instance</value> + <value>This button allows you to remove an instance of the selected object from the Collection table.</value> + <comment>Text to inform the user that this button will remove a selected instance</comment> + </data> + <data name="AccessibilityCollectionOKButton" xml:space="preserve"> + <value>This button will accept the changes you have made in the Collection Editor.</value> + <comment>Text to inform the user that this button will add an instance of type</comment> + </data> + <data name="AccessibilityCollectionCancelButton" xml:space="preserve"> + <value>This button will cancel the changes you have made in the Collection Editor.</value> + <comment>Text to inform the user that this button will remove a selected instance</comment> </data> <data name="AccessibilityString" xml:space="preserve"> - <value>{0} String Editor</value> - <comment>Editor for String Value</comment> + <value>This text editor is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to enter a string value</comment> </data> <data name="AccessibilityChar" xml:space="preserve"> - <value>{0} Char Editor</value> - <comment>Editor for Char Value</comment> + <value>This character editor is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to enter a char value</comment> </data> <data name="AccessibilityTimeSpan" xml:space="preserve"> - <value>{0} TimeSpan Editor</value> - <comment>Editor for TimeSpan Value</comment> + <value>This TimeSpan editor is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to enter a TimeSpan value</comment> </data> <data name="AccessibilityDateTime" xml:space="preserve"> - <value>{0} DateTime Editor</value> - <comment>Editor for DateTime Value</comment> - </data> + <value>This DateTime editor is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to enter a DateTime value</comment> + </data> <data name="AccessibilityXEditor" xml:space="preserve"> - <value>{0} X Editor</value> - <comment>Editor for X Value</comment> + <value>This numeric editor is for the {0} property's X value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its X value</comment> </data> <data name="AccessibilityYEditor" xml:space="preserve"> - <value>{0} Y Editor</value> - <comment>Editor for Y Value</comment> + <value>This numeric editor is for the {0} property's Y value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Y value</comment> </data> <data name="AccessibilityWidthEditor" xml:space="preserve"> - <value>{0} Width Editor</value> - <comment>Editor for Width Value</comment> + <value>This numeric editor is for the {0} property's Width value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Width value</comment> </data> <data name="AccessibilityHeightEditor" xml:space="preserve"> - <value>{0} Height Editor</value> - <comment>Editor for Height Value</comment> + <value>This numeric editor is for the {0} property's Height value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Height value</comment> </data> <data name="ArrangeByLabel" xml:space="preserve"> <value>Arrange By:</value> </data> <data name="AccessibilityPropertiesButton" xml:space="preserve"> - <value>Properties</value> + <value>This is the Property Button for the {0} property.</value> + <comment>Property Button for {Property.Name}</comment> </data> <data name="AccessibilityPropertiesButtonDescription" xml:space="preserve"> <value>Edit the properties of this editor</value> - </data> - <data name="AccessibilityActionButton" xml:space="preserve"> - <value>Warnings</value> - </data> - <data name="AccessibilityActionButtonDescription" xml:space="preserve"> - <value>Display warnings.</value>> + <comment>Text to inform the user that they can edit the the properties of the associated editor</comment> </data> <data name="CollectionTargetsHeader" xml:space="preserve"> <value>Collection Items</value> + <comment>Header label text forr the Collection Items list</comment> </data> <data name="CollectionEditButton" xml:space="preserve"> <value>Edit</value> + <comment>Text for the button that will launch the collection editor dialog</comment> </data> <data name="ColumnResourceName" xml:space="preserve"> - <value>Name</value>> + <value>Name</value> + <comment>Title text for the name column in the resource list</comment> </data> <data name="ColumnResourcePreview" xml:space="preserve"> - <value>Preview</value>> + <value>Preview</value> + <comment>Title text for the preview section in the resource dialog</comment> </data> <data name="ResourceTableImageColumnTitle" xml:space="preserve"> <value>Icon</value> + <comment>Title text for the icon column in the resource list</comment> </data> <data name="ResourceTableTypeColumnTitle" xml:space="preserve"> <value>Type</value> + <comment>Title text for the type column in the resource list</comment> </data> <data name="ResourceTableNameColumnTitle" xml:space="preserve"> <value>Name</value> + <comment>Title text for the name column in the resource list</comment> </data> <data name="ResourceTableValueColumnTitle" xml:space="preserve"> - <value>Value</value>> + <value>Value</value> + <comment>Title text for the value column in the resource list</comment> </data> <data name="CommonBrushTitleUnknown" xml:space="preserve"> <value>Unknown</value> + <comment>Default title text for a Brush that doesn't have an existing value</comment> </data> <data name="CommonBrushTitleGradient" xml:space="preserve"> - <value>Gradient</value>> + <value>Gradient</value> + <comment>Default title text for a Brush that doesn't have an existing value</comment> </data> <data name="AccessibilityObjectName" xml:space="preserve"> - <value>{0} Object Name Editor</value> - <comment>Editor for Object Name Value</comment> + <value>This editor is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Object Name value</comment> </data> <data name="ObjectNamePlaceholder" xml:space="preserve"> - <value>No Name</value>> + <value>No Name</value> + <comment>Default placeholder text when the Object has name</comment> </data> <data name="AccessibilityLeftEditor" xml:space="preserve"> - <value>{0} Left Editor</value> - <comment>Editor for Left Value</comment> + <value>This numeric editor is for the {0} property's Left value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Left value</comment> </data> <data name="AccessibilityTopEditor" xml:space="preserve"> - <value>{0} Top Editor</value> - <comment>Editor for Top Value</comment> + <value>This numeric editor is for the {0} property's Top value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Top value</comment> </data> <data name="AccessibilityRightEditor" xml:space="preserve"> - <value>{0} Right Editor</value> - <comment>Editor for Right Value</comment> + <value>This numeric editor is for the {0} property's Right value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Right value</comment> </data> <data name="AccessibilityBottomEditor" xml:space="preserve"> - <value>{0} Bottom Editor</value> - <comment>Editor for Bottom Value</comment> + <value>This numeric editor is for the {0} property's Bottom value.</value> + <comment>Editor for {Property.Name} that allows the user to enter its Bottom value</comment> </data> <data name="AccessibilityInputModeEditor" xml:space="preserve"> - <value>{0} InputMode Editor</value> - <comment>Editor for InputMode Value</comment> + <value>This popup is for the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to select its InputMode value</comment> </data> <data name="AccessibilityPathEditor" xml:space="preserve"> - <value>{0} {1} Path Editor</value> - <comment>Editor for File/Directory Path Editor</comment> - </data> + <value>This Path editor is for the {0} property. Press tab to navigate to the file/directory selection button. Press tab again to navigate to the Reveal button</value> + <comment>Editor for {Property.Name} that allows the user to select the File/Directory Path value</comment> + </data> + <data name="AccessibilityBrowseButton" xml:space="preserve"> + <value>This button is within the file/directory editor of the {0} property.</value> + <comment>Editor for {Property.Name} that allows the user to select the File/Directory Path value</comment> + </data> + <data name="AccessibilityRevealButton" xml:space="preserve"> + <value>This button is within the file/directory editor of the {0} property. It will Reveal the location of the file.</value> + <comment>Editor for {Property.Name} that allows the user to select the File/Directory Path value</comment> + </data> <data name="ChooseFileOrDirectory" xml:space="preserve"> <value>Choose a {0}</value> - <comment>Choose a File or Directory</comment> + <comment>Tooltip and Placeholder text to choose a File or Directory</comment> </data> <data name="BrowseFileOrDirectory" xml:space="preserve"> <value>Browse for a {0}</value> - <comment>Browse for a File or Directory</comment> + <comment>Tooltip text to Browse for a File or Directory</comment> </data> <data name="RevealFileOrDirectory" xml:space="preserve"> <value>Reveal {0}</value> - <comment>Reveal a File or Directory</comment> + <comment>Tooltip text to Reveal a File or Directory</comment> </data> <data name="File" xml:space="preserve"> <value>File</value> - <comment>File</comment> + <comment>Text denoting a File will be shown or selected</comment> </data> <data name="Directory" xml:space="preserve"> <value>Directory</value> - <comment>Directory</comment> + <comment>Text denoting a Directory will be shown or selected</comment> </data> <data name="AddVariant" xml:space="preserve"> <value>Add Variant</value> + <comment>Tooltip text shown when Add Variant button is hovered over</comment> </data> <data name="RemoveVariant" xml:space="preserve"> <value>Remove Variant</value> - </data> + <comment>Tooltip text shown when Remove or Delete Variant button is hovered over</comment> + </data> <data name="CreateBindingTitle" xml:space="preserve"> <value>Create Binding</value> <comment>Create Binding for Object.Property</comment> @@ -804,7 +915,7 @@ <value>Advanced properties</value> </data> <data name="ArrangeByButtonName" xml:space="preserve"> - <value>Arrange by {0}</value> + <value>This button allows you to arrange the property list by {0}.</value> </data> <data name="PropertyButtonName" xml:space="preserve"> <value>Advanced options</value> @@ -846,4 +957,84 @@ <data name="AutoresizingWidthSizable" xml:space="preserve"> <value>width sizable</value> </data> + <data name="AccessibilityPropertyFilter" xml:space="preserve"> + <value>This search text field allows you to filter the contents of the property list. Start typing to begin filtering</value> + <comment>Text denoting this user filer the property list</comment> + </data> + <data name="AccessibilityTypeSelectorCheckbox" xml:space="preserve"> + <value>This checkbox is to enable or disable showing all assemblies.</value> + <comment>Text denoting this user can show all assemblies</comment> + </data> + <data name="AccessibilityTypeSelectorSearch" xml:space="preserve"> + <value>This search text field allows you to filter the contents of the type list. Start typing to begin filtering</value> + <comment>Text denoting this user can filter the type list</comment> + </data> + <data name="AccessibilityTypeSelectorTable" xml:space="preserve"> + <value>This table lists available types in a tree structure.</value> + <comment>Text denoting this user can navifate the type selector table</comment> + </data> + <data name="AccessibilityCollectionEditorTable" xml:space="preserve"> + <value>This table lists types in a list structure.</value> + <comment>Text denoting this user can navigate the collection editor table</comment> + </data> + <data name="AccessibilityPropertyTable" xml:space="preserve"> + <value>This table lists the properties of an object in a list structure.</value> + <comment>Text denoting this user can navigate the property list table</comment> + </data> + <data name="AccessibilityCustomExpressionCombobox" xml:space="preserve"> + <value>This combobox is for Custom Expressions.</value> + <comment>Text denoting this user can navigate the custom expression combobox</comment> + </data> + <data name="AccessibilityCustomExpressionEditControl" xml:space="preserve"> + <value>This text field is for Custom Expressions.</value> + <comment>Text denoting this user can navigate the property list table</comment> + </data> + <data name="AccessibilityBindingEditorOK" xml:space="preserve"> + <value>This button will accept the changes you have made in the Binding Editor.</value> + <comment>Text to inform the user that this button will add an instance of type</comment> + </data> + <data name="AccessibilityBindingEditorCancel" xml:space="preserve"> + <value>This button will cancel the changes you have made in the Binding Editor.</value> + <comment>Text to inform the user that this button will remove a selected instance</comment> + </data> + <data name="AccessibilityBindingEditorValueConverter" xml:space="preserve"> + <value>This is the Value Converter popup.</value> + <comment>Text to inform the user that this button will add an instance of type</comment> + </data> + <data name="AccessibilityBindingEditorAddConverter" xml:space="preserve"> + <value>This is the Add Value Converter button. Activating it will open the Add Value Converter window.</value> + <comment>Text to inform the user that this button will remove a selected instance</comment> + </data> + <data name="AccessibilityBindingPathSelectorCustomCheckbox" xml:space="preserve"> + <value>This checkbox is to enable or disable showing of the Custom Path text field.</value> + <comment>Text to inform the user that this button will remove a selected instance</comment> + </data> + <data name="AccessibilityBindingPathSelectorCustomPath" xml:space="preserve"> + <value>This text field is for Custom Path.</value> + <comment>Text to inform the user that this button will remove a selected instance</comment> + </data> + <data name="AccessibilityBindingPathSelectorPathTable" xml:space="preserve"> + <value>This table lists the properties of an object in a list structure.</value> + <comment>Text denoting this user can navigate the property list table</comment> + </data> + <data name="AccessibilityBindingEditorMore" xml:space="preserve"> + <value>This disclosure button allows you to show or add additional Settings.</value> + <comment>Text to inform the user that this button will show or add additional items</comment> + </data> + <data name="AccessibilityBindingEditorBindingType" xml:space="preserve"> + <value>This is the Binding Type popup.</value> + <comment>Text to inform the user that this button will show or add additional items</comment> + </data> + <data name="AccessibilityBindingAddValueConverterName" xml:space="preserve"> + <value>This is the Binding Type popup.</value> + <comment>Text to inform the user that this button will show or add additional items</comment> + </data> + <data name="AccessibilityBindingAddValueConverterOK" xml:space="preserve"> + <value>This button will accept the changes you have made in the Add Value Converter Editor.</value> + <comment>Text to inform the user that this button will cancel the changes you have made in the Add Value Converter Editor</comment> + </data> + <data name="AccessibilityBindingAddValueConverterCancel" xml:space="preserve"> + <value>This button will cancel the changes you have made in the Add Value Converter Editor.</value> + <comment>Text to inform the user that this button will cancel the changes you have made in the Add Value Converter Editor</comment> + </data> </root>
\ No newline at end of file |