AssistiveSupport.screenReaderStatusChanged
Описание
Событие, вызванное в основном потоке, когда пользователь включает или выключает экранный читатель.
Подпишитесь на это событие, чтобы активировать AccessibilityHierarchy (см.
AssistiveSupport.activeHierarchy) и нужно ли адаптировать интерфейс приложения для пользователей программ чтения с экрана.
Вы также можете использовать AssistiveSupport.isScreenReaderEnabled чтобы определить, включено или отключено экранное чтение.
Поддержка платформы: Это событие не поддерживается Диктором, встроенным экранным читателем Windows.
В следующем примере показано потенциальное обходное решение для опроса состояния диспетчера и отправки пользовательского события.
using System; using UnityEngine; using UnityEngine.Accessibility;
namespace UnityEngine.Accessibility.Examples { public class NarratorStatusManager : MonoBehaviour { // Event invoked when the user turns Narrator on or off. public static event Action<bool> narratorStatusChanged;
bool m_IsNarratorEnabled;
// Time interval at which to check Narrator's status. float m_CheckInterval = 5.0f; float m_TimeSinceLastCheck = 0.0f;
void Start() { m_IsNarratorEnabled = AssistiveSupport.isScreenReaderEnabled; }
void Update() { if (Application.platform == RuntimePlatform.WindowsPlayer) { // Poll Narrator's status because it does not send AssistiveSupport.screenReaderStatusChanged events. m_TimeSinceLastCheck += Time.deltaTime;
if (m_TimeSinceLastCheck >= m_CheckInterval) { bool isScreenReaderEnabled = AssistiveSupport.isScreenReaderEnabled;
if (m_IsNarratorEnabled != isScreenReaderEnabled) { m_IsNarratorEnabled = isScreenReaderEnabled;
narratorStatusChanged.Invoke(m_IsNarratorEnabled); }
m_TimeSinceLastCheck = 0.0f; } } } } }