adding accessibility ids and label to extract session id and recovery phrase and adding ids for message requests workflow

pull/713/head
Emily 2 years ago
parent 1ff5a69f50
commit 2159ec149e

@ -195,6 +195,7 @@ final class ConversationVC: BaseVC, ConversationSearchControllerDelegate, UITabl
messageLabelAccessibilityLabel: "Blocked banner text"
)
result.accessibilityLabel = "Blocked banner"
result.isAccessibilityElement = true
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(unblock))
result.addGestureRecognizer(tapGestureRecognizer)
@ -243,6 +244,7 @@ final class ConversationVC: BaseVC, ConversationSearchControllerDelegate, UITabl
private lazy var messageRequestAcceptButton: UIButton = {
let result: SessionButton = SessionButton(style: .bordered, size: .medium)
result.accessibilityLabel = "Accept message request"
result.isAccessibilityElement = true
result.translatesAutoresizingMaskIntoConstraints = false
result.setTitle("TXT_DELETE_ACCEPT".localized(), for: .normal)
result.addTarget(self, action: #selector(acceptMessageRequest), for: .touchUpInside)
@ -253,6 +255,7 @@ final class ConversationVC: BaseVC, ConversationSearchControllerDelegate, UITabl
private lazy var messageRequestDeleteButton: UIButton = {
let result: SessionButton = SessionButton(style: .destructive, size: .medium)
result.accessibilityLabel = "Decline message request"
result.isAccessibilityElement = true
result.translatesAutoresizingMaskIntoConstraints = false
result.setTitle("TXT_DECLINE_TITLE".localized(), for: .normal)
result.addTarget(self, action: #selector(deleteMessageRequest), for: .touchUpInside)

@ -53,6 +53,7 @@ final class InputView: UIView, InputViewButtonDelegate, InputTextViewDelegate, M
private lazy var attachmentsButton: ExpandingAttachmentsButton = {
let result = ExpandingAttachmentsButton(delegate: delegate)
result.accessibilityLabel = "Attachments button"
result.isAccessibilityElement = true
return result
}()
@ -60,6 +61,7 @@ final class InputView: UIView, InputViewButtonDelegate, InputTextViewDelegate, M
private lazy var voiceMessageButton: InputViewButton = {
let result = InputViewButton(icon: #imageLiteral(resourceName: "Microphone"), delegate: self)
result.accessibilityLabel = "New voice message"
result.isAccessibilityElement = true
return result
}()
@ -68,6 +70,7 @@ final class InputView: UIView, InputViewButtonDelegate, InputTextViewDelegate, M
let result = InputViewButton(icon: #imageLiteral(resourceName: "ArrowUp"), isSendButton: true, delegate: self)
result.isHidden = true
result.accessibilityLabel = "Send message button"
result.isAccessibilityElement = true
return result
}()
@ -83,6 +86,7 @@ final class InputView: UIView, InputViewButtonDelegate, InputTextViewDelegate, M
private lazy var mentionsViewContainer: UIView = {
let result: UIView = UIView()
result.accessibilityLabel = "Mentions list"
result.isAccessibilityElement = true
result.alpha = 0
let backgroundView = UIView()
@ -114,6 +118,7 @@ final class InputView: UIView, InputViewButtonDelegate, InputTextViewDelegate, M
let maxWidth = UIScreen.main.bounds.width - 2 * InputViewButton.expandedSize - 2 * Values.smallSpacing - 2 * (Values.mediumSpacing - adjustment)
let result = InputTextView(delegate: self, maxWidth: maxWidth)
result.accessibilityLabel = "Message input box"
result.isAccessibilityElement = true
return result
}()

@ -109,6 +109,7 @@ final class HomeVC: BaseVC, UITableViewDataSource, UITableViewDelegate, SeedRemi
let button = UIButton()
button.accessibilityLabel = "New conversation button"
button.isAccessibilityElement = true
button.clipsToBounds = true
button.setImage(
UIImage(named: "Plus")?
@ -466,6 +467,7 @@ final class HomeVC: BaseVC, UITableViewDataSource, UITableViewDelegate, SeedRemi
let profilePictureSize = Values.verySmallProfilePictureSize
let profilePictureView = ProfilePictureView()
profilePictureView.accessibilityLabel = "User settings"
profilePictureView.isAccessibilityElement = true
profilePictureView.size = profilePictureSize
profilePictureView.update(
publicKey: getUserHexEncodedPublicKey(),
@ -521,6 +523,8 @@ final class HomeVC: BaseVC, UITableViewDataSource, UITableViewDelegate, SeedRemi
case .messageRequests:
let threadViewModel: SessionThreadViewModel = section.elements[indexPath.row]
let cell: MessageRequestsCell = tableView.dequeue(type: MessageRequestsCell.self, for: indexPath)
cell.accessibilityIdentifier = "Message requests banner"
cell.isAccessibilityElement = true
cell.update(with: Int(threadViewModel.threadUnreadCount ?? 0))
return cell

@ -311,6 +311,8 @@ class MessageRequestsViewController: BaseVC, UITableViewDelegate, UITableViewDat
case .threads:
let threadViewModel: SessionThreadViewModel = section.elements[indexPath.row]
let cell: FullConversationCell = tableView.dequeue(type: FullConversationCell.self, for: indexPath)
cell.accessibilityIdentifier = "Message request"
cell.isAccessibilityElement = true
cell.update(with: threadViewModel)
return cell

@ -16,7 +16,8 @@ final class NewConversationVC: BaseVC, ThemedNavigation, UITableViewDelegate, UI
private lazy var newDMButton: NewConversationButton = {
let result = NewConversationButton(icon: #imageLiteral(resourceName: "Message"), title: "vc_create_private_chat_title".localized())
result.accessibilityLabel = "New direct message"
result.accessibilityIdentifier = "New direct message"
result.isAccessibilityElement = true
return result
}()
@ -24,6 +25,7 @@ final class NewConversationVC: BaseVC, ThemedNavigation, UITableViewDelegate, UI
private lazy var newGroupButton: NewConversationButton = {
let result = NewConversationButton(icon: #imageLiteral(resourceName: "Group"), title: "vc_create_closed_group_title".localized())
result.accessibilityLabel = "Create group"
result.isAccessibilityElement = true
return result
}()

@ -382,13 +382,15 @@ private final class EnterPublicKeyVC: UIViewController {
)
result.alpha = (isKeyboardShowing ? 1 : 0)
result.isHidden = !isKeyboardShowing
result.accessibilityLabel = "Next"
result.isAccessibilityElement = true
return result
}()
private lazy var nextButton: SessionButton = {
let result = SessionButton(style: .bordered, size: .large)
result.accessibilityLabel = "Next"
result.isAccessibilityElement = true
result.setTitle("next".localized(), for: .normal)
result.isEnabled = false
result.addTarget(self, action: #selector(startNewDMIfPossible), for: .touchUpInside)

@ -16,6 +16,7 @@ final class DisplayNameVC: BaseVC {
private lazy var displayNameTextField: TextField = {
let result = TextField(placeholder: "vc_display_name_text_field_hint".localized())
result.accessibilityLabel = "Enter display name"
result.isAccessibilityElement = true
result.themeBorderColor = .textPrimary
return result

@ -18,6 +18,7 @@ final class RegisterVC : BaseVC {
result.font = Fonts.spaceMono(ofSize: isIPhone5OrSmaller ? Values.mediumFontSize : 20)
result.themeTextColor = .textPrimary
result.accessibilityLabel = "Session ID"
result.isAccessibilityElement = true
result.lineBreakMode = .byCharWrapping
result.numberOfLines = 0
@ -26,6 +27,8 @@ final class RegisterVC : BaseVC {
private lazy var copyPublicKeyButton: SessionButton = {
let result = SessionButton(style: .bordered, size: .large)
result.accessibilityLabel = "Copy"
result.isAccessibilityElement = true
result.setTitle("copy".localized(), for: .normal)
result.addTarget(self, action: #selector(copyPublicKey), for: .touchUpInside)
@ -168,6 +171,8 @@ final class RegisterVC : BaseVC {
private func updatePublicKeyLabel() {
let hexEncodedPublicKey = x25519KeyPair.hexEncodedPublicKey
publicKeyLabel.accessibilityLabel = hexEncodedPublicKey
publicKeyLabel.accessibilityIdentifier = "Session ID generated"
let characterCount = hexEncodedPublicKey.count
var count = 0
let limit = 32
@ -203,6 +208,8 @@ final class RegisterVC : BaseVC {
@objc private func copyPublicKey() {
UIPasteboard.general.string = x25519KeyPair.hexEncodedPublicKey
copyPublicKeyButton.isUserInteractionEnabled = false
copyPublicKeyButton.accessibilityLabel = "Copy session id"
copyPublicKeyButton.isAccessibilityElement = true
UIView.transition(with: copyPublicKeyButton, duration: 0.25, options: .transitionCrossDissolve, animations: {
self.copyPublicKeyButton.setTitle("copied".localized(), for: .normal)
}, completion: nil)

@ -83,6 +83,7 @@ final class SeedReminderView: UIView {
// Set up button
let button = SessionButton(style: .bordered, size: .small)
button.accessibilityLabel = "Continue"
button.isAccessibilityElement = true
button.setTitle("continue_2".localized(), for: UIControl.State.normal)
button.set(.width, to: 96)
button.addTarget(self, action: #selector(handleContinueButtonTapped), for: UIControl.Event.touchUpInside)

@ -46,7 +46,9 @@ final class SeedVC: BaseVC {
private lazy var mnemonicLabel: UILabel = {
let result = UILabel()
result.accessibilityLabel = "Recovery Phrase"
result.accessibilityIdentifier = "Recovery Phrase"
result.accessibilityLabel = mnemonic
result.isAccessibilityElement = true
result.font = Fonts.spaceMono(ofSize: Values.mediumFontSize)
result.themeTextColor = .primary
result.textAlignment = .center
@ -74,6 +76,7 @@ final class SeedVC: BaseVC {
// Set up navigation bar buttons
let closeButton = UIBarButtonItem(image: #imageLiteral(resourceName: "X"), style: .plain, target: self, action: #selector(close))
closeButton.accessibilityLabel = "Navigate up"
closeButton.isAccessibilityElement = true
closeButton.themeTintColor = .textPrimary
navigationItem.leftBarButtonItem = closeButton

@ -214,6 +214,7 @@ class SettingsViewModel: SessionTableViewModel<SettingsViewModel.NavButton, Sett
run: { [weak self] button in
self?.copySessionId(profile.id, button: button)
}
),
SessionCell.Accessory.ThreadInfoStyle.Action(
title: "share".localized(),
@ -494,6 +495,8 @@ class SettingsViewModel: SessionTableViewModel<SettingsViewModel.NavButton, Sett
DispatchQueue.main.async {
button.isUserInteractionEnabled = false
UIView.transition(
with: button,
duration: 0.25,

@ -53,6 +53,7 @@ class SessionAvatarCell: UITableViewCell {
fileprivate let profilePictureView: ProfilePictureView = {
let view: ProfilePictureView = ProfilePictureView()
view.accessibilityLabel = "Profile picture"
view.isAccessibilityElement = true
view.translatesAutoresizingMaskIntoConstraints = false
view.size = Values.largeProfilePictureSize
@ -71,6 +72,7 @@ class SessionAvatarCell: UITableViewCell {
private lazy var displayNameLabel: UILabel = {
let label: UILabel = UILabel()
label.accessibilityLabel = "Username"
label.isAccessibilityElement = true
label.translatesAutoresizingMaskIntoConstraints = false
label.font = .ows_mediumFont(withSize: Values.veryLargeFontSize)
label.themeTextColor = .textPrimary

Loading…
Cancel
Save