Merge pull request #918 from j-f1/user-search-a11y

IOS-77: Improve accessibility of account rows in search results/recent searches
This commit is contained in:
Marcus Kida 2023-02-07 09:49:14 +01:00 committed by GitHub
commit 5fc04dfc07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 2 deletions

View File

@ -51,9 +51,11 @@ extension SearchHistoryUserCollectionViewCell {
NSLayoutConstraint.activate([
userView.topAnchor.constraint(equalTo: contentView.topAnchor),
userView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
userView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: 16),
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
}
}