Transcription de Développeurs déficients visuels: nos possibilités et difficultés - RMLL2014

De April MediaWiki
Aller à la navigationAller à la recherche


Présentation


00' relu MO

Shérab : Je voulais raconter quelques trucs que je trouvais sympas dans ces RMLL, d'abord. Ce sont des révolutions en cours, que je trouve chouettes. Il y en a une, c'est que, vous avez peut-être remarqué que les handicapés commencent à parler d'autre chose que d'accessibilité, et je trouve ça chouette, parce que finalement si on ne parlait que de ça, il y aurait un côté un peu, alors c'est bien, mais c'est un peu stigmatisant. Et le complémentaire, on a pu observer à la conférence d'avant, qu'il y a des non-handicapés qui parlent d'accessibilité. Et ça aussi c'est cool, je trouve.

Et la prochaine révolution que j'espère, c'est que les handicapés se mettent de plus en plus à devenir des développeurs. Et il y a plusieurs raisons pour lesquelles je trouverais ça chouette. D'abord parce que, finalement ce sont les mieux placés pour savoir ce dont ils ont besoin. Souvent, c'est nous qui avons les difficultés, donc si on a la compétence pour les résoudre, c'est nous qui pouvons vraiment faire les outils peut-être les plus adaptés. Ensuite parce que, si on y arrive, ça veut dire qu'on va devenir acteurs des solutions qu'on utilise, donc plus seulement des consommateurs mais des acteurs à part entière. Et moi je trouve que c'est complètement aligné avec la philosophie du libre, et avec, oui, finalement une société non consumériste, que je souhaite. Et aussi, parce que je trouve que parfois dans l'accessibilité il y a un côté, comment dire, genre on pourrait s'imaginer qu'il y a ceux qui la font, et il y a ceux pour qui on la fait. Et alors du coup, voilà, on fait de l'accessibilité parce que « vous comprenez, ces pauvres handicapés ». Bon ! Comme on l'a dit déjà dans les conférences sur le thème, c'est pas si simple puisqu'il y a des gens qui sont valides et qui peuvent en avoir besoin, soit parce qu'ils vieillissent, soit parce que les accidents de la vie font qu'ils en ont besoin. Ça c'est une première chose qui casse cette barrière, et une deuxième c'est que les principaux concernés fassent eux-mêmes l'accessibilité, et là on sera dans un monde où cette barrière n'existera plus.

Donc maintenant, je vais vous raconter ce qu'on peut faire et ce qui est difficile, de mon point de vue de personne qui ne voit pas du tout. Et ensuite je pense qu'Irina fera la même chose pour les personnes qui voient mal.

Donc déjà, en termes de qu'est-ce qu'on développe, déjà il y a, on va dire, on peut classer les applications en trois :

1. les applications en ligne de commande, et les bibliothèques (librairies)

2. les applications à interface graphique

3. et les applications web.

Quand on développe une application en ligne de commande, ce n'est pas mal, ce n'est pas mal parce qu'on peut tout tester. Donc ça c'est quelque part le cas idéal, mais même dans ce cas-là , il y a quand-même des choses qui sont difficiles. Par exemple, il y a des choses auxquelles on n'a pas accès, et c'est assez frustrant. Notamment, par exemple vous savez, il existe des débogueurs qui affichent les données de manière graphique. Par exemple des listes de listes de listes, on est capable de faire une représentation de ça, dans laquelle on peut se déplacer rapidement. Par exemple y a un truc qui s'appelle DDD, ça doit être "data display debugger", ou un truc comme ça. Eh bien moi j'ai toujours été frustré de ne pas avoir accès à un truc comme ça, parce que finalement, même dans mes trucs en ligne de commande, quand j'ai des listes chaînées à déboguer, je pleure. Je suis sous GDB, et je vois des pointeurs, et ce n'est pas facile, quoi. Donc ça c'est le genre d'applications qui manquent.

