Invalide rôle de valeur d'attribut d'élément de section?
Dans un site web, je travaille en ce moment, j'ai une section de l'élément dont le type est réglé sur "main
". Selon WAI-ARIA, le section
élément peut utiliser main
comme role
attribut (role="main"
).
Cependant, lorsque je lance mon site par le validateur du W3C, je reçois une "Mauvaise valeur principale pour l'attribut rôle sur la section de l'élément." erreur. J'ai utilisé le main
valeur dans un autre site web précédemment, et il a fait passer la validation, mais maintenant il n'est plus valide, les rapports de la même erreur.
A la spécification HTML5 changé récemment et qui a sorti le main
valeur? Dois-je croire le WAI-ARIA ou le validateur du W3C? Est le WAI-ARIA page de date? Devrais-je continuer à le section
élément sans fonction d'attribut (qui va revenir à la "région", valeur par défaut)?
Des idées et des conseils sur ce qui serait apprécié 🙂
<main>
élément, mais aussi loin que je peux voir les spécifications permettent encore role="main"
sur <section>
. Peut-être juste un validateur de bug.Oui, c'est ce que je me demandais, si c'est une erreur de la part du programme de validation ou si je devrais arrêter d'utiliser role="principale". Je n'ai rien trouvé à ce sujet sur le web.
La seule façon d'avancer est de demander aux personnes qui offre le programme de validation.
role="principale" est toujours valable, comme il y en a d'autres aria attributs qui correspondent à des éléments html5.
Ouais, je pense que c'est une erreur dans le programme de validation. Je vais attendre pour voir si le problème est résolu.
OriginalL'auteur HCkev | 2013-04-29
Vous devez vous connecter pour publier un commentaire.
La
main
rôle est valide ou non en fonction du type de document que vous utilisez. Si vous utilisez le doctype HTML5:<!DOCTYPE html>
il faut la valider. Si vous utilisez une version antérieure du doctype comme XHTML ou html 4, il ne sera pas. Voir https://developer.mozilla.org/en-US/docs/Accessibility/ARIA/Web_applications_and_ARIA_FAQ#What_about_validation.3F pour plus de détails.Si vous avez besoin d'utiliser un doctype où il n'est pas valide et vous devez valider, vous pouvez les ajouter via JavaScript. Cela permettra d'éviter les problèmes de validation.
Cependant, la
main
rôle ne valide si elle est utilisée sur certains éléments. Pour lesection
élément de la validité de rôlesalert
,alertdialog
,application
,contentinfo
,dialog
,document
,log
,marquee
,search
, etstatus
.La dernière version de HTML; HTML5.1 comprend un support natif pour la main par le
main
élément. Vous pouvez utiliser cet élément au lieu de<section role="main">
. Voir http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-main-elementLes autres éléments qui pourraient être utilisées avec
role="main"
inclurearticle
,div
,figure
,canvas
,p
,pre
,blockquote
,output
,span
,table
,td
,tr
,em
,strong
,small
,s
,cite
,q
,dfn
,abbr
,time
,code
,var
,samp
,kbd
,sub
,sup
,i
,b
,u
,mark
,ruby
,rt
,rp
,bdi
,bdo
,br
, etwbr
, et peut-être quelques autres. Évidemment, beaucoup de ces sont des éléments tacite de la sémantique et ne peut être utilisé dans certain contexte pour être valide eux-mêmes. Le plus probable, soitmain
,div
, ouarticle
sera le plus approprié de l'élément à utiliser. Pour plus d'informations, voir https://dvcs.w3.org/hg/aria-unofficial/raw-file/tip/index.html#recommendations-tablemain
élément n'est pas un élément de sectionnement, de sorte que vous pouvez avoir besoin de l'section
élément.Je suis en fait en utilisant le HTML 5 doctype, mais il n'est plus à valider. Je suppose que c'est une erreur de le validateur, je vais peut-être attendre un peu et voir ce qui se passe. Je ne pense pas que le
main
élément de travail dans mon cas. Sur la page d'accueil, j'ai unsection
élément avecrole="marquee"
(jQuery slide), suivie par unesection
qui affiche une liste des services, puis enfin de lasection
élément avecrole="main"
qui ne valide pas.le rôle principal est conçu pour être inclus uniquement une fois dans le document, et pour envelopper tout le contenu principal (pas l'en-tête, de navigation, etc.) Utilisez-vous comme ça?
Si vous l'utilisez correctement, il ne valider. Voir html5.programme de validation.nu/...
À l'exception de la
role
attribut a été utilisé sur undiv
, pas unsection
. Si vous modifiez lediv
pour unsection
, il donne la même erreur de validation.OriginalL'auteur David Storey
Basculer le Validateur HTML du Doctype option HTML5 et cela devrait fonctionner, au moins avec un
<div>
. J'ai juste couru le validateur contre le balisage ci-dessous et de valider:La validation HTML5 est marqué comme expérimentale, ce qui peut expliquer pourquoi il a un comportement inattendu avec
<section>
.Note également que la validation n'est pas une condition préalable à l'accessibilité. Préférable d'inclure le
role
attribut et la validation échoue, que retenir de la fonctionnalité d'utilisateurs de lecteurs d'écran.OriginalL'auteur ckundo
Maintenant que la poussière est retombée, il est assez évident que le code
<section role="main"></section>
est fine et qui passe dans le validateur.Il fait état ici, dans ce tableau que le
main
rôle est valide pour lasection
élément et il devrait donc.Si vous pensez à ce sujet, il serait ridicule de faire cette syntaxe non valide, les gens qui veulent créer leur structure du document de façon spécifique devrait être en mesure de le faire sans être obligé de faire quelque chose comme
<main role="main"><section></section></main>
pour contourner le problème, qui serait tout simplement absurde.OriginalL'auteur Matt Kieran