blob: ae4ff29c7443c57608bbf1e5191c7489e0716201 [file] [log] [blame]
// Copyright 2018 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.
module ash.mojom;
import "ui/gfx/geometry/mojo/geometry.mojom";
// Interface for ash client (e.g. Chrome) to control and query accessibility
// focus ring features.
interface AccessibilityFocusRingController {
// Sets the focus ring color for the given caller.
SetFocusRingColor(uint32 skcolor, string caller_id);
// Resets the focus ring color back to the default for the given caller.
ResetFocusRingColor(string caller_id);
// Draws a focus ring around the given set of rects in screen coordinates. Use
// |focus_ring_behavior| to specify whether the focus ring should persist or
// fade out for the given caller.
SetFocusRing(array<gfx.mojom.Rect> rects_in_screen,
FocusRingBehavior focus_ring_behavior,
string caller_id);
// Hides focus ring on screen for the given caller.
HideFocusRing(string caller_id);
// Draws a highlight at the given rects in screen coordinates. Rects may be
// overlapping and will be merged into one layer. This looks similar to
// selecting a region with the cursor, except it is drawn in the foreground
// rather than behind a text layer.
// TODO(katie): Add |caller_id| to highlights as well if other Accessibility
// tools or extensions want to use this API.
SetHighlights(array<gfx.mojom.Rect> rects_in_screen, uint32 skcolor);
// Hides highlight on screen.
// TODO(katie): Add |caller_id| to highlights as well.
// Enables double focus rings and sets the second color for the given caller.
EnableDoubleFocusRing(uint32 skcolor, string caller_id);
// Disables double focus rings for the given caller.
DisableDoubleFocusRing(string caller_id);