From 1eaef5585ec5663e8b9fac95d54c3c5eff72bad0 Mon Sep 17 00:00:00 2001 From: Alexander Brusher Date: Thu, 1 Apr 2021 10:21:51 -0700 Subject: [PATCH] [fuchsia] Populates fuchsia node is_keyboard_key in accessibility bridge. (#25334) This change sets the fuchsia node attribute is_keyboard_key in the accessibility bridge. --- .../fuchsia/flutter/accessibility_bridge.cc | 4 ++++ .../flutter/accessibility_bridge_unittest.cc | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/shell/platform/fuchsia/flutter/accessibility_bridge.cc b/shell/platform/fuchsia/flutter/accessibility_bridge.cc index 0d801fbff..3a124efff 100644 --- a/shell/platform/fuchsia/flutter/accessibility_bridge.cc +++ b/shell/platform/fuchsia/flutter/accessibility_bridge.cc @@ -81,6 +81,10 @@ AccessibilityBridge::GetNodeAttributes(const flutter::SemanticsNode& node, *added_size += node.label.size(); } + if (node.HasFlag(flutter::SemanticsFlags::kIsKeyboardKey)) { + attributes.set_is_keyboard_key(true); + } + return attributes; } diff --git a/shell/platform/fuchsia/flutter/accessibility_bridge_unittest.cc b/shell/platform/fuchsia/flutter/accessibility_bridge_unittest.cc index 44d517419..0be39fd63 100644 --- a/shell/platform/fuchsia/flutter/accessibility_bridge_unittest.cc +++ b/shell/platform/fuchsia/flutter/accessibility_bridge_unittest.cc @@ -113,6 +113,21 @@ TEST_F(AccessibilityBridgeTest, RequestAnnounce) { EXPECT_EQ(last_events[0].announce().message(), "message"); } +TEST_F(AccessibilityBridgeTest, PopulatesIsKeyboardKeyAttribute) { + flutter::SemanticsNode node0; + node0.id = 0; + node0.flags = static_cast(flutter::SemanticsFlags::kIsKeyboardKey); + + accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f); + RunLoopUntilIdle(); + + EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size()); + const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u); + EXPECT_EQ(fuchsia_node.node_id(), static_cast(node0.id)); + EXPECT_TRUE(fuchsia_node.has_attributes()); + EXPECT_TRUE(fuchsia_node.attributes().is_keyboard_key()); +} + TEST_F(AccessibilityBridgeTest, UpdatesNodeRoles) { flutter::SemanticsNodeUpdates updates; -- GitLab