操作中单选按钮的可访问标签是什么?

5
TableViewCell中,我有一个自定义的图片视图作为单选按钮。这个图片视图有两个状态:
  1. 已选择
  2. 未选择

enter image description here

默认情况下,我将无障碍标签设为“已选择复选框”和“复选框”。现在我想在选择时说出“新项目已选择”,并在取消选择时说出“项目已取消选择”。
我们可以给所有四个标签吗?我该如何做到这一点。
更新:我尝试使用
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification,@"text")

但是它会跳过需要朗读的文本。

1
嗨,Sandy。根据我对你的帖子所做的一些编辑,没有必要添加“任何帮助”、“请帮助我”等。读者知道你需要帮助,对于以英语为母语的人来说,这种附加可能会被视为乞求和恳求的形式,反过来可能会吸引负评。我们喜欢简洁明了! - halfer
@Sandy:针对你的问题,这里有一个解决方案= https://stackoverflow.com/a/53667678/3825084 - XLE_22
3个回答

5

我不太确定你正在尝试做什么,但我将尝试提供一种使其更易访问的替代方法。

与其将每个单选按钮视为已选择或取消选择,不如将整个单选按钮组作为一个合并的可访问元素。

因此,如果您有单选按钮用于[猫,狗,兔子,豚鼠]。那么您的可访问性应该读取类似于...

动物选择组:未选择任何内容

动物选择组:已选择兔子

等等...

话虽如此...你尝试创建的是什么UI呢?

单选按钮从根本上不属于iOS的一部分。使用用户知道的UI将是更好的选择。这样一来,您的可访问性问题就不存在了。

也许,UIPickerViewUITableView可能是单选按钮的更好替代品?


根据更新的图像,现在事情应该更清楚了。我已经为复选框提供了accessibilityLabel。但是除此之外,当用户点击选择或取消选择时,我希望Voiceover能够朗读“string”。这样做可能吗?是否正确的方法? - Sanoj Kashyap
@Sandy 在 iOS 中完成这种类型的选择的标准方式是提供一个放置数据的位置。您点击它,然后会出现一个表格视图。然后当您点击表格视图时,它会被关闭并且数据会填充到之前的屏幕中。进入联系人并向其添加电话号码。然后更改电话号码的类型。它会弹出一个表格,您可以在其中选择类型。 - Fogmeister
我同意你的观点。但是我所拥有的就是我需要实现的。如果你能回答我的具体问题,那对我会非常有帮助。 - Sanoj Kashyap
你的更新并没有改变我的初始答案。将整个组视为可访问性组,而不是将每个单选按钮视为单独的事物。 - Fogmeister
让我们在聊天中继续这个讨论 - Sanoj Kashyap
显示剩余2条评论

0

我不确定你想做什么。

我的假设:您想要在单元格上的按钮点击时生成声音,并在同时检查其状态(选中或未选中)的情况下更改Imageview的图像。

***** 在您的customTableViewCell类中完成...

  • 在.h或.m中为customtableviewcell xib中的3个项目创建IBOutlets。
  • 创建布尔标志以维护该单元格的当前状态(已选择或未选择)。

  • 创建IBaction选择器(方法),以获取按钮单击的事件(touch up inside)。 在此方法内编写以下代码。

BOOL selectState; //将其作为类文件中的全局变量

if(selectState) // selected state YES

{
        xyzImgView.image = //Your Non selection Image;
        selectState = !selectState;

        //Play your sound for Non selection

}
    else // selected state NO
    {
        xyzImgView.image = //Your selection Image;

        selectState = !selectState;

        //Play your sound for selection

    }

0
// 假设您有一个指向checkBoxButton的IBOutlet
checkBoxButton.accessibilityLabel = checkBoxButton.isSelected ? "已选择" : "未选择"; checkBoxButton.accessibilityHint = checkBoxButton.isSelected ? "" : "点击以选择";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接