Commit a6f49535 authored by Andrew Xu's avatar Andrew Xu Committed by Commit Bot

Reland "[Multipaste] Speak a11y announcement when delete button is focused"

This reverts commit 9e285c75.

Reason for revert: The original CL does not cause the issue. So reland it.

Original change's description:
> Revert "[Multipaste] Speak a11y announcement when delete button is focused"
>
> This reverts commit a2c9272d.
>
> Reason for revert: suspect this cl causes build failure https://ci.chromium.org/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests/21195
>
> Original change's description:
> > [Multipaste] Speak a11y announcement when delete button is focused
> >
> > This CL does two things:
> > (1) Ignore the MenuItemView instance in accessibility events handling.
> > Then we can customize accessibility behaviors of the multipaste menu
> > in ClipboardHistoryItemView class.
> >
> > (2) When the delete button gets the pseudo focus, the accessibility
> > side is notified.
> >
> > Bug: 1145773
> > Change-Id: Ibd73b04637b89cc8200ca2f74721a10a44e857c4
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2513502
> > Reviewed-by: Alex Newcomer <newcomer@chromium.org>
> > Commit-Queue: Andrew Xu <andrewxu@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#824561}
>
> TBR=newcomer@chromium.org,andrewxu@chromium.org
>
> Change-Id: I999c30afd42fa4c703f506a536fd736bcbfb48df
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 1146255
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2523237
> Reviewed-by: Tina Wang <tinazwang@chromium.org>
> Commit-Queue: Tina Wang <tinazwang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#824885}

TBR=newcomer@chromium.org,andrewxu@chromium.org,tinazwang@chromium.org

# Not skipping CQ checks because this is a reland.

Bug: 1146255
Change-Id: I66e9612bb47f5f3196d8f800e6221cb0a3a201fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2523471Reviewed-by: default avatarAndrew Xu <andrewxu@chromium.org>
Commit-Queue: Andrew Xu <andrewxu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#824955}
parent 7f7b0e87
......@@ -14,6 +14,7 @@
#include "ui/base/data_transfer_policy/data_transfer_policy_controller.h"
#include "ui/base/ui_base_types.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/menu/menu_types.h"
......@@ -321,6 +322,10 @@ views::MenuItemView* ClipboardHistoryMenuModelAdapter::AppendMenuItem(
views::MenuItemView* container = menu->AppendMenuItem(command_id);
// Ignore `container` in accessibility events handling. Let `item_view`
// handle.
container->GetViewAccessibility().OverrideIsIgnored(true);
// Margins are managed by `ClipboardHistoryItemView`.
container->SetMargins(/*top_margin=*/0, /*bottom_margin=*/0);
......
......@@ -182,6 +182,9 @@ ClipboardHistoryItemView::ClipboardHistoryItemView(
: clipboard_history_item_(clipboard_history_item), container_(container) {}
void ClipboardHistoryItemView::Init() {
SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
GetViewAccessibility().OverrideRole(ax::mojom::Role::kMenuItem);
SetLayoutManager(std::make_unique<views::FillLayout>());
// Ensures that MainButton is below any other child views.
......@@ -322,6 +325,21 @@ void ClipboardHistoryItemView::SetPseudoFocus(PseudoFocus new_pseudo_focus) {
pseudo_focus_ = new_pseudo_focus;
contents_view_->delete_button()->SetVisible(ShouldShowDeleteButton());
main_button_->SchedulePaint();
switch (pseudo_focus_) {
case PseudoFocus::kEmpty:
break;
case PseudoFocus::kMainButton:
NotifyAccessibilityEvent(ax::mojom::Event::kSelection,
/*send_native_event=*/true);
break;
case PseudoFocus::kDeleteButton:
contents_view_->delete_button()->NotifyAccessibilityEvent(
ax::mojom::Event::kHover, /*send_native_event*/ true);
break;
case PseudoFocus::kMaxValue:
NOTREACHED();
break;
}
}
} // namespace ash
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment