Infos sur le dévelopement de NVDA

De April MediaWiki
Cette page a pour objectif de réaliser un document rassemblant des infos aidant au développement de NVDA. Actuellement infos provenant de la liste ALLOS. Elles sont classées par discussions et par messages.

A faire : vérifier les infos, si elles sont encore valables, les réorganiser un peut, reformuler, trouver d'autres infos.


environnement de développement


Pour ceux qui sont intéressés par la programmation NVDA, j'ai réuni tous les outils nécessaires dans un fichier zip pour leur éviter de perdre deux heures sur source forge.

Le fichier est sur: http://msuch.free.fr/nvdatools.zip

Il faut commencer par installer python25.msi puis les autres outils

Le soft appelé TortoiseSVN est celui qui permet de se synchroniser avec le site où se trouvent les sources, enfin tout ça est expliqué dans leur wiki section développement. Je reste à votre disposition pour toute info supplémentaire.


Je suis intéressée par la programmation pour l'amélioration de NVDA et j'ai installé le pack. Je connais un peu le langage python, mais je ne sais pas par quel module commencer, pour bien comprendre le projet NVDA. J'ai aussi peur de faire beaucoup de bêtises en essayant de modifier des instructions du code. Est-il obligatoire d'utiliser TortoiseSVN pour créer une sous-version et contribuer au projet ? Peut-on faire de petites modifications, comme changer certains affichages, ou ajouter certains menus utilitaires… sans avoir besoin de se plonger complètement dans le projet. Par exemple, si je voulais modifier les points suivants, que faudrait-il faire ? : changer la lecture sonore de la date, qui s'obtient par "insert+F12" et qui est actuellement "dimanche avril 22 2007" au lieu de "dimanche 22 avril 2007" (dans la version nvda549) Autre petite amélioration possible : Pour la lecture continue avec "insert+flèche bas", il y a un petit silence à la fin de chaque ligne (comme pour une ponctuation) ce qui n'est pas pratique pour la compréhension d'une phrase qui s'étend sur plus d'une ligne.


TortoiseSVN permet de se synchroniser avec le projet: récupérer par exemple les dernières mises à jour. Ça ne marche que dans le sens serveur client. Donc, si tu mets à jour un fichier chez toi, pas de crainte, il ne sera pas répercuté sur le serveur. Pour mettre à jour le serveur il faut des autorisations. Personnellement, je ne les pas demandées craignant de faire des bêtises. Quand je change quelque chose, j'envoie le fichier à Mick qui met à jour le serveur.

Pour la date, le script se trouve dans le répertoire appmodules dans le fichier _default.py. De mémoire il s'appelle datetime. Sur la mailing liste de développement, nous avons souvent évoqué le problème mais ça semble un peu compliqué à résoudre.

Pour la pause en fin de ligne, je ne sais pas, je pourrais poser la question sur la liste de développement.



n v d a et python

j'ai installé l'idle de python sans problème, mais en réalité ce que je voulais installer c'est python win version 2.5 je pense. ATTENTION: Quelqu'un aurait le lien de téléchargement? J'aimerais compiler avec ce soft.


J'ai mis l'ensemble des outils à installer ici: http://msuch.free.fr/nvdatools.zip


Merci, mais lequel des fichiers à l'intérieur est le soft pour compiler, merci de votre aide, car je ne sais pas par lequel je dois installer.


Il faut savoir que python est un langage interprété, le terme de compilation est donc un peu abusif. Je suppose que vous voulez compiler NVDA. Dans ce cas, il faut installer l'ensemble des outils contenus dans mon archive.

Pour compiler NVDA, aller en ligne de commande dans le répertoire vnda\source puis exécuter la commande setup.py py2exe. Cela va créer un répertoire dist dans lequel se trouvera nvda.exe et tous les composants nécessaires. En fait, ce répertoire revient au répertoire NVDA qu'on peut installer sur son ordi. Je me demande brusquement si py2ex est présent dans mon archive, je pense que oui.



Liens pour le langage python


Voici quelques liens importants. Le premier est un tuto de 19 chapitres qui nous montre comment écrire du langage python. Il est très bien fait: http://www.cifen.ulg.ac.be/inforef/swi/python.htm Celui-ci c'est des archives sur un forum de 200 messages et il est très intéressant: http://www.developpez.net/forums/archive/index.php/f-170.html Ici vous trouverez 10 exemples de création des fenêtres wxPython. http://alain72.developpez.com/tutos/wxPython/ Ici pour les développeurs Francophones. Il y a la plupart des langages. http://python.developpez.com/faq/?page=Py2exe

