Présentation

  • Menu
  • progressbar

Cette bibliothèque présente les implémentations des composants ARIA telles qu'ils sont définis par les motifs de conception.

Elle permet d'établir les restitutions par défaut obtenues avec les technologies d'assistance définies par la base de référence.

Cette bibliothèque est destinée à servir de référence pour les tests de restitution demandés par le test 7.6 du critère 7.1 du référentiel RGAA. Elle n'est pas destinée à être utilisée en production.

Note 1 : certains enrichissements, nécessaires à une restitution correcte, sont décrits pour chaque composant. Ces enrichissements ne sont pas demandés par les motifs de conception ARIA car ils sont contextuels à la nature et l'utilisation du composant ou de ses contenus.

Note 2 : les interactions au clavier sont limitées à celles requises par le référentiel.

Aide

Les sections de test sont toujours présentées de la même manière :

  1. (Titre 2) : le nom du rôle correspondant au composant et une ancre d'accès direct à la zone de test ;
  2. une liste de navigation (composant précédent, accès au menu, composant suivant) ;
  3. une brève description du composant ;
  4. (Titre 3) : implémentation : description succinte de l'implémentation et enrichissements éventuels ;
  5. (Titre 3) : test : la zone de test et les instructions de test ;
  6. (Titre 3) : référence : un lien vers la référence utilisée pour l'implémentation.

Slider [Aller au test]

  • Présentation
  • Menu
  • Progressbar

Potentiomètre servant à augmenter ou diminuer une valeur

Implémentation

Le potentiomètre permet d'indiquer le montant maximum

Test

Instruction

  1. Tabuler pour prendre le focus sur le curseur du potentiomètre
  2. Augmenter la valeur avec les flèches haut et droite
  3. Diminuer la valeur avec les flèches bas et gauche

Choisir le tarif maximum recherché

10 €

