Я, вероятно, должен был бы это как комментарий к вашему вопросу, но я думаю, что это могло бы помочь привести вас к правильному ответу, поэтому вместо этого хотел опубликовать в качестве ответа.Я понимаю, что доступность связана с веб-приложениями, но у меня нет опыта работы с приложениями WPF, но, возможно, это сходство поможет.
В html вы можете использовать свойство aria-live
элемента, чтобы при изменении текста внутри него об этом было объявлено.Вы можете контролировать, будет ли анонсирован только небольшой фрагмент текста, который изменился, или будет объявлен весь элемент.
Например:
<span aria-live="true">You have <span id="timeleft">X</span> seconds left</span>
Если «timeleft» изменяется на 5,программа чтения с экрана просто объявит «5».Но это, вероятно, не будет иметь смысла, просто услышав «5».Вы можете использовать свойство aria-atomic
, чтобы прочитать весь текст.(«Атомная» означает «одна единица»)
<span aria-live="true" aria-atomic="true">You have <span id="timeleft">X</span> seconds left</span>
Теперь, когда X изменяется на 5, программа чтения с экрана скажет «У вас осталось 5 секунд».Весь элемент <span>
читается.
Итак, как это связано с вашим первоначальным вопросом?Вы должны быть в состоянии использовать свойства автоматизации, чтобы сделать что-то подобное.В частности, свойство LiveSetting
.Несмотря на то, что этому блогу, « .NET Framework 4.7.1 Специальные возможности и улучшения WPF », исполнился год (сентябрь 2017 г.), он содержит несколько полезных сведений о свойстве LiveSetting
.