Ensuite, bien évidemment, quand on fait des applications avec interface graphique, on ne peut pas soi-même exactement se rendre compte de comment ça se passe. Donc que ce soit d'ailleurs sur ordinateur ou téléphone mobile, ce n'est pas un truc qu'on peut faire de manière complètement autonome. Il existe des solutions, un peu partielles, comme par exemple des environnements qui permettent de développer par contraintes. Donc on dit voilà, telle chose on aimerait l'afficher à tel endroit, on donne des poids aux contraintes. et en gros, en fonction de ces poids, le système se débrouille pour répartir les choses au mieux, mais ça ne vaudra quand même jamais la validation par un voyant.

Et la même chose est vraie pour les applications web où c'est la galère. Déjà parce qu'on ne sait pas, on ne se rend pas compte si visuellement c'est bien ou pas. Mais même au-delà de ça, c'est beaucoup moins facile, pour nous, par exemple, de savoir, c'est quoi la propriété CSS à tel endroit du document. En fait c'est beaucoup moins facile pour nous que pour quelqu'un qui voit. Moi je ne connais pas d'équivalent à tout ce qui est Developer tools, en fait l'ex extension Firebug de Firefox, par exemple, on n'a pas l'équivalent. Et je me suis laissé dire que dans Chrome c'était même mieux. Et tout ça on ne l'a pas, donc c'est galère.

Autre chose qui est difficile, c'est quand on fait du développement réseau, ou même toujours pour le développement web, quand on a par exemple un site web qui communique avec un autre web service et tout ça, on peut, souvent c'est facile avec un truc comme etherRead (Wireshark) de regarder les flux. Hop, on se balade,n regarde tel flux, qu'est-ce qui c'est passé, on clique sur tel autre. Nous on n'a pas ça en fait. Donc on fait du TCPdump. Après il existe des programmes, qui savent reconstituer les flux. Mais franchement c'est tout sauf pratique. Donc pour le moment, ça c'est super dur.

Un autre point, qui est difficile, je trouve, c'est tout ce qui a trait au travail collaboratif, parce que là on retombe dans tout ce qui est accessibilité du web, avec par exemple github, qui n'est, à mon sens, pas hyper accessible. C'est-à-dire que, dans une des présentations précédentes, cette après-midi, on a entendu que, qu'en fait forker un dépôt c'était juste un clic de souris, merger une branche c'était juste un clic de souris. Peut-être, (léger rire) mais quand on n'a pas de souris, eh bien non. (léger rire) ce n'est pas comme ça ! Donc ça c'est un peu galère !

Idem les systèmes de gestion de tickets, à la Redmine et tout ça. Il commence à y avoir des interfaces en ligne de commande, pour Redmine. Mais moi je trouve que globalement, même si c'est un peu accessible, j'ai vraiment l'impression que ça reste dur d'être aussi efficace que quelqu'un qui voit. C'est peut-être un film que je me fais, mais je pense que sur un projet où y a beaucoup de bugs, beaucoup de choses, c'est dur.

Alors que par exemple, a contrario, je n'ai pas du tout cette impression pour la gestion d'e-mails avec Mutt, par exemple. J'ai l'impression que je suis aussi efficace, et parfois même plus, que quelqu'un qui voit. Alors peut-être je me fais des films, mais voilà. C'est un retour d'expérience, donc évidemment il y a une part de subjectivité.

Autre outil à la mode qui est compliqué pour nous ce sont les pads, où on écrit à plusieurs. On est carrément sur le bord du chemin, avec ces trucs-là. En tout cas, moi j'en ai pas encore trouvé, que je pouvais utiliser de manière confortable.

Sinon donc un autre point, ouais, je précise qu'il y a quand-même des choses qu'on peut faire, je veux dire tout ce qui est utiliser Emacs ça marche très bien, je ne voudrais pas avoir l'air de donner une impression sombre du tableau. Mais, finalement quand j'ai réfléchi à ce que je voulais raconter, ce qui m'est venu c'est surtout les trucs un peu compliqués, quoi.

