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

为Python程序添加屏幕阅读器无障碍功能,解决PySimpleGui文本NVDA无法识别问题

PySimpleGUI Windows程序NVDA屏幕阅读器适配方案

问题原因

你遇到的读取失效问题是默认配置下,PySimpleGUI的输入控件没有关联可访问性标识,NVDA基于Windows UIA/MSAA接口读取控件信息时,无法将输入框和旁侧的提示文本做关联,因此无法读出对应的问题内容。

具体修复步骤

  • 第一步:升级到PySimpleGUI 4.60.0及以上版本,该版本开始原生支持Windows平台可访问性参数配置
  • 第二步:全局开启可访问性支持,在初始化布局前添加配置
  • 第三步:给所有交互控件添加accessible_name属性,属性值和对应提示文本完全一致即可

代码示例

原错误写法(NVDA无法识别)

import PySimpleGUI as sg

# 无 accessibility 配置
layout = [
    [sg.Text("请输入CPU型号:"), sg.Input(key="-CPU-")],
    [sg.Text("请输入内存容量:"), sg.Input(key="-RAM-")],
    [sg.Button("提交")]
]

window = sg.Window("硬件信息采集", layout)

适配后写法(NVDA可正常读取)

import PySimpleGUI as sg

# 开启Windows平台可访问性支持
sg.set_options(enable_accessibility=True)

layout = [
    [sg.Text("请输入CPU型号:"), sg.Input(key="-CPU-", accessible_name="请输入CPU型号")],
    [sg.Text("请输入内存容量:"), sg.Input(key="-RAM-", accessible_name="请输入内存容量")],
    [sg.Button("提交", accessible_name="提交硬件信息")]
]

window = sg.Window("硬件信息采集", layout)

额外注意事项

  • 单选框、复选框、下拉选择框等其他交互控件都需要补充accessible_name属性
  • 如果提示文本有动态更新,需要同步更新对应控件的accessible_name,更新语法为 window["控件KEY"].update(accessible_name="新的提示内容")
  • 测试时按Tab切换控件,NVDA能正常读出对应提示文本即为适配成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:39:03