分段控制:辅助功能长按字体颜色问题

Segmented Control: Accessibility Long Press Font Color Issue

我一直致力于一个 iOS 项目,该项目需要针对各种场景的可访问性,并且我 运行 遇到了以下问题。

当我们在无障碍字体大小时长按时,设置所选段的文本颜色会导致问题。由于常规 UI 中的文本为白色,深蓝色背景,当我们长按以获取弹出菜单(辅助功能大小的默认 iOS 选项)时,它会保留字体颜色,但会删除背景颜色。

我似乎无法找到一种方法来访问此弹出式菜单的字体颜色或背景颜色(无障碍文本大小)。

我搜索了其他问题,很难找到关于iOS这个特性的信息。

我正在这样设置我的字体颜色:

let titleTextAttributes: [NSAttributedString.Key : AnyObject] = [NSAttributedString.Key.foregroundColor: UIColor(named:"textWhite")!, NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 24)]

segCont.setTitleTextAttributes(titleTextAttributes, for: .selected)

我知道问题出在 NSAttributedString.Key.foregroundColor 属性上,就好像我将它从白色更改为深色文本颜色一样看起来很好。

为了清楚起见,我附上了问题的图片。 任何人都可以提供任何帮助或澄清,我们将不胜感激。

Segmented Control Accessibility Long press

最终的解决方案是在属性字符串中添加一个额外的 属性 backgroundColor。 它仍然不完美,但它清晰易读并且明显更好。

''' 让 titleTextAttributes: [NSAttributedString.Key : AnyObject] = [NSAttributedString.Key.foregroundColor: Theme.segContSelectedText!, NSAttributedString.Key.font: Theme.segContSelectedFont, NSAttributedString.Key.backgroundColor : Theme.segContSelectedTint!]

segCont.setTitleTextAttributes(titleTextAttributes, for: .selected) '''