J'ai vu l'attribut aria partout en travaillant avec du matériel angulaire. Quelqu'un peut-il m'expliquer ce que signifie le préfixe aria? mais le plus important, ce que j'essaie de comprendre, c'est la différence entre aria-hidden
et hidden
attribut.
256
Réponses:
ARIA (Accessible Rich Internet Applications) définit un moyen de rendre le contenu Web et les applications Web plus accessibles aux personnes handicapées.
L'
hidden
attribut est nouveau en HTML5 et indique aux navigateurs de ne pas afficher l'élément. Laaria-hidden
propriété indique aux lecteurs d'écran s'ils doivent ignorer l'élément. Jetez un œil aux documents w3 pour plus de détails:https://www.w3.org/WAI/PF/aria/states_and_properties#aria-hidden
L'utilisation de ces normes peut faciliter l'utilisation du Web pour les personnes handicapées.
la source
hidden
signifie caché à tout le monde.aria-hidden
signifie caché aux lecteurs d'écran et aux outils similaires. Ceci est utile pour les composants qui sont utilisés uniquement pour le formatage et qui ne contiennent pas de contenu réel, par exemple.hidden
Devrait empêcher le lecteur d'écran d'accéder au contenu de la balise.aria-hidden
est correcte; cependant, vous n'avez rien dithidden
pour le différencieraria-hidden
. C'est malheureusement la meilleure réponse. Veuillez être plus approfondi sur vos réponses.Un attribut masqué est un attribut booléen (Vrai / Faux). Lorsque cet attribut est utilisé sur un élément, il supprime toute pertinence pour cet élément. Lorsqu'un utilisateur affiche la page html, les éléments avec l'attribut caché ne doivent pas être visibles.
Exemple:
Les attributs cachés par Aria indiquent que l'élément et TOUS ses descendants sont toujours visibles dans le navigateur, mais seront invisibles pour les outils d'accessibilité, tels que les lecteurs d'écran.
Exemple:
Jeter un coup d'œil à cela . Il devrait répondre à toutes vos questions.
Remarque: ARIA signifie Accessible Rich Internet Applications
Sources: Groupe Paciello
la source
aria-hidden="true"
est toujours visible dans le navigateur, mais sera invisible pour les outils d'accessibilité, tels que les lecteurs d'écran.aria-hidden
est utilisé pour masquer l'élément aux personnes utilisant votre site Web avec des outils d'accessibilité.Différence sémantique
Selon HTML 5.2 :
Les exemples incluent une liste d'onglets où certains panneaux ne sont pas exposés, ou un écran de connexion qui disparaît après qu'un utilisateur se connecte. J'aime appeler ces choses «temporellement pertinentes» c'est-à-dire qu'elles sont pertinentes en fonction du calendrier.
D'un autre côté, ARIA 1.1 dit:
En d'autres termes, les éléments avec
aria-hidden="true"
sont supprimés de l' arborescence d'accessibilité , que la plupart des technologies d'assistance honorent, et les éléments avecaria-hidden="false"
seront certainement exposés à l'arborescence. Les éléments sans l'aria-hidden
attribut sont à l'état "non défini (par défaut)", ce qui signifie que les agents utilisateurs doivent l'exposer à l'arborescence en fonction de son rendu. Par exemple, un agent utilisateur peut décider de le supprimer si sa couleur de texte correspond à sa couleur d'arrière-plan.Comparons maintenant la sémantique. Il convient d'utiliser
hidden
, mais pasaria-hidden
, un élément qui n'est pas encore «temporellement pertinent», mais qui pourrait devenir pertinent à l'avenir (auquel cas vous utiliseriez des scripts dynamiques pour supprimer l'hidden
attribut). Inversement, il convient d'utiliseraria-hidden
, mais pashidden
, sur un élément toujours pertinent, mais avec lequel vous ne voulez pas encombrer l'API d'accessibilité; ces éléments peuvent inclure un «flair visuel», comme des icônes et / ou des images qui ne sont pas essentielles pour l'utilisateur.Différence efficace
La sémantique a des effets prévisibles dans les navigateurs / agents utilisateurs. La raison pour laquelle je fais une distinction est que le comportement de l'agent utilisateur est recommandé , mais n'est pas requis par les spécifications.
L'
hidden
attribut doit masquer un élément de toutes les présentations, y compris les imprimantes et les lecteurs d'écran (en supposant que ces appareils respectent les spécifications HTML). Si vous souhaitez supprimer un élément de l'arborescence d'accessibilité ainsi que des supports visuels,hidden
ferait l'affaire. Cependant, ne l'utilisez pashidden
simplement parce que vous voulez cet effet. Demandez-vous d'abord sihidden
c'est sémantiquement correct (voir ci-dessus). Sihidden
n'est pas sémantiquement correct, mais que vous souhaitez toujours masquer visuellement l'élément, vous pouvez utiliser d'autres techniques telles que CSS.Les éléments avec
aria-hidden="true"
ne sont pas exposés à l'arborescence d'accessibilité, par exemple, les lecteurs d'écran ne les annonceront pas. Cette technique doit être utilisée avec précaution, car elle offrira différentes expériences à différents utilisateurs: les agents utilisateurs accessibles ne les annonceront pas / ne les rendront pas, mais ils sont toujours rendus sur les agents visuels. Cela peut être une bonne chose une fois fait correctement, mais il a le potentiel d'être abusé.Différence syntaxique
Enfin, il existe une différence de syntaxe entre les deux attributs.
hidden
est un attribut booléen , ce qui signifie que si l'attribut est présent, il est vrai, quelle que soit sa valeur, et si l'attribut est absent, il est faux. Pour le vrai cas, la meilleure pratique consiste à ne pas utiliser de valeur du tout (<div hidden>...</div>
) ou la valeur de chaîne vide (<div hidden="">...</div>
). Je ne recommanderais pashidden="true"
car quelqu'un lisant / mettant à jour votre code pourrait en déduire quehidden="false"
cela aurait l'effet inverse, ce qui est tout simplement incorrect.aria-hidden
, en revanche, est un attribut énuméré , permettant l'une d'une liste finie de valeurs. Si l'aria-hidden
attribut est présent, sa valeur doit être soit"true"
ou"false"
. Si vous voulez l'état "non défini (par défaut)", supprimez complètement l'attribut.Pour en savoir plus: https://github.com/chharvey/chharvey.github.io/wiki/Hidden-Content
la source
définir aria-hidden sur false et le basculer sur element.show () a fonctionné pour moi.
par exemple
et en se cachant
la source