Sinon autre chose qui peut être difficile, c'est la documentation. Pour développer on a besoin d'accéder à de la documentation. Parfois c'est facile, quand elle est sous forme textuelle, peu importe le format, que ce soit du LaTeX, du TexInfo, du Markdown ou autre, c'est facile. Modulo, parfois la navigation dans la doc, n'est pas toujours simple. Parfois, ce n'est pas facile quand ce sont des images, des choses graphiques, « on voit bien sur la figure que », non en fait !S'il n'y a pas d'alternative on ne voit pas !

J'ai aussi un peu remarqué qu'il y avait pas mal la mode des tutoriels vidéos. Et bien c'est frustrant, parce qu'on sent que non seulement on n'y a pas accès, mais en plus on sent que pour ceux qui y ont accès, ça va être super efficace, ça va leur donner en peu de temps beaucoup d'informations. Donc quelque part ça peut donner l'impression que ça creuse un peu le fossé. Ce n'est pas pour dire qu'il ne faut pas le faire ; c'est plutôt pour se demander ce qu'on peut trouver comme alternative pour que nous on ne soient pas trop lésés,

Et puis dans le même ordre d'idées, ça a un peu émergé là pendant les RMLL, enfin je m'en suis souvenu, les conférences, on ne suit pas, enfin c'est dur. Par exemple, les conférenciers souvent disent "on voit bien que ce code-là, est plus efficace que celui-là", eh bien , sans doute ! Donc là, ce sont peut-être des points où on peut améliorer les choses en fait. Si les personnes peuvent garder présent à l'esprit que tout le monde ne voit pas leurs slides, peut-être qu'elles auront naturellement la tendance à dire « on voit bien que la fonction » , je ne sais pas moi, « unetelle est plus efficace parce que ceci ». Du coup on pourra mieux comprendre.

Je voulais aussi parler de « accessibilité n'est pas efficacité ». C'est-à-dire que, parfois il y a des choses qui nous sont accessibles, mais où on n'est vraiment pas aussi efficaces que les autres. Je l'ai déjà un peu dit. Un autre exemple, ce sont les environnements, les EDI, les IDE plutôt, à la X-code mais on pourrait citer Eclipse, c'est pareil. Oui, certes, on y accède, mais le temps d'explorer les représentations graphiques à l'écran, c'est compliqué. Donc c'est vrai que dans ce contexte-là, sous Linux on est bien, parce que les choses souvent sont faites de façon assez modulaire, et on a envie d'encourager les gens à faire les choses de manière vraiment la plus modulaire possible, pour qu'on puisse au moins se créer des Front-end alternatifs et autres, et qu'on ne soit pas obligé d'utiliser tout un gros environnement d'une manière un peu mono-bloc.

Qu'est-ce que j'ai d'autre à vous raconter ? Comme je viens de le dire, c'est vrai que c'est pratique quand c'est modulaire, néanmoins, souvent on est quand même obligé de bricoler pour accéder à des choses. Comme je le disais pour le web, moi j'ai participé au projet France Université Numérique, qui est une plate-forme de MOOCs. Quand je devais reproduire des bugs liés à l'interface web c'était vraiment compliqué, donc je me retrouvais à exécuter des gros curls, qui allaient simuler mes actions utilisateur, parce que je ne pouvais pas faire autrement. Donc, c'est quelque chose qui est assez compliqué. Je n'ai pas de réponse sur comment on peut simplifier ça, mais je partage un peu ça ici, pour que si il y en a qui ont des idées, ça les fasse émerger.

Et donc voilà un peu plus ou moins, ce que moi j'avais à vous dire. Donc, je vais passer la parole à Irina. Pour qu'elle puisse à son tour... À moins que vous ayez envie de poser des questions maintenant, en fait je sais pas.

12' 19

