Prepare Tkinter 9.1 screenreader support
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
Feature or enhancement
Proposal:
Tcl/Tk adds support for screen-readers in Tk 9.1:
https://www.tcl-lang.org/software/tcltk/9.1.html
The related TIP 733 can be found here:
https://core.tcl-lang.org/tips/doc/trunk/tip/733.md
The C-Api documentation is provided at least here:
https://github.com/tcltk/tk/blob/main/doc/accessible.n
And the actual implementation is here:
https://github.com/tcltk/tk/blob/main/generic/tkAccessibility.c
Even though default values for standard widgets will be present custom widgets drawn by a Canvas can't be foreseen and a user might wish to alternate the defaults.
https://core.tcl-lang.org/tk/tktview/1110144ae9
Since tkinter is a thin wrapper around tk the appropriated API should be something like this:
def accessible(window, **kwargs):
sub = [
'role', 'name', 'description', 'value',
'state', 'action', 'help string'
]
parse = ()
for cmd in sub:
if val:= kwargs.pop(cmd, None):
parse = parse + (cmd, val)
if kwargs:
raise ValueError
window._tk.call('accessible', str(window), *parse)
Might best be placed into Misc.
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
- gh-153246
- gh-153247
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
阅读 TIP 733、Tk 的 accessible.n C-API 文档和 generic/tkAccessibility.c,以了解 Tk 9.1 接口。将提议的方向与链接的 PR gh-153246 和 gh-153247 进行比较,然后确认合适的 Tkinter API 位置,可能是 Misc;当自定义 Canvas 小部件能够提供或覆盖无障碍值时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- accessibility, desktop
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100