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.
<message name="IDS_ASH_SWITCH_ACCESS_PASTE" desc="The label for the Switch Access menu option to paste into the text field.">
Paste
</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.">
Scroll down
</message>
......
ff508bbe76c19a0264ff150edeef8d831ce7b57d
\ No newline at end of file
......@@ -182,6 +182,7 @@ aggregate_vector_icons2("ash_vector_icons") {
"switch_access_move_forward_one_word_of_text.icon",
"switch_access_move_up_one_line_of_text.icon",
"switch_access_paste.icon",
"switch_access_point_scan.icon",
"switch_access_scroll_down.icon",
"switch_access_scroll_left.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 @@
#include "ash/system/tray/tray_constants.h"
#include "base/containers/flat_map.h"
#include "base/no_destructor.h"
#include "ui/accessibility/accessibility_switches.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/accessibility/mojom/ax_node_data.mojom-shared.h"
#include "ui/events/event.h"
......@@ -30,64 +31,74 @@ struct ButtonInfo {
// These strings must match the values of
// accessibility_private::SwitchAccessMenuAction.
const base::flat_map<std::string, ButtonInfo>& GetMenuButtonDetails() {
static const base::NoDestructor<base::flat_map<std::string, ButtonInfo>>
kMenuButtonDetails({
{"copy", {&kSwitchAccessCopyIcon, IDS_ASH_SWITCH_ACCESS_COPY}},
{"cut", {&kSwitchAccessCutIcon, IDS_ASH_SWITCH_ACCESS_CUT}},
{"decrement",
{&kSwitchAccessDecrementIcon, IDS_ASH_SWITCH_ACCESS_DECREMENT}},
{"dictation",
{&kDictationOnNewuiIcon, IDS_ASH_SWITCH_ACCESS_DICTATION}},
{"endTextSelection",
{&kSwitchAccessEndTextSelectionIcon,
IDS_ASH_SWITCH_ACCESS_END_TEXT_SELECTION}},
{"increment",
{&kSwitchAccessIncrementIcon, IDS_ASH_SWITCH_ACCESS_INCREMENT}},
{"jumpToBeginningOfText",
{&kSwitchAccessJumpToBeginningOfTextIcon,
IDS_ASH_SWITCH_ACCESS_JUMP_TO_BEGINNING_OF_TEXT}},
{"jumpToEndOfText",
{&kSwitchAccessJumpToEndOfTextIcon,
IDS_ASH_SWITCH_ACCESS_JUMP_TO_END_OF_TEXT}},
{"keyboard",
{&kSwitchAccessKeyboardIcon, IDS_ASH_SWITCH_ACCESS_KEYBOARD}},
{"moveBackwardOneCharOfText",
{&kSwitchAccessMoveBackwardOneCharOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_CHAR_OF_TEXT}},
{"moveBackwardOneWordOfText",
{&kSwitchAccessMoveBackwardOneWordOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_WORD_OF_TEXT}},
{"moveCursor",
{&kSwitchAccessMoveCursorIcon, IDS_ASH_SWITCH_ACCESS_MOVE_CURSOR}},
{"moveDownOneLineOfText",
{&kSwitchAccessMoveDownOneLineOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_DOWN_ONE_LINE_OF_TEXT}},
{"moveForwardOneCharOfText",
{&kSwitchAccessMoveForwardOneCharOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_CHAR_OF_TEXT}},
{"moveForwardOneWordOfText",
{&kSwitchAccessMoveForwardOneWordOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_WORD_OF_TEXT}},
{"moveUpOneLineOfText",
{&kSwitchAccessMoveUpOneLineOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_UP_ONE_LINE_OF_TEXT}},
{"paste", {&kSwitchAccessPasteIcon, IDS_ASH_SWITCH_ACCESS_PASTE}},
{"scrollDown",
{&kSwitchAccessScrollDownIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_DOWN}},
{"scrollLeft",
{&kSwitchAccessScrollLeftIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_LEFT}},
{"scrollRight",
{&kSwitchAccessScrollRightIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_RIGHT}},
{"scrollUp",
{&kSwitchAccessScrollUpIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_UP}},
{"select", {&kSwitchAccessSelectIcon, IDS_ASH_SWITCH_ACCESS_SELECT}},
{"settings",
{&kSwitchAccessSettingsIcon, IDS_ASH_SWITCH_ACCESS_SETTINGS}},
{"startTextSelection",
{&kSwitchAccessStartTextSelectionIcon,
IDS_ASH_SWITCH_ACCESS_START_TEXT_SELECTION}},
});
return *kMenuButtonDetails;
static base::NoDestructor<base::flat_map<std::string, ButtonInfo>>
menu_button_details({});
if (menu_button_details->empty()) {
base::flat_map<std::string, ButtonInfo> kBaseMenuButtonDetails({
{"copy", {&kSwitchAccessCopyIcon, IDS_ASH_SWITCH_ACCESS_COPY}},
{"cut", {&kSwitchAccessCutIcon, IDS_ASH_SWITCH_ACCESS_CUT}},
{"decrement",
{&kSwitchAccessDecrementIcon, IDS_ASH_SWITCH_ACCESS_DECREMENT}},
{"dictation",
{&kDictationOnNewuiIcon, IDS_ASH_SWITCH_ACCESS_DICTATION}},
{"endTextSelection",
{&kSwitchAccessEndTextSelectionIcon,
IDS_ASH_SWITCH_ACCESS_END_TEXT_SELECTION}},
{"increment",
{&kSwitchAccessIncrementIcon, IDS_ASH_SWITCH_ACCESS_INCREMENT}},
{"jumpToBeginningOfText",
{&kSwitchAccessJumpToBeginningOfTextIcon,
IDS_ASH_SWITCH_ACCESS_JUMP_TO_BEGINNING_OF_TEXT}},
{"jumpToEndOfText",
{&kSwitchAccessJumpToEndOfTextIcon,
IDS_ASH_SWITCH_ACCESS_JUMP_TO_END_OF_TEXT}},
{"keyboard",
{&kSwitchAccessKeyboardIcon, IDS_ASH_SWITCH_ACCESS_KEYBOARD}},
{"moveBackwardOneCharOfText",
{&kSwitchAccessMoveBackwardOneCharOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_CHAR_OF_TEXT}},
{"moveBackwardOneWordOfText",
{&kSwitchAccessMoveBackwardOneWordOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_BACKWARD_ONE_WORD_OF_TEXT}},
{"moveCursor",
{&kSwitchAccessMoveCursorIcon, IDS_ASH_SWITCH_ACCESS_MOVE_CURSOR}},
{"moveDownOneLineOfText",
{&kSwitchAccessMoveDownOneLineOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_DOWN_ONE_LINE_OF_TEXT}},
{"moveForwardOneCharOfText",
{&kSwitchAccessMoveForwardOneCharOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_CHAR_OF_TEXT}},
{"moveForwardOneWordOfText",
{&kSwitchAccessMoveForwardOneWordOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_FORWARD_ONE_WORD_OF_TEXT}},
{"moveUpOneLineOfText",
{&kSwitchAccessMoveUpOneLineOfTextIcon,
IDS_ASH_SWITCH_ACCESS_MOVE_UP_ONE_LINE_OF_TEXT}},
{"paste", {&kSwitchAccessPasteIcon, IDS_ASH_SWITCH_ACCESS_PASTE}},
{"scrollDown",
{&kSwitchAccessScrollDownIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_DOWN}},
{"scrollLeft",
{&kSwitchAccessScrollLeftIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_LEFT}},
{"scrollRight",
{&kSwitchAccessScrollRightIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_RIGHT}},
{"scrollUp",
{&kSwitchAccessScrollUpIcon, IDS_ASH_SWITCH_ACCESS_SCROLL_UP}},
{"select", {&kSwitchAccessSelectIcon, IDS_ASH_SWITCH_ACCESS_SELECT}},
{"settings",
{&kSwitchAccessSettingsIcon, IDS_ASH_SWITCH_ACCESS_SETTINGS}},
{"startTextSelection",
{&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
......
......@@ -53,7 +53,7 @@
{
"id": "SwitchAccessMenuAction",
"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"
},
{
......
......@@ -98,6 +98,7 @@ chrome.accessibilityPrivate.SwitchAccessMenuAction = {
MOVE_FORWARD_ONE_WORD_OF_TEXT: 'moveForwardOneWordOfText',
MOVE_UP_ONE_LINE_OF_TEXT: 'moveUpOneLineOfText',
PASTE: 'paste',
POINT_SCAN: 'pointScan',
SCROLL_DOWN: 'scrollDown',
SCROLL_LEFT: 'scrollLeft',
SCROLL_RIGHT: 'scrollRight',
......@@ -307,16 +308,21 @@ chrome.accessibilityPrivate.setSelectToSpeakState = function(state) {};
/**
* Called by the Accessibility Common extension when
* onScrollableBoundsForPointRequested has found a scrolling container. |rect| will be
* the bounds of the nearest scrollable ancestor of the node at the point
* requested using onScrollableBoundsForPointRequested.
* onScrollableBoundsForPointRequested has found a scrolling container. |rect|
* will be the bounds of the nearest scrollable ancestor of the node at the
* point requested using onScrollableBoundsForPointRequested.
* @param {!chrome.accessibilityPrivate.ScreenRect} rect
*/
chrome.accessibilityPrivate.handleScrollableBoundsForPointFound = function(rect) {};
/**
* Called by the Accessibility Common extension to update the magnifier viewport
* (e.g. when focus has changed).
* Called by the Accessibility Common extension to move |rect| within the
* 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
* 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