blob: ee6be866500a8f5b0f2a888d42b6e1205344bc8b [file] [log] [blame]
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_ENUMS_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_ENUMS_H_
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "third_party/blink/renderer/modules/modules_export.h"
namespace blink {
enum AccessibilityOrientation {
kAccessibilityOrientationUndefined = 0,
kAccessibilityOrientationVertical,
kAccessibilityOrientationHorizontal,
};
// The input restriction on an object.
enum AXRestriction {
kRestrictionNone = 0, // An object that is not disabled.
kRestrictionReadOnly,
kRestrictionDisabled,
};
enum AccessibilityExpanded {
kExpandedUndefined = 0,
kExpandedCollapsed,
kExpandedExpanded,
};
enum AccessibilityGrabbedState {
kGrabbedStateUndefined = 0,
kGrabbedStateFalse,
kGrabbedStateTrue,
};
enum AccessibilitySelectedState {
kSelectedStateUndefined = 0,
kSelectedStateFalse,
kSelectedStateTrue,
};
enum class AXBoolAttribute {
kAriaBusy,
};
enum class AXIntAttribute {
kAriaColumnCount,
kAriaRowCount,
};
enum class AXUIntAttribute {
kAriaColumnIndex,
kAriaColumnSpan,
kAriaRowIndex,
kAriaRowSpan,
};
enum class AXStringAttribute {
kAriaBrailleLabel,
kAriaBrailleRoleDescription,
kAriaKeyShortcuts,
kAriaRoleDescription,
// TODO(bebeaudr): kAriaVirtualContent is currently a string attribute to
// facilitate prototyping. Make it an enum when we're done prototyping.
kAriaVirtualContent,
};
enum class AXObjectAttribute {
kAriaActiveDescendant,
kAriaErrorMessage,
};
enum class AXObjectVectorAttribute {
kAriaControls,
kAriaDetails,
kAriaFlowTo,
};
enum AXObjectInclusion {
kIncludeObject,
kIgnoreObject,
kDefaultBehavior,
};
enum AccessibilityOptionalBool {
kOptionalBoolUndefined = 0,
kOptionalBoolTrue,
kOptionalBoolFalse
};
// The potential native host-language-based text (name, description or
// placeholder) sources for an element. See
// https://w3c.github.io/html-aam/#accessible-name-and-description-computation
enum AXTextSource {
kAXTextFromNativeSourceUninitialized = -1,
kAXTextFromNativeHTMLLabel,
kAXTextFromNativeHTMLLabelFor,
kAXTextFromNativeHTMLLabelWrapped,
kAXTextFromNativeHTMLLegend,
kAXTextFromNativeHTMLRubyAnnotation,
kAXTextFromNativeHTMLTableCaption,
kAXTextFromNativeSVGDescElement,
kAXTextFromNativeTitleElement, // HTML and SVG
};
enum AXIgnoredReason {
kAXActiveFullscreenElement,
kAXActiveModalDialog,
kAXAriaModalDialog,
kAXAriaHiddenElement,
kAXAriaHiddenSubtree,
kAXEmptyAlt,
kAXEmptyText,
kAXInertElement,
kAXInertSubtree,
kAXInertStyle, // Node is made inert by interactivity:inert
kAXLabelContainer,
kAXLabelFor,
kAXNotRendered,
kAXNotVisible,
kAXPresentational,
kAXProbablyPresentational,
kAXInactiveCarouselTabContent,
kAXUninteresting
};
// Returns a string representation of the given ignored reason.
MODULES_EXPORT String IgnoredReasonName(AXIgnoredReason reason);
// The following represent functions that could be used as callbacks for
// DeferTreeUpdate. Every enum value represents a function that would be
// called after a tree update is complete.
// Please don't reuse these enums in multiple callers to DeferTreeUpdate().
// Instead, add an enum where the suffix describes where it's being called
// from (this helps when debugging an issue apparent in clean layout, by
// helping clarify the code paths).
enum class TreeUpdateReason : uint8_t {
// These updates are always associated with a DOM Node:
kActiveDescendantChanged,
kAriaExpandedChanged,
kAriaPressedChanged,
kAriaSelectedChanged,
kCSSAnchorChanged,
kDelayEventFromPostNotification,
kDidShowMenuListPopup,
kEditableTextContentChanged,
kFocusableChanged,
kIdChanged,
kMaybeDisallowImplicitSelection,
kNodeIsAttached,
kNodeGainedFocus,
kNodeLostFocus,
kPostNotificationFromHandleLoadComplete,
kPostNotificationFromHandleLoadStart,
kPostNotificationFromHandleScrolledToAnchor,
kReferenceTargetChanged,
kRemoveValidationMessageObjectFromFocusedUIElement,
kRemoveValidationMessageObjectFromValidationMessageObject,
kRestoreParentOrPrune,
kRoleChangeFromAriaHasPopup,
kRoleChangeFromImageMapName,
kRoleChangeFromRoleOrType,
kRoleMaybeChangedFromEventListener,
kRoleMaybeChangedFromHref,
kRoleMaybeChangedOnSelect,
kSectionOrRegionRoleMaybeChangedFromLabel,
kSectionOrRegionRoleMaybeChangedFromLabelledBy,
kSectionOrRegionRoleMaybeChangedFromTitle,
kTextChangedOnNode,
kTextChangedOnClosestNodeForLayoutObject,
kTextMarkerDataAdded,
kUpdateActiveMenuOption,
kUpdateAriaOwns,
kUpdateTableRole,
kUseMapAttributeChanged,
kValidationMessageVisibilityChanged,
// These updates are associated with an AXID:
kChildrenChanged,
kMarkAXObjectDirty,
kMarkAXSubtreeDirty,
kTextChangedOnLayoutObject,
// These updates are used for debugging purposes only.
kChildInserted,
kMarkDocumentDirty,
kNewRelationTargetDirty,
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_ENUMS_H_