Plan de site Navigation
Blog & Blues Techniques et Standards de la Qualité Web

Accueil > weblog


- Lire le billet précédent - Lire le billet suivant -

Opera 7.60 et la lecture vocale du balisage HTML

Par Laurent Denis, le 26 août 2004.

Sur des pages Web en langue anglaise, Opera 7.60 preview 1 peut être utilisé en mode Lecteur d'écran, à la manière d'IBM Home Page Reader ou de JAWS : sélectionnez un contenu, et activez la lecture à la voix, à l'aide d'un racourci-clavier ou d'un bouton Speak selection... Opera interprète alors votre contenu... mais qu'en est-il de votre balisage HTML ?

(Note : cet article sera actualisé au fil des tests en cours.)

Eléments HTML pris en compte en mode lecture

Opera 7.60, comme un lecteur d'écran, lira votre contenu dans l'ordre de son apparition dans le code HTML, indépendamment du positionnement CSS :

Test:

Right floated paragraph, specified in the HTML document first.

left floated paragraph, specified in the HTML document after the floated right paragraph.

La linéarisation des tableaux est également similaire à celle d'un navigateur texte ou d'un lecteur d'écran :

Test:
item 1 item 3
item 2 item 4

Certains éléments HTML et certains styles CSS sont pris en compte spécifiquement par le moteur vocal d'Opera 7.60 :

  • L'élément q sans aucune spécification de style est lu sous la forme quote... quote. Si une feuille de style active précise le type de guillemets, celui-ci est pris en compte. Par exemple quotes: '\00AB\00A0' '\00A0\00BB' (guillemets doubles français) sera lu left double angle bracket... right double angle bracket :

    Test: a french quotation

    Test: a english quotation

  • le contenu généré en CSS (propriété content) est systématiquement lu :

    Test: This link is followed by generated content.

  • L'attribut alt des images est lu :

    Test: This is a logo (This image has an alternative text)

  • Rappelons enfin que, conformément à la spécification CSS, le contenu doté d'un style display: none n'est pas lu.

    En revanche, le contenu masqué à l'aide de visibility: hidden est lu :

    Test: there is... something hidden ...here!

Eléments HTML ignorés en mode lecture

Certains éléments ne génèrent aucun comportement spécifique :

  • L'élément blockquote n'est pas exploité, contrairement à q. Il est possible d'obtenir un comportement similaire à ce dernier en précisant dans une feuille de style utilisateur :
    blockquote:before, blockquote:after {
    content: "\0022";
    position: absolute;
    clip: rect(1px 1px 1px 1px);
    }
    

    ce qui donnerait :

    Test: a blockquote width quotes

  • Les listes de définition, les listes ordonnées et non-ordonnées ne sont pas signalées à la lecture :

    Test:

    • Item 1
    • Item 2
    1. Item 1
    2. Item 2

    Pour que les items de liste soient aisément distingués à la lecture, il suffit d'ajouter dans votre feuille de style utilisateur un signal sonore avant chaque élément li :

    Test:

    • Item 1
    • Item 2
    li,dd {
    cue-before: url(_chemin_/_fichier_);
    }
    

    En précisant le chemin local vers le fichier sonore de votre choix. Les éléments dt et dd peuvent être marqués de manière similaire.

  • Les liens (a) et titres (h1... h6) ne sont pas identifiables à la lecture ;
  • Les éléments de formulaire sont ignorés ;
  • Les éléments d'emphase em et strong ne sont associés à aucun comportement spécifique :

    Test: this is em and this is strong

    Marquer l'emphase orale nécessite donc également un petit détour par votre feuille de style utilisateur...

  • De même, abbr et acronym sont ignorés, Opera ayant son propre mode de traitement des abréviations potentielles (voir ci-dessous).
  • L'élément hr ne donne lieu à aucun rendu vocal. Une icone sonore peut lui être associée dans une feuille de style utilisateur, par exemple grâce à :
    hr {
    cue-before: url(_chemin_/_fichier_);
    }
    
    ou :
    hr:before {
    content: "new section";
    position: absolute;
    clip: rect(1px 1px 1px 1px);
    }
    
    ou, si les éléments hr ne doivent pas être affichés:
    hr {
    content: "new section";
    position: absolute;
    clip: rect(1px 1px 1px 1px);
    }
    

Traitement du contenu indépendant du balisage

  • Le moteur vocal d'Opera prononce de lui-même les acronymes et épèle les abréviations, qu'elles soient balisées ou non, et de manière généralement satisfaisante :

    Test: XHTML is an abreviation and URI is an acronym.

    Il dispose en fait de sa propre base d'abréviations, telles que :

    Test: USD 15 is pronounced United States Dollars 15

    Mais parfois suprenante :

    Test: the element img and attribut href...

  • Comme dans... JAWS, seuls les chiffres romains II et III sont correctement lus two et three : I sera lu eye, IV sera lu eye vee, etc :

    Test: I and IV

    Test: II and III

  • De même, le caractère # est lu number, et les caractères ¼, ½, et ¾ sont lus one fourth, one half et three fourths ;

    Test: # , ¼ , ½ , ¾

Conclusion

A bien des égards, Opera 7.60 reproduit le comportement des lecteurs d'écrans... ce qui n'est pas un hasard, puisqu'il est le fruit d'une collabotation Opera-IBM. On se serait cependant attendu à trouver un plus grand support natif des éléments HTML, mais ce serait sans doute oublier l'objectif principal du moteur vocal d'Opera 7.60 : il s'agit moins de lire le HTML que de permettre d'exploiter XHTML+Voice Profile 1.2, associé à CSS3 Speech Module, pour permettre de naviguer à la voix dans des pages vocales entièrement interractives... Nous en reparlerons bientôt smiley clin d'oeil

Trackbacks

Les trackbacks pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.

Commentaires

mee2, le 26 août 2004

C'est interessant, tout ces tests. =)

On peut par exemple signaler les blocks de citation en mettant dans la CSS :

blockquote:before {
content: "Citation";
position: absolute;
clip: rect(1px 1px 1px 1px);
clip: rect(1px, 1px, 1px, 1px);
}

blockquote:after {
content: "Fin de la citation";
position: absolute;
clip: rect(1px 1px 1px 1px);
clip: rect(1px, 1px, 1px, 1px);
}

Et les emphases avec :

strong, em {
-xv-voice-volume: loud;
}

J'ai ai aussi profité pour me rendre compte de l'horreur qu'est un forum lu par un (pseudo) lecteur d'écran, c'est assez affreux.

Laurent Denis, le 26 août 2004

Tiens, un autre petit test, un peu idiot, mais inévitable : Test box model hack for Opera 7.60

smiley clin d'oeil

Les commentaires pour ce billet sont temporairement fermés en raison d'une série d'attaques de spam.