Il y a un journal qui sort tous les mois et voici l'adresse du dernier: http://magazine.developpez.com

Voici les 11 premiers: http://magazine.developpez.com. Le nullSoft, la toute dernière version 2.30, est en français avec le tuto en français. Il faut faire la recherche de NullSoft fr Le Python25 vient avec un interpréteur ce qui nous permet en tout temps de cliquer sur la touche de raccourcie et d'insérer notre code pour voir si c'est bien écrit.

Un peu plus tard, il va vous falloir le Py2SetUp qui vous permettra de compiler vos bouts de programme.

Voici un lien pour Py2 et des tutos. http://www.py2exe.org/index.cgi/Tutorial

Bonne programmation!



python

Je cherche des cours de programmation sur le langage python, pouvez-vous me dire où je peux trouver des cours simples et faciles à comprendre ?


Comme j'envisage de m'y mettre j'ai dans mes favoris ces liens ... http://python.developpez.com/cours/TutoSwinnen/

http://diveintopython.adrahon.org/

http://www.developpez.net/forums/archive/index.php/f-170.html

Dans ces pages tu trouveras, en bas, des liens pour télécharger les cours en format html offline...


pour apprendre à programmer en python : http://www.framasoft.net/article1971.html http://python.50webs.com/ http://python.developpez.com/cours/TutoVanRossum/ http://pythonfacile.free.fr/python/ressources.html http://www.tuxfinder.com/french/Python/python_tut_html-1.5.2_fr_2.0/tut/tut.html E.T.C. ...

en PDF : http://www.dil.univ-mrs.fr/~garreta/PythonBBSG/docs/TutorielPython.pdf


Est ce que dans python, les indentations sont obligatoires ?


Elles sont primordiales.


J'utilise ActivePython-2.6.1.1-win32-x86.msi il me semble très accessible et en anglais, Ai-je le bon ? Aussi quelqu'un aurait il un lien d'abonnement pour une liste de discussion ?


Effectivement les indentations font partie intégrante de la grammaire Python. Peut-être qu'un éditeur de texte comme EdSharp pourrait être d'une aide assez précieuse pour une synthèse vocale à ce sujet. Mais il n'existe qu'en anglais aujourd'hui.

Pour la liste, pourquoi ne pas faire revivre Progliste qui existe toujours d'ailleurs?


En y regardant de plus près, je me suis aperçu que Python n'aimait tout simplement pas le fait que certaines de ces lignes fussent indentées par des caractères de tabulation et d'autres, par des espaces.

Autrement dit, j'ai appris à mes dépens qu'il faut non seulement indenter correctement mais qu'en plus, Python réclame que tout soit indenté pareil, c'est-à-dire que dans un même script Python, il est bien préférable de n'utiliser qu'une seule façon d'indenter: soit des tabs, soit des espaces. Sûrement, on peut utiliser les deux façons de faire dans certaines conditions mais ça devient vite le foutoir pour éviter les erreurs.



programmation python


J'aimerais savoir comment il faut faire pour apprendre le langage python et quelle est la méthode la plus simple pour l'apprendre ?


Tu trouveras un petit cours python sans prétention dans la page : http://studyvox.biwi.ca/langage/langage_sommaire.php


Personnellement, j'aime beaucoup "Apprendre à programmer avec Python" de Gérard Swinnen, que l'on peut consulter à l'adresse plus bas. Je le trouve vraiment très clair. On le trouve ici, en ligne ou téléchargeable au format PDF : http://python.developpez.com/cours/TutoSwinnen/

Pour le télécharger en PDF (il est bien lisible chez moi), il faut prendre le Python_notes.pdf, pas ceux nommés "Version hors-ligne" et "Version PDF". On arrive à ce Python_Notes.pdf via le "III. Téléchargement".

Bonne lecture,


J'aurais une autre petite question, où peut-on trouver le soft de compilation, est-il gratuit ?


Oui, le soft est gratuit. On peut trouver tous les liens nécessaires par exemple sur le site de NVDA. http://www.nvda-project.org à la rubrique qui doit s'appeler running NVDA from source.

Bon après c'est une longue balade dans les méandres de Sourceforge. Sinon, j'ai tout ce qu'il faut sous la main, si on me le demande gentiment, je peux faire un petit zip.


J'ai donc fait un fichier zip contenant tous les éléments nécessaire pour exécuter/compiler du python. En fait, j'ai mis la boîte à outils complète de NVDA. Il y a dans la boîte un petit fichier lisezmoi.txt qui explique plus que succinctement le contenu. Pour le télécharger: http://msuch.free.fr/nvda_tools.zip

