chromium/third_party/blink/web_tests/accessibility/menu-list-popup-reuses-objects.html

<!DOCTYPE HTML>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>

<select id="menulist">
  <option id="item0">Alicia</option>
  <option id="item1">Peter</option>
  <option id="item2">Kalinda</option>
</select>

<script>
async_test((t) => {
    var menulist = document.getElementById("menulist");
    menulist.selectedIndex = 0;

    var axMenuList = accessibilityController.accessibleElementById("menulist");
    var axMenuListPopup = axMenuList.childAtIndex(0);
    assert_equals(axMenuListPopup.role, "AXRole: AXMenuListPopup");
    var axMenuListOption = axMenuListPopup.childAtIndex(0);
    assert_equals(axMenuListOption.role, "AXRole: AXMenuListOption");

    accessibilityController.addNotificationListener(
        t.step_func(function(element, notification) {
            if (element.name != axMenuListOption.name)
                return;
            window.element = element;
            assert_equals(element.isEqual(axMenuListOption), true);
            assert_equals(element.parentElement(), axMenuListPopup);
            t.done();
        })
    );
    menulist.selectedIndex = 1;
}, "This test makes sure menu lists fire events on both the option that lost selection and the one that gained selection.");

</script>