NVDA Dev & Test Toolbox

Cette extension rassemble diverses fonctionnalités pour le débogage et les tests dans NVDA.

Fonctionnalités

Commandes

Cette extension utilise des commandes séquentielles pour toutes les nouvelles commandes qu'elle ajoute. Le point d'entrée de ces commandes est NVDA+X ; ainsi, toutes les commandes doivent être exécutées par NVDA+X suivi d'une autre lettre ou geste. Vous pouvez obtenir la liste de toutes les commandes séquentielles en appuyant sur NVDA+X, H.

Pour les commandes que vous utilisez plus fréquemment, vous pouvez également définir un geste direct dans la boîte de dialogue Gestes de commandes.

Dialogue de redémarrage amélioré

La commande NVDA+X, Q ouvre un dialogue pour indiquer des options supplémentaires avant de redémarrer NVDA. Les options qui peuvent être spécifiées correspondent aux options de ligne de commande qui peuvent être utilisées avec nvda.exe, telles que -c pour le chemin de configuration, --disable-addons pour désactiver les extensions, etc.

Fonctionnalités liées aux erreurs enregistrées

Annoncer la dernière erreur enregistrée

Un appui sur NVDA+X, E permet d'annoncer la dernière erreur enregistrée sans avoir à ouvrir le journal. Un deuxième appui efface la dernière erreur mémorisée.

Jouer un son pour les erreurs journalisées

Le paramètre "Jouer un son pour les erreurs journalisées" a été introduit dans NVDA 2021.3 et vous permet de spécifier si NVDA jouera un son d'erreur dans le cas où une erreur est journalisée.

Cette extension fournit une commande supplémentaire (NVDA+X, maj+E) pour basculer ce paramètre. Vous pouvez choisir :

Dans les versions NVDA avant la 2021.3, cette extension fournit le backport de cette fonctionnalité et la possibilité de le contrôler avec la commande clavier. La case à cocher du panneau des paramètres avancés n'est cependant pas disponible.

Explorateur de propriétés d'objets

Cette fonction permet d'annoncer certaines propriétés de l'objet actuel dans le navigateur d'objet sans ouvrir la visionneuse du journal.

Pour lister les propriétés d'un objet, déplacez-y le navigateur d'objets et utilisez les commandes suivantes :

La liste des propriétés prises en charge est la suivante : name, role, state, value, windowClassName, windowControlID, windowHandle, location, Python class, Python class mro.

Lorsque vous utilisez les commandes de navigation par objet, vous pouvez également choisir que la propriété actuellement sélectionnée soit annoncée au lieu de l'annonce habituelle des objets de NVDA. Une commande bascule, NVDA+X, contrôle+N, permet d'alterner entre cette annonce personnalisée des objets et l'annonce habituel de NVDA.

Par exemple, vous pouvez sélectionner la propriété « windowClassName » et activer l'annonce des objets personnalisée. Ensuite, lorsque vous déplacez l'objet navigateur vers l'objet suivant ou précédent, vous entendrez la propriété windowClassName de l'objet au lieu de l'annonce habituel.

Outils pour les scripts

La commande d'ouverture de script

La commande d'ouverture de script permet d'ouvrir le code d'un script en connaissant son geste associé.

Pour l'utiliser, appuyez sur NVDA+x, C puis le geste du script dont vous souhaitez voir le code. Par exemple, pour voir le code du script qui annonce le titre de la fenêtre au premier plan, appuyez sur NVDA+X, C et ensuite NVDA+T.

Pour utiliser cette fonctionnalité, vous devez avoir configuré la ligne de commande de votre éditeur préféré dans les paramètres de l'extension. Si vous n'exécutez pas NVDA à partir des sources, l'emplacement du code source NVDA doit également avoir été configuré.

Mode de description étendu des scripts

Le mode de description étendu pour les scripts permet l'annonce d'informations pour les scripts qui n'ont aucune description en mode d'aide à la saisie.

Lorsque le mode de description étendu des scripts est activé, le mode d'aide à la saisie (NVDA+1) est modifié comme suit. Si un script n'a aucune description, son nom et sa classe sont annoncés. Si un script a une description, il est annoncé de la manière habituelle. Le geste pour activer ou désactiver cette fonction est NVDA+X, D.

