Use NSAccessibilityUnignoredDescendant to streamline code

This commit is contained in:
Boris Dušek
2014-04-04 20:36:50 +02:00
committed by Allan Odgaard
parent 3e2df29076
commit 44a803fe7c

View File

@@ -228,20 +228,16 @@ NSImageView* OakCreateDividerImageView ()
BOOL OakSetAccessibilityLabel (NSObject* element, NSObject* label)
{
if([element isKindOfClass:[NSControl class]])
element = [(NSControl*)element cell] ?: element; // e.g. NSTableView is an NSControl with a nil cell
else if(!([element isKindOfClass:[NSView class]] || [element isKindOfClass:[NSCell class]]))
if(!(element = NSAccessibilityUnignoredDescendant(element)))
return NO;
NSString* attribute = NSAccessibilityDescriptionAttribute;
if([label isKindOfClass:[NSView class]] || [label isKindOfClass:[NSCell class]])
if(![label isKindOfClass:NSString.class])
{
attribute = NSAccessibilityTitleUIElementAttribute;
if([label isKindOfClass:[NSControl class]])
label = [(NSControl*)label cell] ?: label;
if(!(label = NSAccessibilityUnignoredDescendant(label)))
return NO;
}
else if(![label isKindOfClass:[NSString class]])
return NO;
return [element accessibilitySetOverrideValue:label forAttribute:attribute];
}