Revision: 27728
http://sourceforge.net/p/bibdesk/svn/27728
Author: hofman
Date: 2022-07-13 15:39:12 +0000 (Wed, 13 Jul 2022)
Log Message:
-----------
implement accessibility for color cell as color well
Modified Paths:
--------------
trunk/bibdesk/BDSKColorCell.m
Modified: trunk/bibdesk/BDSKColorCell.m
===================================================================
--- trunk/bibdesk/BDSKColorCell.m 2022-07-13 14:47:40 UTC (rev 27727)
+++ trunk/bibdesk/BDSKColorCell.m 2022-07-13 15:39:12 UTC (rev 27728)
@@ -40,6 +40,11 @@
#import "NSGeometry_BDSKExtensions.h"
#import "NSColor_BDSKExtensions.h"
+#if SDK_BEFORE(10_10)
+@interface NSObject (BDSKYosemiteDeclarations)
+- (id)accessibilityValue;
+@end
+#endif
@implementation BDSKColorView
@@ -59,4 +64,70 @@
[color drawSwatchInRect:BDSKShrinkRect(cellFrame, 1.0, [controlView
isFlipped] ? NSMaxYEdge : NSMinYEdge)];
}
+- (BOOL)isAccessibilityElement {
+ return YES;
+}
+
+- (NSString *)accessibilityRole {
+ return NSAccessibilityColorWellRole;
+}
+
+- (NSString *)accessibilityRoleDescription {
+ return NSAccessibilityRoleDescription(NSAccessibilityColorWellRole, nil);
+}
+
+- (id)accessibilityValue {
+ NSColor *color = [self objectValue];
+ if ([color isKindOfClass:[NSColor class]] == NO)
+ return nil;
+ static NSColorWell *colorWell = nil;
+ if (colorWell == nil)
+ colorWell = [[NSColorWell alloc] init];
+ [colorWell setColor:color];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpartial-availability"
+ return [colorWell respondsToSelector:@selector(accessibilityValue)] ?
[colorWell accessibilityValue] : [colorWell
accessibilityAttributeValue:NSAccessibilityValueAttribute];
+#pragma clang diagnostic pop
+}
+
+- (BOOL)isAccessibilityEnabled {
+ return NO;
+}
+
+- (BOOL)accessibilityIsIgnored {
+ return NO;
+}
+
+- (NSArray *)accessibilityAttributeNames {
+ static NSArray *attributes = nil;
+ if (attributes == nil) {
+ attributes = [[NSArray alloc] initWithObjects:
+ NSAccessibilityRoleAttribute,
+ NSAccessibilityRoleDescriptionAttribute,
+ NSAccessibilityValueAttribute,
+ NSAccessibilityParentAttribute,
+ NSAccessibilityWindowAttribute,
+ NSAccessibilityTopLevelUIElementAttribute,
+ NSAccessibilityPositionAttribute,
+ NSAccessibilitySizeAttribute,
+ NSAccessibilityEnabledAttribute,
+ nil];
+ }
+ return attributes;
+}
+
+- (id)accessibilityAttributeValue:(NSString *)attribute {
+ if ([attribute isEqualToString:NSAccessibilityRoleAttribute]) {
+ return NSAccessibilityColorWellRole;
+ } else if ([attribute
isEqualToString:NSAccessibilityRoleDescriptionAttribute]) {
+ return NSAccessibilityRoleDescription(NSAccessibilityColorWellRole,
nil);
+ } else if ([attribute isEqualToString:NSAccessibilityValueAttribute]) {
+ return [self accessibilityValue];
+ } else if ([attribute isEqualToString:NSAccessibilityEnabledAttribute]) {
+ return [NSNumber numberWithBool:NO];
+ } else {
+ return [super accessibilityAttributeValue:attribute];
+ }
+}
+
@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit