5568 sujets
Sémantique web et HTML
Salut,
je vois pas mal de sites dits "html5" céder à la "mode" des attributs role et en coller un peu partout. Cependant, la spécification html5 définit des roles implicites pour certains éléments. Ainsi, le role implicite de l'élément <article>, et en l'absence d'attribut role, est le role "article". Donc quel est l'intérêt d'indiquer <article role="article"> * ? Il y a redondance d'information.
À moins que ce ne soit pour pallier un manque de support dans les lecteurs d'écran par exemple ?
* Idem pour <body role="document">, <nav role="navigation">, …
edit:
Question annexe : Est-ce que ces deux documents sont strictement identiques d'un point de vue sémantique ?
et :
Et si c'est le cas, peut-on s'attendre à obtenir la même hiérarchisation de titre dans les deux cas ? (selon l'algorithme défini par html5 s'entend)
Modifié par Bobe (30 Sep 2011 - 20:20)
je vois pas mal de sites dits "html5" céder à la "mode" des attributs role et en coller un peu partout. Cependant, la spécification html5 définit des roles implicites pour certains éléments. Ainsi, le role implicite de l'élément <article>, et en l'absence d'attribut role, est le role "article". Donc quel est l'intérêt d'indiquer <article role="article"> * ? Il y a redondance d'information.
À moins que ce ne soit pour pallier un manque de support dans les lecteurs d'écran par exemple ?
* Idem pour <body role="document">, <nav role="navigation">, …
edit:
Question annexe : Est-ce que ces deux documents sont strictement identiques d'un point de vue sémantique ?
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Le titre</title>
</head>
<body>
<header role="banner">
<h1>Titre principal</h1>
<nav>
<!-- Liste de liens -->
</nav>
</header>
<section>
<!-- code html quelconque -->
<article>
<h1>Titre de l'article</h1>
<p>...</p>
<aside>
<!-- notes -->
</aside>
</article>
</section>
<footer role="contentinfo">
</footer>
</body>
</html>
et :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Le titre</title>
</head>
<body>
<div role="banner">
<h1>Titre principal</h1>
<div role="navigation">
<!-- Liste de liens -->
</div>
</div>
<div role="region">
<!-- code html quelconque -->
<div role="article">
<h1>Titre de l'article</h1>
<p>...</p>
<div role="note">
<!-- notes -->
</div>
</div>
</div>
<div role="contentinfo">
</div>
</body>
</html>
Et si c'est le cas, peut-on s'attendre à obtenir la même hiérarchisation de titre dans les deux cas ? (selon l'algorithme défini par html5 s'entend)
Modifié par Bobe (30 Sep 2011 - 20:20)
Laurie-Anne a écrit :
En plus : L'élément footer n'est pas sensé avoir de role pour ARIA.
C'est plutôt qu'il n'a pas de rôle ARIA implicite. Une restriction supplémentaire est ajoutée: si on lui attribue un rôle ARIA, ce doit être "contentinfo".
Bobe a écrit :
Est-ce que ces deux documents sont strictement identiques d'un point de vue sémantique ?
Ça dépend pour qui.
- Pour un User Agent qui implémente HTML4 et ARIA, celui avec des éléments sectionnant HTML5 sans attribut role a une sémantique moins détaillée.
- Pour un User Agent qui implémente HTML4, ARIA et les rôles implicites en HTML5, c'est kif-kif.
- Pour un User Agent qui implémente HTML5 et ARIA, c'est kif-kif pour les rôles mais il y a aura une différence au niveau du plan du document.
Dans l'absolu et en prenant HTML5 comme sémantique de référence, ça sera similaire pour les rôles mais pas pour le plan du document.