|  | // Copyright 2013 The Flutter 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 FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_PLUGIN_H_ | 
|  | #define FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_PLUGIN_H_ | 
|  |  | 
|  | #include <string_view> | 
|  |  | 
|  | #include "flutter/fml/macros.h" | 
|  | #include "flutter/shell/platform/common/client_wrapper/include/flutter/binary_messenger.h" | 
|  |  | 
|  | namespace flutter { | 
|  |  | 
|  | class FlutterWindowsEngine; | 
|  |  | 
|  | // Handles messages on the flutter/accessibility channel. | 
|  | // | 
|  | // See: | 
|  | // https://api.flutter.dev/flutter/semantics/SemanticsService-class.html | 
|  | class AccessibilityPlugin { | 
|  | public: | 
|  | explicit AccessibilityPlugin(FlutterWindowsEngine* engine); | 
|  |  | 
|  | // Begin handling accessibility messages on the `binary_messenger`. | 
|  | static void SetUp(BinaryMessenger* binary_messenger, | 
|  | AccessibilityPlugin* plugin); | 
|  |  | 
|  | // Announce a message through the assistive technology. | 
|  | virtual void Announce(const std::string_view message); | 
|  |  | 
|  | private: | 
|  | // The engine that owns this plugin. | 
|  | FlutterWindowsEngine* engine_ = nullptr; | 
|  |  | 
|  | FML_DISALLOW_COPY_AND_ASSIGN(AccessibilityPlugin); | 
|  | }; | 
|  |  | 
|  | }  // namespace flutter | 
|  |  | 
|  | #endif  // FLUTTER_SHELL_PLATFORM_WINDOWS_ACCESSIBILITY_PLUGIN_H_ |