Fix AXMenuListOption::GetRelativeBounds [chromium/src : main]

0 views
Skip to first unread message

Luis Sanchez Padilla (Gerrit)

unread,
Mar 14, 2023, 2:18:53 PM3/14/23
to abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, Nektarios Paisios

Attention is currently required from: Luis Sanchez Padilla.

Set Ready For Review

View Change

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 8
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Comment-Date: Tue, 14 Mar 2023 18:18:41 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    Gerrit-MessageType: comment

    Luis Sanchez Padilla (Gerrit)

    unread,
    Mar 14, 2023, 2:23:18 PM3/14/23
    to Nektarios Paisios, Ian Vollick, Mason Freed, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Sanket Joshi, Benjamin Beaudry

    Attention is currently required from: Ian Vollick, Mason Freed, Nektarios Paisios.

    Luis Sanchez Padilla would like Nektarios Paisios, Ian Vollick and Mason Freed to review this change.

    View Change

    Fix AXMenuListOption::GetRelativeBounds

    AXMenuListOption::GetRelativeBounds currently defaults to its owner select element's bounds, even when the select is expanded. This prevents accessibility tools to correctly represent the position of the option elements inside the popup menu. This change enables retrieving the right set of coordinates by caching them inside the corresponding AXMenuList when the popup's document is loaded.

    Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    ---
    A third_party/blink/manual_tests/forms/list-picker.html
    M third_party/blink/renderer/core/accessibility/ax_object_cache.h
    M third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
    M third_party/blink/renderer/core/html/forms/internal_popup_menu.h
    M third_party/blink/renderer/core/html/forms/resources/list_picker.js
    M third_party/blink/renderer/core/page/page_popup_client.h
    M third_party/blink/renderer/core/page/page_popup_controller.cc
    M third_party/blink/renderer/core/page/page_popup_controller.h
    M third_party/blink/renderer/core/page/page_popup_controller.idl
    M third_party/blink/renderer/modules/accessibility/ax_menu_list.h
    M third_party/blink/renderer/modules/accessibility/ax_menu_list_option.cc
    M third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
    M third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
    13 files changed, 280 insertions(+), 4 deletions(-)


    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 8
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-Reviewer: Nektarios Paisios <nek...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Mason Freed <mas...@chromium.org>
    Gerrit-MessageType: newchange

    Aaron Leventhal (Gerrit)

    unread,
    Mar 14, 2023, 3:14:57 PM3/14/23
    to Nektarios Paisios, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Luis Sanchez Padilla, Ian Vollick, Mason Freed

    Attention is currently required from: Ian Vollick, Luis Sanchez Padilla, Mason Freed.

    Aaron Leventhal removed Nektarios Paisios from this change.

    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Mason Freed <mas...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-MessageType: newchange

    Aaron Leventhal (Gerrit)

    unread,
    Mar 14, 2023, 3:15:06 PM3/14/23
    to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Ian Vollick, Mason Freed, Benjamin Beaudry, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Ian Vollick, Luis Sanchez Padilla, Mason Freed.

    View Change

    1 comment:

    • Patchset:

      • Patch Set #8:

        Nektarios is away. Also, I'm the primary reviewer for any major changes to Blink a11y.

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 8
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Mason Freed <mas...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Comment-Date: Tue, 14 Mar 2023 19:14:54 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Gerrit-MessageType: comment

    Aaron Leventhal (Gerrit)

    unread,
    Mar 14, 2023, 3:22:09 PM3/14/23
    to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Ian Vollick, Mason Freed, Benjamin Beaudry, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Ian Vollick, Luis Sanchez Padilla, Mason Freed.

    View Change

    2 comments:

    • Commit Message:

      • Patch Set #8, Line 9: AXMenuListOption::GetRelativeBounds currently defaults to its owner select element's bounds, even when the select is expanded. This prevents accessibility tools to correctly represent the position of the option elements inside the popup menu. This change enables retrieving the right set of coordinates by caching them inside the corresponding AXMenuList when the popup's document is loaded.

        Are we still looking at making <select> not use AXMenuList on Windows? or does this CL replace the need for that?

    • File third_party/blink/renderer/modules/accessibility/ax_menu_list_option.cc:

      • Patch Set #8, Line 189: if (options_bounds.size()) {

        We should early return or DCHECK if the index is larger than the bounds.

        Have you tested that the indices don't get out of whack when there are some <optgroup> elements present? Or if some script inserts non-option elements that we didn't expect? Does a comment node throw it out of whack?

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 8
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Mason Freed <mas...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Comment-Date: Tue, 14 Mar 2023 19:21:59 +0000

    Luis Sanchez Padilla (Gerrit)

    unread,
    Mar 14, 2023, 4:48:38 PM3/14/23
    to abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org

    Attention is currently required from: Ian Vollick, Luis Sanchez Padilla, Mason Freed.

    Luis Sanchez Padilla uploaded patch set #9 to this change.

    View Change

    Fix AXMenuListOption::GetRelativeBounds

    AXMenuListOption::GetRelativeBounds currently defaults to its owner
    select element's bounds, even when the select is expanded. This prevents
    accessibility tools to correctly represent the position of the option
    elements inside the popup menu. This change enables retrieving the right
    set of coordinates by caching them inside the corresponding AXMenuList
    when the popup's document is loaded.

    Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    ---
    A third_party/blink/manual_tests/forms/list-picker.html
    M third_party/blink/renderer/core/accessibility/ax_object_cache.h
    M third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
    M third_party/blink/renderer/core/html/forms/internal_popup_menu.h
    M third_party/blink/renderer/core/html/forms/resources/list_picker.js
    M third_party/blink/renderer/core/page/page_popup_client.h
    M third_party/blink/renderer/core/page/page_popup_controller.cc
    M third_party/blink/renderer/core/page/page_popup_controller.h
    M third_party/blink/renderer/core/page/page_popup_controller.idl
    M third_party/blink/renderer/modules/accessibility/ax_menu_list.h
    M third_party/blink/renderer/modules/accessibility/ax_menu_list_option.cc
    M third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
    M third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
    13 files changed, 280 insertions(+), 4 deletions(-)

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 9
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Mason Freed <mas...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-MessageType: newpatchset

    Luis Sanchez Padilla (Gerrit)

    unread,
    Mar 14, 2023, 7:02:47 PM3/14/23
    to abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Aaron Leventhal, Ian Vollick, Mason Freed, Benjamin Beaudry, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Aaron Leventhal, Ian Vollick, Mason Freed.

    View Change

    3 comments:

    • Commit Message:

      • Patch Set #8, Line 9: AXMenuListOption::GetRelativeBounds currently defaults to its owner select element's bounds, even when the select is expanded. This prevents accessibility tools to correctly represent the position of the option elements inside the popup menu. This change enables retrieving the right set of coordinates by caching them inside the corresponding AXMenuList when the popup's document is loaded.

      • Are we still looking at making <select> not use AXMenuList on Windows? or does this CL replace the n […]

        This CL is not really a replacement as removing AXMenuList would still be beneficial for cases like https://bugs.chromium.org/p/chromium/issues/detail?id=1293030. This change seems less risky than the disablement of AXMenuList, so I think we can use this change to expose the correct bounds for the options and move forward with removing AXMenuList in order to fix other scenarios. What do you think?

    • Patchset:

    • File third_party/blink/renderer/modules/accessibility/ax_menu_list_option.cc:

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 10
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Attention: Mason Freed <mas...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Mar 2023 23:02:34 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-MessageType: comment

    Mason Freed (Gerrit)

    unread,
    Mar 17, 2023, 1:41:34 PM3/17/23
    to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Aaron Leventhal, Ian Vollick, Benjamin Beaudry, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Aaron Leventhal, Ian Vollick, Luis Sanchez Padilla.

    View Change

    5 comments:

    • Patchset:

      • Patch Set #10:

        Generally looks pretty good to me. It's really unfortunate that there is only a manual test for this. Is there any other way to verify the behavior?

    • File third_party/blink/manual_tests/forms/list-picker.html:

    • File third_party/blink/renderer/core/html/forms/internal_popup_menu.cc:

      • Patch Set #10, Line 700: SetMenuListOptionsBounds

        I went back and forth on this. But it feels like this should be called something like `SetMenuListOptionsBoundsInAXTree()` or something to indicate where/how the options bounds are used.

        I could be convinced otherwise, since the options bounds are kept in a correct state and could potentially be used for other purposes later.

      • Patch Set #10, Line 701: WTF::Vector<gfx::Rect>& options_bounds

        Help me understand why this gets modified by this function? I looked through the call stack and it doesn't look like the modified value gets used. I could have missed it. But if not, could you make this `const WTF::Vector<const gfx::Rect>&` and avoid changing it?

    • File third_party/blink/renderer/core/html/forms/resources/list_picker.js:

      • Patch Set #10, Line 521: optionsBoundsCache_

        So if I'm reading this right, this is less of a "cache", and more of a global variable to hold the results as you recursively walk the children. In that case, would you mind breaking this function into two pieces, one that you call on the selectmenu, and the other that is just used locally for recursion, and then just pass in the holding variable to collect the option bounds before the call to setMenuListOptionsBounds?

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 10
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Comment-Date: Fri, 17 Mar 2023 17:41:28 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Gerrit-MessageType: comment

    Benjamin Beaudry (Gerrit)

    unread,
    Mar 23, 2023, 2:22:23 PM3/23/23
    to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Aaron Leventhal, Ian Vollick, Mason Freed, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Aaron Leventhal, Ian Vollick, Luis Sanchez Padilla.

    View Change

    1 comment:

    • Patchset:

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 10
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Comment-Date: Thu, 23 Mar 2023 18:22:01 +0000

    Luis Sanchez Padilla (Gerrit)

    unread,
    Mar 29, 2023, 5:51:12 PM3/29/23
    to abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Aaron Leventhal, Ian Vollick, Mason Freed, Benjamin Beaudry, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Aaron Leventhal, Benjamin Beaudry, Ian Vollick, Mason Freed.

    View Change

    7 comments:

    • Patchset:

      • Yes, I tested with native ui zoom, magnifying tools, and internal zoom, and all work as expected.

      • It is particularly complicated to test this fix, as it would require:

        • The select element to be expanded, either programmatically or via injection.
        • The ability to wait for JavaScript to run on the popup's document so that the menu can be populated with the options.
        • Access to the AX tree so that the AXMenuListOptions are reachable and GetRelativeBounds is callable.

        I couldn't find a current testing mechanism that enables that, would you have any suggestions?

    • Patchset:

      • Patch Set #11:

        Apologies for the delay. I was part of an on-call rotation for the last two weeks and it took all of my time. Thank you for your patience!

    • File third_party/blink/renderer/core/html/forms/internal_popup_menu.cc:

      • I went back and forth on this. […]

        I had something similar originally and decided to drop the A11y part. Added it back in patchset 11.

      • Help me understand why this gets modified by this function? I looked through the call stack and it d […]

        InternalPopupMenu::SetMenuListOptionsBoundsInAXTree is called with the option bounds relative to the origin of the popup's frame, so they still need to be offset by the difference between the popup's frame's and the main frame's origins, which is done in this function. The modified value gets passed in AXObjectCache::SetMenuListOptionsBounds at the end of this function.

    • File third_party/blink/renderer/core/html/forms/resources/list_picker.js:

      • So if I'm reading this right, this is less of a "cache", and more of a global variable to hold the r […]

        Done in Patchset 11.

    • File third_party/blink/renderer/modules/accessibility/ax_menu_list_option.cc:

      • Added the DCHECK on patchset 10, and also confirmed that indices to remain as expected even when opt […]

        Done

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 11
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Mason Freed <mas...@chromium.org>
    Gerrit-Attention: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Comment-Date: Wed, 29 Mar 2023 21:51:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Benjamin Beaudry <benjamin...@microsoft.com>
    Comment-In-Reply-To: Mason Freed <mas...@chromium.org>
    Comment-In-Reply-To: Aaron Leventhal <aleve...@chromium.org>
    Comment-In-Reply-To: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-MessageType: comment

    Mason Freed (Gerrit)

    unread,
    Mar 31, 2023, 2:03:08 PM3/31/23
    to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Aaron Leventhal, Ian Vollick, Benjamin Beaudry, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Aaron Leventhal, Benjamin Beaudry, Ian Vollick, Luis Sanchez Padilla.

    Patch set 11:Code-Review +1

    View Change

    3 comments:

    • Patchset:

      • Patch Set #10:

        It is particularly complicated to test this fix, as it would require: […]

        No. 😞 I was hoping you'd know of some magic.

        So, this is ok as-is. Thanks for trying.

    • Patchset:

    • File third_party/blink/renderer/core/html/forms/internal_popup_menu.cc:

      • Patch Set #10, Line 701: WTF::Vector<gfx::Rect>& options_bounds

        InternalPopupMenu::SetMenuListOptionsBoundsInAXTree is called with the option bounds relative to the […]

        Acknowledged

    To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
    Gerrit-Change-Number: 4326938
    Gerrit-PatchSet: 11
    Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
    Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
    Gerrit-Attention: Benjamin Beaudry <benjamin...@microsoft.com>
    Gerrit-Attention: Ian Vollick <vol...@chromium.org>
    Gerrit-Attention: Aaron Leventhal <aleve...@chromium.org>
    Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
    Gerrit-Comment-Date: Fri, 31 Mar 2023 18:02:57 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Mason Freed <mas...@chromium.org>

    Aaron Leventhal (Gerrit)

    unread,
    Mar 31, 2023, 4:08:53 PM3/31/23
    to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Mason Freed, Ian Vollick, Benjamin Beaudry, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

    Attention is currently required from: Benjamin Beaudry, Ian Vollick, Luis Sanchez Padilla.

    Patch set 11:Code-Review +1

    View Change

      To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
      Gerrit-Change-Number: 4326938
      Gerrit-PatchSet: 11
      Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
      Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
      Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
      Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
      Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
      Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
      Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
      Gerrit-CC: Benjamin Beaudry <benjamin...@microsoft.com>
      Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
      Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
      Gerrit-Attention: Benjamin Beaudry <benjamin...@microsoft.com>
      Gerrit-Attention: Ian Vollick <vol...@chromium.org>
      Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
      Gerrit-Comment-Date: Fri, 31 Mar 2023 20:08:45 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      Gerrit-MessageType: comment

      Benjamin Beaudry (Gerrit)

      unread,
      Mar 31, 2023, 4:22:42 PM3/31/23
      to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Aaron Leventhal, Mason Freed, Ian Vollick, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

      Attention is currently required from: Ian Vollick, Luis Sanchez Padilla.

      Patch set 11:Code-Review +1

      View Change

        To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
        Gerrit-Change-Number: 4326938
        Gerrit-PatchSet: 11
        Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
        Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
        Gerrit-Reviewer: Benjamin Beaudry <benjamin...@microsoft.com>
        Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
        Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
        Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
        Gerrit-Attention: Ian Vollick <vol...@chromium.org>
        Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
        Gerrit-Comment-Date: Fri, 31 Mar 2023 20:22:35 +0000

        Luis Sanchez Padilla (Gerrit)

        unread,
        Mar 31, 2023, 7:24:23 PM3/31/23
        to abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Benjamin Beaudry, Aaron Leventhal, Mason Freed, Ian Vollick, Sanket Joshi, Tricium, Chromium LUCI CQ, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

        Attention is currently required from: Benjamin Beaudry, Ian Vollick, Luis Sanchez Padilla.

        Patch set 11:Commit-Queue +2

        View Change

          To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
          Gerrit-Change-Number: 4326938
          Gerrit-PatchSet: 11
          Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
          Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
          Gerrit-Reviewer: Benjamin Beaudry <benjamin...@microsoft.com>
          Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
          Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
          Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
          Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
          Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
          Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
          Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
          Gerrit-Attention: Benjamin Beaudry <benjamin...@microsoft.com>
          Gerrit-Attention: Ian Vollick <vol...@chromium.org>
          Gerrit-Attention: Luis Sanchez Padilla <lusa...@microsoft.com>
          Gerrit-Comment-Date: Fri, 31 Mar 2023 23:24:14 +0000

          Chromium LUCI CQ (Gerrit)

          unread,
          Mar 31, 2023, 7:40:44 PM3/31/23
          to Luis Sanchez Padilla, abigailbk...@google.com, aleventhal...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, hirokisa...@chromium.org, jmedle...@chromium.org, josiah...@chromium.org, kyungjunle...@google.com, nektar...@chromium.org, sarakat...@chromium.org, yuzo+...@chromium.org, Benjamin Beaudry, Aaron Leventhal, Mason Freed, Ian Vollick, Sanket Joshi, Tricium, Akihiro Ota, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt

          Chromium LUCI CQ submitted this change.

          View Change

          Approvals: Aaron Leventhal: Looks good to me Mason Freed: Looks good to me Luis Sanchez Padilla: Commit Benjamin Beaudry: Looks good to me
          Fix AXMenuListOption::GetRelativeBounds


          AXMenuListOption::GetRelativeBounds currently defaults to its owner
          select element's bounds, even when the select is expanded. This prevents
          accessibility tools to correctly represent the position of the option
          elements inside the popup menu. This change enables retrieving the right
          set of coordinates by caching them inside the corresponding AXMenuList
          when the popup's document is loaded.

          Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
          Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4326938
          Reviewed-by: Mason Freed <mas...@chromium.org>
          Commit-Queue: Luis Sanchez Padilla <lusa...@microsoft.com>
          Reviewed-by: Benjamin Beaudry <benjamin...@microsoft.com>
          Reviewed-by: Aaron Leventhal <aleve...@chromium.org>
          Cr-Commit-Position: refs/heads/main@{#1124967}

          ---
          A third_party/blink/manual_tests/forms/list-picker.html
          M third_party/blink/renderer/core/accessibility/ax_object_cache.h
          M third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
          M third_party/blink/renderer/core/html/forms/internal_popup_menu.h
          M third_party/blink/renderer/core/html/forms/resources/list_picker.js
          M third_party/blink/renderer/core/page/page_popup_client.h
          M third_party/blink/renderer/core/page/page_popup_controller.cc
          M third_party/blink/renderer/core/page/page_popup_controller.h
          M third_party/blink/renderer/core/page/page_popup_controller.idl
          M third_party/blink/renderer/modules/accessibility/ax_menu_list.h
          M third_party/blink/renderer/modules/accessibility/ax_menu_list_option.cc
          M third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
          M third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
          13 files changed, 285 insertions(+), 4 deletions(-)


          To view, visit change 4326938. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I88e3bc1d2a9c1ea2076eea4da6d4a0f919c16cd7
          Gerrit-Change-Number: 4326938
          Gerrit-PatchSet: 12
          Gerrit-Owner: Luis Sanchez Padilla <lusa...@microsoft.com>
          Gerrit-Reviewer: Aaron Leventhal <aleve...@chromium.org>
          Gerrit-Reviewer: Benjamin Beaudry <benjamin...@microsoft.com>
          Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
          Gerrit-Reviewer: Ian Vollick <vol...@chromium.org>
          Gerrit-Reviewer: Luis Sanchez Padilla <lusa...@microsoft.com>
          Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
          Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
          Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
          Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
          Gerrit-CC: Sanket Joshi <sa...@microsoft.com>
          Gerrit-MessageType: merged
          Reply all
          Reply to author
          Forward
          0 new messages