Testing aria-haspopup on elements/roles

Published: October 2, 2019

Note: checking API mappings, IA2 exposes an object attribute of haspopup and the correct value that's been set.

on button element

results

macOS with VoiceOver on Safari 12.1.1

All but "false" announce as "pop-up button" with no further indication of what they do.

JAWS

Chrome & Firefox: all but "false" announce as "button menu".

NVDA

Firefox: all but "false" announce as "button, submenu". "true" will anounce as "menu button, submenu".

Chrome: all but "false" announce as "menu button, submenu".

on a with href

results

macOS with VoiceOver on Safari 12.1.1

All but "false" announce as "menu pop-up link, AccName".

JAWS

Chrome & Firefox:

  • True: "has pop-up menu, link"
  • Listbox: "has pop-up listbox, link"
  • tree: "has pop-up tree, link"
  • grid: "has pop-up grid, link"
  • dialog: "has pop-up dialog, link"

NVDA

Chrome & Firefox: all but "false" announce as "submenu, link".

on role="textbox"

true
false
listbox
tree
grid
dialog
results

macOS with VoiceOver on Safari 12.1.1

All but "false" announce as "menu pop-up edit text".

JAWS

Chrome & Firefox: all but "false" announce as "has pop-up".

NVDA

Chrome & Firefox: all but "false" announce as "edit, submenu".

on role="tab"

true false listbox tree grid dialog
results

macOS with VoiceOver on Safari 12.1.1

The existence of aria-haspopup is not announced on any tab.

JAWS

Chrome & Firefox: all but "false" announce as "has pop-up".

NVDA

Chrome & Firefox: all but "false" announce as "tab, submenu".

on role="menuitem"

true
false
listbox
tree
grid
dialog
results

macOS with VoiceOver on Safari 12.1.1

All but "false" announce as "AccName, menu pop-up button", leaving "false" as the only "menu item".

JAWS

Chrome & Firefox: all but "false" announce as "submenu".

NVDA

Chrome & Firefox: all but "false" announce as "submenu".

on role="slider"

true
false
listbox
tree
grid
dialog
results

macOS with VoiceOver on Safari 12.1.1

The existence of aria-haspopup is not announced on any slider.

JAWS

Chrome & Firefox: all but "false" announce as "has pop-up".

NVDA

Chrome & Firefox: all but "false" announce as "slider, submenu".


"Used in roles" not yet tested: