Make OakPasteboardSelector accessible

Issues remaining:

* VoiceOver for some reason cannot track keyboard focus
  (i.e. moving down the list with just down arrow does not move
  VoiceOver cursor). User has to move the VO cursor instead using VO-down
  (and keyboard cursor follows in this case)
* the pasteboard window isn't focused automatically for VoiceOver, user
  has to switch manually to it using VO-F2-F2
This commit is contained in:
Boris Dušek
2012-12-08 18:10:04 +01:00
committed by Allan Odgaard
parent cca891d74c
commit 7d47dd279f

View File

@@ -54,6 +54,33 @@ static size_t line_count (std::string text)
}
}
- (NSArray*)accessibilityAttributeNames
{
static NSArray* attributes = nil;
if(!attributes)
{
NSSet* set = [NSSet setWithArray:[super accessibilityAttributeNames]];
set = [set setByAddingObjectsFromArray:@[
NSAccessibilityRoleAttribute,
NSAccessibilityValueAttribute,
]];
attributes = [[set allObjects] retain];
}
return attributes;
}
- (id)accessibilityAttributeValue:(NSString*)attribute
{
id value = nil;
if([attribute isEqualToString:NSAccessibilityRoleAttribute])
value = NSAccessibilityStaticTextRole;
else if([attribute isEqualToString:NSAccessibilityValueAttribute])
value = [self objectValue];
else
value = [super accessibilityAttributeValue:attribute];
return value;
}
- (size_t)lineCountForText:(NSString*)text
{
return oak::cap((size_t)1, line_count([text UTF8String]), maxLines);