blob: 29d45bde52a69963b4029d3fd113e3489a1467ec [file] [log] [blame]
// 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.
#include "ui/accessibility/platform/ax_platform_node_delegate_utils_win.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/accessibility/ax_role_properties.h"
#include "ui/accessibility/platform/ax_platform_node.h"
#include "ui/accessibility/platform/ax_platform_node_delegate.h"
namespace ui {
bool IsValuePatternSupported(AXPlatformNodeDelegate* delegate) {
// https://docs.microsoft.com/en-us/windows/desktop/winauto/uiauto-implementingvalue
// The Value control pattern is used to support controls that have an
// intrinsic value not spanning a range and that can be represented as
// a string.
//
// IValueProvider must be implemented by controls such as the color picker
// selection control [...]
// https://www.w3.org/TR/html-aam-1.0/
// The HTML AAM maps "href [a; area]" to UIA Value.Value
return IsRangeValueSupported(delegate->GetData()) ||
IsReadOnlySupported(delegate->GetData().role) ||
IsLink(delegate->GetData().role) ||
delegate->GetData().role == ax::mojom::Role::kColorWell ||
delegate->IsCellOrHeaderOfARIAGrid();
}
} // namespace ui