chromium/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.h

// 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_SPARSE_ATTRIBUTE_SETTER_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_SPARSE_ATTRIBUTE_SETTER_H_

#include "base/memory/raw_ref.h"
#include "third_party/blink/renderer/core/aom/accessible_node.h"
#include "third_party/blink/renderer/core/aom/accessible_node_list.h"
#include "third_party/blink/renderer/modules/accessibility/ax_object.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
#include "ui/accessibility/ax_node_data.h"

namespace blink {

// A map from attribute name to a callback that sets the |value| for that
// attribute on an AXNodeData.
//
// That way we only need to iterate over the list of attributes once,
// rather than calling getAttribute() once for each possible obscure
// accessibility attribute.

AXSparseSetterFunc;
AXSparseAttributeSetterMap;

AXSparseAttributeSetterMap& GetAXSparseAttributeSetterMap();

class AXNodeDataAOMPropertyClient : public AOMPropertyClient {};

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_SPARSE_ATTRIBUTE_SETTER_H_