Irina : Donc, merci de me passer la parole. Je suis Irina Lambla, je suis mal-voyante et j'essaie de développer un peu. J'ai testé différentes choses pendant mes études, ou comme ça, personnellement. J'ai remarqué que, effectivement tous les environnements, IDE, frameworks, tout ça, ce n'est souvent pas évident. Ou alors ce n'est pas accessible du tout, ou alors c'est un peu accessible, mais on n'arrive pas à se déplacer dans certaines choses, on est quand même obligé de cliquer à la souris pour se déplacer dans certaines zones par exemple. Et souvent aussi les couleurs ne peuvent pas être modifiées ou ne sont pas bien adaptées et donc, ça fait assez rapidement mal aux yeux quand on essaye de regarder pour chercher quelque chose.

Donc, j'ai remarqué que souvent, quand on fait les choses en ligne de commande, ça passe beaucoup mieux, ou avec un traitement de texte. Par exemple, moi j'utilise Notepad++, et même si je ne vois pas bien, j'aime bien quand-même avoir la coloration syntaxique, parce que ça aide beaucoup. Surtout quand c'est du code que quelqu'un d'autre a fait, pour s'y retrouver. Ensuite, une fois que j'ai fait mes petits codes, je les compile en ligne de commande, je peux relire les erreurs, je peux récupérer la commande que j'ai faite juste avant, etc. Et en général, ça fonctionne plutôt bien !

Par exemple, j'ai acheté un Arduino récemment, et il y a un IDE, comme ça, qu'on peut lancer pour les débutants où il y suffit de cliquer sur des boutons pour lancer. Alors, premièrement au niveau synthèse vocale, ça ne fonctionne pas du tout. La Synthèse vocale, c'est un logiciel qui va vocaliser ce qu'il y a à l'écran, et donc on pourra entendre là où on navigue, et quand il y a des infos qui changent. Donc, ça, il est complètement muet ! Et deuxièmement il y a un joli fond blanc. Alors il y a beaucoup de gens qui aiment bien, mais personnellement ça me fait mal aux yeux, donc j'ai laissé tomber. Alors, je me suis dit, il doit y avoir une autre solution, et en deux après-midis j'ai un peu fouillé. Sur Internet j'ai trouvé des tutoriels, et puis comme c'était des anciennes versions, j'ai dû un peu trifouiller dans les fichiers pour essayer de voir finalement quels fichiers ont changé, quelles lignes modifier pour que ça marche ! Je suis aussi un peu allée sur IRC pour demander de l'aide, et ils ont été très gentils, ils m'ont aidée. Donc, par exemple ça, ça peut être une aide intéressante, quand on a besoin d'informations aussi. Et résultat, en deux après-midis, j'ai réussi à compiler mes programmes, donc à rajouter quelques lignes dans le code C, qu'il n'y a pas quand on passe par le logiciel, à modifier les chemins des bibliothèques qui ne se compilent pas, je me suis fait une petite bibliothèque sympa, avec tout ce qu'il faut dedans. Et maintenant, je n'ai besoin de faire plus que 4 petites lignes de commandes, et hop ça marche. Je peux faire clignoter ma LED, ou n'importe, piloter des capteurs, enfin. Etc, appuyer sur l'interrupteur, voilà.

Donc pareil, si je veux faire des programmes, en C ou en Python. D'ailleurs j'ai remarqué que pour le Python c'est pratique, parce que dans Notepad++ il y a un raccourci clavier, on appuie sur une touche, et hop ça compile. Bon, parfois faut rajouter un chemin parce qu'il ne trouve pas certains dossiers, mais c'est super !