L'exécution d'un geste associé à un script sans description dans le mode d'aide à la saisie crée également une entrée pour ce script via le dialogue Geste de Saisie. Cette entrée est située dans une catégorie dédiée appelée "Scripts sans description (modifiez à vos risques et périls !)". Cela permet de supprimer ou de modifier facilement les gestes natifs de NVDA pour ces scripts. Gardez à l'esprit, cependant, qu'il est souvent intentionnel que ces scripts n'aient pas de description afin que l'utilisateur ne puisse pas le modifier. Le script peut être conçu pour correspondre à un raccourci d'une application spécifique. Par exemple, le script script_toggleItalic dans NVDAObjects.window.winword.WordDocument est assigné à contrôle+I, et ne doit pas être modifié, car le geste est transmis à l'application pour vraiment exécuter ce raccourci clavier.

Exemple d'utilisation

Contrôle+maj+I bascule également l'italique dans Word, même si NVDA ne l'annonce pas nativement. Afin que le résultat par l'appui sur contrôle+maj+I soit annoncé comme contrôle+I, vous devez suivre les étapes suivantes :

Bogue connue : un script ajouté pour une classe spécifique est visible même si le dialogue Geste de Saisie est ouvert dans un autre contexte.

Fonctionnalités de lecture et analyse du journal

Placer des marqueurs dans le journal

Lorsque vous faites des tests ou travaillez, vous voudrez peut-être marquer un moment spécifique dans le journal, afin que vous puissiez y retourner facilement plus tard lorsque vous lisez le journal. Pour ajouter un message de marqueur dans le journal, appuyez sur NVDA+X, K. Un message comme suit sera enregistré au niveau information :
-- NDTT marker 0 --
Vous pouvez ajouter autant de marqueurs que vous le souhaitez dans le journal. Le numéro du marqueur sera incrémenté chaque fois que vous placez un marqueur dans le journal; Il ne sera réinitialisé que lorsque NVDA sera redémarré.

Mode lecture du journal

Un mode lecture du journal fournit des commandes pour faciliter la lecture et l'analyse du journal. Dans la fenêtre de la visionneuse du journal, le mode lecture du journal est activé par défaut, de sorte que les commandes de lecture du journal sont immédiatement disponibles. Dans d'autres zones de lecture de texte, tels qu'un éditeur (par exemple, Notepad ++) ou une page Web (par exemple, un ticket sur GitHub),, il est nécessaire d'appuyer sur NVDA+X, L pour activer le mode lecture du journal et Utilisez ses commandes. Lorsque vous avez terminé les tâches d'analyse et de lecture du journal, vous pouvez appuyer à nouveau sur NVDA+X, L pour désactiver le mode lecture du journal.

Les commandes disponibles en mode lecture du journal sont décrites ci-après.

Commandes de navigation rapide

Des commandes de navigation par lettre, similaires à celles utilisées en mode navigation, permettent de se déplacer à différents types de messages dans le journal :

Un simple appui sur la lettre permet de se déplacer à la prochaine occurrence de ce message. Un appui combiné de la lettre avec la touche majuscule, permet de se déplacer à l'occurrence précédente.

Traduction des messages de parole

Parfois, vous devrez peut-être regarder un journal pris sur un système dans une langue étrangère que vous ne comprenez pas. Par exemple. Le journal a été pris sur un système / NVDA chinois, alors que vous ne comprenez que le français. Si vous avez installé l'extension Instant Translate, vous pouvez l'utiliser en conjonction avec les commandes de navigation rapide dans le journal pour traduire les messages vocaux.

Si vous souhaitez désactiver la traduction de la parole, appuyez à nouveau sur T.

Ouvrir le fichier source dans votre éditeur

Dans le journal, une ligne peut faire référence au code source :

Vous pouvez ouvrir le fichier qui contient le code pour comprendre le contexte de la pile d'appel ou du message journalisé. Appuyez sur C pour ouvrir le fichier.

Pour utiliser cette fonctionnalité, vous devez avoir configuré la ligne de commande de votre éditeur préféré dans les paramètres de l'extension. Si vous n'exécutez pas NVDA à partir des sources, l'emplacement du code source NVDA doit également avoir été configuré.

Sauvegarde des anciens journaux

