Ğ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.


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