You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP应用中Windows讲述人无法读取Webview与Textblock内容的解决咨询

UWP 无障碍:解决Windows讲述人无法读取WebView与TextBlock文本的问题

TextBlock 控件解决方案

  • 确保IsTabStop属性设为True,讲述人默认不会主动读取无法通过Tab键聚焦的元素;如果是长文本,将TextBlock嵌套在ScrollViewer内,方便讲述人滚动读取。
  • 显式指定AutomationProperties.Name,强制定义讲述人读取的内容,示例XAML:
    <TextBlock Text="订单详情" AutomationProperties.Name="您的订单编号:20240501001,状态:已完成"/>
    
  • 检查父控件的AutomationProperties.AccessibilityView属性,若父元素设为Hidden会屏蔽子元素的无障碍信息,建议设为Raw。

WebView 控件解决方案

  • 优先确保加载的网页符合无障碍标准:使用语义化HTML标签(<h1>-<h6>、<p>、<article>等),避免用无意义的<div>堆砌文本;给重要内容添加aria-label或aria-labelledby属性。
  • 在WebView加载完成后注入脚本强制开启无障碍支持,C#示例代码:
    private async void WebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
    {
        if (args.IsSuccess)
        {
            await sender.InvokeScriptAsync("eval", new[] { @"
                // 为所有文本元素补充无障碍属性
                document.querySelectorAll('p, div, span').forEach(el => {
                    if (!el.hasAttribute('role')) el.setAttribute('role', 'text');
                    const text = el.textContent.trim();
                    if (text && !el.hasAttribute('aria-label')) {
                        el.setAttribute('aria-label', text);
                    }
                });
            " });
        }
    }
    
  • 若加载本地HTML文件,直接在HTML代码中完善无障碍属性,比如给文本容器添加role="region"并指定aria-label。
  • 确认WebView的IsEnabled为True,禁用状态下讲述人会忽略控件内的所有内容。

通用排查步骤

  • 使用Accessibility Insights for Windows工具扫描应用,该工具会精准定位无障碍缺陷,比如缺失的自动化属性、不可聚焦的元素等。
  • 确保应用目标版本至少为Windows 10 1809(Build 17763),微软在该版本后优化了WebView的无障碍支持。

内容的提问来源于stack exchange,提问作者MervelMath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:22:39