AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
https://bugs.webkit.org/show_bug.cgi?id=130250
Reviewed by Chris Fleizach.
Source/WebCore:
If initial selection isn't set when we handle selection movement for accessibility, we need to set it. If we don't, using arrow
keys to read text with VoiceOver doesn't work as expected. Things will only start working after the user holds shift and arrows
around to select any arbitrary thing to force selection to get set. This logic handles that special case more gracefully.
Test: platform/mac/accessibility/selection-initial.html
* page/EventHandler.cpp:
(WebCore::handleKeyboardSelectionMovement):
(WebCore::EventHandler::handleKeyboardSelectionMovementForAccessibility):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
Source/WebKit:
* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Source/WebKit/mac:
Added ability to toggle enhanced accessibility on and off to support tests that require it.
* WebView/WebFrame.mm:
(-[WebFrame enhancedAccessibilityEnabled]):
(-[WebFrame setEnhancedAccessibility:]):
* WebView/WebFramePrivate.h:
Source/WebKit2:
Added ability to toggle enhanced accessibility on and off to support tests that require it.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityEnableEnhancedAccessibility):
(WKAccessibilityEnhancedAccessibilityEnabled):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
Tools:
Added ability to toggle enhanced accessibility on and off to support tests that require it.
* DumpRenderTree/AccessibilityController.cpp:
(enableEnhancedAccessibilityCallback):
(getEnhancedAccessibilityEnabledCallback):
(AccessibilityController::getJSClass):
* DumpRenderTree/AccessibilityController.h:
* DumpRenderTree/atk/AccessibilityControllerAtk.cpp:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* DumpRenderTree/ios/AccessibilityControllerIOS.mm:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* DumpRenderTree/mac/AccessibilityControllerMac.mm:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* DumpRenderTree/win/AccessibilityControllerWin.cpp:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::enableEnhancedAccessibility):
(WTR::AccessibilityController::enhancedAccessibilityEnabled):
* WebKitTestRunner/InjectedBundle/AccessibilityController.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
LayoutTests:
Added test to ensure that initial selection gets set when enhanced accessibility is enabled and an arrow key is pressed.
* platform/mac/accessibility/selection-initial-expected.txt: Added.
* platform/mac/accessibility/selection-initial.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165870
268f45cc-cd09-0410-ab3c-
d52691b4dbfc