Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设计一个可访问的谷歌地图信息窗口与自定义覆盖,从而管理相应的重点?_Javascript_Html_Google Maps Api 3_Wai Aria_Web Accessibility - Fatal编程技术网

Javascript 如何设计一个可访问的谷歌地图信息窗口与自定义覆盖,从而管理相应的重点?

Javascript 如何设计一个可访问的谷歌地图信息窗口与自定义覆盖,从而管理相应的重点?,javascript,html,google-maps-api-3,wai-aria,web-accessibility,Javascript,Html,Google Maps Api 3,Wai Aria,Web Accessibility,我目前正试图通过扩展GoogleMap的overlay view类()来创建一个更易访问的信息窗口版本。在我的web应用程序中,当用户单击侧边栏中显示的位置列表中的标记或项目时,将在相应标记的位置打开一个信息窗口,并显示有关所选位置的补充信息,其中可能包括从其他API检索的描述、图像、评级、提示等。在任何给定时间,最多只能打开一个信息窗口 我所困惑的是,使用哪个语义元素、角色属性或其他什么来描述信息窗口,以及如何相应地管理焦点?我目前的想法是: 使用role='dialog'属性,将信息窗口开发

我目前正试图通过扩展GoogleMap的overlay view类()来创建一个更易访问的信息窗口版本。在我的web应用程序中,当用户单击侧边栏中显示的位置列表中的标记或项目时,将在相应标记的位置打开一个信息窗口,并显示有关所选位置的补充信息,其中可能包括从其他API检索的描述、图像、评级、提示等。在任何给定时间,最多只能打开一个信息窗口

我所困惑的是,使用哪个语义元素、角色属性或其他什么来描述信息窗口,以及如何相应地管理焦点?我目前的想法是:

  • 使用
    role='dialog'
    属性,将信息窗口开发为一个窗口,以便仍然可以访问信息窗口之外的外部内容。在这种情况下,标记项和列表项可以具有属性
    aria haspopup='dialog'
    ,这将很好地提醒信息窗口的打开。这种方法的问题在于,它本质上是破坏性的,它不是信息窗口中显示的关键信息,也不是用户需要响应的信息
  • 使用
    。但这意味着焦点必须被困在信息窗口中,直到它关闭。在GoogleMap实际实现的信息窗口中,用户可以与页面上的任何其他内容进行交互,而无需关闭信息窗口,我认为改变默认行为是没有意义的。还有一些争论是关于是否可以在鼠标悬停/鼠标悬停事件之外触发工具提示,我希望信息窗口出现在单击事件或enter/space键事件上
  • 将信息窗口实现为“可折叠内容”,并将相关标记和列表项按钮实现为。通过这种方式,用户会收到以无中断方式出现的额外内容的警报,并且焦点不会被困在信息窗口中。尽管样式不会遵循,因为信息窗口的html不会在触发信息窗口打开的按钮的html之后立即显示
  • 哪些选项是合适的,或者是否有更好的方法更有意义

    根据选择的方法,焦点是否应被捕获在信息窗口中? 如果信息窗口已关闭,且焦点未被捕获在信息窗口内,则在使用单击事件或键盘快捷键关闭后,焦点应位于何处:

  • 打开信息窗口的按钮
  • 关闭信息窗口之前的最后一个焦点元素(前提是最后一个焦点元素在信息窗口之外)?但是如果最后一个焦点元素是信息窗口中的元素呢
  • body
    元素还是
    map
    元素

  • 此外,当焦点被打开时,它应该立即移动到信息窗口中,还是应该保持在触发它打开的按钮上?

    我知道这是旧的,但你有没有想过?我也在同一条船上。我遵循了谷歌的相同例子。我甚至不能用键盘键来集中注意力。想知道你在EndGet键盘输入焦点中做了什么,使用原生按钮元素而不是在div上尝试tabindex属性。仍然想知道对此的完整处理方法