C'est une rubrique du site interactif studyvox.biwi.ca, qui contient aussi des cours sur d'autres langages utiles aux aveugles.


Est-ce que quelqu'un a réussi à télécharger le fichier source de NVDA?


Pour télécharger le source de NVDA, il faut d'abord installer TortoiseSVN qu'on peut télécharger ici: http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.4.8.12137-win32-svn-1\ .4.6.msi?download

Après installation de TortoiseSVN, créer un répertoire NVDA. Une fois le répertoire créé ouvrir son menu contextuel. Parmi les options telles que ouvrir avec, envoyer vers etc. valider sur l'option "svn checkout".

Là, il faut renseigner l'adresse du serveur où se trouve NVDA dans la zone appropriée: Cette adresse est: http://svn.nvda-project.org/nvda/trunk/

Ensuite, cliquer sur ok. Et voilà, ton répertoire NVDA devrait se peupler de plein de jolis fichiers *.py et autres.



python


Il me semble avoir lu que le développeur de NVDA était non-voyant. Si c'est le cas, est-ce que quelqu'un sait, ou pourrait lui demander, de quelle manière et avec quel environnement il programme ?


Tu as écrit:

- Pour connaître l'environnement nécessaire pour compiler/modifier NVDA, voir ici: http://www.nvda-project.org/wiki/AccessingAndRunningSourceCode

- Pas tout à fait. Cette page te dit comment tu vas faire pour récupérer le code source de NVDA mais il te faut malheureusement récupérer ledit code source pour en extraire ce fameux "dependencies.txt" dont ils parlent. Et, comme malheureusement, je fais un tout petit peu de python mais sous linux, je n'ai pas eu la curiosité de récupérer le code source de NVDA. Y comprendrai-je quelque chose d'ailleurs? Pas sûr ou du moins, il me faudrait plus de temps que j'en ai.

Ceci dit, si toi qui as extrait ce code, as quelque part ce fichier "dependencies.txt", et qu'il y est indiqué un environnement Python à utiliser plutôt qu'un autre, ça peut intéresser notre ami.

- Pour discuter programmation avec les développeurs de NVDA, il faut s'abonner à leur liste de discussion sur le développement: nvda-dev-request@...

[...] elle est plutôt faite pour discuter du développement de NVDA que pour aborder des sujets plus généraux concernant la programmation.

- Pour ce dernier point, je me suis abonné à une liste anglophone aussi qui s'appelait "blind programming". Pour s'y abonner, on écrit à

programmingblind-request@...

En mettant "subscribe" dans l'objet.

Sur cette liste aussi, les programmeurs DV en python sous Windows semblaient s'accorder sur ActivePython. Enfin, pas tout à fait. Il y avait les durs de durs qui se contentaient de l'interprète/compilo python réduit à sa plus simple expression. Ceux-là rentraient généralement leur code avec un éditeur de texte totalement indépendant, (genre Edsharp par exemple).

Et il y avait les autres qui disaient utiliser ActivePython. Mais encore une fois, je ne saurai en dire plus.

Quant à savoir si c'est ActivePython ou un autre environnement qui a servi ou sert encore au développement de NVDA, je ne saurais dire. Et même, si ça se trouve, tous les développeurs n'utilisent pas le même environnement.


Voici le contenu du fichier depehdencies.txt:

The NVDA source depends on several other packages to run correctly. Below is a list of the relevant packages along with the URLs where the packages can be obtained. Python 2.6, including 2.6.x: http://www.python.org/ comtypes, version 0.6.0 or later: http://www.sourceforge.net/projects/comtypes/ wxPython unicode (for Python 2.6), version 2.8.9.1 or later: http://www.wxpython.org/ Python Windows Extensions (for Python 2.6), build 212 or later: http://www.sourceforge.net/projects/pywin32/ Several other packages, made available for convenience in the NVDA miscellaneous dependencies package, version 2009-04-16-01 or later: http://www.nvda-project.org/wiki/MiscellaneousDependencies

To build a binary version of NVDA, you will also need: Py2Exe (for Python 2.6), version 0.6.9 or later: http://www.sourceforge.net/projects/py2exe/ Nulsoft Install System, version 2.42 or later: http://nsis.sourceforge.net/


Quant à comprendre le code source, il faudrait tout d'abord étudier le document décrivant l'architecture générale de NVDA. Ce document est très instructif et permet de se repérer dans la jungle des différents éléments. Maintenant, c'est vrai que ce n'est pas forcément du code immédiatement accessible à un programmeur Python du dimanche comme moi.

Le document d'architecture est ici: http://www.nvda-project.org/wiki/DesignOverview


In english of course.


