| Index: ui/accessibility/platform/ax_platform_node_mac.mm
|
| diff --git a/ui/accessibility/platform/ax_platform_node_mac.mm b/ui/accessibility/platform/ax_platform_node_mac.mm
|
| index 79fa94904ba8d2fbd2fcb4f57b97db3fa7f8ca29..74c62122ce453201089e346aa6394de32f6d5a5a 100644
|
| --- a/ui/accessibility/platform/ax_platform_node_mac.mm
|
| +++ b/ui/accessibility/platform/ax_platform_node_mac.mm
|
| @@ -349,10 +349,46 @@ void NotifyMacEvent(NSView* target, ui::AXEvent event_type) {
|
| return axAttributes.autorelease();
|
| }
|
|
|
| -- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute {
|
| +- (BOOL)accessibilityIsAttributeSettable:(NSString*)attributeName {
|
| + // Allow certain attributes to be written via an accessibility client. A
|
| + // writable attribute will only appear as such if the accessibility element
|
| + // has a value set for that attribute.
|
| + if ([attributeName isEqualToString:NSAccessibilitySelectedAttribute] ||
|
| + [attributeName
|
| + isEqualToString:NSAccessibilitySelectedChildrenAttribute] ||
|
| + [attributeName
|
| + isEqualToString:NSAccessibilitySelectedTextRangeAttribute] ||
|
| + [attributeName
|
| + isEqualToString:NSAccessibilityVisibleCharacterRangeAttribute]) {
|
| + return NO;
|
| + }
|
| +
|
| + if ([attributeName isEqualToString:NSAccessibilityValueAttribute])
|
| + return node_->GetDelegate()->CanSetStringValue();
|
| + // TODO(patricialor): Implement and merge with conditional for value above.
|
| + if ([attributeName isEqualToString:NSAccessibilitySelectedTextAttribute])
|
| + return NO;
|
| +
|
| + if ([attributeName isEqualToString:NSAccessibilityFocusedAttribute]) {
|
| + if (ui::AXViewState::IsFlagSet(node_->GetData().state,
|
| + ui::AX_STATE_FOCUSABLE))
|
| + return NO;
|
| + }
|
| +
|
| + // TODO(patricialor): Add callbacks for updating the above attributes except
|
| + // NSAccessibilityValueAttribute and return YES.
|
| return NO;
|
| }
|
|
|
| +- (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute {
|
| + if ([attribute isEqualToString:NSAccessibilityValueAttribute] &&
|
| + [value isKindOfClass:[NSString class]])
|
| + node_->GetDelegate()->SetStringValue(base::SysNSStringToUTF16(value));
|
| +
|
| + // TODO(patricialor): Plumb through all the other writable attributes as
|
| + // specified in accessibilityIsAttributeSettable.
|
| +}
|
| +
|
| - (id)accessibilityAttributeValue:(NSString*)attribute {
|
| SEL selector = NSSelectorFromString(attribute);
|
| if ([self respondsToSelector:selector])
|
|
|