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

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

Issue 2490073002: MacViews/a11y: Allow accessibility clients to focus and unfocus focusable Views. (Closed)
Patch Set: Fix test. Created 4 years, 1 month 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 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 [attributeName 375 [attributeName
376 isEqualToString:NSAccessibilityVisibleCharacterRangeAttribute]) { 376 isEqualToString:NSAccessibilityVisibleCharacterRangeAttribute]) {
377 return NO; 377 return NO;
378 } 378 }
379 379
380 if ([attributeName isEqualToString:NSAccessibilityValueAttribute] || 380 if ([attributeName isEqualToString:NSAccessibilityValueAttribute] ||
381 [attributeName isEqualToString:NSAccessibilitySelectedTextAttribute]) 381 [attributeName isEqualToString:NSAccessibilitySelectedTextAttribute])
382 return node_->GetDelegate()->CanSetStringValue(); 382 return node_->GetDelegate()->CanSetStringValue();
383 383
384 if ([attributeName isEqualToString:NSAccessibilityFocusedAttribute]) { 384 if ([attributeName isEqualToString:NSAccessibilityFocusedAttribute]) {
385 if (ui::AXNodeData::IsFlagSet(node_->GetData().state, 385 return ui::AXNodeData::IsFlagSet(node_->GetData().state,
386 ui::AX_STATE_FOCUSABLE)) 386 ui::AX_STATE_FOCUSABLE);
387 return NO;
388 } 387 }
389 388
390 // TODO(patricialor): Add callbacks for updating the above attributes except 389 // TODO(patricialor): Add callbacks for updating the above attributes except
391 // NSAccessibilityValueAttribute and return YES. 390 // NSAccessibilityValueAttribute and return YES.
392 return NO; 391 return NO;
393 } 392 }
394 393
395 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { 394 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute {
396 if ([attribute isEqualToString:NSAccessibilityValueAttribute] && 395 if ([value isKindOfClass:[NSString class]]) {
397 [value isKindOfClass:[NSString class]]) { 396 if ([attribute isEqualToString:NSAccessibilityValueAttribute]) {
398 node_->GetDelegate()->SetStringValue(base::SysNSStringToUTF16(value), true); 397 node_->GetDelegate()->SetStringValue(base::SysNSStringToUTF16(value),
399 } else if ([attribute isEqualToString:NSAccessibilitySelectedTextAttribute] && 398 true);
400 [value isKindOfClass:[NSString class]]) { 399 } else if ([attribute
401 node_->GetDelegate()->SetStringValue(base::SysNSStringToUTF16(value), 400 isEqualToString:NSAccessibilitySelectedTextAttribute]) {
402 false); 401 node_->GetDelegate()->SetStringValue(base::SysNSStringToUTF16(value),
402 false);
403 }
404 } else if ([value isKindOfClass:[NSNumber class]]) {
405 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) {
406 node_->GetDelegate()->SetFocused([value boolValue]);
407 }
403 } 408 }
404 409
405 // TODO(patricialor): Plumb through all the other writable attributes as 410 // TODO(patricialor): Plumb through all the other writable attributes as
406 // specified in accessibilityIsAttributeSettable. 411 // specified in accessibilityIsAttributeSettable.
407 } 412 }
408 413
409 - (id)accessibilityAttributeValue:(NSString*)attribute { 414 - (id)accessibilityAttributeValue:(NSString*)attribute {
410 SEL selector = NSSelectorFromString(attribute); 415 SEL selector = NSSelectorFromString(attribute);
411 if ([self respondsToSelector:selector]) 416 if ([self respondsToSelector:selector])
412 return [self performSelector:selector]; 417 return [self performSelector:selector];
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 } 589 }
585 NotifyMacEvent(native_node_, event_type); 590 NotifyMacEvent(native_node_, event_type);
586 } 591 }
587 592
588 int AXPlatformNodeMac::GetIndexInParent() { 593 int AXPlatformNodeMac::GetIndexInParent() {
589 // TODO(dmazzoni): implement this. http://crbug.com/396137 594 // TODO(dmazzoni): implement this. http://crbug.com/396137
590 return -1; 595 return -1;
591 } 596 }
592 597
593 } // namespace ui 598 } // namespace ui
OLDNEW
« no previous file with comments | « ui/accessibility/platform/ax_platform_node_delegate.h ('k') | ui/accessibility/platform/test_ax_node_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698