mirror of
https://github.com/textmate/textmate.git
synced 2026-01-20 04:08:04 -05:00
Implement accessibilityIsAttributeSettable: for all attributes
Previously if using the Accessibility Inspector exceptions could be thrown.
This commit is contained in:
@@ -55,21 +55,28 @@ static size_t line_count (std::string const& text)
|
||||
}
|
||||
}
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityValueAttribute,
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
NSSet* set = [NSSet setWithArray:[super accessibilityAttributeNames]];
|
||||
set = [set setByAddingObjectsFromArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityValueAttribute,
|
||||
]];
|
||||
attributes = [set allObjects];
|
||||
}
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return NO;
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
- (id)accessibilityAttributeValue:(NSString*)attribute
|
||||
{
|
||||
id value = nil;
|
||||
|
||||
@@ -373,26 +373,22 @@ layout_metrics_t::raw_layer_t layout_metrics_t::parse_layer (NSDictionary* item)
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
attributes = @[
|
||||
// generic
|
||||
NSAccessibilityParentAttribute,
|
||||
NSAccessibilityPositionAttribute,
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityRoleDescriptionAttribute,
|
||||
NSAccessibilitySizeAttribute,
|
||||
NSAccessibilityTopLevelUIElementAttribute,
|
||||
NSAccessibilityWindowAttribute,
|
||||
// radio button
|
||||
NSAccessibilityEnabledAttribute,
|
||||
NSAccessibilityFocusedAttribute,
|
||||
NSAccessibilityTitleAttribute,
|
||||
NSAccessibilityValueAttribute,
|
||||
NSAccessibilityHelpAttribute,
|
||||
];
|
||||
}
|
||||
static NSArray* attributes = @[
|
||||
// generic
|
||||
NSAccessibilityParentAttribute,
|
||||
NSAccessibilityPositionAttribute,
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityRoleDescriptionAttribute,
|
||||
NSAccessibilitySizeAttribute,
|
||||
NSAccessibilityTopLevelUIElementAttribute,
|
||||
NSAccessibilityWindowAttribute,
|
||||
// radio button
|
||||
NSAccessibilityEnabledAttribute,
|
||||
NSAccessibilityFocusedAttribute,
|
||||
NSAccessibilityTitleAttribute,
|
||||
NSAccessibilityValueAttribute,
|
||||
NSAccessibilityHelpAttribute,
|
||||
];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
@@ -970,27 +966,34 @@ layout_metrics_t::raw_layer_t layout_metrics_t::parse_layer (NSDictionary* item)
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
// generic
|
||||
NSAccessibilityRoleAttribute,
|
||||
// tab group
|
||||
NSAccessibilityChildrenAttribute,
|
||||
NSAccessibilityContentsAttribute,
|
||||
NSAccessibilityFocusedAttribute,
|
||||
NSAccessibilityTabsAttribute,
|
||||
NSAccessibilityValueAttribute,
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
NSSet* set = [NSSet setWithArray:[super accessibilityAttributeNames]];
|
||||
set = [set setByAddingObjectsFromArray:@[
|
||||
// generic
|
||||
NSAccessibilityRoleAttribute,
|
||||
// tab group
|
||||
NSAccessibilityChildrenAttribute,
|
||||
NSAccessibilityContentsAttribute,
|
||||
NSAccessibilityFocusedAttribute,
|
||||
NSAccessibilityTabsAttribute,
|
||||
NSAccessibilityValueAttribute,
|
||||
]];
|
||||
attributes = [set allObjects];
|
||||
}
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return NO;
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
- (id)accessibilityAttributeValue:(NSString*)attribute
|
||||
{
|
||||
// generic attributes
|
||||
|
||||
@@ -71,21 +71,28 @@ static NSImage* IconImage (NSURL* url, NSSize size = NSMakeSize(16, 16))
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityDescriptionAttribute,
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
NSSet* set = [NSSet setWithArray:[super accessibilityAttributeNames]];
|
||||
set = [set setByAddingObjectsFromArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityDescriptionAttribute,
|
||||
]];
|
||||
attributes = [set allObjects];
|
||||
}
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return NO;
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
- (id)accessibilityAttributeValue:(NSString*)attribute
|
||||
{
|
||||
if([attribute isEqualToString:NSAccessibilityRoleAttribute])
|
||||
|
||||
@@ -212,27 +212,34 @@ static void DrawSpinner (NSRect cellFrame, BOOL isFlipped, NSColor* color, doubl
|
||||
// = Accessibility =
|
||||
// =================
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
NSAccessibilityDescriptionAttribute,
|
||||
NSAccessibilityHelpAttribute,
|
||||
NSAccessibilityURLAttribute,
|
||||
NSAccessibilityFilenameAttribute,
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
if(self.representedObject && [self.representedObject isKindOfClass:[FSItem class]])
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
NSSet* set = [NSSet setWithArray:[super accessibilityAttributeNames]];
|
||||
set = [set setByAddingObjectsFromArray:@[
|
||||
NSAccessibilityDescriptionAttribute,
|
||||
NSAccessibilityHelpAttribute,
|
||||
NSAccessibilityURLAttribute,
|
||||
NSAccessibilityFilenameAttribute,
|
||||
]];
|
||||
attributes = [set allObjects];
|
||||
}
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
return [super accessibilityAttributeNames];
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return NO;
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
- (id)accessibilityAttributeValue:(NSString*)attribute
|
||||
{
|
||||
if(self.representedObject && [self.representedObject isKindOfClass:[FSItem class]])
|
||||
|
||||
@@ -37,7 +37,32 @@ static NSButton* OakCreateScopeButton (NSString* label, SEL action, NSUInteger t
|
||||
@end
|
||||
|
||||
@implementation OakScopeBarView
|
||||
- (BOOL)accessibilityIsIgnored { return NO; }
|
||||
- (BOOL)accessibilityIsIgnored
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return NO;
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
- (id)accessibilityAttributeValue:(NSString *)attribute
|
||||
{
|
||||
if([attribute isEqualToString:NSAccessibilityRoleAttribute])
|
||||
|
||||
@@ -840,21 +840,28 @@ static std::string const kSearchmarkType = "search";
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityDescriptionAttribute,
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
NSSet* set = [NSSet setWithArray:[super accessibilityAttributeNames]];
|
||||
set = [set setByAddingObjectsFromArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityDescriptionAttribute,
|
||||
]];
|
||||
attributes = [set allObjects];
|
||||
}
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return NO;
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
- (id)accessibilityAttributeValue:(NSString*)attribute
|
||||
{
|
||||
if([attribute isEqualToString:NSAccessibilityRoleAttribute])
|
||||
|
||||
@@ -104,24 +104,26 @@ struct buffer_refresh_callback_t;
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityRoleDescriptionAttribute,
|
||||
NSAccessibilitySubroleAttribute,
|
||||
NSAccessibilityParentAttribute,
|
||||
NSAccessibilityWindowAttribute,
|
||||
NSAccessibilityTopLevelUIElementAttribute,
|
||||
NSAccessibilityPositionAttribute,
|
||||
NSAccessibilitySizeAttribute,
|
||||
NSAccessibilityTitleAttribute,
|
||||
NSAccessibilityURLAttribute,
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
attributes = @[
|
||||
NSAccessibilityRoleAttribute,
|
||||
NSAccessibilityRoleDescriptionAttribute,
|
||||
NSAccessibilitySubroleAttribute,
|
||||
NSAccessibilityParentAttribute,
|
||||
NSAccessibilityWindowAttribute,
|
||||
NSAccessibilityTopLevelUIElementAttribute,
|
||||
NSAccessibilityPositionAttribute,
|
||||
NSAccessibilitySizeAttribute,
|
||||
NSAccessibilityTitleAttribute,
|
||||
NSAccessibilityURLAttribute,
|
||||
];
|
||||
}
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
@@ -160,12 +162,16 @@ struct buffer_refresh_callback_t;
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
return NO;
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return NO;
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
- (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute
|
||||
{
|
||||
@throw [NSException exceptionWithName:NSAccessibilityException reason:[NSString stringWithFormat:@"Setting accessibility attribute not supported: %@", attribute] userInfo:nil];
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
@throw [NSException exceptionWithName:NSAccessibilityException reason:[NSString stringWithFormat:@"Setting accessibility attribute not supported: %@", attribute] userInfo:nil];
|
||||
[super accessibilitySetValue:value forAttribute:attribute];
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityParameterizedAttributeNames
|
||||
@@ -1168,25 +1174,25 @@ doScroll:
|
||||
#define HANDLE_ATTR(attr) else if(ATTREQ_(ATTR(attr)))
|
||||
#define HANDLE_PATTR(attr) else if(ATTREQ_(PATTR(attr)))
|
||||
|
||||
- (NSSet*)myAccessibilityAttributeNames
|
||||
{
|
||||
static NSSet* set = [NSSet setWithArray:@[
|
||||
ATTR(Role),
|
||||
ATTR(Value),
|
||||
ATTR(InsertionPointLineNumber),
|
||||
ATTR(NumberOfCharacters),
|
||||
ATTR(SelectedText),
|
||||
ATTR(SelectedTextRange),
|
||||
ATTR(SelectedTextRanges),
|
||||
ATTR(VisibleCharacterRange),
|
||||
ATTR(Children),
|
||||
]];
|
||||
return set;
|
||||
}
|
||||
|
||||
- (NSArray*)accessibilityAttributeNames
|
||||
{
|
||||
static NSArray* attributes = nil;
|
||||
if(!attributes)
|
||||
{
|
||||
NSSet* set = [NSSet setWithArray:@[
|
||||
ATTR(Role),
|
||||
ATTR(Value),
|
||||
ATTR(InsertionPointLineNumber),
|
||||
ATTR(NumberOfCharacters),
|
||||
ATTR(SelectedText),
|
||||
ATTR(SelectedTextRange),
|
||||
ATTR(SelectedTextRanges),
|
||||
ATTR(VisibleCharacterRange),
|
||||
ATTR(Children),
|
||||
]];
|
||||
|
||||
attributes = [[set setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
}
|
||||
static NSArray* attributes = [[[self myAccessibilityAttributeNames] setByAddingObjectsFromArray:[super accessibilityAttributeNames]] allObjects];
|
||||
return attributes;
|
||||
}
|
||||
|
||||
@@ -1239,9 +1245,9 @@ doScroll:
|
||||
|
||||
- (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute
|
||||
{
|
||||
NSArray* settable = @[ ATTR(Value), ATTR(SelectedText), ATTR(SelectedTextRange), ATTR(SelectedTextRanges) ];
|
||||
if([settable containsObject:attribute])
|
||||
return YES;
|
||||
static NSArray* settable = @[ ATTR(Value), ATTR(SelectedText), ATTR(SelectedTextRange), ATTR(SelectedTextRanges) ];
|
||||
if([[self myAccessibilityAttributeNames] containsObject:attribute])
|
||||
return [settable containsObject:attribute];
|
||||
return [super accessibilityIsAttributeSettable:attribute];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user