Accessibilité, internationalisation et exemples de code

Il arrive souvent dans mon travail d’avoir à mettre des exemples de code de programmation à l’intérieur d’une présentation ou d’un article. Je vais généralement, lorsque le nom d’un élément HTML ou une fonction JavaScript l’entourer de l’élément <code> ou encore <i>, puis d’y ajouter l’attribut lang="en". En effet, la prononciation de la plupart des éléments se fait en anglais. Par contre, lorsque je mets un exemple plus complexe, je vais avoir un mix d’éléments et d’attributs en anglais avec du texte dans une ou plusieurs langues. C’est encore plus complexe si j’ajoute du JavaScript modifiant un innerHTML avec du texte en français à l’intérieur, sans compter les commentaires. Ajouter des span lang="" à la main dans un listing de ce genre peut être particulièrement long. D’ailleurs, je crois bien que peu de gens le fasse. Sauf que notre code HTML est mal internationalisé et cela aura un impact sur l’accessibilité (Je ne veux surtout pas entendre les outils d’adaptation passer au travers un long exemple de code.)

Vous avez certainement déjà utilisé des outils JavaScript pour ajouter de la colorisation syntaxique. Peut-être pourrions-nous nous en inspirer pour ajouter les changements de langue automatiquement. Ce sera certes assez complexe, mais s’il est possible de gérer les cas les plus simples, ce sera déjà une bonne amélioration. C’est une proposition de projet ! (À moins que cela existe déjà. Peut-être que certains outils d’adaptation font déjà une analyse de texte et change de langue automatiquement… Par contre cela ne changera pas la problématique que le HTML est mal balisé pour la langue… Ça pourrait se faire côté serveur aussi…)

Slides de la présentation HTML5 pour WebNotWar

Pour ceux qui veulent suivre en même temps et regarder le code, les slides sont disponibles ici: . If you want to follow the presentation and look at code, the slide are available here. Update : Je ne maintiens plus la version anglaise de la présentation. Celle-ci contient un certains nombre d’erreurs qui sont corrigées dans la version française .

Retour sur Confoo.ca

Premièrement, j’aimerais remercier la gang de confoo.ca (PHP Québec, Python Montréal, Ruby Montréal, OWASP et bien sûr le W3Québec) pour cette très bonne conférence. Ce fût vraiment intéressant. Les présentations étaient de très bonne qualité et le tout était, il faut l’admettre, ridiculement pas cher pour la qualité. C’est sûr, il y avait moins de bébelles dans les sacs de conférence (et pas tant de commanditaires que cela), mais si vous allez à une conférence pour cela, je pense que vous avez des problèmes avec vos priorités 😉 !

J’ai bien aimé le keynote de Mark Pilgrim sur HTML5. Je ne m’attendais pas à grand chose je dois l’admettre, car je n’ai pas vraiment confiance en la gang du WHATWG. Avec tout le FUD que les membres du WHATWG sortent (ex : faire croire que Adobe sont contre le HTML5 et veulent le bloquer), j’avais peur qu’il nous sorte des niaiseries du genre. Mais non, son keynote parlait de grandes lignes du HTML5, et c’était très bien. En fait, il parlait aussi que le HTML5 dans le fond, c’était l’ensemble des nouvelles technologies et spécifications entourant ce qui roule dans un navigateur (HTML5, CSS3, Javascript, Géolocalisation, etc). Il n’a pas tort. Enfin, il a très tort, mais comme le WHATWG (et Google, et Apple, etc) possède le leadership dans tout ce qui est nouvelles spécifications Web, ce qui pourrait être vu comme mensonge va devenir réalité (avec la pub et les conférences et etc), un peu comme dans 1984 de Georges Orwell. Faut admettre que c’est de la bonne manipulation pour faire entrer dans le HTML5 les choses que le W3C ne veut pas inclure dans celui-ci (comme Microdata et la géolocalisation, par exemple). Dans sa présentation, on pouvait y voir une slide qui donnait les dates où Netscape découvrait le Web (et le ruinait), et où Microsoft découvrait le Web (et le ruinait). Il a oublié la date où le WHATWG découvrait le Web (et la ruiné), car je commence à croire que qqpart qu’il faut ruiner le Web pour le faire avancer.

