Changeset 244691 in webkit
- Timestamp:
- Apr 26, 2019 9:36:29 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r244690 r244691 1 2019-04-26 Chris Fleizach <cfleizach@apple.com> 2 3 AX: Provide iOS method for setting focus 4 https://bugs.webkit.org/show_bug.cgi?id=197200 5 <rdar://problem/50131679> 6 7 Reviewed by Alex Christensen. 8 9 Put the focus setting code in a place that iOS and macOS can access. 10 Override a platform level method for setting focus on iOS. 11 12 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: 13 (-[WebAccessibilityObjectWrapper _accessibilitySetFocus:]): 14 * accessibility/mac/WebAccessibilityObjectWrapperBase.h: 15 * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: 16 (-[WebAccessibilityObjectWrapperBase baseAccessibilitySetFocus:]): 17 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: 18 (-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]): 19 1 20 2019-04-26 Said Abou-Hallawa <sabouhallawa@apple.com> 2 21 -
trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
r244582 r244691 2008 2008 } 2009 2009 2010 - (void)_accessibilitySetFocus:(BOOL)focus 2011 { 2012 [self baseAccessibilitySetFocus:focus]; 2013 } 2014 2010 2015 - (void)accessibilityDecreaseSelection:(TextGranularity)granularity 2011 2016 { -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h
r241321 r244691 82 82 - (NSArray<NSString *> *)baseAccessibilitySpeechHint; 83 83 84 - (void)baseAccessibilitySetFocus:(BOOL)focus; 84 85 - (NSString *)ariaLandmarkRoleDescription; 85 86 -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm
r242528 r244691 572 572 } 573 573 574 - (void)baseAccessibilitySetFocus:(BOOL)focus 575 { 576 // If focus is just set without making the view the first responder, then keyboard focus won't move to the right place. 577 if (focus && !m_object->document()->frame()->selection().isFocusedAndActive()) { 578 FrameView* frameView = m_object->documentFrameView(); 579 Page* page = m_object->page(); 580 if (page && frameView) { 581 ChromeClient& chromeClient = page->chrome().client(); 582 chromeClient.focus(); 583 584 // Legacy WebKit1 case. 585 if (frameView->platformWidget()) 586 chromeClient.makeFirstResponder(frameView->platformWidget()); 587 else 588 chromeClient.assistiveTechnologyMakeFirstResponder(); 589 } 590 } 591 592 m_object->setFocused(focus); 593 } 594 574 595 - (NSString *)accessibilityPlatformMathSubscriptKey 575 596 { -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
r244582 r244691 3872 3872 m_object->setSelectedVisiblePositionRange([self visiblePositionRangeForTextMarkerRange:textMarkerRange]); 3873 3873 } else if ([attributeName isEqualToString: NSAccessibilityFocusedAttribute]) { 3874 ASSERT(number); 3875 3876 bool focus = [number boolValue]; 3877 3878 // If focus is just set without making the view the first responder, then keyboard focus won't move to the right place. 3879 if (focus && !m_object->document()->frame()->selection().isFocusedAndActive()) { 3880 FrameView* frameView = m_object->documentFrameView(); 3881 Page* page = m_object->page(); 3882 if (page && frameView) { 3883 ChromeClient& chromeClient = page->chrome().client(); 3884 chromeClient.focus(); 3885 3886 // Legacy WebKit1 case. 3887 if (frameView->platformWidget()) 3888 chromeClient.makeFirstResponder(frameView->platformWidget()); 3889 else 3890 chromeClient.assistiveTechnologyMakeFirstResponder(); 3891 } 3892 } 3893 3894 m_object->setFocused(focus); 3874 [self baseAccessibilitySetFocus:[number boolValue]]; 3895 3875 } else if ([attributeName isEqualToString: NSAccessibilityValueAttribute]) { 3896 3876 if (number && m_object->canSetNumericValue())
Note: See TracChangeset
for help on using the changeset viewer.