La robustesse du DOM impacte très directement les performances d'une AT.

Lorsque vous vous préparer à développer un screen reader (ne faites jamais ça 
c'est trop monacal comme job) vous êtes confronté à la préparation du code et 
c'est là que commence les emmerdes.


De manière un peut caricaturale il y à une première phase ruineuse qui consiste 
à récupérer la sémantique du code et des séquences exotiques comme, par exemple 
la ponctuation.

Pour la ponctuation par exemple une solution efficace consiste simplement à 
remplacer la ponctuation par des séquences de caractères genre "point", 
"virgule" etc) à la volée lors de la vocalisation (mais attention chute de 
perfs) ou directement dans le bumper (mais attention temps de préparation plus 
long).

J'ai le souvenir dans les années 2003/2004 que le temps de traitement dans le 
bumper en java coutait jusqu'à 2 secondes pour une page "normale" par exemple. 
A l'époque ou lorsque qu'on se bricole un screen reader dans son coin c'est la 
méthode la plus efficace : la vocalisation est du coup fluide et continue et 
surtout déchargée entièrement sur le TTS.

Dans les AT modernes j'imagine qu'on procède plutôt à la volée. C'est ce qui 
expliquerais les petits à-coups de vocalisation qui'on peut avoir  au milieu 
d'un paragraphe par exemple : rechargement du tampon de vocalisation ou 
collision avec un processus système prioritaire (le cauchemard du multitheading 
java sous windows XP :) ).


Evidemment le même procédé est utilisé pour la vocalisation des "balises" genre 
"liste de trois items, puce, puce, puce...")

Par exemple pour vocaliser une liste l'opération consiste ( là aussi de manière 
très abrégée) à stocker dans une data list,  la structure en cours de 
vocalisation. Du coup, évidemment, la moindre erreur DOM rends le bouzin 
délicat : on sait où elle commence et la mission impossible consiste à trouver 
où elle termine :) .
Si le code renvoyé par le navigateur n'est pas ou mal corrigé par exemple c'est 
le screen reader qui prends ces corrections en charge. Si insérer un flag de 
fermeture à un P défaillant n'est pas trop complexe (le nombre d'enfant d'un P 
étant limité), pour un LI, un UL ou un TABLE c'est simplement l'enfer, le 
nombre d'enfant étant illimité en type et en nombre.
Donc on fait deux trois tests récursifs pour tenter de consolider la structure 
si on ne trouve pas le flag de fermeture ou si on détecte une incohérence et si 
c'est trop couteux on bricole, par exemple en considèrent que le LI se ferme 
avant le prochain élément de type block.

La seconde phase de préparation du code consiste à assurer la navigation par 
type, là deux techniques sont possibles des techniques de navigation pas à pas 
(à partir d'un élément je cherche à la volée l'élément suivant en me basant sur 
le flag d'ouverture) ou des techniques de flags (de manière trivial on ajoute 
des ID ou des flags quelconque sur chaque élément et on gère la nav et la 
structure via des collections).
La technique des ID étaient par exemple la technique de base des premiers 
lecteur Daisy puisqu'on assurait ensuite via JS la production d'un sommaire 
dynamique de manière très simple à partir du moteur HTML de rendu.

Si généralement il suffit de gérer des collections en se basant sur le seul 
flag d'ouverture dans le cas des listes ou des tableaux, du fait de 
l'imbrication, le traitement récursif peut devenir très couteux.

Je ne pense pas que ce soit le cas ici, les puissances disponibles rendant ces 
traitements acceptables de nos jours mais au début dans les années 2000 quand 
on s'amusait à développer des systèmes de screen reader par exemple avec le TTS 
MBrola (top niveau mais très couteux en temps) la moindre défaillance du DOM 
faisait chuter les perfs en lecture de manière dramatique.

C'est la raison pour laquelle, entre autre, la robustesse du code est si 
importante  la base du traitement de code c'est du  récursif et le premier 
développeur de base qui à traité du récursif connait la sanction : 1 erreur, 
mille emmerdes et tant pis pour le film du soir, le ciné ou le rendez-vous  :)

Donc moi le premier test que je ferais c'est de vérifier la robustesse du DOM, 
ne serait-ce que pour éliminer l'hypothèse... ;)

Mais bon les cadors de chez Temesis ou Tanaguru pourraient mieux que moi 
expliquer le voyage intersidéral dans le code XML, les traitements de code 
entre un screen reader et un moteur de détection sont, à la base, strictement 
identiques et moi j'ai abandonné le développement avant que les moteurs Xpath 
ou les requêteurs genre SPARQL résolvent peut ou prou les problèmes de perfs.

Mais dans le cas de Bertrand le truc est sans doute plus simple : HTML5 + CSS3 
+ JS +NAVIGATEUR + OS + AT + UTILISATEUR = grand saut dans l'inconnu, point 
barre !

JPV

 

________________________________




________________________________
 De : Victor Brito <[email protected]>