Sa présentation m’a aussi fait réaliser que nous changeons de paradigme. Au lieu de penser à un ou des standards avec une version spécifique et sur lequel nous nous basons pour construire un site Web, nous choisissons à partir d’un « melting pot » un « set » de technologies qui sont compatibles avec les agents utilisateurs que nous visons. En effet, nous pouvons bien faire une application HTML(5) qui est faite spécifiquement pour un iPhone ou encore qui sert de widget sur un système d’exploitation et qui ne roule pas nécessairement sur le Web. Cela fait contraste avec XHTML 1.1, qui définissait des modules qui eux même pouvaient ou pas être supporté par des agents utilisateurs. La façon de faire de HTML ongoing est plus free for all, mais plus flexible. Au départ, je n’aimais pas l’approche trop n’importe quoi de HTML5, mais finalement, ce sera peut-être pour le meilleur, et cela n’empêche pas chacun des morceaux d’être très bien spécifié, même s’ils n’ont pas leur namespace à proprement dit. On va voir ce que cela va donner. Si on veut absolument suivre un standard plus strict, on pourra toujours choisir un style de codage comme on le fait dans les langages de programmation.

Cela m’a quand même ennuyé que M. Pilgrim ignore dans sa slide sur l’historique du Web les contributions des Zeldman, Meyer et autres WASP dans l’évolution des standards Web dans le marché. Mais bon, c’est probablement moi qui cherche des conspirations là où il y en a pas.

J’ai parlé à M. Pilgrim suite à sa présentation, je n’ai pas pu lui poser beaucoup de questions, sauf une : « Pourquoi tant de haine envers les balises « summary » et « longdesc ». » Il m’a répondu que c’était puisqu’elles ne fonctionnaient pas. Je ne peux pas vraiment m’obstiner avec ce point, je ne suis pas un spécialiste en accessibilité après tout. Supposément que les lecteurs de texte supportent ou supporteront les éléments qui remplacent ces deux attributs comme « aria-described-by ». Je me suis aussi involtairement proposé pour traduire son livre sur le HTML5 en lui posant la question si une traduction française serait disponible. Pas sûr que je vais avoir le temps, mais ce serait super cool si je pouvais le faire. Dernier point : M. Pilgrim a parlé de l’achat de ON2 par Google, et a spécifié qu’il ne pouvait rien dire de plus. Pensons que Google aimerait bien régler l’impasse des codecs pour l’utilisation de la balise video. Ce serait une très bonne chose. Sans contredit, Google est le leader à suivre en ce moment.

J’ai aussi discuté avec Joey Devila, un évangélisateur open source chez Microsoft : un gars bien sympatique qui joue de la musique industrielle avec son accordéon. Il m’a dit qu’Internet Explorer 9 aurait des choses pas mal intéressantes au niveau des standards Web. Je serais surpris qu’Internet explorer 9 supporte la balise « canvas », mais on a déjà vu plus bizarre. Après tout, la meilleure façon d’aider Silverlight est peut-être en premier lieu de faire mal à Flash. Les balises canvas et video seraient un bon moyen … Et puis, peut-être que Microsoft se rend compte que le marché de Silverlight est bien plus dans les intranets que sur le Web… ou encore qu’il y a une équipe chez Microsoft qui travaille vraiment sur les standards Web et les vends à l’interne. Ça ne me suprendrait pas du tout. C’est drôle de voir comment Microsoft essaie d’attirer les développeurs « open source ». Je ne suis pas certain que cela marche à tout coup, mais cela ouvre sûrement des opportunités intéressantes pour tous. (mise à jour : IE9 va supporter XHTML et SVG : Les poules ont des dents!)

Les autres points forts de cette conférence ont été pour moi la présentation de Elie Sloïm sur la qualité du Web et celle de Vincent François (AccessibilitéWeb) sur l’accessibilité au gouvernement du Québec.

J’ai aussi présenté à la “unconference” un petit qqch sur le HTML5, mais malheureusement, le tout ne fût pas assez publicisé pour que beaucoup de personnes y soient présentes. Par contre, le tout m’a inspiré le billet que je vous présente ici.

Je souhaites beaucoup de succès à l’équipe de confoo.ca, et j’espère que je pourrai y contribuer plus l’année prochaine.

Quelques liens en rapport avec ce billet :

La guignolée du Web

En ces temps de magasinage tardif, il ne faut pas oublier que nous sommes chanceux et donner un peu à ceux qui le sont moins. Je vous encourage donc à faire une petite bonne action cette année en participant à la Guignolée du Web. Je sais, je suis un peu à la dernière minute pour mettre la bannière sur mon blogue, mais vaut mieux tard que jamais ! Sans plus tarder, voilà la bannière (que vous pouvez retrouver sur le site officiel de la Guignolée du Web)

