【问题标题】:How can set UITableVewCell's accessibility traits to be 'link' only?如何将 UITableVewCell 的可访问性特征设置为仅“链接”?
【发布时间】:2020-10-21 01:28:59
【问题描述】:

我有一个UITableViewCell,它显示了一个变色指示器,但打开了另一个应用程序而不是推送视图控制器(例如“访问我们的网站”,在 Safari 中打开)。我对可访问性和画外音的有限理解使我相信这应该被标记为“链接”而不是“按钮”,因为用户将离开应用程序。为此,我将accessibilityTraits 设置为.link

但是,一旦我在单元格上设置了披露指示符,单元格就会被读取为“访问我们的网站 - 按钮、链接”。

有没有办法保留披露指示符但从单元格中删除 .button 特征?

【问题讨论】:

  • 您是否在 Object Inspector 中调试了 Trait 值,是否使用 将相关视图/单元格的特征设置为 .link 或两者都设置调试视图层次结构?
  • 我检查了辅助功能检查器,特征是 .link.button.staticText(尽管 .statictext 不会被读出给用户,所以这不是问题)。
  • 你能分享你的相关代码吗?

标签: ios accessibility voiceover


【解决方案1】:

有没有办法保留披露指示符但从单元格中删除 .button 特征?

实现目标的一种方法是创建一个UITableViewCell 子类,并将.link 值作为accessibilityTraits 属性。?

class testCell:UITableViewCell {

    override var accessibilityTraits: UIAccessibilityTraits {
        get { return .link }
        set {  }
    }
}

在您的视图控制器中指示这种新的单元格类型将仅读取其链接属性,如下所示:?

override func tableView(_ tableView: UITableView, 
                        cellForRowAt indexPath: IndexPath) -> testCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", 
                                             for: indexPath) as! testCell

    cell.textLabel?.text = "Visit our Website"
    return cell
}

根据这个原理,您可以将 UITableVewCell 的可访问性特征设置为仅“链接”。??

如果需要,有一个captivating website,其中提供了许多有关特征的信息,并带有插图和代码 sn-ps。?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2014-10-24
    • 2015-10-30
    • 2012-02-08
    • 1970-01-01
    相关资源
    最近更新 更多