À : "[email protected]" <[email protected]> 
Envoyé le : Mercredi 11 avril 2012 18h51
Objet : [Liste GTA] Re :  Re :  Re :   Souci de vitesse de verbalisation de 
listes avec synthèse vocale
 

Salut, Jean-Pierre,

Tu veux dire qu'un code HTML invalide du point de vue de la syntaxe peut 
perturber une synthèse vocale, n'est-ce pas ?
 
Victor Brito
Intégrateur XHTML / CSS – Expert Accessiweb en évaluation


________________________________
 De : jean-pierre villain <[email protected]>
À : "[email protected]" <[email protected]> 
Envoyé le : Mercredi 11 avril 2012 18h06
Objet : [Liste GTA] Re :  Re :   Souci de vitesse de verbalisation de listes 
avec synthèse vocale
 

Bonjour,

Heu.... je dirais surtout ne rien faire !

Pour ma part je ne pense pas que le problème viennent du réglage utilisateur, 
il n'y à aucune raison à ça.

On a certainement simplement à faire avec l'utilisation irraisonnée de 
technologies (Html 5/CSS3) dont on ne cesse de dire qu'en l'état ces technos 
sont utilisables sans aucune garantie de résultats surtout avec des versions 
d'AT ou de navigateur pas maintenus.

L'utilisation de speech serait de toute manière fortement déconseillée 
puisqu'il n'y a pas de raison à ce dysfonctionnement.

En revanche, au cas où : vérifier le code Html, ça peut ressembler aussi à un 
joli tango artistique d'un couple AT/Navigateur  épuisé de devoir corriger les 
erreurs de code ;)

Vous n'imaginez pas combien les perfs d'un TTS peuvent être sensible aux 
erreurs de structure DOM :)


Après en mode de test dégradé on doit pouvoir trouver facilement la cause : 
tester le code sans css ni JS et ainsi de suite.

Tient nous au courant, c'est intéressant comme soucis.


 

________________________________
Jean-Pierre Villain - Qelios - 06 98 08 50 49



________________________________
 De : Victor Brito <[email protected]>
À : "[email protected]" <[email protected]> 
Envoyé le : Mercredi 11 avril 2012 17h42
Objet : [Liste GTA] Re :   Souci de vitesse de verbalisation de listes avec 
synthèse vocale
 

Salut, Bertrand, bonjour la liste,

À moins de recourir à la propriété CSS speech-rate (mais, malheureusement, à 
part sous Opera, l'implémentation des propriétés CSS aural ou speech est quasi 
inexistante), je crains qu'on ne puisse rien faire. Le problème vient 
certainement des (dé)réglages du lecteur d'écran employé.
 
Victor Brito
Intégrateur XHTML / CSS – Expert Accessiweb en évaluation


________________________________
 De : Bertrand Cochet <[email protected]>
À : [email protected] 
Envoyé le : Mercredi 11 avril 2012 15h51
Objet : [Liste GTA]  Souci de vitesse de verbalisation de listes avec synthèse 
vocale
 



 
Bonjour la liste,
J'interviens en ce moment sur la mise en conformité du site d'une importante 
université en région rhône-alpes.

Le site a été créé en HTML 5 et CSS 3 avec la présence de quelques scripts.

Il s'avère que des étudiants ont effectué des tests sur différentes 
thématiques. L'un d'entre eux, mal-voyant, a testé le site en recette avec une 
synthèse vocale (à priori Jaws). 

Il a remonté un point surprenant : la vocalisation des listes de type <ul> (et 
uniquement des listes) se ferait à un rythme qui rend la compréhension du 
contenu impossible.

Les tests effectués avec NVDA et Jaws 12 sont pourtant concluants de notre côté 
! 

L'étudiant en question étant en stage actuellement, nous ne pouvons obtenir 
plus de précisions sur le test, la version utilisée de Jaws, etc. Notre client 
direct attend toutefois une prise en charge de ce point.

Ma question est donc la suivante : avez-vous déjà rencontré ce type de retours 
sur la prise en charge d'items de liste via une synthèse vocale ? 

Si c'est le cas, connaissez-vous un moyen ou une technique pour normaliser la 
vocalisation sans pour autant perturber les réglages par défaut des autres 
utilisateurs de dispositifs vocaux ?

Je vous remercie par avance pour vos avis éclairés !

Bertrand Cochet // Webdesigner // Expert Accessiweb en Evaluation 2.0 
  
 bertrand cochet 
webdesigner 
[email protected]
tél. : +33 4 37 37 25 10
fax : +33 4 37 37 25 19  acti 
agence digitale 
289, rue garibaldi 69007 lyon
www.acti.fr
blog.acti.fr 
   

_______________________________________________
liste_gta mailing list
[email protected]
http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org



_______________________________________________
liste_gta mailing list
[email protected]
http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org



_______________________________________________
liste_gta mailing list
[email protected]
http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org



_______________________________________________
liste_gta mailing list
[email protected]
http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
_______________________________________________
liste_gta mailing list
[email protected]
http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org

Répondre à