Effectivement pour le web, c'est un peu plus compliqué. Par exemple pour faire les CSS, moi je vois un peu le résultat, donc j'ai une idée, à peu près, de ce que ça donne. Mais premièrement c'est beaucoup plus long, parce que je dois me concentrer pour voir les détails. Et deuxièmement, effectivement il y a des choses que je ne vois pas. Par exemple, sur mon site, je pensais que c'était tout joli et tout ! Et puis finalement quelqu'un m'a dit : «  Ah ton image, elle est vachement pixelisée », et je ne l'avais même pas remarqué ! Parce que je ne le vois pas. Pour moi ce sont des détails qui passent inaperçus. On m'a aussi dit : « Tiens, telle couleur, ça ne va pas ! », alors que moi je ne pensais pas que ça dérangeait, Moi, ce sont d'autres couleurs qui ne me vont pas ! Donc, chacun ses difficultés, finalement.

Après effectivement, pour naviguer dans le code, c'est peut-être un peu plus long, parce que, on ne peut pas juste jeter un coup d’œil, et hop, mais ça va, comme la synthèse vocale lis rapidement, on peut quand même s'y retrouver assez facilement.

Sous Linux aussi, j'ai aussi utilisé Gedit, comme traitement de texte. Ça fonctionne aussi pas mal. On m'a dit qu'il y a aussi d'autres solutions. Souvent pour compiler d'ailleurs, ce sont les mêmes lignes de commande, sous Windows et sous Linux. Par exemple, pour Arduino, il n'y a presque rien qui change, il y a quelques chemins et puis comment on nomme les prises USB, mais sinon on s'y retrouve assez facilement. Donc ça c'est bien, c'est l'avantage de la ligne de commande. Voilà.

Ensuite, par rapport aux tutoriels, effectivement quand ce sont des tutoriels sur des pages web, ce n'est pas mal, on arrive à les lire. Mais bon souvent ce qui est embêtant, c'est que maintenant c'est la mode de rajouter plein de trucs. Alors on a de la pub, on a un petit rappel, on a des liens pour aller je sais pas où, on a des petits machins Twitter, Facebook, machin bidule truc, etc, des liens pour aller vers tous les chapitres, etc. Le temps qu'on arrive à retrouver le début de ce qu'on a envie de lire, parfois ce n'est pas pratique. Des fois on en a un peu marre de relire à chaque fois le même début de page ! Voilà !

Ensuite il y a parfois des tutoriels PDF. Alors là ça dépend comment ils sont écrits. Il y a des PDF qui sont bien lisibles, il y a des PDF qui sont moyennement lisibles, par exemple les accents qui ne passent pas, ou les espaces qui sautent, ou on a l'impression que chaque mot est à la ligne, des choses comme ça, ce n'est pas pratique. Parfois, il y a des PDF qui sont carrément totalement illisibles ! Et comme disait Shérab, les vidéos ce n'est pas évident. On peut écouter ce qui est dit, mais comme on ne voit pas ce qui est fait sur son ordinateur, c'est pas évident. Parfois aussi sur les tutoriels en page web, il y a aussi des images, alors, si l'image est là juste en illustration c'est bon, si par contre il faut aller regarder dans l'image, ça peut être long et ça peut-être difficile.

Qu'est-ce que je pourrais encore expliquer ? Oui, je voulais parler encore, à propos de la ligne de commande. Donc sous Windows, le petit problème que j'ai c'est que je ne peux pas faire copier/coller tranquillement, je suis obligée de prendre la souris, de cliquer avec le clic droit, et de chercher coller, par exemple, pour mettre ma ligne de code, ça c'est un peu bof. Alors que sous Linux, on peut facilement faire copier/coller avec le raccourci, c'est quand-même mieux ! Voilà. Donc il est quelle heure ? Il est quarante cinq. Moi souvent j'aime bien faire des copier/coller parce que retenir tout par cœur, ce n'est pas évident. Donc, il faut s'habituer au début à la façon dont le lecteur d'écran va lire le code, parce que je pense que si je vous faisais écouter, ça vous ferait bien rigoler ! Voilà. Qu'est-ce que je pourrais dire encore ? Oui, est-ce que vous avez des questions ?


22' 40

Auditeur : Je me demandais comment se sont passées vos études d'informatique en fait, par rapport au développement ?