Reland "desks: Change ChromeVox for mini view (2)"
This is a reland of commit 9b577005c5
The ChromeVox will read the node name first and then the node value for
the desk name view. Before this CL, the node name and the node value
were all set by the text content in the deskfield. That's why the screen
reader read the desk name view be `Desk 1 Desk 1 edit Text`.
To let it read `Desk name Desk 1 Edit test`, we need to change the node
name to the string `Desk name`, and keep the node value set by the
`GetText`.
However, this change will cause some tast tests failed, thus I uploaded
a CL for fixing the failure in tast test in crrev.com/c/4814306, which
will to compare with the value in the node info instead of the node
name.
Original change's description:
> desks: Change ChromeVox for mini view (2)
>
> This Cl will change the announcement for desk name view. Before the
> fix, when highlighting the desk name view, it will announce that `Desk 1
> Desk 1 Edit text`, for example. After the fix, it will be `Desk name
> Desk 1 Edit text`.
>
> Bug: b/286456085
> Test: Manual
> Change-Id: I8f04da461abd9016a86797b459426b112db16be5
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4800018
> Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
> Commit-Queue: Hongyu Long <hongyulong@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1186876}
Bug: b/286456085, b/297113736
Change-Id: I4626d018f3247e6ada70e442e6a017787e461e53
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4810678
Reviewed-by: Daniel Andersson <dandersson@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Commit-Queue: Hongyu Long <hongyulong@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1190883}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
1b45a48129
commit
2edcef64c0
@ -2539,6 +2539,9 @@ Style notes:
|
||||
<message name="IDS_ASH_DESKS_INACTIVE_DESK_MINIVIEW_A11Y_EXTRA_TIP" desc="The accessibility tooltip read by screen readers for a highlighted inactive desk mini_view.">
|
||||
inactive desk
|
||||
</message>
|
||||
<message name="IDS_ASH_DESKS_DESK_NAME" desc="Alert when highlighting the desk name">
|
||||
Desk name
|
||||
</message>
|
||||
<message name="IDS_ASH_DESKS_DESK_ACCESSIBLE_NAME" desc="The full accessible desk name">
|
||||
Desk: <ph name="DESK_NAME">$1</ph>
|
||||
</message>
|
||||
|
1
ash/ash_strings_grd/IDS_ASH_DESKS_DESK_NAME.png.sha1
Normal file
1
ash/ash_strings_grd/IDS_ASH_DESKS_DESK_NAME.png.sha1
Normal file
@ -0,0 +1 @@
|
||||
e595701d1cb3e6dbb37e27c751e7bc1adf507670
|
@ -990,11 +990,10 @@ void DeskBarViewBase::NudgeDeskName(int desk_index) {
|
||||
auto* name_view = mini_views_[desk_index]->desk_name_view();
|
||||
name_view->RequestFocus();
|
||||
|
||||
// Set `name_view`'s accessible name to the default desk name since its text
|
||||
// is cleared.
|
||||
// Set `name_view`'s accessible name if its text is cleared.
|
||||
if (name_view->GetAccessibleName().empty()) {
|
||||
name_view->SetAccessibleName(
|
||||
DesksController::GetDeskDefaultName(desk_index));
|
||||
l10n_util::GetStringUTF16(IDS_ASH_DESKS_DESK_NAME));
|
||||
}
|
||||
|
||||
if (type_ == Type::kOverview) {
|
||||
|
@ -119,9 +119,7 @@ DeskMiniView::DeskMiniView(DeskBarViewBase* owner_bar,
|
||||
// accessible name.
|
||||
auto* desks_controller = DesksController::Get();
|
||||
desk_name_view->SetAccessibleName(
|
||||
desk_->name().empty() ? DesksController::GetDeskDefaultName(
|
||||
desks_controller->GetDeskIndex(desk_))
|
||||
: desk_->name());
|
||||
l10n_util::GetStringUTF16(IDS_ASH_DESKS_DESK_NAME));
|
||||
|
||||
SetPaintToLayer();
|
||||
layer()->SetFillsBoundsOpaquely(false);
|
||||
@ -551,7 +549,6 @@ void DeskMiniView::OnDeskNameChanged(const std::u16string& new_name) {
|
||||
return;
|
||||
|
||||
desk_name_view_->SetText(new_name);
|
||||
desk_name_view_->SetAccessibleName(new_name);
|
||||
desk_preview_->SetAccessibleName(new_name);
|
||||
|
||||
Layout();
|
||||
|
@ -6065,15 +6065,12 @@ TEST_P(DesksTest, NameNudges) {
|
||||
|
||||
// Click on the new desk button until the max number of desks is created. Each
|
||||
// time a new desk is created the new desk's name view should have focus, be
|
||||
// empty and have its accessible name set to the default desk name. Also, the
|
||||
// previous desk should be left with a default name.
|
||||
// empty. Also, the previous desk should be left with a default name.
|
||||
for (size_t i = 1; i < desks_util::GetMaxNumberOfDesks(); ++i) {
|
||||
ClickOnView(new_desk_button, event_generator);
|
||||
auto* desk_name_view = desks_bar_view->mini_views()[i]->desk_name_view();
|
||||
EXPECT_TRUE(desk_name_view->HasFocus());
|
||||
EXPECT_EQ(std::u16string(), controller->GetDeskAtIndex(i)->name());
|
||||
EXPECT_EQ(DesksController::GetDeskDefaultName(i),
|
||||
desk_name_view->GetAccessibleName());
|
||||
EXPECT_EQ(DesksController::GetDeskDefaultName(i - 1),
|
||||
controller->GetDeskAtIndex(i - 1)->name());
|
||||
ClickOnView(scroll_right_button, event_generator);
|
||||
|
@ -105,8 +105,8 @@ void SavedDeskGridView::SortEntries(const base::Uuid& order_first_uuid) {
|
||||
rest, grid_items_.end(),
|
||||
[&collator](const SavedDeskItemView* a, const SavedDeskItemView* b) {
|
||||
return base::i18n::CompareString16WithCollator(
|
||||
*collator, a->name_view()->GetAccessibleName(),
|
||||
b->name_view()->GetAccessibleName()) < 0;
|
||||
*collator, a->name_view()->GetText(),
|
||||
b->name_view()->GetText()) < 0;
|
||||
});
|
||||
|
||||
// A11y traverses views based on the order of the children, so we need to
|
||||
|
@ -145,7 +145,8 @@ SavedDeskItemView::SavedDeskItemView(std::unique_ptr<DeskTemplate> saved_desk)
|
||||
.CopyAddressTo(&name_view_)
|
||||
.SetController(this)
|
||||
.SetText(saved_desk_name)
|
||||
.SetAccessibleName(saved_desk_name)
|
||||
.SetAccessibleName(l10n_util::GetStringUTF16(
|
||||
IDS_ASH_DESKS_DESK_NAME))
|
||||
.SetReadOnly(!saved_desk_->IsModifiable())
|
||||
// Use the focus behavior specified by the
|
||||
// subclass of `SavedDeskNameView` unless the
|
||||
@ -385,7 +386,6 @@ void SavedDeskItemView::UpdateSavedDesk(
|
||||
auto new_name = saved_desk_->template_name();
|
||||
DCHECK(!new_name.empty());
|
||||
name_view_->SetText(new_name);
|
||||
name_view_->SetAccessibleName(new_name);
|
||||
SetAccessibleName(new_name);
|
||||
|
||||
// This will trigger `name_view_` to compute its new preferred bounds and
|
||||
@ -703,8 +703,8 @@ void SavedDeskItemView::OnDeleteButtonPressed() {
|
||||
return;
|
||||
|
||||
controller->ShowDeleteDialog(
|
||||
GetWidget()->GetNativeWindow()->GetRootWindow(),
|
||||
name_view_->GetAccessibleName(), saved_desk_->type(),
|
||||
GetWidget()->GetNativeWindow()->GetRootWindow(), name_view_->GetText(),
|
||||
saved_desk_->type(),
|
||||
base::BindOnce(&SavedDeskItemView::OnDeleteSavedDesk,
|
||||
weak_ptr_factory_.GetWeakPtr()));
|
||||
}
|
||||
@ -732,7 +732,6 @@ void SavedDeskItemView::OnSavedDeskNameChanged(const std::u16string& new_name) {
|
||||
|
||||
DCHECK(!new_name.empty());
|
||||
name_view_->SetText(new_name);
|
||||
name_view_->SetAccessibleName(new_name);
|
||||
name_view_->ResetTemporaryName();
|
||||
SetAccessibleName(new_name);
|
||||
|
||||
|
Reference in New Issue
Block a user