blob: 5f9e2ae6a5e4c6ff43000f48f7766c4b152051e0 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_PUBLIC_BROWSER_SCOPED_ACCESSIBILITY_MODE_H_
#define CONTENT_PUBLIC_BROWSER_SCOPED_ACCESSIBILITY_MODE_H_
#include "content/common/content_export.h"
#include "ui/accessibility/ax_mode.h"
namespace content {
// An object that binds the application of one or more accessibility mode flags
// to the process, a BrowserContext, or a WebContents for the duration of its
// lifetime. See BrowserAccessibilityState for factory functions.
class CONTENT_EXPORT ScopedAccessibilityMode {
public:
ScopedAccessibilityMode(const ScopedAccessibilityMode&) = delete;
ScopedAccessibilityMode& operator=(const ScopedAccessibilityMode&) = delete;
virtual ~ScopedAccessibilityMode() = default;
// Returns the accessibility mode flags applied by this instance to
// WebContentses in its scope.
ui::AXMode mode() const { return mode_; }
protected:
explicit ScopedAccessibilityMode(ui::AXMode mode) : mode_(mode) {}
private:
const ui::AXMode mode_;
};
} // namespace content
#endif // CONTENT_PUBLIC_BROWSER_SCOPED_ACCESSIBILITY_MODE_H_