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

Reply via email to