Finalement en surfant, je viens de tomber sur une page ou il y a quelques éditeurs plus ou moins dédiés python. Et quand je dis quelques ... http://wiki.python.org/moin/PythonEditors#Windows-OnlyEditors



éditeur python compatible avec nvda ou jaws


Je viens de me mettre au langage Python, et je recherche un éditeur de préférence en open source qui serait compatible avec Jaws et NVDA. En effet, j'ai installé la dernière version de Python qui comprend l'éditeur Idle, mais ça ne marche pas avec Jaws ni NVDA.


Le meilleur jusqu'à date est le NotePad ! En voici un autre: pspad452inst_en.exe Il est accessible avec Jaws mais avec NVDA, je ne l'ai pas encore essayé. Moi je préfère de loin utiliser le NotePad et changer son extension en .py.



quel éditeur pour PYTHON ?


Salut Michel,

J'aimerais savoir de quel éditeur de texte se sert Mike pour créer les sources de NVDA. En tous cas, j'en cherche un qui soit à peu près compatible avec Jaws… d'avance, merci.


Je peux lui poser la question, personnellement j'utilise indifféremment le Bloc-Note ou Wordpad. Il y a peut-être un éditeur qui met en valeur la syntaxe mais ça n’aide pas toujours.


J'essaie d'utiliser Idle mais, l'accessibilité est minimale… Peut-être alors, Notepad, pourquoi pas ! Si d'autres ont d'autres idées, ça m'intéresse ! Sous linux, il en existe une flopée mais sous Win, ce n'est pas le cas.


Textpal tout simplement, ça peut pas le faire ?


Si si, ça le fait très bien aussi.


il y a celui qui suit si bas, langage multiple. Voici l'info

About SciTE SciTE Version 1.73 Mar 31 2007 09:25:11 by Neil Hodgson. December 1998-March 2007. http://www.scintilla.org Lua scripting language by TeCGraf, PUC-Rio http://www.lua.org

Un éditeur facile avec Jaws.


Mon fils utilise Scite comme éditeur pour python. Amitiés. A+



NVDA et Word


Je viens de constater un phénomène curieux…

Sur mon pc portable équipé de Word 2000 et de la dernière version de NVDA (version nomade), les documents Word s'ouvrent et se lisent sans problème.

Mais sur mon pc de bureau équipé de Word 2003 et sur lequel j'utilise toujours la même mouture de NVDA en version nomade, un bip d'erreur retentit à l'ouverture des documents Word, mais la lecture de ces derniers n'en est pas affectée.


En fait, le bruit que tu as entendu est surtout fait pour les développeurs. Il indique que NVDA a rencontré un problème et ça génère un fichier log dans lequel on trouve la description de l'erreur. Il faudra que j'essaie de reproduire le problème et j'enverrai le fichier log au programmeur pour qu'il puisse corriger. En pratique, pour l'utilisateur, ça ne signifie pas toujours un problème majeur.


Comme j'ai un plantage avec Word si çà t'intéresse je pourrais t'envoyer alors mon fichier log. Par contre je n'ai rien en .log, donc il faudra que tu me dises l'extension ou le nom du fichier.


Le fichier s'appelle nvda_debug.log. Chez moi, il se trouve dans le répertoire "local settings/temp" de l'utilisateur en cours.



console python


Est ce que quelqu'un peut me dire à quoi sert la console python dans le menu outil de NVDA ?


A rien, du moins pour l'utilisateur. Elle sert pour les développeurs pour suivre l'exécution du programme. Ça peut aider à trouver l'endroit de la panne en cas de bug.



Le langage python!

Une fois le Python25 installé, on installe le programme py2.exe. Ensuite, il faut connaître un peu le langage python donc on crée un fichier ou un petit programme dans un fichier qui se nommera par exemple jeu.py. A l'intérieur de ce jeu, nous écrivons nos fonctions et instructions. Exemple: dans jeu.py j'écris print "salut Richard" Si je veux que Salut Richard s'affiche dans la fenêtre, je peux passer par l'interpréteur python et en important le fichier jeu, à l'écran va s'afficher salut Richard. Si je veux créer un exécutable avec tous les fichiers nécessaires, je dois créer un autre fichier que je vais nommer setup.py A l'intérieur, je vais écrire les lignes suivantes: from distutils.core import setup import py2exe setup(console=["jeu.py"]) Dans la dernière ligne, j'ai écris le nom du fichier.py que je veux qui se lance. Comme le mot console est écrit cela va se passer dans une fenêtre dos et si je veux l'exécuter a partir d'une fenêtre Windows j'aurais écris Windows au lieu de console. Maintenant compilons notre fichier jeu.py Il suffit dans la fenêtre exécuter dans le démarrage du window d'écrire ceci: c:/Python25/python.exe setup.py py2exe puis de faire entré. Le python2.exe va nous créer 2 dossier dans le dossier Python25 et ces dossiers vont se nommer: build et dist. Le build ne sert pas a grand chose pour le moment et les fichiers compilés, dont le jeu.exe vont se trouver dans le dossier dist Voilà je l'ai fait a plusieurs reprises hier et cela fonctionne bien.

