Ğecko talks / user support

essai ça stp:


FLUTTER_LINUX_RENDERER=software gecko

Ça ouvre l’application gecko
Et j’ai ça dans la fenêtre du terminal !

Martial@mxLinuxLenovoMartial:~/Gecko
$ FLUTTER_LINUX_RENDERER=software gecko

** (fr.axiomteam.gecko.gecko:8077): WARNING **: 23:28:18.405: Using the software renderer. Not all features are supported. This is not recommended.

To switch back to the default renderer, unset the FLUTTER_LINUX_RENDERER environment variable.

** (fr.axiomteam.gecko.gecko:8077): WARNING **: 23:28:18.964: Timed out waiting for software frame of size 1484x855 (have 800x600)
Connected to websocket.
Initialising connection

L’application semble fonctionner correctement
à la fermeture d’autres lignes s’ajoutent dans le terminal.

	embedder.cc (2603): 'FlutterEngineRemoveView' returned 'kInvalidArguments'. Remove view info was invalid. The implicit view cannot be removed.

** (fr.axiomteam.gecko.gecko:8316): WARNING **: 23:33:18.264: Attempted to set message handler on an FlBinaryMessenger without an engine

** (fr.axiomteam.gecko.gecko:8316): WARNING **: 23:33:18.264: Attempted to set message handler on an FlBinaryMessenger without an engine

** (fr.axiomteam.gecko.gecko:8316): WARNING **: 23:33:18.264: Attempted to set message handler on an FlBinaryMessenger without an engine
Martial@mxLinuxLenovoMartial:~/Gecko

On peut s’appeler demain si tu veux qu’on fasse des trucs en direct.

Peux installer cette version stp pour voir si elle fonctionne telle quelle ?

https://git.duniter.org/clients/gecko/-/jobs/178395/artifacts/raw/artifacts/linux/gecko-1.2.7+193-linux-x64.tar.gz

Oui ça fonctionne impeccable !
Merci !

Est-il possible d’avoir un lien github ou gitlab pour installer Gecko sur Android en utilisant Obtainium?

Il suffit de visiter le gitlab duniter: Releases · clients / Ğecko · GitLab

Visiblement non car le lien n’est pas reconnu par Obtainium n’étant pas un Github ou Gitlab. En tout cas sur mon appareil j’ai un message me disant “Aucune releases appropriées”. Les sources supportées sont listées ici.
Solution ci-dessous :backhand_index_pointing_down: :backhand_index_pointing_down:

Trouvé ! C’était simple mais avec une subtilité :wink:
Dans Obtainium, ajouter l’url clients / Ğecko · GitLab et juste en-dessous dans “Remplacer la source”, sélectionner “GitLab” et hop! :innocent:
@Chiara07

[Accessibilité / Flutter] Audit et retours d’expérience pour les utilisateurs non-voyants (TalkBack / VoiceOver)

Hello @poka,

En accompagnant Christian, un utilisateur non-voyant, et en poussant les tests plus loin avec un lecteur d’écran sur l’application mobile Gecko (Flutter), nous avons identifié plusieurs points de blocage majeurs concernant l’accessibilité.

Actuellement, la navigation vocale est très difficile car le lecteur d’écran répète souvent “Bouton, bouton, bouton” sans donner d’indications, ou associe mal les icônes à leurs textes.

Procédure pour tester sur mobile avec TalkBack

Pour tester ou reproduire fidèlement l’expérience de Christian sur Gecko, voici la procédure standard pour activer le lecteur d’écran TalkBack sur Android, ainsi que la méthode spécifique pour naviguer et valider des actions.

1. Comment activer TalkBack sur Android

Il existe deux méthodes principales pour lancer le lecteur d’écran :

Méthode rapide (Raccourci boutons)

  • Appuyez simultanément sur les boutons Volume + et Volume - pendant environ 3 secondes.

  • Note : Si c’est la première fois, une notification peut vous demander de confirmer l’activation du raccourci.

Méthode classique (Paramètres)

  1. Allez dans les Paramètres du téléphone.

  2. Faites défiler jusqu’à la section Accessibilité.

  3. Appuyez sur TalkBack.

  4. Activez l’option Utiliser TalkBack.

