我当前正在构建的网站几乎可以完全通过屏幕阅读器访问,但是在使用Internet Explorer 11的@IBOutlet var myLabelHidden: UILabel!
@IBOutlet var myLabelVisible: UILabel!
func getActualFontSize(_ forLabel: UILabel) -> CGFloat {
guard let labelText = forLabel.text else {
return 0.0
}
let labelContext = NSStringDrawingContext()
labelContext.minimumScaleFactor = forLabel.minimumScaleFactor
let attString = NSAttributedString(string: labelText, attributes: [NSAttributedStringKey.font: forLabel.font])
_ = attString.boundingRect(with: forLabel.frame.size,
options: [.usesFontLeading, .usesLineFragmentOrigin],
context: labelContext)
let actualFontSize = forLabel.font.pointSize * labelContext.actualScaleFactor
return actualFontSize
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
var fs = getActualFontSize(myLabelHidden)
// font sizing seems to be most accurate when
// rounded down to a single decimal place
fs = (fs * 10.0).rounded(.down) / 10.0
myLabelVisible.font = myLabelVisible.font.withSize(fs)
}
override func viewDidLoad() {
super.viewDidLoad()
myLabelHidden.text = "This should adjust the font size to fit."
myLabelVisible.text = myLabelHidden.text
myLabelHidden.isHidden = true
}
之一中,屏幕阅读器“ NVDA”读取的是“分组”,而不是内容。
div的tabindex为0,甚至是aria标签,但都将被完全忽略。
这是什么原因?
答案 0 :(得分:1)
有一些问题会导致这种情况发生。我能想到的主要方法是NVDA没有切换到正确的模式。当设置不正确或代码不是语义时,通常就是这种情况。但是,如果无法检查代码以提供更好的解决方案,这很难说。根据建议,检查设置,然后查看导航功能是否已关闭。
此外,请记住,并非所有屏幕阅读器的行为方式都相同,并且在许多情况下,开发人员都针对特定的浏览器。这是最佳使用的浏览器/屏幕阅读器兼容性的列表。
Mac:
Windows:
手机: