Merge branch 'develop' of https://gitlab.verizon.com/BPHV_MIPS/vds_ios.git into feature/tileletGroup

This commit is contained in:
Matt Bruce 2024-10-17 15:46:23 -05:00
commit 4484034b4c
6 changed files with 56 additions and 13 deletions

View File

@ -27,7 +27,6 @@ open class Table: View {
$0.allowsSelection = false $0.allowsSelection = false
$0.showsVerticalScrollIndicator = false $0.showsVerticalScrollIndicator = false
$0.showsHorizontalScrollIndicator = false $0.showsHorizontalScrollIndicator = false
$0.isAccessibilityElement = true
$0.backgroundColor = .clear $0.backgroundColor = .clear
} }
@ -148,6 +147,7 @@ extension Table: UICollectionViewDelegate, UICollectionViewDataSource, TableColl
var edgePadding = UIEdgeInsets(top: padding.verticalValue(), left: 0, bottom: padding.verticalValue(), right: padding.horizontalValue()) var edgePadding = UIEdgeInsets(top: padding.verticalValue(), left: 0, bottom: padding.verticalValue(), right: padding.horizontalValue())
edgePadding.left = (indexPath.row == 0 && !striped) ? VDSLayout.space1X : padding.horizontalValue() edgePadding.left = (indexPath.row == 0 && !striped) ? VDSLayout.space1X : padding.horizontalValue()
cell.updateCell(content: currentItem, surface: surface, striped: shouldStrip, padding: edgePadding, isHeader: isHeader) cell.updateCell(content: currentItem, surface: surface, striped: shouldStrip, padding: edgePadding, isHeader: isHeader)
setAccessibilityForCell(cell: cell, content: currentItem, path: indexPath)
return cell return cell
} }
@ -162,4 +162,38 @@ extension Table: UICollectionViewDelegate, UICollectionViewDataSource, TableColl
func collectionView(_ collectionView: UICollectionView, widthForItemAt indexPath: IndexPath) -> CGFloat { func collectionView(_ collectionView: UICollectionView, widthForItemAt indexPath: IndexPath) -> CGFloat {
return columnWidths?[indexPath.row] ?? 0.0 return columnWidths?[indexPath.row] ?? 0.0
} }
//--------------------------------------------------
// MARK: - Accessibility
//--------------------------------------------------
/// To set the accessibility label for the each cell based on the criteria. Table name along with total no of column & row information should be passed in the first cell's accessibility label.
private func setAccessibilityForCell(cell: TableCellItem, content: TableItemModel, path: IndexPath) {
var accLabel = content.component?.accessibilityLabel ?? "Empty"
///Set the type of header label
if path.section == 0 {
accLabel.append(", Column Header")
} else if path.row == 0 {
///As per design team, inspite of column 0 may not look like a header, it should be read as header.
accLabel.append(", Row Header")
}
///Set the Row/Column number for each cell
if path.row == 0 {
accLabel.append(", Row \(path.section + 1), Column \(path.row + 1)")
} else {
accLabel.append(", Column \(path.row + 1)")
}
///Set the Row header accessibilityLabel at the end of the non-header cells accessibilityLabel
if path.section != 0,
path.row != 0,
let columnHeaderAccLabel = tableHeader.first?.columns[path.row].component?.accessibilityLabel {
accLabel.append(", \(columnHeaderAccLabel)")
}
cell.accessibilityLabel = accLabel
}
} }

View File