Donnez - La guignolée du Web : Le Web québécois s'unit pour venir en aide aux gens dans le besoin.

Retour sur la formation Silverlight donnée par le groupe .NET de Montréal

Le samedi le 24 octobre 2009, je suis allé faire un tour à la formation Silverlight organisé par le groupe d’intérêt .NET de Montréal. J’aimerais premièrement féliciter et remercier le groupe .NET de Montréal pour la très bonne organisation de cette formation, qui était presque gratuite (fallait être membre, 25$). Comme à leur habitude, ils avaient des conférenciers d’un très bon calibre et ce fût fort intéressant. Personnellement, quand Laurent Duveau est là et que ça ne coûte pas trop cher, je m’arrange pour me déplacer, car il est très efficace pour bien présenter les sujets aux développeurs.

J’ai quand même quelques petits bémols par rapport à la journée (qui n’engagent que moi) et une recommandation pour la communauté de développement Web (.NET et + ). La journée était au niveau de Silverlight assez avancée, et comme je fais peu (ou pas) de Silverlight (je fais la promotion de standards ouverts après tout, Silverlight n’en est pas un), j’ai eu un peu de difficulté à suivre parfois. Aussi, j’aurais aimé que le code de projet soit disponible à l’avance. J’ai passé la soirée d’avant à installer Windows Server 2008 éval.+ Expression Blend éval. + Visual Studio 2008 express sous Parallels (ça se fait pas mal bien en passant) et j’aurais bien aimé pouvoir suivre en même temps sur mon Macbook Pro. Les meilleures présentations que j’ai suivies dans ma carrière (en fait, celles qui ont eu un impact long terme sur moi) sont celles avec lesquelles j’ai pu suivre et exécuter le code avec mon portable en même temps que le présentateur. J’ai quand même réussi à faire cela en partie avec la présentation de Guy Barrette sur Expression Blend et je dois admettre que ça démystifie un peu les outils type Flash pour moi. (Quand je regarde un IDE pour Flash, c’est en général assez rébarbatif pour moi, j’en ai déjà fait, mais c’est pas ma spécialité ! ).

Le choix de la salle était très bien aussi, on voyait très bien les présentations et les problèmes de sons n’étaient pas si pires que cela (mais il faut dire que je me suis placé en avant, pour ne rien manquer, ça fait Nerd je sais, mais c’est ce que je suis).

Microsoft était là aussi et son représentant a mentionné quelque chose qui m’a laissé perplexe et dont j’aimerais bien avoir la preuve aussi. Il a spécifié qu’un des meilleurs avantages de Silverlight sur Flash était son accessibilité. Oui, oui. Je sais qu’Adobe fait beaucoup d’effort de ce côté, mais je ne savais pas que Silverlight était encore plus accessible. Moi évidemment, je veux des preuves et j’aimerais bien qu’il y ait une étude sur les capacités d’accessibilité de ces deux technologies. Les seuls que je connais qui seraient potentiellement capables de faire cette évaluation sont nos collègues d’AccessibilitéWeb. Alors je vais faire un appel à tous : Pouvons nous soit financer ou faire nous même une comparaison sérieuse de l’accessibilité de Silverlight et Flash pour différents type de projet (expérimentiels, Web, application Web et application intranet / portail). Une telle étude à mon avis aurait une très grande valeur et pourrait orienter tant Adobe que Microsoft sur les problèmes de leurs plates formes (tant qu’a y être, on pourrait ajouter HTML5 dans le lot, pour que la comparaison soit complète pour les RIA). Enfin, j’en parle comme cela, je sais que cela prendrait des assez gros sous pour faire une étude sérieuse et qui n’est pas partisane. Mais ce serait super utile pour la communauté.

Pour Silverlight comme tel, je crois qu’en tant que technologie, elle a beaucoup d’avenir dans les intranets et les applications riches Web d’entreprises. J’allais dire dans les entreprises 100% Microsoft, mais Silverlight roule quand même assez bien sous le Mac et même Linux, et ce, parfois même mieux que les extensions propriétaires HTML de Microsoft. J’ai hâte au jour où les interfaces de Sharepoint seront refaites en Silverlight, ça va mieux marcher sur Safari et Firefox que l’affreux HTML dégueux que cela génère en ce moment. J’aime mieux le HTML respectant les standards du W3C, mais entre un plugiciel et du HTML propriétaire, je préfère le plugiciel, au moins c’est maintenable.