__________________________________________________________


Python - Bibli adapté

Je suis débutant en programmation python et j'aimerais savoir quelle bibliothèque graphique serait adaptée pour utilisation avec NVDA? Je fais pour l'instant que de la console mais c'est assez limité et je voudrais un jour faire de vraies fenêtres qui pourraient être lu avec NVDA ou d'autres logiciels d'accessibilité telle qu’ORCA, Jaws ou des aplis sur mac. J'utilise Komodo Edit car on peut paramétrer la taille de la police ainsi qu'un contraste blanc sur noir dans l'applis même et j'aimerais faire du Boa Constructor si WX est adapté.


En essayant des exemples proposés par le site… La plupart des objets graphiques de la librairie WX sont plutôt accessibles avec NVDA et JAWS. D'ailleurs j'ai mémoire que NVDA utilise WX pour son interface graphique. Par contre, j'ai testé un très grand nombre d'éditeur ou IDE pour le python et je n'en ai trouvé aucun satisfaisant. En général si la lecture est correcte, la sélection de texte n'est pas sonorisé, et c'est le cas avec Comodo et Boa

Cette liste est plus particulièrement dédié à la programmation en général : progliste-request@…?subject=subscribe

Un des membres développe en ce moment un éditeur qui devrait faciliter l'édition de code python.



Création d'une fenêtre avec python

L'interface graphique qui est faite par défaut sous python est TKWidget, qui est moyennement accessible, pour les boutons il faut associer les classes si je m'en souvent bien mais ce n'est quand même pas utilisable avec NVDA ou Jaws.

Par contre NVDA utilise WXPython tiré de la bibliothèque en C, WXwidgets qui génère une interface graphique identique au système d'exploitation sur lequel elle est utilisée, sous Windows elle fait des fenêtres et boîte de dialogue en utilisant le guide Windows, donc utilisable avec NVDA et Jaws.

Par contre avant de finir j'ajouterai que pour programmer en wxpython il faut une bonne connaissance de la programmation orientée objet.



NVDA modifier une touche

Bonjour qui a réussi à mettre en application le tuto de Michel pour modifier la touche de raccourci d'un script, exemple insert +f12, pourrais je avoir votre fichier pour que je puisse jeter un coup d'œil ?


Euh, d'abord ce n'est pas le tuto de Michel, c'est la traduction du manuel d'utilisation. Tu as un exemple dans le sous-répertoire locale\tr de NVDA. Le fichier s'appelle gesture.ini


Je viens de regarder et, en s'appuyant sur le manuel, ça marche très bien. Exemple : La séquence suivante réassigne l'annonce de la date et heure à la combinaison NVDA+maj+t :

[globalCommands.GlobalCommands] dateTime = kb:NVDA+shift+t None = kb:NVDA+f12

Tu mets ces trois lignes dans un fichier gestures.ini que tu places dans le répertoire correspondant à "explorer les paramètres utilisateur de NVDA".



script NVDA navigation par fenêtre

Est-ce que quelqu'un pourrait demander aux concepteurs de NVDA ou sont les fonctions pour naviguer parmi les fenêtres ? Cela fait plus d'une semaine que je cherche sans strictement rien trouver.


Qu'appelles-tu naviguer parmi les fenêtres? Parles-tu de la navigation par objet, de la navigation dans l'écran…


je ne parle surtout pas de la navigation par objet mais par fenêtre avec l’utilisation des handles du style getNextWindow,getFirstChild,GetPriorWindow E.T.C. … Oui au final on navigue dans l'écran, la navigation par objet est beaucoup moins performante. J'aurais pu utiliser les apis Windows, mais la c'est beaucoup trop difficiles.


Je dirais que ça se trouve dans globalCommands.py



liste des touches de scripts d'NVDA


Voici un fichier ou il y a toutes les touches de scripts d'NVDA : http://dl.dropbox.com/u/5497034/envoie/listeScriptNVDA.VSNT il faut lire le fichier avec Visu Note.



Utilisation du message "Fwd: [NVDA-dev] Share Your NVDA Plug-ins With The World" ? [1]