| // Copyright 2022 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef UI_ACCESSIBILITY_AX_NODE_ID_FORWARD_H_ | |
| #define UI_ACCESSIBILITY_AX_NODE_ID_FORWARD_H_ | |
| #include <limits.h> | |
| #include <stdint.h> | |
| namespace ui { | |
| // Defines the type used for AXNode IDs, which are unique for a given context, | |
| // such as a renderer, or Views, but not guaranteed to be unique within the | |
| // current process or WebContents, which can contain multiple renderers. | |
| // Because Accessibility APIs often need uniqueness within a WebContents, | |
| // a AXUniqueId will be generated in order to differentiate a node in one | |
| // renderer from another. | |
| using AXNodeID = int32_t; | |
| // If a node is not yet or no longer valid, its ID should have a value of | |
| // kInvalidAXNodeID. | |
| // Note: positive AXNodeIDs match DOM node ids generated by Blink. They are used | |
| // for objects that contain that matching DOM node. | |
| static constexpr AXNodeID kInvalidAXNodeID = 0; | |
| // The browser needs to generate an AXNodeID for objects that it inserts in | |
| // the hierarchy, such as "extra mac nodes" | |
| static constexpr AXNodeID kFirstGeneratedBrowserNodeID = -1; | |
| static constexpr AXNodeID kLastGeneratedBrowserNodeID = -999999999; | |
| // A new AXTree is constructed with an empty document. The root must have a | |
| // unique AXNodeID that will not match any other id. | |
| static constexpr AXNodeID kInitialEmptyDocumentRootNodeID = -1000000000; | |
| // The renderer needs to generate an AXNodeID for objects that don't have a DOM | |
| // node. These start with this value and subsequent ids each subtract 1. | |
| static constexpr AXNodeID kFirstGeneratedRendererNodeID = -1000000001; | |
| static constexpr AXNodeID kLastGeneratedRendererNodeID = INT_MIN; | |
| } // namespace ui | |
| #endif // UI_ACCESSIBILITY_AX_NODE_ID_FORWARD_H_ |