From 1730ffb0ccdb3a08719fd62e37b5f661631a90ac Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sat, 27 Apr 2019 10:27:36 -0500 Subject: [PATCH] Add accessibility labels to bar button image items. --- NetNewsWire.xcodeproj/project.pbxproj | 6 ++- iOS/Base.lproj/Main.storyboard | 33 +++++++++++++ .../UIBarButtonItem-Extensions.swift | 46 +++++++++++++++++++ 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 iOS/Extensions/UIBarButtonItem-Extensions.swift diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 0f4c0b386..955a12bb0 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -116,6 +116,7 @@ 51F85BF32272531500C787DC /* Dedication.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 51F85BF22272531500C787DC /* Dedication.rtf */; }; 51F85BF52273625800C787DC /* Bundle-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51F85BF42273625800C787DC /* Bundle-Extensions.swift */; }; 51F85BF722749FA100C787DC /* UIFont-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51F85BF622749FA100C787DC /* UIFont-Extensions.swift */; }; + 51F85BF92274AA7B00C787DC /* UIBarButtonItem-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51F85BF82274AA7B00C787DC /* UIBarButtonItem-Extensions.swift */; }; 6581C73820CED60100F4AD34 /* SafariExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6581C73720CED60100F4AD34 /* SafariExtensionHandler.swift */; }; 6581C73A20CED60100F4AD34 /* SafariExtensionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6581C73920CED60100F4AD34 /* SafariExtensionViewController.swift */; }; 6581C73D20CED60100F4AD34 /* SafariExtensionViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6581C73B20CED60100F4AD34 /* SafariExtensionViewController.xib */; }; @@ -670,6 +671,7 @@ 51F85BF22272531500C787DC /* Dedication.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Dedication.rtf; sourceTree = ""; }; 51F85BF42273625800C787DC /* Bundle-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle-Extensions.swift"; sourceTree = ""; }; 51F85BF622749FA100C787DC /* UIFont-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIFont-Extensions.swift"; sourceTree = ""; }; + 51F85BF82274AA7B00C787DC /* UIBarButtonItem-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIBarButtonItem-Extensions.swift"; sourceTree = ""; }; 6581C73320CED60000F4AD34 /* Subscribe to Feed.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Subscribe to Feed.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 6581C73420CED60100F4AD34 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 6581C73720CED60100F4AD34 /* SafariExtensionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariExtensionHandler.swift; sourceTree = ""; }; @@ -974,10 +976,11 @@ 5183CCD9226E31A50010922C /* NonIntrinsicImageView.swift */, 5183CCCF226E1E880010922C /* NonIntrinsicLabel.swift */, 51C45250226506F400C03939 /* String-Extensions.swift */, + 51F85BF82274AA7B00C787DC /* UIBarButtonItem-Extensions.swift */, + 51F85BF622749FA100C787DC /* UIFont-Extensions.swift */, 51C4524F226506F400C03939 /* UIImage-Extensions.swift */, 51C4524E226506F400C03939 /* UIStoryboard-Extensions.swift */, 512E092B2268B25500BDCFDD /* UISplitViewController-Extensions.swift */, - 51F85BF622749FA100C787DC /* UIFont-Extensions.swift */, ); path = Extensions; sourceTree = ""; @@ -2223,6 +2226,7 @@ 51C452A422650A2D00C03939 /* ArticleUtilities.swift in Sources */, 5183CCDA226E31A50010922C /* NonIntrinsicImageView.swift in Sources */, 51C4527B2265091600C03939 /* MasterUnreadIndicatorView.swift in Sources */, + 51F85BF92274AA7B00C787DC /* UIBarButtonItem-Extensions.swift in Sources */, 51C45296226509D300C03939 /* OPMLExporter.swift in Sources */, 51C4525B226508DA00C03939 /* UIImage-Extensions.swift in Sources */, 84F3EE1720DEC97E003FADEB /* FeedFinder.swift in Sources */, diff --git a/iOS/Base.lproj/Main.storyboard b/iOS/Base.lproj/Main.storyboard index 80af1fabf..e6fee2d3b 100644 --- a/iOS/Base.lproj/Main.storyboard +++ b/iOS/Base.lproj/Main.storyboard @@ -58,42 +58,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -232,6 +258,9 @@ + + + @@ -239,6 +268,10 @@ + + + + diff --git a/iOS/Extensions/UIBarButtonItem-Extensions.swift b/iOS/Extensions/UIBarButtonItem-Extensions.swift new file mode 100644 index 000000000..51659a461 --- /dev/null +++ b/iOS/Extensions/UIBarButtonItem-Extensions.swift @@ -0,0 +1,46 @@ +// +// UIBarButtonItem-Extensions.swift +// NetNewsWire-iOS +// +// Created by Maurice Parker on 4/27/19. +// Copyright © 2019 Ranchero Software. All rights reserved. +// + +import UIKit + +public extension UIBarButtonItem { + + @IBInspectable var accEnabled: Bool { + get { + return isAccessibilityElement + } + set { + isAccessibilityElement = newValue + } + } + + @IBInspectable var accLabelText: String? { + get { + return accessibilityLabel + } + set { + accessibilityLabel = newValue + } + } + + var isHidden: Bool { + get { + return tintColor == UIColor.clear + } + set(hide) { + if hide { + isEnabled = false + tintColor = UIColor.clear + } else { + isEnabled = true + tintColor = nil + } + } + } + +}