NVDA fournit déjà une sauvegarde du journal de la session précédente de NVDA ; le fichier s'appelle nvda-old.log. Parfois, cependant, vous souhaiterez peut-être accéder à des journaux plus anciens, par ex. parce que vous avez dû redémarrer NVDA avant de regarder nvda-old.log. Cette extension vous permet de configurer si vous souhaitez sauvegarder les anciens journaux et combien d'entre eux ; cela se fait dans les paramètres de l'extension.

Une boîte de dialogue Gestionnaire de journaux permet d'afficher les journaux sauvegardés. Elle peut être ouverte en allant dans le menu NVDA -> Outils -> Gestionnaire de journaux Dans cette boîte de dialogue, vous pouvez voir la liste de tous les journaux sauvegardés et effectuer diverses actions sur le journal sélectionné.

Vous pouvez également sélectionner plusieurs journaux pour effectuer des actions sur tous ceux-ci.

Pour pouvoir ouvrir un log, vous devez avoir configuré la Commande pour ouvrir un fichier dans votre éditeur préféré.

Extension de la console Python

Fonction openCodeFile

Dans la console, vous pouvez appeler la fonction suivante pour voir le code source qui définit la variable myVar: openCodeFile(myVar)

Pour utiliser cette fonctionnalité, vous devez avoir configuré la ligne de commande de votre éditeur préféré dans les paramètres de l'extension. Si vous n'exécutez pas NVDA à partir des sources, l'emplacement du code source NVDA doit également avoir été configuré.

Vous pouvez appeler la fonction openCodeFile dans des objets définis dans le code NVDA ou dans des objets définis par les extensions. Vous ne pouvez pas l'appeler sur des objets dont le code source n'est pas disponible, comme les objets natifs (builtins) de Python.

Si vous n'avez pas encore importé l'objet dans la console, vous pouvez également passer son nom en tant que paramètre à la fonction openCodeFile.

Vous trouverez ci-dessous des exemples d'appels au code de NVDA :

Script de démarrage de la console Python

Vous pouvez définir un script personnalisé, qui sera exécuté dans l'espace de nom de la console Python lors de l'ouverture pour la première fois, ou si l'extension est rechargée (NVDA+contrôle+F3) après avoir déjà ouvert la console.

Par exemple, le script vous permet d'exécuter de nouvelles importations et de définir des alias que vous pourrez utiliser directement dans la console, comme indiqué ci-dessous :

# Divers import que je souhaite dans la console.
import globalVars as gv
import core
import ui
# Alias
ocf = openCodeFile

Le script de console Python doit être placé à l'emplacement suivant : pathToNVDAConfig\ndtt\consoleStartup.py
Par exemple : C:\Users\myUserName\AppData\Roaming\nvda\ndtt\consoleStartup.py

Journaliser la pile d'appels de la fonction speech

Parfois, vous voulez savoir quelle partie du code est responsable de l'annonce de quelque chose. Pour ce faire, vous pouvez activer la journalisation de la trace de pile d'appel de la fonction speech en appuyant sur NVDA+X, S. Chaque fois que NVDA parle, une trace de la pile d'appel sera enregistrée dans le journal.

Remarque : vous pouvez modifier directement le fichier du script pour patcher une autre fonction. Voir toutes les instructions dans le fichier pour plus de détails sur l'utilisation.

Commande de traduction inverse

De nombreux testeurs utilisent NVDA dans une autre langue que l'anglais. Mais lorsqu'on rapporte des résultats de tests sur GitHub, la description des options modifiées ou les messages annoncés par NVDA doivent être écrit en anglais. C'est assez frustrant et long de devoir redémarrer NVDA en anglais pour vérifier le libellé exact des options ou des messages.

Pour éviter cela, l'extension fournit une commande de traduction inverse (NVDA+X, R) permettant la traduction inverse de l'interface de NVDA, telles que les messages, les labels des contrôles dans l'interface graphique, etc. Cette commande utilise la traduction GetText de NVDA pour essayer de fournir une traduction inverse de la dernière annonce. Plus précisément, une traduction inverse de la première chaîne de la dernière séquence de parole est fournie.

