【问题标题】:How can I set an initial .focus() on a node in a d3.js sunburst chart?如何在 d3.js 旭日形图中的节点上设置初始 .focus()?
【发布时间】:2016-05-10 15:23:40
【问题描述】:

我正在努力使this sunburst chart 可访问/508 兼容。有没有人知道我怎么能说,中心圆使用 .focus() 调用带有默认焦点?那样的话,每当用户与仅限于键盘导航的用户进行交互时,起点总是突出显示中心圆?

我对无障碍标准相当陌生。但我想要完成的是双边键盘导航。任何建议将不胜感激!

【问题讨论】:

    标签: javascript d3.js accessibility nvd3.js section508


    【解决方案1】:

    原则上,实现这一点的最简单方法是在根元素上设置一个 ID 并选择它(例如使用document.getElementById()),然后对其调用.focus()。

    当您使用 NVD3 之类的库时,它并没有真正为您提供那种灵活性,但特别是对于根元素,它仍然很容易使其工作。 sunburst 由一组path 元素组成,第一个元素代表根。所以你需要做的就是选择容器的第一个path子元素,获取DOM节点并调用.focus():

    d3.select(".nv-sunburst").select("path").node().focus();
    

    【讨论】:

    • 我对 NVD3 不熟悉,但 html 元素通常不会接受 focus() 调用,除非它们是表单元素或链接,或者将 tabindex 设置为 -1 或 0。例如,
      不会让您拥有 foo.focus() 除非您将
      更改为
    猜你喜欢
    • 2012-04-22
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多