画外音不关注 UICollectionView
Voice Over not focusing on UICollectionView
我正在尝试为分页 UICollectionView
设置辅助功能,因此 VoiceOver 会说“[Cell 1 description],Page 1 of 5”,但 VoiceOver 专注于 UICollectionViewCell
本身,所以用户不知道这是分页。
奇怪的是三指滑动分页在无障碍模式下工作,只是默认不进入
有人知道如何告诉 Voice Over UICollectionView 是可访问性元素,而不是单元格吗?
let goalsArr: [String] = ["1", "2", "3", "4", "5"]
@IBOutlet weak var goalsCollectionView: UICollectionView!
func setup() {
goalsCollectionView.dataSource = self
goalsCollectionView.delegate = self
goalsCollectionView.isAccessibilityElement = true
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = goalsCollectionView.dequeueReusableCell(withReuseIdentifier: goalCellXib, for: indexPath) as? ASGoalCollectionViewCell else {
return UICollectionViewCell()
}
cell.lblText.text = goalsArray[indexPath.row]
cell.isAccessibilityElement = true
cell.accessibilityLabel = "cell " + goalsArray[indexPath.row]
return cell
}
已经尝试将单元格设置为 .isAccessibilityElement = false
,但 VoiceOver 完全跳过了 UICollectionView
。
实现目标的一种方法是:
- 将您的 collection 视图定义为
UIAccessibilityElement
子类。
- 将其特征设置为
.adjustable
以便 select 通过向右或向左滑动来选择不同的元素。
- 根据 selected 单元格调整标签和值。
- 定义 collection 视图 [accessibilityElements]。
这可能很乏味,但这正是 Apple 工程师推荐的⟹ complete and detailed example 在 WWDC session 中引入的,请不要犹豫,看看它以完美实现您的 collection 查看 VoiceOver。
我正在尝试为分页 UICollectionView
设置辅助功能,因此 VoiceOver 会说“[Cell 1 description],Page 1 of 5”,但 VoiceOver 专注于 UICollectionViewCell
本身,所以用户不知道这是分页。
奇怪的是三指滑动分页在无障碍模式下工作,只是默认不进入
有人知道如何告诉 Voice Over UICollectionView 是可访问性元素,而不是单元格吗?
let goalsArr: [String] = ["1", "2", "3", "4", "5"]
@IBOutlet weak var goalsCollectionView: UICollectionView!
func setup() {
goalsCollectionView.dataSource = self
goalsCollectionView.delegate = self
goalsCollectionView.isAccessibilityElement = true
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = goalsCollectionView.dequeueReusableCell(withReuseIdentifier: goalCellXib, for: indexPath) as? ASGoalCollectionViewCell else {
return UICollectionViewCell()
}
cell.lblText.text = goalsArray[indexPath.row]
cell.isAccessibilityElement = true
cell.accessibilityLabel = "cell " + goalsArray[indexPath.row]
return cell
}
已经尝试将单元格设置为 .isAccessibilityElement = false
,但 VoiceOver 完全跳过了 UICollectionView
。
实现目标的一种方法是:
- 将您的 collection 视图定义为
UIAccessibilityElement
子类。 - 将其特征设置为
.adjustable
以便 select 通过向右或向左滑动来选择不同的元素。 - 根据 selected 单元格调整标签和值。
- 定义 collection 视图 [accessibilityElements]。
这可能很乏味,但这正是 Apple 工程师推荐的⟹ complete and detailed example 在 WWDC session 中引入的,请不要犹豫,看看它以完美实现您的 collection 查看 VoiceOver。