From f723fd011a5f67cc41f49ba2715d0ef8379dbf70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=5B=CC=B2=CC=B2=CC=85=CC=85L=CC=B2=CC=85=CC=85e=CC=B2o?= =?UTF-8?q?=CC=B2=CC=85=5D?= Date: Sat, 30 Apr 2016 22:17:22 +0300 Subject: [PATCH] Adds accessibility support to the framework. Closes #64 --- .../project.pbxproj | 2 +- .../LNPopupController/LNPopupItem.h | 14 +++ .../Private/LNPopupBar+Private.h | 5 + .../LNPopupController/Private/LNPopupBar.m | 96 ++++++++++++++---- .../Private/LNPopupCloseButton.m | 2 + .../Private/LNPopupController.m | 33 +++++- .../Private/LNPopupItem+Private.h | 10 ++ .../LNPopupController/Private/LNPopupItem.m | 11 ++ .../project.pbxproj | 11 +- .../DemoAlbumTableViewController.swift | 3 + .../DemoMusicPlayerController.swift | 36 +++++-- .../FirstViewController.m | 31 ++++-- README.md | 37 ++++++- .../default_bar_accessibility_label.png | Bin 0 -> 91009 bytes 14 files changed, 248 insertions(+), 43 deletions(-) create mode 100644 Supplements/default_bar_accessibility_label.png diff --git a/LNPopupController/LNPopupController.xcodeproj/project.pbxproj b/LNPopupController/LNPopupController.xcodeproj/project.pbxproj index e6593b7d..cc6f23d9 100644 --- a/LNPopupController/LNPopupController.xcodeproj/project.pbxproj +++ b/LNPopupController/LNPopupController.xcodeproj/project.pbxproj @@ -85,10 +85,10 @@ 3947E1B01B61CE4A0001178B /* LNPopupController.h */, 3947E1B11B61CE4A0001178B /* LNPopupController.m */, 394A85BB1B6306AE004FFC61 /* LNPopupItem+Private.h */, + 394A85B81B6304F5004FFC61 /* LNPopupItem.m */, 394A85C71B63FB96004FFC61 /* UIViewController+LNPopupSupportPrivate.h */, 394A85C81B63FE52004FFC61 /* UIViewController+LNPopupSupportPrivate.m */, 3947E1A01B61CD1F0001178B /* UIViewController+LNPopupSupport.m */, - 394A85B81B6304F5004FFC61 /* LNPopupItem.m */, ); name = "Private Implementation"; path = Private; diff --git a/LNPopupController/LNPopupController/LNPopupItem.h b/LNPopupController/LNPopupController/LNPopupItem.h index 6d706fa8..01d41514 100644 --- a/LNPopupController/LNPopupController/LNPopupItem.h +++ b/LNPopupController/LNPopupController/LNPopupItem.h @@ -46,4 +46,18 @@ NS_ASSUME_NONNULL_BEGIN @end +@interface LNPopupItem (Accessibility) + +/** + * The accessibility label of the progress, in a localized string. + */ +@property (nonatomic, copy, nullable) NSString* accessibilityProgressLabel; + +/** + * The accessibility value of the progress, in a localized string. + */ +@property (nonatomic, copy, nullable) NSString* accessibilityProgressValue; + +@end + NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/LNPopupController/LNPopupController/Private/LNPopupBar+Private.h b/LNPopupController/LNPopupController/Private/LNPopupBar+Private.h index e57625b6..42cd37d5 100644 --- a/LNPopupController/LNPopupController/Private/LNPopupBar+Private.h +++ b/LNPopupController/LNPopupController/Private/LNPopupBar+Private.h @@ -36,6 +36,11 @@ extern const CGFloat LNPopupBarHeight; @property (nonatomic, strong) UIProgressView* progressView; +@property (nonatomic, copy) NSString* accessibilityCenterLabel; +@property (nonatomic, copy) NSString* accessibilityCenterHint; +@property (nonatomic, copy) NSString* accessibilityProgressLabel; +@property (nonatomic, copy) NSString* accessibilityProgressValue; + - (void)_delayBarButtonLayout; - (void)_layoutBarButtonItems; diff --git a/LNPopupController/LNPopupController/Private/LNPopupBar.m b/LNPopupController/LNPopupController/Private/LNPopupBar.m index 9522b676..1363026b 100644 --- a/LNPopupController/LNPopupController/Private/LNPopupBar.m +++ b/LNPopupController/LNPopupController/Private/LNPopupBar.m @@ -53,13 +53,6 @@ - (nonnull instancetype)initWithFrame:(CGRect)frame _toolbar.layer.masksToBounds = YES; [self addSubview:_toolbar]; - _progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault]; - _progressView.translatesAutoresizingMaskIntoConstraints = NO; - _progressView.trackImage = [UIImage alloc]; - [_toolbar addSubview:_progressView]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_progressView(1)]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_progressView)]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_progressView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_progressView)]]; - _highlightView = [[UIView alloc] initWithFrame:self.bounds]; _highlightView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; _highlightView.userInteractionEnabled = NO; @@ -70,10 +63,23 @@ - (nonnull instancetype)initWithFrame:(CGRect)frame _titlesView = [[UIView alloc] initWithFrame:fullFrame]; _titlesView.userInteractionEnabled = NO; _titlesView.autoresizingMask = UIViewAutoresizingNone; + + _titlesView.accessibilityTraits = UIAccessibilityTraitButton; + _titlesView.isAccessibilityElement = YES; + [self _layoutTitles]; [self.toolbar addSubview:_titlesView]; + _progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault]; + _progressView.translatesAutoresizingMaskIntoConstraints = NO; + _progressView.trackImage = [UIImage alloc]; + [_toolbar addSubview:_progressView]; + [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_progressView(1)]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_progressView)]]; + [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_progressView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_progressView)]]; + _needsLabelsLayout = YES; + + self.accessibilityLabel = @"Popup Asshole"; } return self; @@ -224,6 +230,34 @@ - (void)setSubtitle:(NSString *)subtitle [self _setNeedsTitleLayout]; } +- (void)setAccessibilityCenterHint:(NSString *)accessibilityCenterHint +{ + _accessibilityCenterHint = accessibilityCenterHint; + + [self _setNeedsAccessibilityUpdate]; +} + +- (void)setAccessibilityCenterLabel:(NSString *)accessibilityCenterLabel +{ + _accessibilityCenterLabel = accessibilityCenterLabel; + + [self _setNeedsAccessibilityUpdate]; +} + +- (void)setAccessibilityProgressLabel:(NSString *)accessibilityProgressLabel +{ + _accessibilityProgressLabel = accessibilityProgressLabel; + + _progressView.accessibilityLabel = accessibilityProgressLabel; +} + +- (void)setAccessibilityProgressValue:(NSString *)accessibilityProgressValue +{ + _accessibilityProgressValue = accessibilityProgressValue; + + _progressView.accessibilityValue = accessibilityProgressValue; +} + - (__MarqueeLabel*)_newMarqueeLabel { __MarqueeLabel* rv = [[__MarqueeLabel alloc] initWithFrame:_titlesView.bounds rate:20 andFadeLength:10]; @@ -313,21 +347,6 @@ - (void)_layoutTitles titleLabelFrame.origin.y -= _titleLabel.font.lineHeight / 2; subtitleLabelFrame.origin.y += _subtitleLabel.font.lineHeight / 2; - if(_needsLabelsLayout == YES) - { -// NSTimeInterval titleDuration = [_titleLabel animationDuration]; -// NSTimeInterval subtitleDuration = [_subtitleLabel animationDuration]; -// -// if(_titleLabel.animationDuration < _subtitleLabel.animationDuration) -// { -// _titleLabel.animationDelayAfter = -20; //(subtitleDuration - titleDuration); -// } -// else -// { -// _subtitleLabel.animationDelayAfter = - 20;//(subtitleDuration - titleDuration); -// } - } - _subtitleLabel.frame = subtitleLabelFrame; _subtitleLabel.hidden = NO; @@ -349,12 +368,45 @@ - (void)_layoutTitles } } + [self _setNeedsAccessibilityUpdate]; + _titleLabel.frame = titleLabelFrame; _needsLabelsLayout = NO; }); } +- (void)_setNeedsAccessibilityUpdate +{ + if(_accessibilityCenterLabel.length > 0) + { + _titlesView.accessibilityLabel = _accessibilityCenterLabel; + } + else + { + NSMutableString* accessibilityLabel = [NSMutableString new]; + if(_title.length > 0) + { + [accessibilityLabel appendString:_title]; + [accessibilityLabel appendString:@"\n"]; + } + if(_subtitle.length > 0) + { + [accessibilityLabel appendString:_subtitle]; + } + _titlesView.accessibilityLabel = accessibilityLabel; + } + + if(_accessibilityCenterHint.length > 0) + { + _titlesView.accessibilityHint = _accessibilityCenterHint; + } + else + { + _titlesView.accessibilityHint = NSLocalizedString(@"Double tap to open.", @""); + } +} + - (void)_setNeedsTitleLayout { _needsLabelsLayout = YES; diff --git a/LNPopupController/LNPopupController/Private/LNPopupCloseButton.m b/LNPopupController/LNPopupController/Private/LNPopupCloseButton.m index 9796bead..f56e9aa7 100644 --- a/LNPopupController/LNPopupController/Private/LNPopupCloseButton.m +++ b/LNPopupController/LNPopupController/Private/LNPopupCloseButton.m @@ -56,6 +56,8 @@ - (nonnull instancetype)initWithFrame:(CGRect)frame [self setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [self setImage:[UIImage imageNamed:@"DismissChevron" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal]; + + self.accessibilityLabel = NSLocalizedString(@"Close", @""); } return self; diff --git a/LNPopupController/LNPopupController/Private/LNPopupController.m b/LNPopupController/LNPopupController/Private/LNPopupController.m index b2e56b90..1e36b873 100644 --- a/LNPopupController/LNPopupController/Private/LNPopupController.m +++ b/LNPopupController/LNPopupController/Private/LNPopupController.m @@ -345,10 +345,16 @@ - (void)_transitionToState:(LNPopupPresentationState)state animated:(BOOL)animat [_popupBar addGestureRecognizer:self.popupContentView.popupInteractionGestureRecognizer]; [_popupBar _setTitleViewMarqueesPaused:NO]; + + _popupContentView.accessibilityViewIsModal = NO; + UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); } else if(state == LNPopupPresentationStateOpen) { [_popupBar _setTitleViewMarqueesPaused:YES]; + + _popupContentView.accessibilityViewIsModal = YES; + UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, _popupContentView.popupCloseButton); } _popupControllerState = state; @@ -480,6 +486,26 @@ - (void)_reconfigure_progress }]; } +- (void)_reconfigure_accessibilityLavel +{ + _popupBar.accessibilityCenterLabel = _currentPopupItem.accessibilityLabel; +} + +- (void)_reconfigure_accessibilityHint +{ + _popupBar.accessibilityCenterHint = _currentPopupItem.accessibilityHint; +} + +- (void)_reconfigure_accessibilityProgressLabel +{ + _popupBar.accessibilityProgressLabel = _currentPopupItem.accessibilityProgressLabel; +} + +- (void)_reconfigure_accessibilityProgressValue +{ + _popupBar.accessibilityProgressValue = _currentPopupItem.accessibilityProgressValue; +} + - (void)_reconfigureBarItems { [_popupBar _delayBarButtonLayout]; @@ -534,9 +560,14 @@ - (void)_reconfigureContent [_currentContentController endAppearanceTransition]; _currentContentController = newContentController; + + if(_popupControllerState == LNPopupPresentationStateOpen) + { + UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); + } } - NSArray* keys = @[@"title", @"subtitle", @"progress", @"leftBarButtonItems"]; + NSArray* keys = @[@"title", @"subtitle", @"progress", @"leftBarButtonItems", @"accessibilityLavel", @"accessibilityHint", @"accessibilityProgressLabel", @"accessibilityProgressValue"]; [keys enumerateObjectsUsingBlock:^(NSString * __nonnull key, NSUInteger idx, BOOL * __nonnull stop) { [self _popupItem:_currentPopupItem didChangeValueForKey:key]; }]; diff --git a/LNPopupController/LNPopupController/Private/LNPopupItem+Private.h b/LNPopupController/LNPopupController/Private/LNPopupItem+Private.h index 18c0e2d1..4909e7be 100644 --- a/LNPopupController/LNPopupController/Private/LNPopupItem+Private.h +++ b/LNPopupController/LNPopupController/Private/LNPopupItem+Private.h @@ -19,6 +19,16 @@ @interface LNPopupItem () +/** + * The accessibility label of the progress, in a localized string. + */ +@property (nonatomic, copy) NSString* accessibilityProgressLabel; + +/** + * The accessibility value of the progress, in a localized string. + */ +@property (nonatomic, copy) NSString* accessibilityProgressValue; + @property (nonatomic, weak, setter=_setItemDelegate:, getter=_itemDelegate) id<_LNPopupItemDelegate> itemDelegate; @property (nonatomic, weak, setter=_setContainerController:, getter=_containerController) __kindof UIViewController* containerController; diff --git a/LNPopupController/LNPopupController/Private/LNPopupItem.m b/LNPopupController/LNPopupController/Private/LNPopupItem.m index 706d06ca..875b8d25 100644 --- a/LNPopupController/LNPopupController/Private/LNPopupItem.m +++ b/LNPopupController/LNPopupController/Private/LNPopupItem.m @@ -13,6 +13,9 @@ @implementation LNPopupItem +@synthesize accessibilityProgressLabel = _accessibilityProgressLabel; +@synthesize accessibilityProgressValue = _accessibilityProgressValue; + - (instancetype)init { self = [super init]; @@ -24,6 +27,10 @@ - (instancetype)init [self addObserver:self forKeyPath:NSStringFromSelector(@selector(progress)) options:0 context:_LNPopupItemObservationContext]; [self addObserver:self forKeyPath:NSStringFromSelector(@selector(leftBarButtonItems)) options:0 context:_LNPopupItemObservationContext]; [self addObserver:self forKeyPath:NSStringFromSelector(@selector(rightBarButtonItems)) options:0 context:_LNPopupItemObservationContext]; + [self addObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityLabel)) options:0 context:_LNPopupItemObservationContext]; + [self addObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityHint)) options:0 context:_LNPopupItemObservationContext]; + [self addObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityProgressLabel)) options:0 context:_LNPopupItemObservationContext]; + [self addObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityProgressValue)) options:0 context:_LNPopupItemObservationContext]; } return self; @@ -36,6 +43,10 @@ - (void)dealloc [self removeObserver:self forKeyPath:NSStringFromSelector(@selector(progress)) context:_LNPopupItemObservationContext]; [self removeObserver:self forKeyPath:NSStringFromSelector(@selector(leftBarButtonItems)) context:_LNPopupItemObservationContext]; [self removeObserver:self forKeyPath:NSStringFromSelector(@selector(rightBarButtonItems)) context:_LNPopupItemObservationContext]; + [self removeObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityLabel)) context:_LNPopupItemObservationContext]; + [self removeObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityHint)) context:_LNPopupItemObservationContext]; + [self removeObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityProgressLabel)) context:_LNPopupItemObservationContext]; + [self removeObserver:self forKeyPath:NSStringFromSelector(@selector(accessibilityProgressValue)) context:_LNPopupItemObservationContext]; } - (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary *)change context:(nullable void *)context diff --git a/LNPopupControllerExample/LNPopupControllerExample.xcodeproj/project.pbxproj b/LNPopupControllerExample/LNPopupControllerExample.xcodeproj/project.pbxproj index 261161c5..877aebaa 100644 --- a/LNPopupControllerExample/LNPopupControllerExample.xcodeproj/project.pbxproj +++ b/LNPopupControllerExample/LNPopupControllerExample.xcodeproj/project.pbxproj @@ -234,6 +234,7 @@ TargetAttributes = { 39277A031B58228000293F95 = { CreatedOnToolsVersion = 7.0; + DevelopmentTeam = 6Z9ASVU98Y; }; }; }; @@ -412,11 +413,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; INFOPLIST_FILE = LNPopupControllerExample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.LeoNatan.LNPopupControllerExample; + PRODUCT_BUNDLE_IDENTIFIER = com.LeoNatan.LNPopupControllerExampleZZZZ; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; SWIFT_OBJC_BRIDGING_HEADER = "LNPopupControllerExample/LNPopupControllerExample-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; @@ -429,11 +433,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; INFOPLIST_FILE = LNPopupControllerExample/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.LeoNatan.LNPopupControllerExample; + PRODUCT_BUNDLE_IDENTIFIER = com.LeoNatan.LNPopupControllerExampleZZZZ; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; SWIFT_OBJC_BRIDGING_HEADER = "LNPopupControllerExample/LNPopupControllerExample-Bridging-Header.h"; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/LNPopupControllerExample/LNPopupControllerExample/DemoAlbumTableViewController.swift b/LNPopupControllerExample/LNPopupControllerExample/DemoAlbumTableViewController.swift index dc3b7af5..a29d3028 100644 --- a/LNPopupControllerExample/LNPopupControllerExample/DemoAlbumTableViewController.swift +++ b/LNPopupControllerExample/LNPopupControllerExample/DemoAlbumTableViewController.swift @@ -92,6 +92,9 @@ class DemoAlbumTableViewController: UITableViewController { popupContentController.songTitle = titles[indexPath.row] popupContentController.albumTitle = subtitles[indexPath.row] + popupContentController.popupItem.accessibilityHint = NSLocalizedString("Double Tap to Expand the Mini Player", comment: "") + tabBarController?.popupContentView.popupCloseButton?.accessibilityLabel = NSLocalizedString("Dismiss Now Playing Screen", comment: "") + tabBarController?.presentPopupBarWithContentViewController(popupContentController, animated: true, completion: nil) tableView.deselectRowAtIndexPath(indexPath, animated: true) diff --git a/LNPopupControllerExample/LNPopupControllerExample/DemoMusicPlayerController.swift b/LNPopupControllerExample/LNPopupControllerExample/DemoMusicPlayerController.swift index 40801539..22082e92 100644 --- a/LNPopupControllerExample/LNPopupControllerExample/DemoMusicPlayerController.swift +++ b/LNPopupControllerExample/LNPopupControllerExample/DemoMusicPlayerController.swift @@ -14,23 +14,36 @@ class DemoMusicPlayerController: UIViewController { @IBOutlet weak var albumNameLabel: UILabel! @IBOutlet weak var progressView: UIProgressView! + let accessibilityDateComponentsFormatter = NSDateComponentsFormatter() + var timer : NSTimer? required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) + + let pause = UIBarButtonItem(image: UIImage(named: "pause"), style: .Plain, target: nil, action: nil) + pause.accessibilityLabel = NSLocalizedString("Pause", comment: "") + let more = UIBarButtonItem(image: UIImage(named: "action"), style: .Plain, target: nil, action: nil) + more.accessibilityLabel = NSLocalizedString("More", comment: "") if UIScreen.mainScreen().traitCollection.userInterfaceIdiom == .Pad { - self.popupItem.leftBarButtonItems = [UIBarButtonItem(image: UIImage(named: "prev"), style: .Plain, target: nil, action: nil), - UIBarButtonItem(image: UIImage(named: "pause"), style: .Plain, target: nil, action: nil), - UIBarButtonItem(image: UIImage(named: "nextFwd"), style: .Plain, target: nil, action: nil)] - self.popupItem.rightBarButtonItems = [UIBarButtonItem(image: UIImage(named: "next"), style: .Plain, target: nil, action: nil), - UIBarButtonItem(image: UIImage(named: "action"), style: .Plain, target: nil, action: nil)] + let prev = UIBarButtonItem(image: UIImage(named: "prev"), style: .Plain, target: nil, action: nil) + prev.accessibilityLabel = NSLocalizedString("Previous Track", comment: "") + let next = UIBarButtonItem(image: UIImage(named: "nextFwd"), style: .Plain, target: nil, action: nil) + next.accessibilityLabel = NSLocalizedString("Next Track", comment: "") + let list = UIBarButtonItem(image: UIImage(named: "next"), style: .Plain, target: nil, action: nil) + list.accessibilityLabel = NSLocalizedString("Up Next", comment: "") + list.accessibilityHint = NSLocalizedString("Double Tap to Show Up Next List", comment: "") + + self.popupItem.leftBarButtonItems = [ prev, pause, next ] + self.popupItem.rightBarButtonItems = [ list, more ] } else { - self.popupItem.leftBarButtonItems = [UIBarButtonItem(image: UIImage(named: "pause"), style: .Plain, target: nil, action: nil)] - self.popupItem.rightBarButtonItems = [UIBarButtonItem(image: UIImage(named: "action"), style: .Plain, target: nil, action: nil)] + self.popupItem.leftBarButtonItems = [ pause ] + self.popupItem.rightBarButtonItems = [ more ] } + accessibilityDateComponentsFormatter.unitsStyle = .SpellOut timer = NSTimer.scheduledTimerWithTimeInterval(0.05, target: self, selector: #selector(DemoMusicPlayerController._timerTicked(_:)), userInfo: nil, repeats: true) } @@ -65,10 +78,15 @@ class DemoMusicPlayerController: UIViewController { } func _timerTicked(timer: NSTimer) { - popupItem.progress += 0.007; + popupItem.progress += 0.0002; + popupItem.accessibilityProgressLabel = NSLocalizedString("Playback Progress", comment: "") + + let totalTime = NSTimeInterval(250) + popupItem.accessibilityProgressValue = "\(accessibilityDateComponentsFormatter.stringFromTimeInterval(NSTimeInterval(popupItem.progress) * totalTime)!) \(NSLocalizedString("of", comment: "")) \(accessibilityDateComponentsFormatter.stringFromTimeInterval(totalTime)!)" + progressView.progress = popupItem.progress - if popupItem.progress == 1.0 { + if popupItem.progress >= 1.0 { timer.invalidate() popupPresentationContainerViewController?.dismissPopupBarAnimated(true, completion: nil) } diff --git a/LNPopupControllerExample/LNPopupControllerExample/FirstViewController.m b/LNPopupControllerExample/LNPopupControllerExample/FirstViewController.m index da8946ff..1e978b01 100644 --- a/LNPopupControllerExample/LNPopupControllerExample/FirstViewController.m +++ b/LNPopupControllerExample/LNPopupControllerExample/FirstViewController.m @@ -48,19 +48,30 @@ - (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withT - (void)_setPopupItemButtonsWithTraitCollection:(UITraitCollection*)collection { + UIBarButtonItem* play = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"play"] style:UIBarButtonItemStylePlain target:nil action:NULL]; + play.accessibilityLabel = NSLocalizedString(@"Play", @""); + UIBarButtonItem* more = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"action"] style:UIBarButtonItemStylePlain target:nil action:NULL]; + more.accessibilityLabel = NSLocalizedString(@"More", @""); + if(collection.horizontalSizeClass == UIUserInterfaceSizeClassRegular) { - self.popupItem.leftBarButtonItems = @[ [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"prev"] style:UIBarButtonItemStylePlain target:nil action:NULL], - [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"play"] style:UIBarButtonItemStylePlain target:nil action:NULL], - [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"nextFwd"] style:UIBarButtonItemStylePlain target:nil action:NULL]]; + UIBarButtonItem* prev = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"prev"] style:UIBarButtonItemStylePlain target:nil action:NULL]; + prev.accessibilityLabel = NSLocalizedString(@"Previous Track", @""); + UIBarButtonItem* next = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"nextFwd"] style:UIBarButtonItemStylePlain target:nil action:NULL]; + next.accessibilityLabel = NSLocalizedString(@"Next Track", @""); + + self.popupItem.leftBarButtonItems = @[ prev, play, next ]; + + UIBarButtonItem* upnext = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"next"] style:UIBarButtonItemStylePlain target:nil action:NULL]; + upnext.accessibilityLabel = NSLocalizedString(@"Up Next", @""); + upnext.accessibilityHint = NSLocalizedString(@"Double Tap to Show Up Next List", @""); - self.popupItem.rightBarButtonItems = @[ [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"next"] style:UIBarButtonItemStylePlain target:nil action:NULL], - [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"action"] style:UIBarButtonItemStylePlain target:nil action:NULL]]; + self.popupItem.rightBarButtonItems = @[ upnext, more ]; } else { - self.popupItem.leftBarButtonItems = @[ [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"play"] style:UIBarButtonItemStylePlain target:nil action:NULL] ]; - self.popupItem.rightBarButtonItems = @[ [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"action"] style:UIBarButtonItemStylePlain target:nil action:NULL] ]; + self.popupItem.leftBarButtonItems = @[ play ]; + self.popupItem.rightBarButtonItems = @[ more ]; } } @@ -192,6 +203,12 @@ - (IBAction)_presentBar:(id)sender demoVC.popupItem.subtitle = [LoremIpsum sentence]; demoVC.popupItem.progress = (float) arc4random() / UINT32_MAX; + demoVC.popupItem.accessibilityLabel = NSLocalizedString(@"Custom popup bar accessibility label", @""); + demoVC.popupItem.accessibilityHint = NSLocalizedString(@"Custom popup bar accessibility hint", @""); + + targetVC.popupContentView.popupCloseButton.accessibilityLabel = NSLocalizedString(@"Custom popup button accessibility label", @""); + targetVC.popupContentView.popupCloseButton.accessibilityHint = NSLocalizedString(@"Custom popup button accessibility hint", @""); + [targetVC presentPopupBarWithContentViewController:demoVC animated:YES completion:nil]; } diff --git a/README.md b/README.md index f4530eae..3b5b0dbf 100644 --- a/README.md +++ b/README.md @@ -161,9 +161,44 @@ Customization can be achieved through the ```LNPopupBar``` and ```LNPopupContent **Note:** Be careful with modifying the popup interaction gesture recognizer. It is shared for interactively opening the popup by panning the popup bar (when it is closed), or interactively closing the popup interactively by panning the popup content view (when the popup is open). If you disable the gesture recognizer after opening the popup, you must monitor the state of the popup and reenable the gesture recognizer once closed by the user or through code. +###Accessibility + +The framework supports accessibility and will honor accessibility labels, hints and values. By default, the accessibility label of the popup bar is the title and subtitle provided by the popup item. + + + +To modify the accessibility label and hint of the popup bar, set the `accessibilityLabel` and `accessibilityHint` properties of the `LNPopupItem` object of the popup content view controller. + +```objc +demoVC.popupItem.accessibilityLabel = NSLocalizedString(@"Custom popup bar accessibility label", @""); +demoVC.popupItem.accessibilityHint = NSLocalizedString(@"Custom popup bar accessibility hint", @""); +``` + +To add accessibility labels and hints to buttons, set the `accessibilityLabel` and `accessibilityHint` properties of the `UIBarButtonItem` objects. + +```objc +UIBarButtonItem* upNext = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"next"] style:UIBarButtonItemStylePlain target:nil action:NULL]; +upNext.accessibilityLabel = NSLocalizedString(@"Up Next", @""); +upNext.accessibilityHint = NSLocalizedString(@"Double Tap to Show Up Next List", @""); +``` +To modify the accessibility label and hint of the popup close button, set the `accessibilityLabel` and `accessibilityHint` properties of the `LNPopupCloseButton` object of the popup container view controller. + +```objc +targetVC.popupContentView.popupCloseButton.accessibilityLabel = NSLocalizedString(@"Custom popup button accessibility label", @""); +targetVC.popupContentView.popupCloseButton.accessibilityHint = NSLocalizedString(@"Custom popup button accessibility hint", @""); +``` + +To modify the accessibility label and value of the popup bar progress view, set the `accessibilityProgressLabel` and `accessibilityProgressValue` properties of the `LNPopupItem` object of the popup content view controller. + +```swift +demoVC.popupItem.accessibilityProgressLabel = NSLocalizedString("Custom accessibility progress label", comment: "") +demoVC.popupItem.accessibilityProgressValue = "\(accessibilityDateComponentsFormatter.stringFromTimeInterval(NSTimeInterval(popupItem.progress) * totalTime)!) \(NSLocalizedString("of", comment: "")) \(accessibilityDateComponentsFormatter.stringFromTimeInterval(totalTime)!)" +``` + ##Known Limitations -* Navigation controller's `setToolbarHidden:` and `setToolbarHidden:animated:` are not supported +* Navigation controller's `setToolbarHidden:` and `setToolbarHidden:animated:` are not supported. +* Hidden tab bars are not supported by the framework, nor by Apple. **Do not hide the tab bar using `.hidden = YES`!** ##Acknowledgements diff --git a/Supplements/default_bar_accessibility_label.png b/Supplements/default_bar_accessibility_label.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc8e338b49746cf823b754212e31b3474225c96 GIT binary patch literal 91009 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 literal 0 HcmV?d00001