2. Comment naviguer et valider une action avec TalkBack

Une fois TalkBack activé, la gestuelle tactile habituelle du téléphone change complètement pour permettre aux utilisateurs non-voyants de contrôler l’interface sans la voir.

Pour explorer et lire l’écran

  • Balayer vers la gauche ou la droite (Swipe) : Permet de passer d’un élément à un autre (bouton, texte, image) . TalkBack va lire à haute voix chaque élément sélectionné . C’est ce geste qui a mis en lumière le bug des colonnes et l’effet “Bouton, bouton, bouton” sur Gecko .

  • Glisser un doigt sur l’écran : Vous pouvez aussi déplacer lentement votre doigt sur l’écran pour explorer ce qui s’y trouve en direct.

Pour valider ou cliquer sur une action

  • Le double-clic (Double-tap) : Appuyer une seule fois sur un bouton ne fait que le sélectionner et le lire . Pour déclencher ou valider l’action de ce bouton (comme lancer un virement ou certifier) , il faut effectuer un double-clic rapide n’importe où sur l’écran .

:warning: Le problème actuel sur Gecko : Si le focus de TalkBack se trouve sur le texte (ex: “Faire un virement”), le double-clic ne fonctionne pas car l’action cliquable n’est pas codée sur l’ensemble du bloc, mais uniquement sur le petit icône graphique situé au-dessus .

Voici le récapitulatif des problèmes constatés et les pistes d’amélioration pour le code.

1. Les boutons-icônes sans description (Effet “Bouton, Bouton, Bouton”)

De nombreuses icônes interactives n’ont pas de description textuelle sous-jacente. Le lecteur d’écran détecte un composant cliquable, mais ne peut pas dire ce qu’il fait.

  • Ajouter/Supprimer un contact : Le bouton change d’état visuel (noir si le contact existe pour le supprimer, transparent/blanc pour l’ajouter). Le lecteur d’écran doit annoncer dynamiquement cet état (ex: “Bouton : Ajouter aux contacts” ou “Bouton : Supprimer des contacts”).

  • Bouton Copier (à côté de la clé publique) : Annoncé comme “Bouton”. Il devrait annoncer : “Bouton : Copier la clé publique”.

  • Photo de profil / Bouton d’activité : Annoncé comme “Bouton” juste après la clé. Il s’agit du bouton pour voir l’activité/le profil. Il devrait annoncer : “Bouton : Voir l’activité du profil”.

  • Dates clés isolées : À un endroit, le lecteur lit simplement “7 janvier”. Sans contexte visuel, l’utilisateur ne sait pas à quoi cela correspond. Il faudrait que le lecteur lise : “Date de la prochaine certification disponible : 7 janvier”.

2. Problème d’ordre de lecture et de groupement (Lignes vs Colonnes)

Sur l’écran des actions (ex: Faire un virement, Planifier la certification, Copier l’adresse), trois icônes sont placées côte à côte avec leurs textes respectifs en dessous.

  • Le bug constaté : Le lecteur d’écran lit d’abord toutes les icônes de la ligne, puis tous les textes de la ligne du dessous. L’utilisateur entend : “Bouton, Bouton, Bouton” puis “Faire un virement, Planifier la certification, Copier l’adresse”. Il est impossible de savoir quelle icône correspond à quel texte.

  • Zone de clic trop restreinte : Sur l’action “Faire un virement”, si l’utilisateur double-clique sur le texte, rien ne se passe. Il est obligé de trouver précisément l’icône située juste au-dessus pour déclencher l’action.

:hammer_and_wrench: Solutions techniques recommandées (Flutter)

Pour résoudre l’ensemble de ces points, voici les leviers à utiliser dans le code Dart/Flutter de Gecko :

A. Utiliser Semantics pour nommer les boutons et les états

Chaque bouton-icône doit être enveloppé dans un widget Semantics pour lui donner un nom clair et explicite :

Semantics( label: contactExiste ? 'Supprimer des contacts' : 'Ajouter aux contacts', button: true, child: IconButton( ... ), )

