Commit 7c91e713 authored by Shannon Chen's avatar Shannon Chen Committed by Commit Bot

[Switch Access] Add point scanning button

Add point scanning button for later on to enable point scanning.
Signed-off-by: default avatarShannon Chen <shannc@chromium.org>
Bug: 1061537
Change-Id: I0f691bd485fd348118b62fbe816d44fde2201628
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2450924
Commit-Queue: Shannon Chen <shannc@google.com>
Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Reviewed-by: default avatarDavid Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814907}
parent 2615d71d
...@@ -837,6 +837,9 @@ This file contains the strings for ash. ...@@ -837,6 +837,9 @@ This file contains the strings for ash.
<message name="IDS_ASH_SWITCH_ACCESS_PASTE" desc="The label for the Switch Access menu option to paste into the text field."> <message name="IDS_ASH_SWITCH_ACCESS_PASTE" desc="The label for the Switch Access menu option to paste into the text field.">
Paste Paste
</message> </message>
<message name="IDS_ASH_SWITCH_ACCESS_POINT_SCAN" desc="The label for the Switch Access menu option to start point scanning.">
Point scanning
</message>
<message name="IDS_ASH_SWITCH_ACCESS_SCROLL_DOWN" desc="The label for the Switch Access menu option to scroll the selected view down."> <message name="IDS_ASH_SWITCH_ACCESS_SCROLL_DOWN" desc="The label for the Switch Access menu option to scroll the selected view down.">
Scroll down Scroll down
</message> </message>
......
ff508bbe76c19a0264ff150edeef8d831ce7b57d
\ No newline at end of file
...@@ -182,6 +182,7 @@ aggregate_vector_icons2("ash_vector_icons") { ...@@ -182,6 +182,7 @@ aggregate_vector_icons2("ash_vector_icons") {
"switch_access_move_forward_one_word_of_text.icon", "switch_access_move_forward_one_word_of_text.icon",
"switch_access_move_up_one_line_of_text.icon", "switch_access_move_up_one_line_of_text.icon",
"switch_access_paste.icon", "switch_access_paste.icon",
"switch_access_point_scan.icon",
"switch_access_scroll_down.icon", "switch_access_scroll_down.icon",
"switch_access_scroll_left.icon", "switch_access_scroll_left.icon",
"switch_access_scroll_right.icon", "switch_access_scroll_right.icon",
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
CANVAS_DIMENSIONS, 20,
R_MOVE_TO, 9, 6.13f,
R_V_LINE_TO, -3.13f,
R_H_LINE_TO, 2,
R_V_LINE_TO, 3.13f,
R_CUBIC_TO, -0.32f, -0.08f, -0.65f, -0.13f, -1, -0.13f,
R_CUBIC_TO, -0.35f, 0, -0.68f, 0.04f, -1, 0.13f,
CLOSE,
R_MOVE_TO, 4.87f, 2.87f,
R_H_LINE_TO, 3.13f,
R_V_LINE_TO, 2,
R_H_LINE_TO, -3.13f,
R_CUBIC_TO, 0.08f, -0.32f, 0.13f, -0.65f, 0.13f, -1,
R_CUBIC_TO, 0, -0.35f, -0.04f, -0.68f, -0.13f, -1,
CLOSE,
R_MOVE_TO, -2.87f, 4.87f,
R_V_LINE_TO, 3.13f,
R_H_LINE_TO, -2,
R_V_LINE_TO, -3.13f,
R_CUBIC_TO, 0.32f, 0.08f, 0.65f, 0.13f, 1, 0.13f,
R_CUBIC_TO, 0.35f, 0, 0.68f, -0.04f, 1, -0.13f,
CLOSE,
R_MOVE_TO, -4.87f, -2.87f,
R_H_LINE_TO, -3.13f,
R_V_LINE_TO, -2,
R_H_LINE_TO, 3.13f,
R_CUBIC_TO, -0.08f, 0.32f, -0.13f, 0.65f, -0.13f, 1,
R_CUBIC_TO, 0, 0.35f, 0.04f, 0.68f, 0.13f, 1,
CLOSE,
R_MOVE_TO, 3.87f, 1,
R_CUBIC_TO, -1.1f, 0, -2, -0.9f, -2, -2,
R_CUBIC_TO, 0, -1.1f, 0.9f, -2, 2, -2,
R_CUBIC_TO, 1.1f, 0, 2, 0.9f, 2, 2,
R_CUBIC_TO, 0, 1.1f, -0.9f, 2, -2, 2,
CLOSE
\ No newline at end of file
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "ash/system/tray/tray_constants.h" #include "ash/system/tray/tray_constants.h"
#include "base/containers/flat_map.h" #include "base/containers/flat_map.h"
#include "base/no_destructor.h" #include "base/no_destructor.h"
#include "ui/accessibility/accessibility_switches.h"
#include "ui/accessibility/ax_node_data.h" #include "ui/accessibility/ax_node_data.h"
#include "ui/accessibility/mojom/ax_node_data.mojom-shared.h" #include "ui/accessibility/mojom/ax_node_data.mojom-shared.h"
#include "ui/events/event.h" #include "ui/events/event.h"
...@@ -30,64 +31,74 @@ struct ButtonInfo { ...@@ -30,64 +31,74 @@ struct ButtonInfo {
// These strings must match the values of // These strings must match the values of
// accessibility_private::SwitchAccessMenuAction. // accessibility_private::SwitchAccessMenuAction.
const base::flat_map<std::string, ButtonInfo>& GetMenuButtonDetails() { const base::flat_map<std::string, ButtonInfo>& GetMenuButtonDetails() {
static const base::NoDestructor<base::flat_map<std::string, ButtonInfo>> static base::NoDestructor<base::flat_map<std::string, ButtonInfo>>
kMenuButtonDetails({ menu_button_details({});
{"copy", {&kSwitchAccessCopyIcon, IDS_ASH_SWITCH_ACCESS_COPY}},
{"cut", {&kSwitchAccessCutIcon, IDS_ASH_SWITCH_ACCESS_CUT}}, if (menu_button_details->empty()) {
{"decrement", base::flat_map<std::string, ButtonInfo> kBaseMenuButtonDetails({
{&kSwitchAccessDecrementIcon, IDS_ASH_SWITCH_ACCESS_DECREMENT}}, {"copy", {&kSwitchAccessCopyIcon, IDS_ASH_SWITCH_ACCESS_COPY}},
{"dictation", {"cut", {&kSwitchAccessCutIcon, IDS_ASH_SWITCH_ACCESS_CUT}},
{&kDictationOnNewuiIcon, IDS_ASH_SWITCH_ACCESS_DICTATION}}, {"decrement",
{"endTextSelection", {&kSwitchAccessDecrementIcon, IDS_ASH_SWITCH_ACCESS_DECREMENT}},
{&kSwitchAccessEndTextSelectionIcon, {"dictation",
IDS_ASH_SWITCH_ACCESS_END_TEXT_SELECTION}}, {&kDictationOnNewuiIcon, IDS_ASH_SWITCH_ACCESS_DICTATION}},
{"increment", {"endTextSelection",
{&kSwitchAccessIncrementIcon, IDS_ASH_SWITCH_ACCESS_INCREMENT}}, {&kSwitchAccessEndTextSelectionIcon,
{"jumpToBeginningOfText", IDS_ASH_SWITCH_ACCESS_END_TEXT_SELECTION}},
{&kSwitchAccessJumpToBeginningOfTextIcon, {"increment",
IDS_ASH_SWITCH_ACCESS_JUMP_TO_BEGINNING_OF_TEXT}}, {&kSwitchAccessIncrementIcon, IDS_ASH_SWITCH_ACCESS_INCREMENT}},
{"jumpToEndOfText", {"jumpToBeginningOfText",
{&kSwitchAccessJumpToEndOfTextIcon, {&kSwitchAccessJumpToBeginningOfTextIcon,
IDS_ASH_SWITCH_ACCESS_JUMP_TO_END_OF_TEXT}}, IDS_ASH_SWITCH_ACCESS_JUMP_TO_BEGINNING_OF_TEXT}},
{"keyboard", {"jumpToEndOfText",
{&kSwitchAccessKeyboardIcon, IDS_ASH_SWITCH_ACCESS_KEYBOARD}}, {&kSwitchAccessJumpToEndOfTextIcon,
{"moveBackwardOneCharOfText", IDS_ASH_SWITCH_ACCESS_JUMP_TO_END_OF_TEXT}},
{&kSwitchAccessMoveBackwardOneCharOfTextIcon, {"keyboard",
IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_CHAR_OF_TEXT}}, {&kSwitchAccessKeyboardIcon, IDS_ASH_SWITCH_ACCESS_KEYBOARD}},
{"moveBackwardOneWordOfText", {"moveBackwardOneCharOfText",
{&kSwitchAccessMoveBackwardOneWordOfTextIcon, {&kSwitchAccessMoveBackwardOneCharOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_WORD_OF_TEXT}}, IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_CHAR_OF_TEXT}},
{"moveCursor", {"moveBackwardOneWordOfText",
{&kSwitchAccessMoveCursorIcon, IDS_ASH_SWITCH_ACCESS_MOVE_CURSOR}}, {&kSwitchAccessMoveBackwardOneWordOfTextIcon,
{"moveDownOneLineOfText", IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_WORD_OF_TEXT}},
{&kSwitchAccessMoveDownOneLineOfTextIcon, {"moveCursor",
IDS_ASH_SWITCH_ACCESS_MOVE_DOWN_ONE_LINE_OF_TEXT}}, {&kSwitchAccessMoveCursorIcon, IDS_ASH_SWITCH_ACCESS_MOVE_CURSOR}},
{"moveForwardOneCharOfText", {"moveDownOneLineOfText",
{&kSwitchAccessMoveForwardOneCharOfTextIcon, {&kSwitchAccessMoveDownOneLineOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_CHAR_OF_TEXT}}, IDS_ASH_SWITCH_ACCESS_MOVE_DOWN_ONE_LINE_OF_TEXT}},
{"moveForwardOneWordOfText", {"moveForwardOneCharOfText",
{&kSwitchAccessMoveForwardOneWordOfTextIcon, {&kSwitchAccessMoveForwardOneCharOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_WORD_OF_TEXT}}, IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_CHAR_OF_TEXT}},
{"moveUpOneLineOfText", {"moveForwardOneWordOfText",
{&kSwitchAccessMoveUpOneLineOfTextIcon, {&kSwitchAccessMoveForwardOneWordOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_UP_ONE_LINE_OF_TEXT}}, IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_WORD_OF_TEXT}},
{"paste", {&kSwitchAccessPasteIcon, IDS_ASH_SWITCH_ACCESS_PASTE}}, {"moveUpOneLineOfText",
{"scrollDown", {&kSwitchAccessMoveUpOneLineOfTextIcon,
{&kSwitchAccessScrollDownIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_DOWN}}, IDS_ASH_SWITCH_ACCESS_MOVE_UP_ONE_LINE_OF_TEXT}},
{"scrollLeft", {"paste", {&kSwitchAccessPasteIcon, IDS_ASH_SWITCH_ACCESS_PASTE}},
{&kSwitchAccessScrollLeftIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_LEFT}}, {"scrollDown",
{"scrollRight", {&kSwitchAccessScrollDownIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_DOWN}},
{&kSwitchAccessScrollRightIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_RIGHT}}, {"scrollLeft",
{"scrollUp", {&kSwitchAccessScrollLeftIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_LEFT}},
{&kSwitchAccessScrollUpIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_UP}}, {"scrollRight",
{"select", {&kSwitchAccessSelectIcon, IDS_ASH_SWITCH_ACCESS_SELECT}}, {&kSwitchAccessScrollRightIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_RIGHT}},
{"settings", {"scrollUp",
{&kSwitchAccessSettingsIcon, IDS_ASH_SWITCH_ACCESS_SETTINGS}}, {&kSwitchAccessScrollUpIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_UP}},
{"startTextSelection", {"select", {&kSwitchAccessSelectIcon, IDS_ASH_SWITCH_ACCESS_SELECT}},
{&kSwitchAccessStartTextSelectionIcon, {"settings",
IDS_ASH_SWITCH_ACCESS_START_TEXT_SELECTION}}, {&kSwitchAccessSettingsIcon, IDS_ASH_SWITCH_ACCESS_SETTINGS}},
}); {"startTextSelection",
return *kMenuButtonDetails; {&kSwitchAccessStartTextSelectionIcon,
IDS_ASH_SWITCH_ACCESS_START_TEXT_SELECTION}},
});
menu_button_details->swap(kBaseMenuButtonDetails);
if (::switches::IsSwitchAccessPointScanningEnabled()) {
menu_button_details->insert(
{"pointScan",
{&kSwitchAccessPointScanIcon, IDS_ASH_SWITCH_ACCESS_POINT_SCAN}});
}
}
return *menu_button_details;
} }
} // namespace } // namespace
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
{ {
"id": "SwitchAccessMenuAction", "id": "SwitchAccessMenuAction",
"type": "string", "type": "string",
"enum": [ "copy", "cut", "decrement", "dictation", "endTextSelection", "increment", "jumpToBeginningOfText", "jumpToEndOfText", "keyboard", "moveBackwardOneCharOfText", "moveBackwardOneWordOfText", "moveCursor", "moveDownOneLineOfText", "moveForwardOneCharOfText", "moveForwardOneWordOfText", "moveUpOneLineOfText", "paste", "scrollDown", "scrollLeft", "scrollRight", "scrollUp", "select", "settings", "startTextSelection" ], "enum": [ "copy", "cut", "decrement", "dictation", "endTextSelection", "increment", "jumpToBeginningOfText", "jumpToEndOfText", "keyboard", "moveBackwardOneCharOfText", "moveBackwardOneWordOfText", "moveCursor", "moveDownOneLineOfText", "moveForwardOneCharOfText", "moveForwardOneWordOfText", "moveUpOneLineOfText", "paste", "pointScan", "scrollDown", "scrollLeft", "scrollRight", "scrollUp", "select", "settings", "startTextSelection" ],
"description": "Available actions to be shown in the Switch Access menu. Must be kept in sync with the strings in ash/system/accessibility/switch_access_menu_view.cc" "description": "Available actions to be shown in the Switch Access menu. Must be kept in sync with the strings in ash/system/accessibility/switch_access_menu_view.cc"
}, },
{ {
......
...@@ -98,6 +98,7 @@ chrome.accessibilityPrivate.SwitchAccessMenuAction = { ...@@ -98,6 +98,7 @@ chrome.accessibilityPrivate.SwitchAccessMenuAction = {
MOVE_FORWARD_ONE_WORD_OF_TEXT: 'moveForwardOneWordOfText', MOVE_FORWARD_ONE_WORD_OF_TEXT: 'moveForwardOneWordOfText',
MOVE_UP_ONE_LINE_OF_TEXT: 'moveUpOneLineOfText', MOVE_UP_ONE_LINE_OF_TEXT: 'moveUpOneLineOfText',
PASTE: 'paste', PASTE: 'paste',
POINT_SCAN: 'pointScan',
SCROLL_DOWN: 'scrollDown', SCROLL_DOWN: 'scrollDown',
SCROLL_LEFT: 'scrollLeft', SCROLL_LEFT: 'scrollLeft',
SCROLL_RIGHT: 'scrollRight', SCROLL_RIGHT: 'scrollRight',
...@@ -307,16 +308,21 @@ chrome.accessibilityPrivate.setSelectToSpeakState = function(state) {}; ...@@ -307,16 +308,21 @@ chrome.accessibilityPrivate.setSelectToSpeakState = function(state) {};
/** /**
* Called by the Accessibility Common extension when * Called by the Accessibility Common extension when
* onScrollableBoundsForPointRequested has found a scrolling container. |rect| will be * onScrollableBoundsForPointRequested has found a scrolling container. |rect|
* the bounds of the nearest scrollable ancestor of the node at the point * will be the bounds of the nearest scrollable ancestor of the node at the
* requested using onScrollableBoundsForPointRequested. * point requested using onScrollableBoundsForPointRequested.
* @param {!chrome.accessibilityPrivate.ScreenRect} rect * @param {!chrome.accessibilityPrivate.ScreenRect} rect
*/ */
chrome.accessibilityPrivate.handleScrollableBoundsForPointFound = function(rect) {}; chrome.accessibilityPrivate.handleScrollableBoundsForPointFound = function(rect) {};
/** /**
* Called by the Accessibility Common extension to update the magnifier viewport * Called by the Accessibility Common extension to move |rect| within the
* (e.g. when focus has changed). * magnifier viewport (e.g. when focus has changed). If |rect| is already
* completely within the viewport, magnifier doesn't move. If any edge of |rect|
* is outside the viewport (e.g. if rect is larger than or extends partially
* beyond the viewport), magnifier will center the overflowing dimensions of the
* viewport on center of |rect| (e.g. center viewport vertically if |rect|
* extends beyond bottom of screen).
* @param {!chrome.accessibilityPrivate.ScreenRect} rect Rect to ensure visible * @param {!chrome.accessibilityPrivate.ScreenRect} rect Rect to ensure visible
* in the magnified viewport. * in the magnified viewport.
*/ */
......
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