Revision: 27734
          http://sourceforge.net/p/bibdesk/svn/27734
Author:   hofman
Date:     2022-07-13 21:43:25 +0000 (Wed, 13 Jul 2022)
Log Message:
-----------
accessibility for color labelwell iteoms as radio button, set accessibility 
label to its label

Modified Paths:
--------------
    trunk/bibdesk/BDSKColorLabelWell.m

Modified: trunk/bibdesk/BDSKColorLabelWell.m
===================================================================
--- trunk/bibdesk/BDSKColorLabelWell.m  2022-07-13 18:47:20 UTC (rev 27733)
+++ trunk/bibdesk/BDSKColorLabelWell.m  2022-07-13 21:43:25 UTC (rev 27734)
@@ -43,6 +43,7 @@
 #if SDK_BEFORE(10_10)
 @interface NSObject (BDSKYosemiteDeclarations)
 - (id)accessibilityValue;
+- (void)setAccessibilityValue:(id)value;
 @end
 #endif
 
@@ -76,6 +77,17 @@
     updatingColorPanel = flag;
 }
 
++ (NSString *)labelAtIndex:(NSUInteger)i {
+    if (i == 0)
+        return NSLocalizedString(@"Clear", @"");
+    else if (i < 8)
+        return [[NSColor labelNames] objectAtIndex:i - 1];
+    else if (i == 8)
+        return [NSLocalizedString(@"Other", @"") stringByAppendingEllipsis];
+    else
+        return @"";
+}
+
 - (void)commonInit {
     if (matrix == nil) {
         matrix = [[NSMatrix alloc] initWithFrame:NSMakeRect(0.0, 2.0, 178.0, 
22.0)];
@@ -116,6 +128,14 @@
         [matrix addTrackingArea:area];
         [areas addObject:area];
         [area release];
+        NSCell *cell = [matrix cellAtRow:0 column:i];
+        if ([cell respondsToSelector:@selector(setAccessibilityLabel:)])
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpartial-availability"
+            [cell setAccessibilityLabel:[[self class] labelAtIndex:i]];
+#pragma clang diagnostic pop
+        else
+            [cell accessibilitySetOverrideValue:[[self class] labelAtIndex:i] 
forAttribute:NSAccessibilityTitleAttribute];
     }
     trackingAreas = [areas copy];
     
@@ -376,14 +396,7 @@
                 [[matrix cellAtRow:0 column:i] setHovered:YES];
                 [matrix setNeedsDisplay:YES];
                 if (labelCell) {
-                    NSString *label = @"";
-                    if (i == 0)
-                        label = NSLocalizedString(@"Clear", @"");
-                    else if (i < 8)
-                        label = [[NSColor labelNames] objectAtIndex:i - 1];
-                    else if (i == 8)
-                        label = [NSLocalizedString(@"Other", @"") 
stringByAppendingEllipsis];
-                    [labelCell setStringValue:label];
+                    [labelCell setStringValue:[[self class] labelAtIndex:i]];
                     [self setNeedsDisplay:YES];
                 }
             }
@@ -463,55 +476,4 @@
     [NSGraphicsContext restoreGraphicsState];
 }
 
-- (NSString *)accessibilityRole {
-    return NSAccessibilityColorWellRole;
-}
-
-- (NSString *)accessibilityRoleDescription {
-    return NSAccessibilityRoleDescription(NSAccessibilityColorWellRole, nil);
-}
-
-- (id)accessibilityValue {
-    NSColor *color = [self representedObject];
-    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
-}
-
-- (NSArray *)accessibilityAttributeNames {
-    static NSArray *attributes = nil;
-    if (attributes == nil) {
-        attributes = [[NSArray alloc] initWithObjects:
-            NSAccessibilityRoleAttribute,
-            NSAccessibilityRoleDescriptionAttribute,
-            NSAccessibilityValueAttribute,
-            NSAccessibilityParentAttribute,
-            NSAccessibilityWindowAttribute,
-            NSAccessibilityTopLevelUIElementAttribute,
-            NSAccessibilityPositionAttribute,
-            NSAccessibilitySizeAttribute,
-            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 {
-        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

Reply via email to