Skip to content

Touché : lire l'arbre d'accessibilité ​

Touché est l'organe de lecture structurelle : il renvoie les éléments d'une interface (rôle, libellé, position) tels que le système les expose via l'accessibilité, expurgés des contenus sensibles. Les descriptions des outils parlent d'« arbre d'accessibilité macOS ». Les deux outils sont en lecture seule et ne sont pas soumis au plafond des Mains.

OutilRôleNiveau
touche_treeArbre borné et expurgé d'une fenêtrelecture
touche_probeÉlément situé sous un point de l'écranlecture

Prérequis : l'autorisation Accessibilité du système doit être accordée au processus responsable de Daimon. Sans elle, les deux outils renvoient accessibility_permission_denied. daimon_doctor vérifie cette autorisation sans jamais ouvrir de boîte de dialogue.

Erreurs communes ​

CodeSignification
accessibility_permission_deniedL'autorisation Accessibilité manque
excludedLa cible appartient à une application protégée par vos exclusions
snapshot_failedLa lecture de l'arbre a échoué

touche_tree ​

Renvoie l'arbre d'accessibilité, borné en profondeur et expurgé.

ParamètreTypeDéfautObligatoireRôle
max_depthentier4nonProfondeur maximale du parcours depuis la racine
rootobjet {x, y}racine de la fenêtre au premier plannonPoint désignant la racine du sous-arbre
rolesliste de chaînesaucun filtrenonFiltre par rôle ; vide ou omis, aucun filtre
prune_emptybooléentruenonÉlague les nœuds vides ou sans intérêt
summarybooléenfalsenonRenvoie un résumé texte compact plutôt que l'arbre de nœuds
windowobjet {pid, bundle, title}fenêtre au premier plannonCible de fenêtre ; chaque champ est optionnel

Niveau : lecture.

Exemple d'appel

json
{ "max_depth": 3, "roles": ["AXButton"], "summary": false, "window": { "bundle": "com.apple.finder" } }

Retour : l'arbre de nœuds expurgé, ou {summary} (une chaîne) quand summary est vrai, ou une erreur de contrat (voir ci-dessus).

Pièges

  • Une profondeur élevée sur une application riche produit une réponse très volumineuse : préférez summary, roles ou un root ciblé.
  • Les valeurs de rôle sont celles de l'accessibilité du système ; relevez-les d'abord dans un arbre complet plutôt que de les deviner.
  • Un arbre vide ou muet (applications dessinées sur mesure) n'est pas une erreur : utilisez alors vue_find.
  • Fournissez le role et le label ainsi obtenus aux outils des Mains afin que Daimon puisse vérifier la réversibilité.

touche_probe ​

Renvoie le seul élément d'accessibilité situé sous un point de l'écran, expurgé.

ParamètreTypeDéfautObligatoireRôle
xentieraucunouiAbscisse du point d'écran
yentieraucunouiOrdonnée du point d'écran

Niveau : lecture.

Exemple d'appel : { "x": 640, "y": 420 }

Retour : le nœud unique expurgé, ou une erreur de contrat (voir ci-dessus).

Pièges : x et y sont des points du bureau global, la même unité que celle de main_click.