B. Grouper l’icône et son texte avec MergeSemantics

Pour régler le problème des lignes et des colonnes, il faut regrouper chaque bloc “Icône + Texte” dans un widget MergeSemantics. De plus, pour que le texte soit lui aussi cliquable, il faut s’assurer que le détecteur de geste (GestureDetector ou InkWell) englobe tout le bloc (l’icône ET le texte), et pas seulement l’icône.

// En encapsulant chaque action ainsi, le lecteur lira l'ensemble d'un coup
// et l'utilisateur pourra cliquer n'importe où sur le bloc.
GestureDetector(
  onTap: () => faireLeVirement(),
  child: MergeSemantics(
    child: Column(
      children: [
        Icon(Icons.send, semanticLabel: ""), // On vide le label de l'icône pour éviter les doublons
        Text("Faire un virement"),
      ],
    ),
  ),
)

Prendre soin de l’accessibilité dès maintenant permettra à Gecko d’être une application exemplaire et véritablement inclusive pour toute la communauté de la monnaie libre.

Merci beaucoup pour votre écoute et votre aide sur ce sujet !

Salut @BulmAnanaBelle ,

Est-ce que tu veux que je t’accompagne pour pouvoir faire ça au travers de Claude Code ?

Je pense que c’est un bon exercice pour commencer :slight_smile:
Toi ou d’autre hein.


Etape 1

La première étape, la plus fastidieuse, consiste à installer l’environnement de développement de Gecko sur votre PC.
Une fois que c’est fait, tout sera bien plus simple pour la suite.

Pour faire ça, vous avez 2 possibilités:

  • Suivre les instructions du README.md de clients / Ğecko · GitLab
  • Passer d’abords à l’étape 2 pour demander à Claude Code de le faire pour vous.

Je vous recommande l’option B.

Etape 2

  • Envoyez un mail à contact at axiom-team.fr, sur candidature, l’asso pourra vous mettre a disposition un compte Claude Code Max x20.

:information_source: Vous devez adhérer à l’asso pour pouvoir candidater à cet accès: Asso - axiom-team.fr

  • Installez Claude Code: Quickstart - Claude Code Docs
  • Ouvrez un terminal, ou PowerShell sur Windows, executer la commande suivante pour entrer dans Claude Code:
    claude --dangerously-skip-permissions
  • Une fois logué au compte axiom (ou tout autre compte, peu importe), et dans Claude Code, demandez lui d’installer git, de cloner clients / Ğecko · GitLab par ssh (qu’il vous créer une clé si vous n’en avez pas, il le fera) dans le dossier que vous voulez sur votre machine, puis de s’y rendre, lire tous le readme et toutes les docs, analyser le code, puis isntaller tous l’environnement de développement nécessaire pour contribuer sur votre machine, flutter, deps système, tout.

Félicitation vous êtes prêt à contribuer à Gecko et à n’importe quoi à vrai dire.
La dernière étape est d’executer Gecko en mode debug sur votre machine, demandez à claude comment faire, mais une fois que tout est installé sur votre machine, en fonction de gotre système, remplacez “linux” par “windows” ou “macos”:

flutter run -d linux

Gecko s’ouvre en mode debug en mode desktop.
Si vous le voulez en mode mobile, il faudra juste installer et ouvrir un émulateur android avant, claude le fera pour vous.

Maintenant il suffit de demander à claude ce que vous voulez faire, de lui faire faire, et de tester si ça foncitonne comme vous l’espérer dans l’app debug.

Une fois que tout fonctionne comme vous le voulez, faites une MR à partir d’un fork de gecko (claude peut le faire pour vous si vous avez cloné le repo par ssh, ce que je vous recommande.


Une fois que vous avez digéré cette procédure, dites le moi et on se fait une visio, je vous aide ce sur quoi vous bloquez, tranquilement :slight_smile:


PS: Je refuserais toute MR dont le code n’a pas été fait par Claude Opus 4.8 ou Fable 5, et signé comme tel dans les commits.

:right_arrow: Contribuer à Ğecko, c'est facile!