Par exemple, dans NVDA en français, si je descends sur le menu outils nommé "Outils", NVDA dira "Outils Sous-menu O". Si j'appelle la commande de traduction inverse juste après cela, NVDA annoncera la traduction "Tools", la traduction inverse de "Outils".

En regardant le journal après cela, nous pouvons trouver les lignes suivantes : IO - speech.speech.speak (23:38:24.450) - MainThread (2044): Speaking ['Outils', 'sous-Menu', CharacterModeCommand(True), 'o', CharacterModeCommand(False), CancellableSpeech (still valid)] Cela confirme que "Outils" était la première chaîne de la séquence de parole.

Dans le cas où la traduction inverse conduit à deux ou plusieurs résultats possibles, un menu contextuel s'ouvre et liste toutes les possibilités.

Le résultat de la traduction inverse est également copié dans le presse-papiers si l'option correspondante est activée, ce qui est la valeur par défaut.

Paramètres

Certaines fonctionnalités de l'extension peuvent nécessiter une configuration spécifique. Un panneau de configuration permet de les activer ou de contrôler leur fonctionnement. Pour afficher et modifier ces paramètres, allez dans le menu NVDA -> Préférences et sélectionnez la catégorie NVDA Dev & Test Toolbox. Cette boîte de dialogue de paramètres est également accessible directement à partir de la boîte de dialogue Gestionnaire de journaux.

Ces paramètres sont globaux et ne peuvent être configurés que lorsque le profil par défaut est actif.

Commande pour ouvrir un fichier dans votre éditeur préféré

Certaines fonctionnalités permettent de voir le contenu dans votre éditeur préféré. Cela inclut les commandes pour afficher le fichier source à partir d'un journal, d'un objet dans la console ou d'un geste exécuté, ainsi que le bouton Ouvrir du gestionnaire de journaux.

Pour les utiliser, vous devez d'abord configurer la commande qui sera appelée pour ouvrir le fichier dans votre éditeur préféré. La commande doit être de la forme :
"C:\path\to\my\editor\editor.exe" "{path}":{line}
Vous devez bien sûr modifier cette ligne en fonction du vrai nom et de l'emplacement de votre éditeur et de la syntaxe utilisée par celui-ci pour ouvrir les fichiers. {path} sera remplacé par le chemin complet du fichier à ouvrir et {line} par le numéro de ligne où vous souhaitez placer le curseur. Pour Notepad++ par exemple la commande à taper dans la console serait :
"C:\Program Files\Notepad++ otepad++.exe" "{path}" -n{line}

Chemin du code source de NVDA

Lors de l'utilisation d'une commande pour afficher le fichier source à partir d'un journal, d'un objet dans la console ou d'un geste exécuté, le fichier peut appartenir à NVDA lui-même. Si vous n'exécutez pas NVDA à partir des sources, votre NVDA ne contient que des fichiers compilés. Ainsi, vous pouvez spécifier ici un emplacement alternatif où le fichier source correspondant sera trouvé, par ex. l'endroit où vous avez cloné les fichiers source NVDA, afin qu'un fichier source puisse être ouvert malgré tout. Le chemin doit être de la forme :
C:\exemplechemin\GIT\\nvda\source
Bien sûr, remplacez le chemin de la source NVDA par le chemin correct.

Assurez-vous, cependant, que la version de votre fichier source (par exemple, Git commit) est la même que celle de l'instance de NVDA en exécution.

Sauvegarde des anciens journaux

La liste déroulante Sauvegarde des anciens journaux permet d'activer ou de désactiver la fonctionnalité. Si elle est activée, vous pouvez également spécifier ci-dessous dans "Limiter le nombre de sauvegardes" le nombre maximum de sauvegardes que vous souhaitez conserver. Ces paramètres ne prennent effet qu'au prochain démarrage de NVDA lorsque la sauvegarde a lieu.

Copier la traduction inverse dans le presse-papiers

Cette option permet de choisir si le résultat de la Commande de traduction inverse est également copié dans le presse-papiers.

Journal des modifications

Version 7.0

Version 6.3

Version 6.2

Version 6.1

Version 6.0

Version 5.0

Version 4.2

Version 4.1

Version 4.0

Version 3.2

Version 3.1

Version 3.0

Version 2.1

Version 2.0

Version 1.0

[[!tag dev stable]]