当前位置: 首页 > 知识库问答 >
问题:

可访问性:什么可以使用aria-haspopup?

闾丘文昌
2023-03-14

我有充分的证据表明,aria haspoop适用于子菜单(如弹出式上下文菜单或子级菜单)。它用于jQueryUISelectMenu,也用于这个伟大的示例。

我无法确定的是,aria haspoop是否适用于以下两个示例:

  • 信息性弹出窗口,如引导窗口-用于上下文信息,但不包含任何链接

aria是否适合这些情况?如果没有,是否应该使用ARIA属性?


共有2个答案

令狐高洁
2023-03-14

与1.0规范相比,WAI-ARIA 1.1规范(在编写本文时是当前规范)扩展了ARIA haspopup的使用:

[aria-haspopup]指示可由元素触发的交互式弹出元素(如菜单或对话框)的可用性和类型。

弹出元素通常显示为位于其他内容之上的内容块。作者必须确保作为弹出内容容器的元素的角色是菜单列表框网格对话框,并且aria-haspopup匹配弹出容器的角色。

因此,您应该将aria haspoop的值设置为与触发元素上的role属性相同的值。如果设置为true,它将被解释为菜单,以与1.0规范保持一致,其中aria haspoop仅用于菜单。

但是,请注意有关工具提示(如引导弹出窗口)的这一点:

在此上下文中,工具提示不被视为弹出窗口。

弹出式浏览器窗口不是页面上的超文本标记语言元素,因此具有Target="_blank"的锚元素不应具有ari-haspopup属性。

林炫明
2023-03-14

从ARIA规范1.0中,它只能用于菜单或子菜单:

指示元素具有弹出上下文菜单或子级别菜单。

WhatStock风格指南在“modals”一节中介绍了这一点:

通过向触发元素添加属性aria-haspopup="true"来通知屏幕阅读器用户弹出窗口是一个好主意,但这不是一个好主意。...简而言之,不要使用aria-haspopup,除非你触发了一个菜单。

关于在将来的修订中扩展其含义,有一些讨论,但目前假设它是针对菜单的。

我给出了一个关于Bootstrap工具提示的答案,这应该会有所帮助。

对于弹出式浏览器窗口,这些都是由屏幕阅读器宣布的,不需要额外的标记。(注:它有助于为屏幕放大镜用户提供新窗口的视觉指示器。)

 类似资料:
  • Jquery Mobile 是基于标准的,系统化的html构建的,使得页面能够在最广范围的设备上得到支持。对于A级的浏览器,许多Jquery Mobile组件,比"焦点管理","键盘导航"等都能支持,其他可以详细参加W3C的WAI-ARIA说明. 通过运用这些技术,我致力于使得通过Jquery Mobile开发的web产品拥有最好的可访问性,对于伤残人士,例如盲人,也可以用读屏软件,例如iphon

  • 本文向大家介绍react中可以在render访问refs吗?为什么?相关面试题,主要包含被问及react中可以在render访问refs吗?为什么?时的应答技巧和注意事项,需要的朋友参考一下 不可以,render 阶段 DOM 还没有生成,无法获取 DOM。DOM 的获取需要在 pre-commit 阶段和 commit 阶段

  • 问题内容: 与我的其他问题略相关:以下内容之间有什么区别: 同样,最后2个之间的差异是我最感兴趣的。 问题答案: 任何包中的类都可以访问公共类。 具有默认访问权限()的类仅对同一包中的其他类可见。 private和protected修饰符只能应用于内部类。 私有类仅对其封闭类以及同一封闭类中的其他内部类可见。 受保护的类对于同一包中的其他类以及扩展该封闭类的类都是可见的。

  • 我正在实现一个,用户可以在其中向左滑动以从列表中删除项目。 我希望我的应用程序是可访问的,我想知道是否有可能在对讲中以某种方式向用户宣布他需要刷卡,同时我也想知道我是否能捕捉到这个刷卡手势。 先谢谢你, 佩德罗

  • 问题内容: 传统观点认为,您只能抛出在Java 中扩展的对象,但是是否可以禁用字节码验证程序并让Java编译并运行抛出任意对象(甚至是原语)的代码? 我查找了JVM ,它将弹出操作数堆栈中的第一个objref。但是会检查所述引用是否指向运行时? 问题答案: 这取决于您的JVM实现。根据Java VM规范,如果对象不是,则它是未定义的行为。 objectref 必须 是引用类型,并且必须引用Thro

  • 为什么用域名可以访问,用ipv6地址就报403? 域名:https://note.youdao.com/web ipv6地址:https://[2408:8719:64:a9:3::3ee]/web 内网屏蔽与域名,所以我想用ip访问,除此之外还有什么方法