Make UserView accessible

This commit is contained in:
Jed Fox 2023-02-06 22:22:22 -05:00
parent d933f2d0cb
commit 21e4a81ca7
No known key found for this signature in database
GPG Key ID: 0B61D18EA54B47E1
4 changed files with 19 additions and 1 deletions

View File

@ -54,6 +54,8 @@ extension SearchHistoryUserCollectionViewCell {
contentView.trailingAnchor.constraint(equalTo: userView.trailingAnchor, constant: 16),
userView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor),
])
userView.accessibilityTraits.insert(.button)
}
override func updateConfiguration(using state: UICellConfigurationState) {

View File

@ -61,6 +61,8 @@ extension UserTableViewCell {
separatorLine.bottomAnchor.constraint(equalTo: contentView.bottomAnchor),
separatorLine.heightAnchor.constraint(equalToConstant: UIView.separatorLineHeight(of: contentView)).priority(.required - 1),
])
userView.accessibilityTraits.insert(.button)
}
}

View File

@ -52,15 +52,27 @@ extension UserView.ViewModel {
}
.store(in: &disposeBag)
// username
$authorUsername
let displayUsername = $authorUsername
.map { text -> String in
guard let text = text else { return "" }
return "@\(text)"
}
displayUsername
.sink { username in
let metaContent = PlaintextMetaContent(string: username)
userView.authorUsernameLabel.configure(content: metaContent)
}
.store(in: &disposeBag)
Publishers.CombineLatest($authorName, displayUsername)
.sink { name, username in
if let name {
userView.accessibilityLabel = "\(name.string), \(username)"
} else {
userView.accessibilityLabel = username
}
}
.store(in: &disposeBag)
}
}

View File

@ -90,6 +90,8 @@ extension UserView {
avatarButton.isUserInteractionEnabled = false
authorNameLabel.isUserInteractionEnabled = false
authorUsernameLabel.isUserInteractionEnabled = false
isAccessibilityElement = true
}
}