python / python/cpython

Prepare Tkinter 9.1 screenreader support

Ouverte
#145,578 9 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

extension-modules stdlib topic-tkinter type-feature
Langage dominant
Python
Étoiles
77.2k
Forks
35.9k
Métriques de merge des PR
Métriques de PR en attente

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Lisez TIP 733, la documentation de l’API C accessible.n de Tk et generic/tkAccessibility.c pour comprendre l’interface de Tk 9.1. Comparez l’orientation proposée avec les PR liés gh-153246 et gh-153247, puis confirmez l’emplacement approprié de l’API Tkinter, éventuellement Misc ; le travail est terminé lorsque des widgets Canvas personnalisés peuvent fournir ou remplacer des valeurs d’accessibilité.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
accessibility, desktop
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.