Internet Explorer 11屏幕阅读器可访问性问题

时间:2018-12-06 14:42:22

标签: html internet-explorer-11 accessibility nvda

我当前正在构建的网站几乎可以完全通过屏幕阅读器访问,但是在使用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标签,但都将被完全忽略。

这是什么原因?

1 个答案:

答案 0 :(得分:1)

有一些问题会导致这种情况发生。我能想到的主要方法是NVDA没有切换到正确的模式。当设置不正确或代码不是语义时,通常就是这种情况。但是,如果无法检查代码以提供更好的解决方案,这很难说。根据建议,检查设置,然后查看导航功能是否已关闭。

此外,请记住,并非所有屏幕阅读器的行为方式都相同,并且在许多情况下,开发人员都针对特定的浏览器。这是最佳使用的浏览器/屏幕阅读器兼容性的列表。

Mac:

  • Safari和VoiceOver

Windows:

  • Firefox和NVDA
  • Chrome和NVDA(Chrome是我们的NVDA辅助浏览器; Firefox是主要浏览器)
  • IE和JAWS
  • Edge&Narrator

手机:

  • iOS:Safari和VoiceOver
  • Android:Chrome和“话语提示”(Firefox和“话语提示”是次要的)