* Implement -accessibilityPlaceholderValue on macOS
macOS uses a unique -accessibilityPlaceholderValue property for the
placeholder of a text field; -accessibilityHelp has different meaning from
HelpText on Windows. Map TextBox.PlaceholderText to be returned by
-accessibilityPlaceholderValue.
Ref: https://www.w3.org/TR/core-aam-1.2/#ariaPlaceholder
* Use TextBox placeholder as a fallback for HelpText on Windows
This matches the behavior introduced in 8593ef3 on macOS, as this is where
UIA designates that placeholder text should go.
Ref: https://www.w3.org/TR/core-aam-1.2/#ariaPlaceholder
* Implemented LiveSetting property
* Make sure PropertyChanged callback is called on AvnAutomationPeer
* Remove `optional` from `AvnAccessibility`: we were never checking whether they respond to the selector or not anyway
* Formatting
* Use ARIA and Live Region Changed constants from mac APIs
* Fixed Mac build
* Reverted constants that don't exist on integration test XCode version
---------
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Added LandmarkType to automation properties
* Set AutomationProperties.AccessibilityView on Main landmark in IntegrationTestApp, which is required for Narrator to find the landmark
* Implement AXRoleDescription as suggested by W3C
* Fixed wrong role descriptions
* try to add Automation/Peers/DataValidationErrorsAutomationPeer.cs
* add missing file
* change to use .ToString() instead of fileter only string type
* 19059 resolve maxkatz6's comment
* 19059 resolve comment
* 19059 check if GetTip return null or whitespace
* 19059 take the error higher piority than the tooltip
---------
Co-authored-by: Long Bui <long.bui@taitcommunications.com>
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* fix Automation.HelpText on windows
* change breaking abstract to virtual
* only fall back to tooltip if string
* remove duplicate override
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
* Refactor IntegrationTestApp.
Use a `ListBox` to switch pages instead of a `TabControl`: the `TabControl` didn't adapt well to smaller screen sizes, and the `MainWindow` was getting unwieldy anyway.
* Update tests to use new pager.
Move logic for selecting the page to a base class as we may need to handle scrolling manually on macOS at some point (Appium on macOS doesn't scroll elements into view automatically).
* Add AutomationPeer.IsOffscreen.
This is needed in order for controls to be scrolled into view using WinAppDriver. The default is the same as WPF and the default value is overridden in the same controls as WPF (where present).
* Add failing test for control visibility changing.
There was already a test for when visibility moves from visible to invisible but we were missing one for the other way around.
* Create peer even for invisible controls.
When an invisible control is encountered, unless a peer is created for it, there is nothing to listen for the `IsVisible` property changing to `true`. Make sure we create a peer even for invisible controls; we just don't add them to the child collection.
Setting `AutomationProperties.AccessibilityView` can now override the `IsControlElementCore` and `IsContentElementCore` settings returned from the automation peer.
- `AutomationProperties.AccessibilityView`: from UWP - control's element's visibility in automation tree
- `ControlTypeOverride`: from UWP proposal - overrides the automation control type specified in peer