10
votes

Valeur d'attribut de rôle non valide pour l'élément de la section?

Dans un site Web, je travaille en ce moment, j'ai un élément de section quel type est défini sur " principal ". Selon wai-aria , le Section ELEMENT peut utiliser Main comme Attribut ( Rôle = "Main" ).

Cependant, lorsque j'exécute mon site via le validateur W3C, je reçois une "mauvaise valeur principale pour le rôle d'attribut dans la section Élément". Erreur. J'ai utilisé la valeur sur un autre site Web précédemment, et cela a passé la validation, mais il n'est plus valide, signalant la même erreur.

a la spécification HTML5 modifiée récemment et a sorti la valeur ? Devrais-je croire le validateur Wai-Aria ou le Validateur W3C? La page wai-aria est-elle obsolète? Dois-je simplement conserver l'élément sans attribut de rôle (qui reviendra à la valeur par défaut "région")?

Toutes les pensées et les conseils à ce sujet seraient appréciés :)


5 commentaires

Cela pourrait être quelque chose à voir avec le nouvel élément , mais aussi loin que je peux voir que les spécifications permettent toujours rôle = "Main" sur

. Pourrait simplement être un virus de validateur.


Oui, c'est ce que je me demande, si c'est une erreur du validateur ou si je devrais cesser d'utiliser le rôle = "Main". Je n'ai rien trouvé à ce sujet sur le Web.


La seule voie à suivre est de demander aux personnes qui fournissent le validateur.


Rôle = "Main" est toujours valide, tout comme il existe d'autres attributs Aria qui ont la carte des éléments HTML5.


Oui, je suppose que c'est une erreur dans le validateur. J'attendrai de voir si elle est réparée.


3 Réponses :


1
votes

Commutatez l'option HTML DOCTYPE de Validator sur HTML5 et doit fonctionner, au moins avec un

code>. Je viens de courir le validateur sur le balisage ci-dessous et de valider:
<!DOCTYPE html>
<head><title>Foo</title></head>
<body>
<div role='main'>
<p>foo</p>
</div>
</body>


0 commentaires

4
votes

Le rôle principal est valide ou non en fonction du type de document que vous utilisez. Si vous utilisez le doctype HTML5: il doit valider. Si vous utilisez un doctype plus tôt comme XHMTL ou html4 il ne sera pas. Voir https://developer.mozilla.org/en- US / docs / Accessibilité / ARIA / Web_applications_and_ARIA_FAQ # What_about_validation.3F pour plus de détails.

Si vous devez utiliser un type de document où il n'est pas valide et que vous devez valider, vous pouvez les ajouter via JavaScript. Cela évitera les problèmes de validation.

Cependant, le rôle principal ne validera si elle est utilisée sur certains éléments. Pour le les rôles valides sont alerte , AlertDialog , application , contentinfo , dialogue , Document , log , marquee , recherche et état .

La dernière version de HTML; HTML5.1 comprend un support natif pour principal via élément principal . Vous pouvez utiliser cet élément au lieu de

. Voir http: // www. w3.org/html/wg/drafts/html/master/grouping-content.html#the-main-element

Les autres éléments qui pourraient être utilisés avec role = "principal" include article , div , figure , toile , p , pré , blockquote , output , travée , tableau , td , tr , em , forte , petit , s , cite , q , DFN , abbr < / code>, temps code , var , samp , kbd , < code> sous , sup , i , b , u , marque , ruby ​​, rt , rp , BDI , bdo , br et WBR , et peut-être quelques autres. De toute évidence, beaucoup d'entre eux sont des éléments spécialisés avec une sémantique implicite et ne peut être utilisé dans certains contexte d'être eux-mêmes valables. Très probablement, soit principal , div ou article sera l'élément le plus adapté à l'utilisation. Pour plus d'informations, consultez https: // dvcs .w3.org / hg / aria-officieux / fichier-premières / conseil / index.html # recommandations table


8 commentaires

Remarque: l'élément principal n'est pas un élément de coupe, vous pouvez donc toujours avoir besoin de la section .


J'utilise réellement le HTML 5 DOCTYPE, mais cela ne valident plus. Je suppose que c'est une erreur du validateur, peut-être que je vais attendre un peu et voir ce qui se passe. Je ne pense pas que le élément principal fonctionnera dans mon cas. Sur la page d'accueil, j'ai une section avec rôle = "maquee" (une diapositive jQuery) suivie d'une section qui affiche une liste de Services, puis enfin la section avec Rôle = "Main" qui ne validait pas.


Le rôle principal est conçu pour ne être inclus une fois dans le document et envelopper tout le contenu principal (pas l'en-tête, la navigation, etc.) l'utilisez-vous comme ça?


Si vous l'utilisez correctement, cela valide. Voir HTML5.VALIDATOR.NU/... < / a>


À l'exception du rôle (code> Attribut a été utilisé sur un div , pas une section . Si vous modifiez le div pour une section , il donne la même erreur de validation.


Il semble donc que la principale n'est plus valable sur la section. Il est logique car il ne devrait y avoir qu'un seul principal, et une section est généralement l'une des nombreuses dans un document, sinon ce n'est pas vraiment une section.


Il existe certains rôles recommandés pour une utilisation par élément. Je vais éditer ma réponse en conséquence.


Merci beaucoup. Il y avait définitivement des changements qui ont été faits. Je suis également confronté à une erreur de validateur étrange. Pour un menu, j'ai un

    élément avec Rôle = "Menubar" , et le
  • a le rôle = "menuitem" . Cela a adopté la validation la semaine dernière, mais maintenant, je reçois un "Mauvaise valeur Menuitem pour le rôle d'attribut sur l'élément Li" Erreur; Si je supprimais le rôle = "menuitem" , il affiche une autre erreur "B>" Seuls éléments avec le rôle = menuitem ou rôle = menuitemradio ou rôle = menuitemcheckbox ou rôle = présentation sont autorisés comme des enfants d'un Élément avec rôle = Menubar ". Assez incompatible ...



2
votes

Maintenant que la poussière a réglé, il est assez évident que le code

est bien et passe dans le validator .

Il fait l'état Droite Ici dans cette table que le rôle principal est un élément valide pour la section élément et de sorte qu'il devrait . .

Si vous y réfléchissez, il serait ridicule de faire valoir cette syntaxe non valide, les personnes qui souhaitent créer leur plan de document une manière spécifique devraient pouvoir le faire sans être forcée de faire quelque chose comme

Pour contourner le problème, cela serait juste absurde.

0 commentaires