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