| // 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_ |