Silverlight: Как заставить читателя экрана что-то прочитать? - PullRequest
4 голосов
/ 17 июня 2011

Silverlight делает хорошую работу по обеспечению доступности дерева автоматизации, но есть ли способ программно попросить программу чтения с экрана что-нибудь прочитать?До сих пор я использовал:

        AutomationPeer peer = FrameworkElementAutomationPeer.FromElement(element);
        if (peer == null)
        {
            peer = FrameworkElementAutomationPeer.CreatePeerForElement(element);
        }
        if (peer != null)
        {
            peer.RaiseAutomationEvent(AutomationEvents.AutomationFocusChanged);
        }

Это прекрасно работает в среде отладки Silverlight (т.е. если я запускаю IE из VS), но не работает, если я запускаю IE вне Visual Studio (даже когда он указывает на тот же внутренний сервер разработки ...).Так есть ли еще один простой способ попросить программу чтения с экрана что-нибудь прочитать?

EDIT: она также отлично работает в MS Narrator, но не в NVDA ... странно.

1 Ответ

0 голосов
/ 13 сентября 2011

Я думаю, вы должны сосредоточиться на самом элементе. Программы чтения с экрана отслеживают фокус, а затем читают значения в зависимости от того, на чем фокусируется Если вы инициируете событие AutomationFocusChanged, то оно может обнаружить это, но вернуться к тому же элементу управления, который был ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...