blob: 46f8b4bb1eddcf1258f0423165f7e3d8c353cb5d [file] [log] [blame]
// Copyright 2014 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.
#ifndef CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_
#define CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_
// Note: keep enums in content/browser/resources/accessibility/accessibility.js
// in sync with these two enums.
enum AccessibilityModeFlag {
// Native accessibility APIs, specific to each platform, are enabled.
// When this flag is set that indicates the presence of a third-party
// client accessing Chrome via accessibility APIs. However, unless one
// of the flags below is set, the contents of web pages will not be
// accessible.
ACCESSIBILITY_MODE_FLAG_NATIVE_APIS = 1 << 0,
// The renderer process will generate an accessibility tree containing
// basic information about all nodes, including role, name, value,
// state, and location. This is the minimum flag required in order for
// web contents to be accessible, and the remaining flags are meaningless
// unless this one is set.
//
// Note that sometimes this flag will be set when
// ACCESSIBILITY_MODE_FLAG_NATIVE_APIS is not, when the content layer embedder
// is providing accessibility support via some other mechanism other than
// what's implemented in content/browser.
ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS = 1 << 1,
// The accessibility tree will contain inline text boxes, which are
// necessary to expose information about line breaks and word boundaries.
// Without this flag, you can retrieve the plaintext value of a text field
// but not the information about how it's broken down into lines.
//
// Note that when this flag is off it's still possible to request inline
// text boxes for a specific node on-demand, asynchronously.
ACCESSIBILITY_MODE_FLAG_INLINE_TEXT_BOXES = 1 << 2,
// The accessibility tree will contain extra accessibility
// attributes typically only needed by screen readers and other
// assistive technology for blind users. Examples include text style
// attributes, table cell information, live region properties, range
// values, and relationship attributes.
ACCESSIBILITY_MODE_FLAG_SCREEN_READER = 1 << 3,
// The accessibility tree will contain the HTML tag name and HTML attributes
// for all accessibility nodes that come from web content.
ACCESSIBILITY_MODE_FLAG_HTML = 1 << 4,
};
typedef int AccessibilityMode;
const AccessibilityMode AccessibilityModeOff = 0;
const AccessibilityMode ACCESSIBILITY_MODE_COMPLETE =
ACCESSIBILITY_MODE_FLAG_NATIVE_APIS |
ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS |
ACCESSIBILITY_MODE_FLAG_INLINE_TEXT_BOXES |
ACCESSIBILITY_MODE_FLAG_SCREEN_READER |
ACCESSIBILITY_MODE_FLAG_HTML;
const AccessibilityMode ACCESSIBILITY_MODE_WEB_CONTENTS_ONLY =
ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS |
ACCESSIBILITY_MODE_FLAG_INLINE_TEXT_BOXES |
ACCESSIBILITY_MODE_FLAG_SCREEN_READER |
ACCESSIBILITY_MODE_FLAG_HTML;
#endif // CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_