5546 sujets

Sémantique web et HTML

Bonjour,
je me demande bien pourquoi l'attribut tabindex est invalide sur certains éléments n'ayant pas le focus par défaut mais pouvant le recevoir à condition justement d'être doté d'un attribut tabindex supérieur à 0.
Probablement pour des raisons historiques (auquel cas on peut faire l'impasse sur cette erreur) mais je me demandais plus précisément si certains UA n'avaient pas encore implémenté de genre de possibilités.

D'ailleurs, extrait de la spec MSDN d'IE:
a écrit :
The following elements can have focus by default but are not tab stops. These elements can be set as tab stops by setting the tabIndex property to a positive integer. applet, div, frameSet, span, table, td.


et on a aussi dans le CSS de FF par exemple :
/* focusable content: anything w/ tabindex >=0 is focusable */
abbr:focus, acronym:focus, address:focus, applet:focus, b:focus, 
base:focus, big:focus, blockquote:focus, br:focus, canvas:focus, caption:focus,
center:focus, cite:focus, code:focus, col:focus, colgroup:focus, dd:focus,
del:focus, dfn:focus, dir:focus, div:focus, dl:focus, dt:focus, em:focus,
fieldset:focus, font:focus, form:focus, h1:focus, h2:focus, h3:focus, h4:focus,
h5:focus, h6:focus, hr:focus, i:focus, img:focus, ins:focus, 
kbd:focus, label:focus, legend:focus, li:focus, link:focus, menu:focus, 
object:focus, ol:focus, p:focus, pre:focus, q:focus, s:focus, samp:focus, 
small:focus, span:focus, strike:focus, strong:focus, sub:focus, sup:focus, 
table:focus, tbody:focus, td:focus, tfoot:focus, th:focus, thead:focus, 
tr:focus, tt:focus, u:focus, ul:focus, var:focus {
  /* Don't specify the outline-color, we should always use initial value. */
   outline: 1px dotted;
}

Modifié par Hermann (11 Sep 2009 - 16:09)
Hello,

La technique recommandée par ARIA 1.0 est d'utiliser tabindex="0", ce qui permet à l'élément de recevoir le focus et lui confère une place normale dans l'ordre de tabulation.

HTML5 spécifie le comportement de l'attribut tabindex en fonction des différentes valeurs:
http://dev.w3.org/html5/spec/Overview.html#attr-tabindex

Pour la question de la validité:
- soit on fait du HTML4 ou XHTML1 et on ignore ces erreurs (et on les documente en expliquant pourquoi on les ignore dans le cas d'un projet conséquent);
- soit on fait du HTML5.

Pour la compatibilité:
1. Compatible dans IE 6+.
2. Compatible dans Firefox 1.5+.
3. D'après la date de correction du bug dans WebKit, je dirais que seuls Safari 4+ et Chrome 2+ doivent être compatibles. Ça peut être un peu différent (déjà OK dans Safari 3.2? toujours pas dans Chrome?).
4. Pour Opera, je n'ai pas trouvé de référence précise. Le support d'ARIA a commencé avec la version 9.5 il me semble, pour tabindex="0" il faudrait voir à partir de quelle version exactement c'est implémenté. Au pire, s'il y a eu un retard sur ce point, la version 10 sortie récemment y a sans doute remédié.

Donc: ça devrait marcher dans entre 90% et 99% des navigateurs en circulation.
Ok merci pour ces quelques précisions.
Donc on va dire qu'on peut passer outre cette erreur.
Modifié par Hermann (13 Sep 2009 - 23:01)