J’aurais été jusqu’à dire que Silverlight a le potentiel de remplacer Visual Basic 6, mais malheureusement, l’impédance Expression Design / Expression Blend / Visual Studio rend le développement d’application basée sur Silverlight beaucoup plus complexe que du VB6. Je pense que Microsoft a un peu manqué son coup sur ce point. Je ne crois pas non plus que Silverlight ait une quelconque chance de sortir Flash du Web. Flash est encore des années lumières en avant de Silverlight pour les sites dits expérimentiels, pour l’animation et les petits jeux vidéo. Je pense même que la combinaison HTML5 Canvas et SVG risque d’être plus utilisée que Silverlight pour ce type de site. Les techniques d’optimisation pour les moteurs de recherches (SEO) en Silverlight me semblent aussi plutôt douloureuses (répétition simpliste en HTML du site, Google ne lisant pas le XAML, en fait c’est même présentement impossible, puisque les données sont cherchées dynamiquement par le code Silverlight lors de l’exécution, il faudrait que Google ait un interpréteur Silverlight pour chercher le texte.).

Je dirais par contre que si vous avez une vieille grosse application VB6 à migrer en version Web / intranet / extranet, Silverlight est une technologie à ne pas ignorer. En effet, les paradigmes d’interfaces clients serveurs sont parfois difficiles à porter en mode intranet, et il est difficile de réutiliser les connaissances .NET. Cela prends en général beaucoup de javascript pour arriver au même niveau d’interactivité. Silverlight donne la possibilité de réutiliser une partie des connaissances de votre équipe et l’expérience utilisateur final aura de bonnes chances d’être plus proche de l’original. Silverlight ne règle toutefois pas les problèmes de performances perçues par les utilisateurs lors d’appels AJAX. En fait, l’expérience est très semblable à du AJAX en termes de vitesse. Je crois que Microsoft devrait essayer d’améliorer ce point pour le rendre aussi rapide que du client serveur traditionnel.

Un autre point important, et ça vaudrait peut-être la peine que je fasse un billet sur ce sujet, est qu’une application Silverlight nécessite un graphiste et ou un designer d’interface qui utilise un logiciel différent du développeur. Dans le cas d’une application client serveur, le développeur est celui qui crée les interfaces à partir de Visual Studio. Dans le modèle Silverlight, ce ne sera pas lui, mais un designer qui utilise Expression Blend et Expression Design. C’est cette impédance dont je parlais tantôt qui pourrait créer une baisse de productivité. Mais si cela donnerait au contraire des interfaces plus conviviales, plus faciles et agréables à utiliser. Allons nous voir une nouvelle spécialisation dans le domaine de créations d’interfaces riches, ergonomes et designer, qui comme pour les sites Web, se mettraient au service des applications internes de grandes entreprises. Cela me semble un défi potentiellement intéressant pour les designers Web qui veulent diversifier leurs modes de travail. En tout cas, lors de la présentation, on a dit qu’il manquait pas mal de designers qui pouvaient utiliser les outils de design Microsoft. Ce sera à voir si un tel modèle peut être viable ou si c’est le développeur qui devra aller chercher l’expertise nécessaire pour utiliser efficacement Expression Design et Expression Blend.

Je termine en disant que j’aimerais bien avoir l’occasion au niveau professionnel d’expérimenter avec cette technologie. Je pourrais ainsi valider ou invalider mes impressions.

De la problématique des codecs supportés ou encouragés par HTML 5

Parfois nous avons des opinions arrêtés qui à première vue semble être dans l’intérêt du Web, de son ouverture et de son interopérabilité, mais qui après réflexion pourraient en réalité causer le contraire.

En fait, je crois que la plus grande problématique pour supporter ogg theora dans les navigateurs est le fait qu’il n’est pas supporté au niveau du matériel des cartes graphiques. En effet, la plupart des cartes graphiques de NVIDIA et AMD supportent le H.264 de façon native. Ce qui ferait par exemple qu’un vidéo nécessitera beaucoup moins de puissance machine s’il utilise H.264 que s’il utilise ogg theora. Je suis loin de bien connaître les codecs vidéos; je n’ai aucune idée s’il serait simple d’implémenter ogg theora nativement au niveau du matériel, et encore moins combien de temps cela prendrait (et au niveau technique, et au niveau légal, j’ai peur que ce dernier serait encore plus long).