@ -45,6 +45,7 @@ final class TableCellItem: UICollectionViewCell {
private func setupCell() { private func setupCell() {
contentView.backgroundColor = .clear contentView.backgroundColor = .clear
isAccessibilityElement = true
addSubview(containerView) addSubview(containerView)
containerView.pinToSuperView() containerView.pinToSuperView()

View File

@ -346,8 +346,15 @@ open class TileContainerBase<PaddingType: DefaultValuing & Valuing>: View where
containerView.setAccessibilityLabel(for: views) containerView.setAccessibilityLabel(for: views)
//append all children that are accessible //append all children that are accessible
items.append(contentsOf: elements) if containerView.isAccessibilityElement {
elements.forEach({ element in
if element.accessibilityTraits.contains(.button) || element.accessibilityTraits.contains(.link) {
items.append(element)
}
})
} else {
items.append(contentsOf: elements)
}
return items return items
} }
set {} set {}

View File

@ -104,7 +104,7 @@ open class Tilelet: TileContainerBase<Tilelet.Padding>, ParentViewProtocol {
} }
private var backgroundColorSurface: Surface { private var backgroundColorSurface: Surface {
backgroundColorConfiguration.getColor(self).surface backgroundColorConfiguration.getColor(self).isDark() ? .dark : .light
} }
//-------------------------------------------------- //--------------------------------------------------
@ -280,6 +280,7 @@ open class Tilelet: TileContainerBase<Tilelet.Padding>, ParentViewProtocol {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Constraints // MARK: - Constraints
//-------------------------------------------------- //--------------------------------------------------
internal var iconContainerHeightConstraint: NSLayoutConstraint?
internal var titleLockupWidthConstraint: NSLayoutConstraint? internal var titleLockupWidthConstraint: NSLayoutConstraint?
internal var titleLockupTrailingConstraint: NSLayoutConstraint? internal var titleLockupTrailingConstraint: NSLayoutConstraint?
internal var titleLockupTopConstraint: NSLayoutConstraint? internal var titleLockupTopConstraint: NSLayoutConstraint?
@ -328,15 +329,15 @@ open class Tilelet: TileContainerBase<Tilelet.Padding>, ParentViewProtocol {
iconContainerView.addSubview(descriptiveIcon) iconContainerView.addSubview(descriptiveIcon)
iconContainerView.addSubview(directionalIcon) iconContainerView.addSubview(directionalIcon)
iconContainerHeightConstraint = iconContainerView.height(constant: 0)
descriptiveIcon descriptiveIcon
.pinLeading() .pinLeading()
.pinTop() .pinTopGreaterThanOrEqualTo()
.pinBottom() .pinBottom()
directionalIcon directionalIcon
.pinTrailing() .pinTrailing()
.pinTop() .pinTopGreaterThanOrEqualTo()
.pinBottom() .pinBottom()
badge.bottomAnchor.constraint(equalTo: badge.label.bottomAnchor, constant: 2).activate() badge.bottomAnchor.constraint(equalTo: badge.label.bottomAnchor, constant: 2).activate()
@ -559,6 +560,7 @@ open class Tilelet: TileContainerBase<Tilelet.Padding>, ParentViewProtocol {
descriptiveIcon.color = color descriptiveIcon.color = color
} }
descriptiveIcon.size = descriptiveIconModel.size descriptiveIcon.size = descriptiveIconModel.size
iconContainerHeightConstraint?.constant = descriptiveIcon.size.dimensions.height
descriptiveIcon.surface = backgroundColorSurface descriptiveIcon.surface = backgroundColorSurface
showIconContainerView = true showIconContainerView = true
} }
@ -569,6 +571,7 @@ open class Tilelet: TileContainerBase<Tilelet.Padding>, ParentViewProtocol {
directionalIcon.color = color directionalIcon.color = color
} }
directionalIcon.size = directionalIconModel.size.value directionalIcon.size = directionalIconModel.size.value
iconContainerHeightConstraint?.constant = directionalIcon.size.dimensions.height
directionalIcon.surface = backgroundColorSurface directionalIcon.surface = backgroundColorSurface
showIconContainerView = true showIconContainerView = true
} }

View File

@ -187,10 +187,4 @@ extension UIColor {
guard let found else { return nil} guard let found else { return nil}
return found return found
} }
public var surface: Surface {
var greyScale: CGFloat = 0
getWhite(&greyScale, alpha: nil)
return greyScale < 0.5 ? .dark : .light
}
} }

View File

@ -1,3 +1,7 @@
1.0.75
----------------
- CXTDT-578885 - Table - Setting appropriate accessiblity label for each cell.
1.0.74 1.0.74
---------------- ----------------
- CXTDT-591307 - DatePicker - Accessibility - #1 & #2 - CXTDT-591307 - DatePicker - Accessibility - #1 & #2