【问题标题】:Narrator. Is there an alternative DialogContent?叙述者。有替代的 DialogContent 吗?
【发布时间】:2017-06-07 09:42:18
【问题描述】:

我的应用中有很多 Custom 和 UserControl。

对于 DialogContent,讲述人仅在控件内部使用组合键“Caps Lock”+“Arrow”读取, 但是对于 CustomControlUserControl,叙述者会读取所有自动化树(外部控制)。

如何使 CustomControl 具有 DialogContent 特性(仅在控件内部读取)?

有替代的 DialogContent 吗?

【问题讨论】:

  • 你能给我们一些图片帮助我们了解吗?
  • @lindexi 是的,我编辑了这个任务的描述。
  • @lindexi 蓝框表示使用组合键(“CapsLock”+“箭头”)移动时叙述者的位置。
  • @lindexi,你有什么想法吗?
  • 我觉得我做不到。

标签: c# xaml uwp uwp-xaml narrator


【解决方案1】:

您可以在 AutomationProperties Class 中使用 XAML 附加属性。在您的情况下,您可以在自定义控件的任何部分上设置 AutomationProperties.AccessibilityView="Raw",以防止讲述人访问这些部分。

使用此属性的主要场景是故意从 UI 自动化视图中省略模板中的某些控件,因为它们对整个控件的可访问性视图没有有意义的贡献。例如,如果您查看默认控件模板,您会经常看到此 XAML 属性应用于作为控件组合一部分的 ContentPresenter 或 TextBlock,将 AutomationProperties.AccessibilityView 设置为“Raw”。如果没有这样做,文档视图或控件视图会将这些部分视为不同的 UI 自动化元素,而不是不重要的控制部分。 UI 自动化树的“原始”视图通常仅由自动化工具或某些更高级辅助技术产品中的特殊模式使用。 (来源:MSDN

【讨论】:

  • 感谢您的回答,但我有非常大的 UI 自动化树并且将所有元素的“AutomationProperties.Accessibility View”设置为“Raw”非常困难。此外,这种情况对于跳过错误非常危险。所以我正在寻找具有 CocntentControl 属性的默认控件或编写具有这些属性的自定义控件的示例。
  • ContentDialogs 显示在与所有内容不同的可视树根中,这就是讲述人仅“读取内部”控件的原因。对话框中未读取的任何内容都将其 AccessibilityView 设置为 Raw,并且控件自动化对等处理任何其他可访问性行为。如果您想要一个自定义对话框,您可以创建一个从 ContentDialog 派生的自定义控件,它具有所有相同的属性。如果您希望自定义控件内联在应用的主树中,则需要将所有内容设置为原始控件,或者您可以编写自定义自动化对等体。
  • David Grochocki,谢谢,现在我了解了如何为内容对话框和用户控件创建自动化树。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多