En fait, la problématique est encore pire pour les téléphones cellulaires qui sont limités en puissance. Aussi, imaginons un instant que nous regardions un vidéo en streaming haute définition sur disons un Mac Mini (je le prends en exemple, puisque j’en ai un plogué sur ma télé, avec lequel j’écoute des émissions en 720p (oui oui, légalement)). Nous utilisons un site avec Safari et H.264 et tout est rapide, avec un autre Firefox et ogg theora. Devinez avec lequel « l’expérience » sera la meilleure? La conséquence de tout cela serait un renforcement de H.264 et de Safari dans l’industrie. Les opérateurs de site Web choisiraient H.264 puisque c’est plus performant et les utilisateurs finaux Safari (dans le cas d’un Mac) pour les mêmes raisons. On revient à pire que la case départ et personne ne supporte le standard.

Est-ce que des solutions existent ? D’un côté, encourager fortement les revendeurs de matériel graphique à supporter ogg theora, de l’autre encourager les consortiums derrière H.264 d’offrir une licence ouverte ou libre aux revendeurs de navigateurs.

Si HTML 5 impose ogg theora comme codec de base pour la balise video, est-ce que cela encouragera à ce que celui-ci soit bien supporté (matériel et logiciel) ou est-ce que cela pourrait avoir l’effet contraire et isoler les standards ouverts et les navigateurs ouverts / libre / de petit marché ? Est-ce que de ne rien faire est mieux ? Qu’en pensez-vous ? Par principe, HTML 5 devrait imposer un standard ouvert et libre pour la vidéo, par contre si les conséquences vont à l’encontre de l’ouverture, nous ne sommes pas plus avancés.

Est-ce que dans cette situation, l’utilisation de Flash est la meilleure solution ? En fait le plugiciel Flash ne favorisera pas aucun navigateur en particulier, et potentiellement aucune plate forme (quoi que en ce moment, Flash marche mieux sur Windows, ensuite Mac et pour finir GNU/Linux). Il pourra utiliser l’accélération matérielle et payer pour les brevets de codecs. Est-ce que, dans le fond, pour les vidéos, l’utilisation de plugiciel et la solution la plus interopérable et même éventuellement (lorsque les brevets seront échus) la plus libre ? Il aurait peut-être fallu améliorer la balise object plutôt que de créer d’autres balises. En fait, une des orientations du passé aurait été de faire disparaître les balises img, iframe, et d’utiliser object à la place. Peu importe comment on la regarde, la situation actuelle n’est pas intéressante pour les formats libres. J’ai l’impression toutefois que beaucoup de gens vont travailler pour améliorer les choses. Est-ce chiâler de notre côté peut aider un peu ? Peut-être, mais pas trop en lutin grognon (troll) par contre 🙂

Le W3Québec à la conférence XML Balisage 2008

J’ai contacté les organisateurs de la conférence XML Balisage 2008 qui aura lieu du 12 au 15 août à Montréal. Je leur ai offert que le W3Québec organise une de leur soirées de discussions sur XML. La prochaine réunion du W3Québec aura donc lieu à la conférence même et nous y discuterons de l’utilisation du XML en développement Web et plus spécifiquement au s’en va la technologie XML en développement Web. Nous savons que le XHTML à ses détracteurs et que JSON est un compétiteur pour l’échange de données. Il y a aussi Atom et AtomPub qui semblent avoir beaucoup d’avenir. Je suis sur que nous toucherons RDFa, ARIA-Roles, SVG, XHTML 2 et MAthML aussi. De façon peut-être assez haut niveau, mais ce sera certainement assez intéressant de regarder les enjeux de l’utilisation de XML en développement Web. J’espère que des lecteurs de XMLfr pourront venir faire un tour à Montréal pour la conférence, j’aimerais bien vous rencontrer en personne. La réunion aura lieu le 12 août de 19 heures à 20:30 au Best Western Hotel Europa Downtown à Montréal et exceptionnellement, elle aura lieu en anglais (à cause du public). On “switchera” (scusé l’anglicisme) au français si tout le monde dans la salle peut le parler. Les infos plus complètes seront présentes sur le site du W3Québec quand je reviendrai vacances (première semaine de août). A+