@@ -222,6 +222,7 @@ - (void)initAddedProperties {
222
222
_overflowPopUpButton = [[PSMOverflowPopUpButton alloc ] initWithFrame: overflowButtonRect pullsDown: YES ];
223
223
[_overflowPopUpButton setAutoresizingMask: NSViewNotSizable | NSViewMinXMargin];
224
224
[_overflowPopUpButton setHidden: YES ];
225
+ [[_overflowPopUpButton cell ] accessibilitySetOverrideValue: NSLocalizedString(@" More tabs" , nil ) forAttribute: NSAccessibilityDescriptionAttribute ];
225
226
[self addSubview: _overflowPopUpButton];
226
227
[self _positionOverflowMenu ];
227
228
@@ -246,6 +247,7 @@ - (void)initAddedProperties {
246
247
[_addTabButton setButtonType: NSMomentaryChangeButton ];
247
248
[_addTabButton setBordered: NO ];
248
249
[_addTabButton setBezelStyle: NSShadowlessSquareBezelStyle ];
250
+ [[_addTabButton cell ] accessibilitySetOverrideValue: NSLocalizedString(@" Add Tab" , nil ) forAttribute: NSAccessibilityDescriptionAttribute ];
249
251
[self addSubview: _addTabButton];
250
252
251
253
if (_showAddTabButton) {
@@ -1996,6 +1998,8 @@ - (void)tabView:(NSTabView *)aTabView didSelectTabViewItem:(NSTabViewItem *)tabV
1996
1998
[self setNeedsDisplay: YES ];
1997
1999
}
1998
2000
}
2001
+
2002
+ NSAccessibilityPostNotification (self, NSAccessibilityValueChangedNotification );
1999
2003
2000
2004
if ([[self delegate ] respondsToSelector: @selector (tabView:didSelectTabViewItem: )]) {
2001
2005
[[self delegate ] performSelector: @selector (tabView:didSelectTabViewItem: ) withObject: aTabView withObject: tabViewItem];
@@ -2288,16 +2292,47 @@ -(BOOL)accessibilityIsIgnored {
2288
2292
return NO ;
2289
2293
}
2290
2294
2295
+ - (NSArray *)accessibilityAttributeNames
2296
+ {
2297
+ static NSArray *attributes = nil ;
2298
+ if (!attributes) {
2299
+ NSSet *set = [NSSet setWithArray: [super accessibilityAttributeNames ]];
2300
+ set = [set setByAddingObjectsFromArray: [NSArray arrayWithObjects:
2301
+ NSAccessibilityTabsAttribute ,
2302
+ NSAccessibilityValueAttribute ,
2303
+ nil ]];
2304
+ attributes = [[set allObjects ] retain ];
2305
+ }
2306
+ return attributes;
2307
+ }
2308
+
2291
2309
- (id )accessibilityAttributeValue : (NSString *)attribute {
2292
- id attributeValue = nil ;
2293
- if ([attribute isEqualToString: NSAccessibilityRoleAttribute ]) {
2294
- attributeValue = NSAccessibilityGroupRole ;
2295
- } else if ([attribute isEqualToString: NSAccessibilityChildrenAttribute ]) {
2296
- attributeValue = NSAccessibilityUnignoredChildren (_cells);
2297
- } else {
2298
- attributeValue = [super accessibilityAttributeValue: attribute];
2299
- }
2300
- return attributeValue;
2310
+ id attributeValue = nil ;
2311
+ if ([attribute isEqualToString: NSAccessibilityRoleAttribute ]) {
2312
+ attributeValue = NSAccessibilityTabGroupRole ;
2313
+ } else if ([attribute isEqualToString: NSAccessibilityChildrenAttribute ]) {
2314
+ NSMutableArray *children = [NSMutableArray arrayWithArray: [_cells objectsAtIndexes: [NSIndexSet indexSetWithIndexesInRange: NSMakeRange (0 , [self numberOfVisibleTabs ])]]];
2315
+ if (![_overflowPopUpButton isHidden ])
2316
+ [children addObject: _overflowPopUpButton];
2317
+ if (![_addTabButton isHidden ])
2318
+ [children addObject: _addTabButton];
2319
+ attributeValue = NSAccessibilityUnignoredChildren (children);
2320
+ } else if ([attribute isEqualToString: NSAccessibilityTabsAttribute ]) {
2321
+ attributeValue = NSAccessibilityUnignoredChildren (_cells);
2322
+ } else if ([attribute isEqualToString: NSAccessibilityValueAttribute ]) {
2323
+ NSTabViewItem *tabViewItem = [tabView selectedTabViewItem ];
2324
+ for (NSActionCell *cell in _cells) {
2325
+ if ([cell representedObject ] == tabViewItem)
2326
+ attributeValue = cell;
2327
+ }
2328
+ if (!attributeValue)
2329
+ {
2330
+ NSLog (@" WARNING: seems no tab cell is currently selected" );
2331
+ }
2332
+ } else {
2333
+ attributeValue = [super accessibilityAttributeValue: attribute];
2334
+ }
2335
+ return attributeValue;
2301
2336
}
2302
2337
2303
2338
- (id )accessibilityHitTest : (NSPoint )point {
0 commit comments