Slider - Tests fonctionnels AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
OK OK OK
Slider - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA annonce « Document choisir le tarif maximum recherché, potentiomètre 0 euros » et passe en mode application (« Bip » ou « Mode formulaire »). Jaws annonce « Potentiomètre horizontal, choisir le tarif maximum recherché, 0 euros +[message d'aide] » VoiceOver annonce « 0 euros, choisir le tarif maximum recherché curseur ».
Augmenter ou diminuer la valeur NVDA annonce chaque changement de valeur. Jaws annonce chaque changement de valeur VoiceOver annonce chaque changement de valeur.

Progressbar [Aller au test]

  • Présentation
  • Menu
  • dialog

Barre de progression pouvant être utilisée comme indication de téléchargement ou de mise à jour.

Implémentation

Un bouton permet de mettre à jour une zone d'actualités. Durant le temps nécessaire à la mise à jour, une barre de progression est affichée et décompte la mise à jour.

Enrichissement

  1. À la fin de la mise à jour, le focus est donné sur la zone qui vient d'être mise à jour.

Test

Instructions

  1. Cliquer sur le bouton ci-dessous pour lancer la mise à jour

Actualités

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus euismod purus ac enim malesuada, eu lacinia tellus ullamcorper. Proin pulvinar bibendum lacus, sed consectetur sapien interdum in. In id sem at erat imperdiet elementum vitae imperdiet dui. Nullam mattis ultricies justo non pellentesque. Sed mollis urna vitae leo semper, nec fermentum tellus imperdiet. Phasellus eget vehicula sapien. Nulla convallis, mauris a sodales placerat, nisl nulla aliquet nisi, sit amet faucibus orci ante a elit. Integer vel gravida elit, a aliquet purus. Mauris sed lectus purus. Pellentesque efficitur magna non dolor consequat mattis.

En cours de mise à jour

Progressbar - Tests fonctionnels AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
OK OK OK
progressbar - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA annonce « bouton mettre à jour les actualités ». Jaws annonce « bouton mettre à jour les actualités » VoiceOver indique « mettre à jour les actualités » bouton.
Progression en cours. NVDA annonce la progression en % ou via un signal sonore en fonction des paramètres utilisateurs. Jaws annonce « barre de progression » et la progression en pourcentage. VoiceOver annonce la progression sous la forme d'un signal sonore.
Fin de la mise à jour. NVDA annonce le titre de la zone mise à jour. Jaws annonce le titre de la zone mise à jour. VoiceOver annonce le titre de la zone mise à jour.

Dialog [Aller au test]

  • progressbar
  • Menu
  • tabpanel

Une fenêtre destinée à diffuser un message de confirmation par exemple ou recueillir une saisie utilisateur.

Implémentation

Le premier composant est une fenêtre d'alerte modale qui demande une confirmation.

Le second composant est une fenêtre de dialogue modale utilisée pour une procédure de connexion.

Enrichissements

  1. La fenêtre de dialogue modale utilise une propriété aria-describedby pour vocaliser un contenu d'aide à l'ouverture de la fenêtre

Test

Instructions

  1. Utiliser les deux boutons ci-dessous pour ouvrir les deux types de fenêtres
  2. Attention : les boutons de confirmation, les liens et les champs de formulaire proposés dans le contenu ne sont pas fonctionnels.

Confirmation

Votre demande à bien été prise en compte.

Dialog - Tests fonctionnels AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
OK OK OK
dialog - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA annonce « formulaire de connexion, dialogue », le focus est donné sur le champ de saisie « utilisateur ». Jaws annonce « formulaire de connexion, boîte de dialogue », le focus est donné sur le champ de saisie « utilisateur ». VoiceOver annonce « formulaire de connexion, dialogue », le focus est donné sur le champ de saisie « utilisateur ».
Tabulation dans les éléments de la fenêtre. Les éléments sont tabulables. Les éléments sont tabulables. Les éléments sont tabulables.
Fermeture de la fenêtre (ESC ou bouton fermer). NVDA annonce « bouton ouvrir la fenêtre de dialogue, dialog ». Jaws annonce « bouton ouvrir la fenêtre de dialogue, dialog » VoiceOver annonce « ouvrir la fenêtre de dialogue, dialog, bouton ».

Note : un enrichissement, via la propriété aria-describedby est implémenté pour vocaliser le message d'aide à l'ouverture de la fenêtre. Le message d'aide est correctement vocalisé par JAWS et NVDA mais ne semble pas vocalisé par VoiceOver

Tabpanel [Aller au test]

  • dialog
  • Menu
  • tooltip

Système d'onglets destiné à diffuser des contenus sous la forme de panneaux successifs contrôlés par des onglets

Implémentation

Le composant propose trois panneaux contenant successivement un titre et du contenu textuel, du contenu textuel, du contenu textuel et des liens.

Enrichissements

  1. Le contenu du panneau 1 utilise une propriété tabindex="0" nécessaire pour donner accès, via la tabulation, au contenu du panneau.
  2. Le titre (onglet) du panneau 2 utilise une propriété aria-describedby permettant de vocaliser le contenu automatiquement lorsque le panneau est affiché.

Test

Instructions

  1. Tabuler jusqu'à obtenir le focus sur l'onglet actif.
  2. À partir de l'onglet, tabuler pour atteindre la zone de contenu du panneau.
  3. À partir du contenu du panneau, tabuler en arrière pour reprendre le focus sur l'onglet du panneau.
  4. À partir d'un onglet, utiliser les flèches de direction pour vous déplacer d'onglet en onglet.
  5. Le test de tabulation dans le contenu d'un panneau peut être réalisé sur le panneau de l'onglet 3.

Contenu du panneau 1

Lorsqu'un panneau ne contient que du texte, le contenu n'est pas vocalisé. Une première adaptation consiste à implémenter un tabindex=0 sur le contenu ou sur le premier élément du contenu. Cela permet aux utilisateurs de lecteurs d'écran d'accéder au contenu du panneau via la touche TAB, ce qui déclenchera la vocalisation du contenu.

Tabpanel - Tests fonctionnels AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
OK OK OK
tabpanel - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA active le mode formulaire et annonce « onglet, panneau 1 onglet sélectionné 1 sur 3 », et active le mode application (signal sonore). Jaws active le mode formulaire et annonce « onglet, panneau 1 ». VoiceOver annonce « panneau 1, sélectionné tabulation 1 sur 3 ». (Tabulation est une mauvaise traduction de tab pour onglet).
Déplacement entre les différents onglets. NVDA annonce « Panneau [x], onglet sélectionné [x] sur [total] » Jaws annonce « onglet panneau 2 » VoiceOver annonce « Panneau [x], tabulation [x] sur [total] ».
Activation du contenu d'un panneau. NVDA annonce « Panneau [x], fenêtre développée », le contenu du panneau est lu, l'élément ayant pris le focus est lu. Jaws annonce « Panneau [x] », le contenu est lu avec flèche bas. VoiceOver avec la tabulation annonce l'élément ayant le focus. Avec les touches de déplacement, lorsque le focus est donné sur le panneau, VoiceOver annonce « Panneau [x] avec [x] éléments, tableau d'onglet ».
Lecture du contenu d'un panneau à la sélection de l'onglet (panneau 2). NVDA : le contenu est lu. Jaws : le contenu est lu. VoiceOver : le contenu est lu .
Depuis le contenu d'un panneau, retour avec la tabulation sur l'onglet corrspondant. NVDA annonce « Panneau [x], onglet sélectionné [x] sur [total] ». Jaws annonce « onglet panneau [x] » VoiceOver annonce « Panneau [x], tabulation [x] sur [total] »
Sortir du système d'onglets avec la tabulation. NVDA émet un signal sonore indiquant qu'il quitte le mode application. Jaws émet un signal sonore indiquant qu'il quitte le mode application. VoiceOver n'annonce pas la sortie du système d'onglets.

Tooltip [Aller au test]

  • tabpanel
  • Menu
  • button

Une infobulle

Implémentation

Dans un formulaire, un champ de saisie affiche une infobulle à la prise de focus.

Test

Instruction

  1. Tabuler jusqu'au champ « mot de passe ».

Formulaire de connexion



Tooltip - Tests fonctionnels AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
OK OK OK
tooltip - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation Le message d'aide est lu. Le message d'aide est lu. Le message d'aide est lu.

Button [Aller au test]

  • tooltip
  • Menu
  • Checkbox

Un bouton d'action

Implémentation

Un bouton d'action, équivalent à l'élément HTML button sous différentes formes

Test

Instructions

  1. Tabuler sur les trois boutons suivants.
  2. Le premier bouton est actif.
  3. Le second bouton est désactivé.
  4. Le troisième bouton est actif et labellisé via un passage de texte.
  5. Les deux boutons actifs affichent un message javascript.

Confirmer votre message - 1

Confirmer votre message - 2

Confirmer votre message - 3 OK

Tooltip - Tests fonctionnels AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
OK OK OK
button - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation d'un bouton simple NVDA annonce « confirmer votre message 1, bouton ». Jaws annonce « bouton, confirmer votre message 1 ». VoiceOver annonce « confirmer votre message 1, bouton ».
Activation d'un bouton désactivé NVDA annonce « confirmer votre message 2, bouton indisponible ». Jaws annonce « bouton, confirmer votre message 2, non disponible ». VoiceOver annonce « confirmer votre message 2, estompé, bouton ».
Activation d'un bouton labellisé NVDA annonce « confirmer votre message 3, bouton ». Jaws annonce « bouton, confirmer votre message 3 ». VoiceOver annonce « confirmer votre message 3, bouton ».

Checkbox [Aller au test]

  • Tooltip
  • Menu
  • Menubar

Une case à cocher

Implémentation

Une case à cocher, équivalent à l'élément HTML input type="checkbox"

Test

Instructions

  1. Tabuler sur le premier groupe de cases à cocher.
  2. Tabuler sur la case à cocher isolée.
Choisir la couleur
Exemple de case à cocher isolée

Acceptez les conditions d'utilisation

Checkbox - Tests fonctionnels AT
NVDA - Firefox 37.02 - Windows 8 JAWS 15 - IE11 - Windows 8 VoiceOver - Safari - OsX
OK OK OK
checkbox - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation d'un groupe de cases à cocher NVDA annonce « Liste de 3 éléments, noir, choisir la couleur Noir, case à cocher, non cochée ». Jaws annonce « case à cocher choisir la couleur noir non coché ». VoiceOver annonce « Choisir la couleur avec trois éléments ». En se déplaçant, VoiceOver annonce « Choisir la couleur, noir, non coché, case à cocher ».
Activation et désactivation d'une case à cocher (dans un groupe ou isolée). NVDA annonce, avec entrée et barre d'espace : « coché » et « non cochée ». Jaws annonce, avec entrée et barre d'espace : « cochée, choisir la couleur noir cochée » et « non cochée ». VoiceOver annonce, avec VO + espace : « cochée » et « non cochée ».

Intégration


/* HTML */
Case à cocher groupée :
<ul aria-labelledby="coul" class="acsa-checkboxGroup">
	<li role="checkbox" aria-labelledby=" coul noir" aria-checked="false" class=" acsa-checkbox acsa-checkbox-false" tabindex="0">
		<span id="noir">Noir</span>
	</li>
	[...]
</ul>
Case à cocher isolée :
<span role="checkbox" aria-checked="false" aria-labelledby="oui"
 class="checkbox acsa-checkbox acsa-checkbox-false" tabindex="0">
 <span id="oui">Acceptez les conditions d'utilisation</span></span>


/*  Javascript */
//Paramètres (composant_config.js)
	checkbox : {
		//CSS
		checkbox : 'acsa-checkbox',
		stateFalse : 'acsa-checkbox-false',
		stateTrue : 'acsa-checkbox-true'
	}
/* Initialisation
	var listCheckbox = document.getElementsByClassName( acsa_config.checkbox.checkbox );
	var checkbox = new Array();
	for ( var i = 0, len = listCheckbox.length; i < len; i++ ){
		listCheckbox[i].addEventListener( 'keydown', function setListChekbox( event ){
			var key = event.keyCode;
			checkbox[i] = new Checkbox ( this, key, event );
		}, false );
		listCheckbox[i].addEventListener( 'click', function setListChekbox(){
			var key = 32;
			checkbox[i] = new Checkbox ( this, key );
		}, false );
	}

Accordion [Aller au test]

  • Menubar
  • Menu
  • tree

Un accordéon

Implémentation

Un accordéon

Test

Instruction

  1. Tabuler jusqu'à l'accordéon

Un contenu en accordéon

Un contenu tabulable avant l'accordéon Lien

Un contenu tabulable après l'accordéon Lien

Accordion - Tests fonctionnels AT
NVDA - Firefox 37.02 - Windows 8 JAWS 15 - IE11 - Windows 8 VoiceOver - Safari - OsX
OK OK OK
accordion - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA active le mode formulaire et annonce « Onglet, panneau 1, onglet 1 sur 3 ». Jaws active le mode formulaire et annonce « onglet panneau 1, pour activer cet élément barre d'espace ». VoiceOver annonce « panneau 1 tabulation, 1 sur 3. »
Déplacement entre les différents panneaux. NVDA annonce « Panneau [x], onglet [x] sur [total] ». Jaws annonce « Panneau [x], onglet [x] sur [total] ». VoiceOver annonce « Panneau [x], tabulation [x] sur [total] ».
Activation d'un panneau. NVDA annonce « Panneau [x] sur [total], sélectionné ». Jaws annonce « sélectionné ». VoiceOver avec la touche entrée le panneau est sélectionné mais VoiceOver ne l'annonce pas, par contre, si on appuie sur une flèche et qu'on revient, VoiceOver annonce que le panneau est sélectionné. Avec VO + espace VoiceOver annonce : « appuyé panneau tabulation [x] sur [total] ».
Lecture du contenu d'un panneau. NVDA : quitte le mode formulaire, annonce « fenêtre développée », le contenu est lu. Jaws : quitte le mode formulaire et annonce « document », le contenu est lu. VoiceOver : le contenu est lu avec vo+flèches droite et lorsqu'on interagit avec le contenu avec vo+flèche bas.
Lecture du contenu d'un panneau à la sélection de l'onglet (panneau 2 ). NVDA : le contenu est lu. Jaws : le contenu est lu. VoiceOver : le contenu n'est pas lu.
Depuis le contenu d'un panneau, retour avec la tabulation sur l'onglet corrspondant. NVDA annonce « Panneau [x], onglet sélectionné [x] sur [total] ». Jaws annonce « Panneau [x] sur [total] » VoiceOver annonce « Panneau [x], tabulation [x] sur [total] »
Sortir de l'accordéon avec la tabulation. NVDA émet un signal sonore indiquant qu'il quitte le mode application. Jaws n'annonce pas la sortie de l'accordéon. VoiceOver n'annonce pas la sortie de l'accordéon.

Intégration


/* HTML */
<div class="acsa-accordion" role="tablist">
	<div id="tab-accordion0" role="tab" aria-selected="false" 
	aria-controls="pan-accordion0" class="acsa-accordion-head" 
	tabindex="0" data-n="0">Panneau 1</div>
	<div id="pan-accordion0" role="tabpanel" class="acsa-accordion-pan" 
	aria-labelledby="tab-accordion0" aria-expanded="false" aria-hidden="true">
		<h4 tabindex="0">Contenu du panneau 1</h4>
		[...]
	</div>
	[...]
</div>


/*  Javascript */
//Paramètres (composant_config.js)
	accordion : {
		//Css
		accordion : 'acsa-accordion',
		head : 'acsa-accordion-head',
		headActive : 'acsa-accordion-head-active',
		pan : 'acsa-accordion-pan',
		panActive : 'acsa-accordion-pan-active'
	},
/* Initialisation */
	var listAccordion = document.getElementsByClassName( acsa_config.accordion.accordion );
	var accordion = new Array();
	for ( var i = 0, len = listAccordion.length; i < len; i++ ){
		accordion[i] = new Accordion( listAccordion[i] );
	}

Tree [Aller au test]

  • accordion
  • Menu
  • date picker

Une arborescence

Note importante : VoiceOver ne gère pas correctement la position du focus courant si celle-ci est gérée via tabindex. En conséquence, l'arborescence utilise la propriété aria-activedescendant.

Implémentation

Une arborescence

Test

Instruction

  1. Tabuler jusqu'à l'arborescence

Un contenu tabulable avant l'arborescence Lien

Documents

Un contenu tabulable après l'arborescence Lien

Tree - Tests fonctionnels AT
NVDA - Firefox 37.02 - Windows 8 JAWS 15 - IE11 - Windows 8 VoiceOver - Safari - OsX
OK OK KO
accordion - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA active le mode formulaire et annonce « Arborescence + [titre de l'entrée] + réduit, non sélectionné, [x] sur [total] ». Jaws annonce « [nom de l'entrée} + [contenu du sous menu] + [message d'aide] ». VoiceOver annonce « tableau, ligne 1 sur 3, sélectionné », en se déplaçant en colonne, VoiceOver annonce « [titre de l'entrée] condensé ».
Activer une entrée de l'arborescence (ouverture du niveau inférieur). NVDA annonce « [titre de l'entrée] développé, [x] sur [total], niveau [x] ». Jaws annonce « [titre de l'entrée] + [contenu du sous menu] + [x] sur [total] + ouvert ». VoiceOver : l’activation s’effectue en se déplaçant avec vo+flèche bas (mode navigation désactivé), puis en appuyant sur la flèche droite pour développer l’arborescence. VO annonce « cliquabe, ligne [x] étendu ». Pour vraiment pouvoir développer l’arborescence il faut effectuer l’action de clic en appuyant sur vo+espace. Pour lire le contenu de l’arborescence, il faut se déplacer sur la colonne 3 qui apparaît sans que VO ne l’indique.
Revenir au niveau supérieur, fermer le niveau de l'arborescence. NVDA annonce « [titre de l'entrée] réduit, [x] sur [total], niveau [x] ». Jaws annonce « [titre de l'entrée] + [contenu du sous menu] + fermé » VO ne restitue que la disposition tableau. L’utilisation des flèches ne permet pas d’étendre et de replier l’arborescence. L’arborescence ne s'active pas avec les flèches mais en appuyant sur vo+espace.

Note : VoiceOver a beaucoup de difficultés avec ce motif de conception. Une solution d'implémentation alternative est décrite dans cet article en anglais : (Not so) Simple ARIA Tree Views and Screen Readers.

Intégration


/* HTML */
<ul class="acsa-tree-root-level" aria-labelledby="tree-title" role="tree">
	<li class="acsa-tree-item acsa-tree-item-visible acsa-tree-item-subtree" 
	data-level="0" aria-expanded="false" tabindex="-1" role="treeitem">
		<span>Travail</span>
		<ul class="acsa-tree-subgroup" role="group">
			<li class="acsa-tree-item" data-level="1" tabindex="-1" role="tree-item">
				Mon-cv.odt
			</li>
			[...]
		</ul>
	</li>
	[...]
</ul>


/*  Javascript */
//Paramètres (composant_config.js)
	tree : {
		//Css
		tree : 'acsa-tree-root-level',
		subtree : 'acsa-tree-subgroup',
		subtreeActive: 'acsa-tree-subgroup-active',
		treeitem: 'acsa-tree-item',
		treeitemSubtree: 'acsa-tree-item-subtree',
		treeitemSubtreeActive: 'acsa-tree-item-subtree-active',
		treeitemVisible: 'acsa-tree-item-visible'
	},
/* Initialisation */
	var listTree = document.getElementsByClassName( acsa_config.tree.tree );
	var tree = new Array();
	for ( var i = 0, len = listTree.length; i < len; i++ ){
		tree[i] = new Tree( listTree[i], i );
	}

Date Picker [Aller au test]

  • tree
  • Menu

Un calendrier

Implémentation

Un calendrier

Test

Instruction

  1. Tabuler jusqu'au calendrier

Un contenu tabulable avant le calendrier Lien

Choisir une date

Di Lu Ma Me Je Ve Sa

Un contenu tabulable après le calendrier Lien

Datepicker - Tests fonctionnels AT
NVDA - Firefox 37.02 - Windows 8 JAWS 15 - IE11 - Windows 8 VoiceOver - Safari - OsX
OK OK OK
Datepicker - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA annonce : « Juillet 2015, tableau, éditable, [nom du jour] + [numéro du jour], éditable, paragraphe ». Jaws annonce « début de la région application + [nom du jour] + [numéro du jour] + controle de l'application ». Après un déplacement avec VO+flèche droite, VO annonce « sortie du repère principal, entrée du repère application. Précédent bouton ».
Déplacement dans la grille. NVDA annonce : « [nom du jour], éditable + [numéro du jour], éditable, paragraphe + [numéro de colonne] ». Jaws annonce « [nom du jour] + [numéro du jour] ». Les déplacements dans le tableau doivent être faits manuellement. Lorsqu’on se déplace dans une colonne, VoiceOver annonce le jour.
Activer le mois suivant (tabulation arrière à partir d'une date quelconque). NVDA annonce : « suivant bouton » puis, après activation, « [nom du mois] ». Jaws annonce « Hors du tableau bouton suivant, controle de l'application », puis après activation « [nom du mois »]. VoiceOver perd le focus et oblige à trouver manuellement le bouton suivant. Après activation, VoiceOver annonce « [nom du mois] ».
Sélectionner une date (avec entrée). NVDA annonce : « Date jj/mm/aaa, édition avec autocomplétion [date saisie] ». Jaws annonce « Hors du tableau, fin de la région d'application, édition sate jj/mm/aaa [date saisie] ». VoiceOver annonce « [date] appuyé, cliquable ».

Intégration


/* HTML */
<div class="acsa-date-picker-main" role="application">
	<div id="acsa-date-picker-head" class="acsa-date-picker-head">		
		<button type="button" class="acsa-date-picker-prev">
		<span aria-hidden="true"><</span><span class="invisible">Précédent</span></button>     
		<span role="header" id="acsa-datepicker-header" 
		class="acsa-datepicker-header" aria-live="assertive" aria-atomic="true"></span> 
		<button type="button" class="acsa-date-picker-next">
		<span aria-hidden="true">></span><span class="invisible">Suivant</span></button>						
	</div>    
	<table class="" role="grid" aria-labelledby="acsa-datepicker-header" data-input="mydate">
		<thead role="presentation">     
			<tr role="row">             
				<th role="columnheader" aria-label="Dimanche">
					<abbr title="Dimanche">Di</abbr>
				</th> 
				[...]
			</tr>
		</thead>
		<tbody role="presentation">          
			<tr role="row">             
				<td role="gridcell" ></td>
				[...]
			</tr>
			[...]
		</tbody>
	</table>
</div>
			


/*  Javascript */
//Paramètres (composant_config.js)
	datepicker: {
		datepicker: 'acsa-date-picker-main',
		head: 'acsa-datepicker-header',
		datepickerPrev: 'acsa-date-picker-prev',
		datepickerNext: 'acsa-date-picker-next',
		datepickerActive: 'acsa-date-picker-active',
		today: 'acsa-date-picker-today',
		dayName: 'acsa-day-name'
	}
/* Initialisation */
	var listDatepicker = document.getElementsByClassName( acsa_config.datepicker.datepicker );
	var datepicker = new Array();
	for ( var i = 0, len = listDatepicker.length; i < len; i++ ){
		datepicker[i] = new DatePicker( listDatepicker[i] );
	}

Autocomplete [Aller au test]

  • Datepicker
  • Menu

Une liste d'autocomplétion

Note : le modèle de conception autocomplete ne donne pas d'indication précise sur le comportement général du rôle autocomplete et ne décrit que des actions au clavier génériques, particulièrement pour le cas d'une autocomplétion en écriture (e.g le champ de saisie est éditable).

Deux exemples sont présentés ici, une liste d'autocomplétion en lecture seule qui simule le comportement d'une liste select et un exemple générique de liste d'autocomplétion en écriture qui simule les comportements habituels, tels qu'ils sont généralement implémentés sur le champ de saisie d'un moteur de recherche par exemple.

Les deux exemples peuvent s'écarter des comportements génériques des interactions au clavier tels qu'ils sont décrits par le modèle de conception afin de les adapter au but recherché.

Implémentation

  1. Une autocomplétion en mode lecture seule : ce type d'autocomplétion simule une liste select. Avec NVDA, le composant provoque des bugs avec les flèches de direction (perte de focus). Un rôle application sur le wrapper principal du composant et un attribut tabindex = 0 (pour donner le focus sur le champ de saisie), permettent de contrôler ces effets indésirables. Cette adaptation n'est pas utilisable sur les listes d'autocomplétion en écriture.

Test

Instruction

  1. Tabuler jusqu'au champ de saisie

Un contenu tabulable avant l'autocomplétion Lien

Autocomplete list - readonly

  • Afghanistan
  • Afrique_Centrale
  • Afrique_du_Sud
  • Albanie
  • Algerie
  • Allemagne
  • Andorre
  • Angola
  • Anguilla
  • Arabie_Saoudite
  • Argentine
  • Armenie
  • Australie
  • Autriche
  • Azerbaidjan
  • Bahamas
  • Bangladesh
  • Barbade
  • Bahrein
  • Belgique
  • Belize
  • Benin
  • Bermudes
  • Bielorussie
  • Bolivie
  • Botswana
  • Bhoutan
  • Boznie_Herzegovine
  • Bresil
  • Brunei
  • Bulgarie
  • Burkina_Faso
  • Burundi
  • Caiman
  • Cambodge
  • Cameroun
  • Canada
  • Canaries
  • Cap_Vert
  • Chili
  • Chine
  • Chypre
  • Colombie
  • Colombie
  • Congo
  • Congo_democratique
  • Cook
  • Coree_du_Nord
  • Coree_du_Sud
  • Costa_Rica
  • Côte_d_Ivoire
  • Croatie
  • Cuba
  • Danemark
  • Djibouti
  • Dominique
  • Egypte
  • Emirats_Arabes_Unis
  • Equateur
  • Erythree
  • Espagne
  • Estonie
  • Etats_Unis
  • Ethiopie
  • Falkland
  • Feroe
  • Fidji
  • Finlande
  • France
  • Gabon
  • Gambie
  • Georgie
  • Ghana
  • Gibraltar
  • Grece
  • Grenade
  • Groenland
  • Guadeloupe
  • Guam
  • Guatemala
  • Guernesey
  • Guinee
  • Guinee_Bissau
  • Guinee_Equatoriale
  • Guyana
  • Guyane_Francaise
  • Haiti
  • Hawaii
  • Honduras
  • Hong_Kong
  • Hongrie
  • Inde
  • Indonesie
  • Iran
  • Iraq
  • Irlande
  • Islande
  • Israel
  • italie
  • Jamaique
  • Jan Mayen
  • Japon
  • Jersey
  • Jordanie
  • Kazakhstan
  • Kenya
  • Kirghizistan
  • Kiribati
  • Koweit
  • Laos
  • Lesotho
  • Lettonie
  • Liban
  • Liberia
  • Liechtenstein
  • Lituanie
  • Luxembourg
  • Lybie
  • Macao
  • Macedoine
  • Madagascar
  • Madère
  • Malaisie
  • Malawi
  • Maldives
  • Mali
  • Malte
  • Man
  • Mariannes du Nord
  • Maroc
  • Marshall
  • Martinique
  • Maurice
  • Mauritanie
  • Mayotte
  • Mexique
  • Micronesie
  • Midway
  • Moldavie
  • Monaco
  • Mongolie
  • Montserrat
  • Mozambique
  • Namibie
  • Nauru
  • Nepal
  • Nicaragua
  • Niger
  • Nigeria
  • Niue
  • Norfolk
  • Norvege
  • Nouvelle_Caledonie
  • Nouvelle_Zelande
  • Oman
  • Ouganda
  • Ouzbekistan
  • Pakistan
  • Palau
  • Palestine
  • Panama
  • Papouasie_Nouvelle_Guinee
  • Paraguay
  • Pays_Bas
  • Perou
  • Philippines
  • Pologne
  • Polynesie
  • Porto_Rico
  • Portugal
  • Qatar
  • Republique_Dominicaine
  • Republique_Tcheque
  • Reunion
  • Roumanie
  • Royaume_Uni
  • Russie
  • Rwanda
  • Sahara Occidental
  • Sainte_Lucie
  • Saint_Marin
  • Salomon
  • Salvador
  • Samoa_Occidentales
  • Samoa_Americaine
  • Sao_Tome_et_Principe
  • Senegal
  • Seychelles
  • Sierra Leone
  • Singapour
  • Slovaquie
  • Slovenie
  • Somalie
  • Soudan
  • Sri_Lanka
  • Suede
  • Suisse
  • Surinam
  • Swaziland
  • Syrie
  • Tadjikistan
  • Taiwan
  • Tonga
  • Tanzanie
  • Tchad
  • Thailande
  • Tibet
  • Timor_Oriental
  • Togo
  • Trinite_et_Tobago
  • Tristan de cuncha
  • Tunisie
  • Turmenistan
  • Turquie
  • Ukraine
  • Uruguay
  • Vanuatu
  • Vatican
  • Venezuela
  • Vierges_Americaines
  • Vierges_Britanniques
  • Vietnam
  • Wake
  • Wallis et Futuma
  • Yemen
  • Yougoslavie
  • Zambie
  • Zimbabwe

Un contenu tabulable après l'autocomplétion Lien

autocomplete - Tests fonctionnels AT
NVDA - Firefox 37.02 - Windows 8 JAWS 15 - IE11 - Windows 8 VoiceOver - Safari - OsX
OK OK OK
autocomplete - Principaux éléments de restitution AT
NVDA - Firefox 37.02 - Win 8 JAWS 15 - IE11 - Win 8 VoiceOver - Safari - OsX
Activation NVDA active le mode formulaire et annonce : « Application, choisissez le pays, liste déroulante, réduit, éditable avec autocomplétion, sélectionné [nom du pays] ». Jaws active le mode formulaire et annonce « zone de liste déroulante choisissez un pays, [nom du pays] ». VoiceOver annonce « entrée du repère application, choisissez un pays, [nom du pays] ».
Faire défiler les items de la liste. NVDA annonce « [nom du pays] ». Jaws annonce « [nom du pays] ». Avec VoiceOver, lorsqu’on se déplace dans la liste avec les flèches, le contenu change mais il n’est pas annoncé par VO (problème de tampon virtuel qui ne se rafraîchit pas). Pour avoir la mise à jour du contenu affiché, il faut quitter la liste avec vo+flèche gauche ou droite et y revenir.
Ouvrir la liste des pays. NVDA annonce « afficher la liste des options bouton » puis « choisissez le pays, liste déroulante, développée, éditable avec autocomplétion, [nom du pays] ». Jaws annonce « afficher la liste des options bouton » puis « liste [nom du pays] ». VoiceOver annonce « afficher la liste des options » bouton. Lorsqu’on l’active, il annonce « appuyé afficher la liste des options bouton ».
Parcourir la liste des pays. NVDA annonce « [nom du pays], [x] sur [total] ». Jaws annonce « [nom du pays], contrôle de l'application ». VoiceOver annonce « [nom du pays], [x] sur [total] ».
Chercher un pays en tapant une lettre. NVDA annonce « [nom du pays], [x] sur [total] ». Jaws annonce « [nom du pays], contrôle de l'application ». VoiceOver annonce « [nom du pays], [x] sur [total] ».
Sélectionner un pays. NVDA annonce « choisissez le pays, liste déroulante, développée, éditable avec autocomplétion, [nom du pays] ». Jaws annonce « [nom du pays] ». VoiceOver annonce « [nom du pays], choisissez le pays, combobox ».

Intégration


/* HTML */
	<div class="acsa-textbox-border">
		<input type="text" id="choice" role="combobox" 
		aria-expanded="false" aria-autocomplete="list" 
		aria-owns="acsa-listbox" aria-readonly="true" data-start="" 
		value="" class="acsa-textbox-list" tabindex="0" />
		<button class="acsa-open-close" type="button">
		<span aria-hidden="true"></span><span class="invisible"></span></button>
	</div>
	<ul role="listbox" class="acsa-autocomplete-listbox" id="acsa-listbox">
		<li role="option" data-value="Afghanistan">Afghanistan </li>
		[...]
	</ul>			


/*  Javascript */
//Paramètres (composant_config.js)
	autocomplete: {
		autocomplete: 'acsa-autocomplete',
		openClose: 'acsa-open-close',
		openCloseOpen : 'acsa-open-close-open',
		openCloseTxtClosed: 'afficher la liste des options',
		openCloseTxtOpen : 'fermer la liste des options',
		openCloseTxtOffscreen: 'invisible',
		textboxInline: 'acsa-textbox-inline',
		textboxList:  'acsa-textbox-list',
		listBox: 'acsa-autocomplete-listbox',
		listBoxOpen: 'acsa-autocomplete-listbox-open',
		listOptionOn: 'acsa-list-higlight'
	
/* Initialisation */
	var listDatepicker = document.getElementsByClassName( acsa_config.datepicker.datepicker );
	var listAutocomplete = document.getElementsByClassName( acsa_config.autocomplete.autocomplete );
	var autocomplete = new Array();
	for ( var i = 0, len = listAutocomplete.length; i < len; i++ ){
		autocomplete[i] = new Autocomplete( listAutocomplete[i], acsa_config.autocomplete.autocomplete );
	}

Autocomplete list - editable


  • Afghanistan
  • Afrique_Centrale
  • Afrique_du_Sud
  • Albanie
  • Algerie
  • Allemagne
  • Andorre
  • Angola
  • Anguilla
  • Arabie_Saoudite
  • Argentine
  • Armenie
  • Australie
  • Autriche
  • Azerbaidjan
  • Bahamas
  • Bangladesh
  • Barbade
  • Bahrein
  • Belgique
  • Belize
  • Benin
  • Bermudes
  • Bielorussie
  • Bolivie
  • Botswana
  • Bhoutan
  • Boznie_Herzegovine
  • Bresil
  • Brunei
  • Bulgarie
  • Burkina_Faso
  • Burundi
  • Caiman
  • Cambodge
  • Cameroun
  • Canada
  • Canaries
  • Cap_Vert
  • Chili
  • Chine
  • Chypre
  • Colombie
  • Colombie
  • Congo
  • Congo_democratique
  • Cook
  • Coree_du_Nord
  • Coree_du_Sud
  • Costa_Rica
  • Côte_d_Ivoire
  • Croatie
  • Cuba
  • Danemark
  • Djibouti
  • Dominique
  • Egypte
  • Emirats_Arabes_Unis
  • Equateur
  • Erythree
  • Espagne
  • Estonie
  • Etats_Unis
  • Ethiopie
  • Falkland
  • Feroe
  • Fidji
  • Finlande
  • France
  • Gabon
  • Gambie
  • Georgie
  • Ghana
  • Gibraltar
  • Grece
  • Grenade
  • Groenland
  • Guadeloupe
  • Guam
  • Guatemala
  • Guernesey
  • Guinee
  • Guinee_Bissau
  • Guinee_Equatoriale
  • Guyana
  • Guyane_Francaise
  • Haiti
  • Hawaii
  • Honduras
  • Hong_Kong
  • Hongrie
  • Inde
  • Indonesie
  • Iran
  • Iraq
  • Irlande
  • Islande
  • Israel
  • italie
  • Jamaique
  • Jan Mayen
  • Japon
  • Jersey
  • Jordanie
  • Kazakhstan
  • Kenya
  • Kirghizistan
  • Kiribati
  • Koweit
  • Laos
  • Lesotho
  • Lettonie
  • Liban
  • Liberia
  • Liechtenstein
  • Lituanie
  • Luxembourg
  • Lybie
  • Macao
  • Macedoine
  • Madagascar
  • Madère
  • Malaisie
  • Malawi
  • Maldives
  • Mali
  • Malte
  • Man
  • Mariannes du Nord
  • Maroc
  • Marshall
  • Martinique
  • Maurice
  • Mauritanie
  • Mayotte
  • Mexique
  • Micronesie
  • Midway
  • Moldavie
  • Monaco
  • Mongolie
  • Montserrat
  • Mozambique
  • Namibie
  • Nauru
  • Nepal
  • Nicaragua
  • Niger
  • Nigeria
  • Niue
  • Norfolk
  • Norvege
  • Nouvelle_Caledonie
  • Nouvelle_Zelande
  • Oman
  • Ouganda
  • Ouzbekistan
  • Pakistan
  • Palau
  • Palestine
  • Panama
  • Papouasie_Nouvelle_Guinee
  • Paraguay
  • Pays_Bas
  • Perou
  • Philippines
  • Pologne
  • Polynesie
  • Porto_Rico
  • Portugal
  • Qatar
  • Republique_Dominicaine
  • Republique_Tcheque
  • Reunion
  • Roumanie
  • Royaume_Uni
  • Russie
  • Rwanda
  • Sahara Occidental
  • Sainte_Lucie
  • Saint_Marin
  • Salomon
  • Salvador
  • Samoa_Occidentales
  • Samoa_Americaine
  • Sao_Tome_et_Principe
  • Senegal
  • Seychelles
  • Sierra Leone
  • Singapour
  • Slovaquie
  • Slovenie
  • Somalie
  • Soudan
  • Sri_Lanka
  • Suede
  • Suisse
  • Surinam
  • Swaziland
  • Syrie
  • Tadjikistan
  • Taiwan
  • Tonga
  • Tanzanie
  • Tchad
  • Thailande
  • Tibet
  • Timor_Oriental
  • Togo
  • Trinite_et_Tobago
  • Tristan de cuncha
  • Tunisie
  • Turmenistan
  • Turquie
  • Ukraine
  • Uruguay
  • Vanuatu
  • Vatican
  • Venezuela
  • Vierges_Americaines
  • Vierges_Britanniques
  • Vietnam
  • Wake
  • Wallis et Futuma
  • Yemen
  • Yougoslavie
  • Zambie
  • Zimbabwe

Un contenu tabulable après l'autocomplétion Lien

autocomplete - Tests fonctionnels AT
NVDA - Firefox 37.02 - Windows 8 JAWS 15 - IE11 - Windows 8 VoiceOver - Safari - OsX
KO KO KO

Note : aucun lecteur d'écran n'offre de restitution satisfaisante.