blob: 0bee8ca19a312b359e20301fb9fad9bad8c019dc [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.
[
{
"namespace": "accessibilityPrivate",
"compiler_options": {
"implemented_in": "chromecast/browser/extensions/api/accessibility_private/accessibility_extension_api.h"
},
"description": "none",
"types": [
{
"id": "AlertInfo",
"type": "object",
"description": "Information about an alert",
"properties": {
"message": {
"type": "string",
"description": "The message the alert is showing."
}
}
},
{
"id": "ScreenRect",
"type": "object",
"description": "Bounding rectangle in global screen coordinates.",
"properties": {
"left": {"type": "integer", "description": "Left coordinate in global screen coordinates."},
"top": {"type": "integer", "description": "Top coordinate in global screen coordinates."},
"width": {"type": "integer", "description": "Width in pixels."},
"height": {"type": "integer", "description": "Height in pixels."}
}
},
{
"id": "Gesture",
"type": "string",
"enum": [ "click", "swipeLeft1", "swipeUp1", "swipeRight1", "swipeDown1", "swipeLeft2", "swipeUp2", "swipeRight2", "swipeDown2", "swipeLeft3", "swipeUp3", "swipeRight3", "swipeDown3", "swipeLeft4", "swipeUp4", "swipeRight4", "swipeDown4", "tap2", "tap3", "tap4" ],
"description": "Accessibility gestures fired by the touch exploration controller."
},
{
"id": "SyntheticKeyboardEventType",
"type": "string",
"description": "The event to send",
"enum": ["keyup", "keydown"]
},
{
"id": "SyntheticKeyboardModifiers",
"type": "object",
"properties": {
"ctrl": {
"type": "boolean",
"description": "Control modifier.",
"optional": true
},
"alt": {
"type": "boolean",
"description": "alt modifier.",
"optional": true
},
"search": {
"type": "boolean",
"description": "search modifier.",
"optional": true
},
"shift": {
"type": "boolean",
"description": "shift modifier.",
"optional": true
}
}
},
{
"id": "SyntheticKeyboardEvent",
"type": "object",
"properties": {
"type": {"$ref": "SyntheticKeyboardEventType"},
"keyCode": {"type": "integer", "description": "Virtual key code, which is independent of the keyboard layout or modifier state."},
"modifiers": {
"$ref": "SyntheticKeyboardModifiers",
"optional": true,
"description": "Contains all active modifiers."
}
}
}
],
"functions": [
{
"name": "setNativeAccessibilityEnabled",
"type": "function",
"description": "Enables or disables native accessibility support. Once disabled, it is up to the calling extension to provide accessibility for web contents.",
"parameters": [
{
"type": "boolean",
"name": "enabled",
"description": "True if native accessibility support should be enabled."
}
]
},
{
"name": "setFocusRing",
"type": "function",
"description": "Sets the bounds of the accessibility focus ring.",
"parameters": [
{
"name": "rects",
"type": "array",
"items": { "$ref": "ScreenRect" },
"description": "Array of rectangles to draw the accessibility focus ring around."
},
{
"name": "color",
"type": "string",
"description": "CSS-style hex color string beginning with # like #FF9982 or #EEE.",
"optional": true
}
]
},
{
"name": "setHighlights",
"type": "function",
"description": "Sets the bounds of the accessibility highlight.",
"parameters": [
{
"name": "rects",
"type": "array",
"items": { "$ref": "ScreenRect" },
"description": "Array of rectangles to draw the highlight around."
},
{
"name": "color",
"type": "string",
"description": "CSS-style hex color string beginning with # like #FF9982 or #EEE."
}
]
},
{
"name": "setKeyboardListener",
"type": "function",
"description": "Sets the calling extension as a listener of all keyboard events optionally allowing the calling extension to capture/swallow the key event via DOM apis. Returns false via callback when unable to set the listener.",
"parameters": [
{
"type": "boolean",
"name": "enabled",
"description": "True if the caller wants to listen to key events; false to stop listening to events. Note that there is only ever one extension listening to key events."
},
{
"type": "boolean",
"name": "capture",
"description": "True if key events should be swallowed natively and not propagated if preventDefault() gets called by the extension's background page."
}
]
},
{
"name": "darkenScreen",
"type": "function",
"description": "Darkens or undarkens the screen.",
"parameters": [
{
"type": "boolean",
"name": "enabled",
"description": "True to darken screen; false to undarken screen."
}
]
},
{
"name": "setSwitchAccessKeys",
"type": "function",
"description": "Change the keyboard keys captured by Switch Access.",
"parameters": [
{
"name": "key_codes",
"type": "array",
"items": {
"type": "integer",
"minimum": 48, // '0' key
"maximum": 90 // 'z' key
},
"description": "The key codes for the keys that will be captured."
}
],
"platforms": ["chromeos"]
},
{
"name": "setNativeChromeVoxArcSupportForCurrentApp",
"type": "function",
"description": "Sets current ARC app to use native ARC support.",
"parameters": [
{
"name": "enabled",
"type": "boolean",
"description": "True for ChromeVox (native), false for TalkBack."
}
],
"platforms": ["chromeos"]
},
{
"name": "sendSyntheticKeyEvent",
"type": "function",
"description": "Sends a fabricated key event.",
"parameters": [
{
"name": "keyEvent",
"$ref": "SyntheticKeyboardEvent",
"description": "The event to send."
}
],
"platforms": ["chromeos"]
}
],
"events": [
{
"name": "onIntroduceChromeVox",
"type": "function",
"description": "Fired whenever ChromeVox should output introduction."
},
{
"name": "onAccessibilityGesture",
"type": "function",
"description": "Fired when an accessibility gesture is detected by the touch exploration controller.",
"parameters": [
{
"name": "gesture",
"$ref": "Gesture"
}
]
},
{
"name": "onTwoFingerTouchStart",
"type": "function",
"description": "Fired when we first detect two fingers are held down, which can be used to toggle spoken feedback on some touch-only devices.",
"parameters": []
},
{
"name": "onTwoFingerTouchStop",
"type": "function",
"description": "Fired when the user is no longer holding down two fingers (including releasing one, holding down three, or moving them).",
"parameters": []
}
]
}
]