123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // Copyright 2019 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 UI_BASE_TEST_NS_AX_TREE_VALIDATOR_H_
- #define UI_BASE_TEST_NS_AX_TREE_VALIDATOR_H_
- #include "third_party/abseil-cpp/absl/types/optional.h"
- @protocol NSAccessibility;
- namespace ui {
- struct NSAXTreeProblemDetails {
- enum ProblemType {
- // |node_a| (the child node) is not a child of |node_b| (its parent).
- NSAX_NOT_CHILD_OF_PARENT,
- // |node_a| (the child node) is a child of |node_b|, but |node_a|'s parent
- // is |node_c| instead.
- NSAX_CHILD_PARENT_NOT_THIS,
- // |node_a| (a supplied root node) is non-nil but does not conform to
- // NSAccessibility.
- NSAX_NOT_NSACCESSIBILITY,
- // |node_a| (the child node)'s parent |node_b| is non-nil but does not
- // conform to NSAccessibility.
- NSAX_PARENT_NOT_NSACCESSIBILITY,
- };
- NSAXTreeProblemDetails(ProblemType type, id node_a, id node_b, id node_c);
- ProblemType type;
- // These aren't id<NSAccessibility> because some kinds of problem are caused
- // by them not conforming to NSAccessibility.
- id node_a;
- id node_b;
- id node_c;
- std::string ToString();
- };
- // Validates the accessibility tree rooted at |root|. If at least one problem is
- // found, returns an |AXTreeProblemDetails| as described above; if not, returns
- // absl::nullopt.
- absl::optional<NSAXTreeProblemDetails> ValidateNSAXTree(
- id<NSAccessibility> root,
- size_t* nodes_visited);
- // Prints the accessibility tree rooted at |root|. This function is useful for
- // debugging failures of ValidateNSAXTree tests.
- void PrintNSAXTree(id<NSAccessibility> root);
- } // ui
- #endif // UI_BASE_TEST_NS_AX_TREE_VALIDATOR_H_
|