accessibility label

This commit is contained in:
Pfeil, Scott Robert 2020-07-09 11:29:13 -04:00
parent f9a57f5fe5
commit 600d9a977e

View File

@ -76,6 +76,7 @@ open class Carousel: View {
open override func layoutSubviews() {
super.layoutSubviews()
// Accounts for any collection size changes
carouselAccessibilityElement?.accessibilityFrameInContainerSpace = collectionView.frame
DispatchQueue.main.async {
self.layoutCollection()
}
@ -144,7 +145,7 @@ open class Carousel: View {
super.set(with: model, delegateObject, additionalData)
guard let carouselModel = model as? CarouselModel else { return }
accessibilityLabel = carouselModel.accessibilityText
collectionView.backgroundColor = backgroundColor
collectionView.layer.borderColor = backgroundColor?.cgColor
collectionView.layer.borderWidth = (carouselModel.border ?? false) ? 1 : 0
@ -306,11 +307,7 @@ open class Carousel: View {
}
/// Accessibility element that allows for adjustable carousel.
private lazy var carouselAccessibilityElement: CarouselAccessibilityElement = {
let accessibilityElement = CarouselAccessibilityElement(accessibilityContainer: self)
accessibilityElement.accessibilityFrameInContainerSpace = collectionView.frame
return accessibilityElement
}()
private var carouselAccessibilityElement: CarouselAccessibilityElement?
private var _accessibilityElements: [Any]?
@ -325,6 +322,16 @@ open class Carousel: View {
guard _accessibilityElements == nil else {
return _accessibilityElements
}
// Create the accessibility helper if needed.
let carouselAccessibilityElement: CarouselAccessibilityElement
if let theCarouselAccessibilityElement = self.carouselAccessibilityElement {
carouselAccessibilityElement = theCarouselAccessibilityElement
} else {
carouselAccessibilityElement = CarouselAccessibilityElement(accessibilityContainer: self)
carouselAccessibilityElement.accessibilityFrameInContainerSpace = collectionView.frame
self.carouselAccessibilityElement = carouselAccessibilityElement
}
if let currentCell = collectionView.cellForItem(at: IndexPath(row: currentIndex, section: 0)) {
_accessibilityElements = [currentCell, carouselAccessibilityElement]