Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2139)

Side by Side Diff: ui/accessibility/platform/ax_platform_node_mac.mm

Issue 2341633006: MacViews/a11y: Allow accessibility clients to update the selected text. (Closed)
Patch Set: Move accessibility notification for text selection being changed to SelectRange() instead. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ui/accessibility/platform/ax_platform_node_mac.h" 5 #import "ui/accessibility/platform/ax_platform_node_mac.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 if ([attributeName isEqualToString:NSAccessibilitySelectedAttribute] || 358 if ([attributeName isEqualToString:NSAccessibilitySelectedAttribute] ||
359 [attributeName 359 [attributeName
360 isEqualToString:NSAccessibilitySelectedChildrenAttribute] || 360 isEqualToString:NSAccessibilitySelectedChildrenAttribute] ||
361 [attributeName 361 [attributeName
362 isEqualToString:NSAccessibilitySelectedTextRangeAttribute] || 362 isEqualToString:NSAccessibilitySelectedTextRangeAttribute] ||
363 [attributeName 363 [attributeName
364 isEqualToString:NSAccessibilityVisibleCharacterRangeAttribute]) { 364 isEqualToString:NSAccessibilityVisibleCharacterRangeAttribute]) {
365 return NO; 365 return NO;
366 } 366 }
367 367
368 if ([attributeName isEqualToString:NSAccessibilityValueAttribute]) 368 if ([attributeName isEqualToString:NSAccessibilityValueAttribute] ||
369 [attributeName isEqualToString:NSAccessibilitySelectedTextAttribute])
369 return node_->GetDelegate()->CanSetStringValue(); 370 return node_->GetDelegate()->CanSetStringValue();
370 // TODO(patricialor): Implement and merge with conditional for value above.
371 if ([attributeName isEqualToString:NSAccessibilitySelectedTextAttribute])
372 return NO;
373 371
374 if ([attributeName isEqualToString:NSAccessibilityFocusedAttribute]) { 372 if ([attributeName isEqualToString:NSAccessibilityFocusedAttribute]) {
375 if (ui::AXViewState::IsFlagSet(node_->GetData().state, 373 if (ui::AXViewState::IsFlagSet(node_->GetData().state,
376 ui::AX_STATE_FOCUSABLE)) 374 ui::AX_STATE_FOCUSABLE))
377 return NO; 375 return NO;
378 } 376 }
379 377
380 // TODO(patricialor): Add callbacks for updating the above attributes except 378 // TODO(patricialor): Add callbacks for updating the above attributes except
381 // NSAccessibilityValueAttribute and return YES. 379 // NSAccessibilityValueAttribute and return YES.
382 return NO; 380 return NO;
383 } 381 }
384 382
385 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { 383 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute {
386 if ([attribute isEqualToString:NSAccessibilityValueAttribute] && 384 if ([attribute isEqualToString:NSAccessibilityValueAttribute] &&
387 [value isKindOfClass:[NSString class]]) 385 [value isKindOfClass:[NSString class]])
388 node_->GetDelegate()->SetStringValue(base::SysNSStringToUTF16(value)); 386 node_->GetDelegate()->SetStringValue(base::SysNSStringToUTF16(value));
387 if ([attribute isEqualToString:NSAccessibilitySelectedTextAttribute] &&
tapted 2016/09/27 07:16:30 else if (or alter to support the `bool` replace ar
Patti Lor 2016/10/20 04:19:34 Done.
388 [value isKindOfClass:[NSString class]])
389 node_->GetDelegate()->ReplaceSelectedText(base::SysNSStringToUTF16(value));
389 390
390 // TODO(patricialor): Plumb through all the other writable attributes as 391 // TODO(patricialor): Plumb through all the other writable attributes as
391 // specified in accessibilityIsAttributeSettable. 392 // specified in accessibilityIsAttributeSettable.
392 } 393 }
393 394
394 - (id)accessibilityAttributeValue:(NSString*)attribute { 395 - (id)accessibilityAttributeValue:(NSString*)attribute {
395 SEL selector = NSSelectorFromString(attribute); 396 SEL selector = NSSelectorFromString(attribute);
396 if ([self respondsToSelector:selector]) 397 if ([self respondsToSelector:selector])
397 return [self performSelector:selector]; 398 return [self performSelector:selector];
398 return nil; 399 return nil;
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 } 571 }
571 NotifyMacEvent(target, event_type); 572 NotifyMacEvent(target, event_type);
572 } 573 }
573 574
574 int AXPlatformNodeMac::GetIndexInParent() { 575 int AXPlatformNodeMac::GetIndexInParent() {
575 // TODO(dmazzoni): implement this. http://crbug.com/396137 576 // TODO(dmazzoni): implement this. http://crbug.com/396137
576 return -1; 577 return -1;
577 } 578 }
578 579
579 } // namespace ui 580 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698