Revision: 27706
http://sourceforge.net/p/bibdesk/svn/27706
Author: hofman
Date: 2022-07-07 16:47:35 +0000 (Thu, 07 Jul 2022)
Log Message:
-----------
implement newer accessibility accessors and actions
Modified Paths:
--------------
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m
2022-07-07 16:30:29 UTC (rev 27705)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVAccessibilityIconElement.m
2022-07-07 16:47:35 UTC (rev 27706)
@@ -166,4 +166,77 @@
[_parent openIconElement:self];
}
+- (BOOL)isAccessibilityElement {
+ return NO;
+}
+
+- (NSString *)accessibilityRole {
+ return NSAccessibilityLinkRole;
+}
+
+- (NSString *)accessibilityRoleDescription {
+ return NSAccessibilityRoleDescription(NSAccessibilityLinkRole, nil);
+}
+
+- (id)accessibilityParent {
+ return NSAccessibilityUnignoredAncestor(_parent);
+}
+
+- (id)accessibilityWindow {
+ // We're in the same window as our parent.
+ id parent = [self accessibilityParent];
+ if ([parent respondsToSelector:_cmd])
+ return [NSAccessibilityUnignoredAncestor(_parent) accessibilityWindow];
+ else if ([parent
respondsToSelector:@selector(accessibilityAttributeValue:)])
+ return [parent
accessibilityAttributeValue:NSAccessibilityWindowAttribute];
+ return nil;
+}
+
+- (id)accessibilityTopLevelUIElement {
+ // We're in the same top level element as our parent.
+ id parent = [self accessibilityParent];
+ if ([parent respondsToSelector:_cmd])
+ return [NSAccessibilityUnignoredAncestor(_parent)
accessibilityTopLevelUIElement];
+ else if ([parent
respondsToSelector:@selector(accessibilityAttributeValue:)])
+ return [parent
accessibilityAttributeValue:NSAccessibilityTopLevelUIElementAttribute];
+ return nil;
+}
+
+- (NSRect)accessibilityFrame {
+ return [_parent screenRectForIconElement:self];
+}
+
+- (NSString *)accessibilityTitle {
+ NSString *title = nil;
+ NSURL *aURL = [_parent URLForIconElement:self];
+ if ([aURL isFileURL]) {
+ [aURL getResourceValue:&title forKey:NSURLLocalizedNameKey error:NULL];
+ if (title == nil)
+ title = [aURL lastPathComponent];
+ } else {
+ title = [[aURL absoluteString]
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+ }
+ return title;
+}
+
+- (NSURL *)accessibilityURL {
+ return [_parent URLForIconElement:self];
+}
+
+- (BOOL)isAccessibilityEnabled {
+ return YES;
+}
+
+- (BOOL)isAccessibilityFocused {
+ return [_parent isIconElementSelected:self];
+}
+
+- (void)setAccessibilityFocused:(BOOL)focused {
+ [_parent setSelected:focused forIconElement:self];
+}
+
+- (void)accessibilityPerformPress {
+ [_parent openIconElement:self];
+}
+
@end
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m 2022-07-07
16:30:29 UTC (rev 27705)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m 2022-07-07
16:47:35 UTC (rev 27706)
@@ -4592,6 +4592,36 @@
return NSAccessibilityUnignoredAncestor(self);
}
+- (BOOL)isAccessibilityElement {
+ return YES;
+}
+
+- (NSString *)accessibilityRole {
+ return NSAccessibilityGroupRole;
+}
+
+- (NSString *)accessibilityRoleDescription {
+ return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, nil);
+}
+
+- (NSArray *)accessibilityChildren {
+ NSMutableArray *children = [NSMutableArray array];
+ NSUInteger i, count = [self numberOfIcons];
+ for (i = 0; i < count; i++)
+ [children addObject:[FVAccessibilityIconElement elementWithIndex:i
parent:self]];
+ return NSAccessibilityUnignoredChildren(children);
+}
+
+- (NSArray *)accessibilitySelectedChildren {
+ NSMutableArray *children = [NSMutableArray array];
+ NSUInteger i = [_selectionIndexes firstIndex];
+ while (i != NSNotFound) {
+ [children addObject:[FVAccessibilityIconElement elementWithIndex:i
parent:self]];
+ i = [_selectionIndexes indexGreaterThanIndex:i];
+ }
+ return NSAccessibilityUnignoredChildren(children);
+}
+
- (NSURL *)URLForIconElement:(FVAccessibilityIconElement *)element {
return [self URLAtIndex:[element index]];
}
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