【问题标题】:Blurring navigation links on click and web accessibility点击和网页可访问性上的导航链接模糊
【发布时间】:2016-10-12 04:25:26
【问题描述】:

我有一个关于网络可访问性的问题。 在SPA(单页应用)的情况下,点击模糊导航链接是否正确?

正确: 在 SPA 中通过 AJAX 替换内容与在传统网页中移动页面相同。换句话说,页面的上下文发生了变化,因此导航链接在被点击时应该是模糊的。

不当: 你知道原因。正如 W3C 和 WHATWG 所说,移除焦点环会给使用键盘导航和与交互式内容交互的用户带来严重的可访问性问题。

那么,你怎么看? 哪个合适?

另外,这与对焦环或视觉效果无关。我只关心“意义”。

【问题讨论】:

  • 而 GNB 链接是...?
  • 模糊在这里是什么意思?为什么/如何使链接模糊?

标签: html accessibility single-page-application w3c


【解决方案1】:

我不清楚您在这种情况下所说的模糊是什么意思,但在 SPA 键盘中,焦点管理是一项要求。

在点击时简单地对链接应用 on-blur 可能非常有害,因为屏幕阅读器可能会在选择链接时发送 onclick JS 事件。

对于视觉键盘用户和屏幕阅读器用户,当一个链接被选中并且 JS 更新内容时,焦点(如 JS .focus() )应该移动到新内容的顶部。该内容元素可能需要tabindex="-1" 才能使其具有焦点。

例如,如果您的主要内容区域在选择链接时更新为新内容,则在新内容加载后将焦点移至新内容的顶部。

如果您在单击时也遇到焦点轮廓问题,最好的选择是删除由于:focus 而更改轮廓的任何 CSS。请参阅我的文章 Fixing outlines on click 了解该内容和另一种选择。

另请参阅general issues for SPAs 的此答案。

【讨论】:

    【解决方案2】:

    这取决于上下文。

    • 如果您有一个“下一页”链接并且该链接停留在那里,您可以通过aria-live 区域通知用户主要内容已被修改。并且用户希望再次单击即可再次转到“下一页”,而无需向下滚动到同一链接。

    • 如果链接本身消失并且是旧内容的一部分,当然可以,如有必要,您可以this.blur() 它,就像页面正常更改一样。

    • 如果这是一个指向特定页面的导航链接,那么用户没有理由再次点击它,那么你可以诱导一个正常的页面变化和this.blur()这个链接。

    注意:我使用了 this.blur() 动词,因为“模糊”确实让我的思维变得模糊,但您可以使用任何 javascript 替代方法,例如关注页面的其他部分

    【讨论】:

    • 你确定使用 this.blur() 是个好主意吗?用户选择了一个链接,他们应该期望去某个地方。只是将用户从链接中引导出来,可能会导致登陆随机位置,或者页面的最顶部。你测试过这个吗?
    • @AlastairC 用户必须忽略点击背后的技术。如果从他的角度来看,点击导致页面更改,那么该技术可能会模拟页面更改所做的一切,例如从页面本身移除 focus()(并移至顶部)。点击页面底部的链接却看不到任何修改会非常令人不安(例如,使用屏幕放大镜可能仍会显示相同的选定链接,而不会提示该操作已被引导)
    • 没错,在链接的情况下,您不应该将焦点移到新的/更改的内容上吗? (如果它是一个按钮,那么页面上的其他内容会有所改变。)
    • @AlastairC 这取决于链接的性质和对链接本身的期望。应用程序应该像使用超链接的标准网页一样运行,以便可预测。当我们使用“页内”链接时,我们希望焦点发生变化,而如果我们单击标准链接,焦点应该回到默认值 (blur() 在大多数情况下,但您的应用程序可能会选择放置将注意力集中在页面加载上)。如果焦点没有移动,那么我们应该使用button (w3.org/TR/wai-aria/roles#link)。
    • 我四处询问,大多数人(具有可访问性的开发人员和屏幕阅读器用户)认为专注于新内容是最好的,但这确实取决于上下文:twitter.com/alastc/status/789117252343885829
    【解决方案3】:

    问题不清楚,所以我根据我的理解来回答;

    如果你想通知用户页面上的变化,你需要使用live regions等ARIA标签。使用css效果不会对屏幕阅读器产生影响。因此,您需要一种方法来通知屏幕阅读器页面的某些部分已更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 2013-02-21
      相关资源
      最近更新 更多