1178 sujets

Accessibilité du Web

Pages :
(reprise du message précédent)

Salut,
QuentinC a écrit :

Se servir de classes CSS réservées pour js et qui n'existent pas réellement dans la feuille de style, ce n'est pas une sorte de détournement quelque part ?

Justement, les classes n'ont rien de spécifiques aux CSS, rien de tel n'est mentionné dans les spec. C'est juste une utilisation possible.

Extrait des spec. html 4 (en)
a écrit :

The class attribute, on the other hand, assigns one or more class names to an element; the element may be said to belong to these classes. A class name may be shared by several element instances. The class attribute has several roles in HTML:
- As a style sheet selector (when an author wishes to assign style information to a set of elements).
- For general purpose processing by user agents.


Je crois même me rappeler que tu utilises les classes dans ton validateur de formulaires, afin de préciser le type de donnée attendu à la saisie.

Donc non, pas de détournement là-dedans, au contraire Smiley cligne

Pour revenir à la question, je plussoie Florent pour l'utilisation de script, plus souple dans ce cas précis et plus modulable si le fonctionnement venait à s'étoffer.

Et si je pousse encore la réflexion, je me dis que l'action du lien est d'exécuter cette action coté serveur si javascript est désactivé, donc je mets le div cible dans l'url.
Si JS actif, j'ai une classe générique "injector" sur mes liens (une information générique de comportement) qui me permet d'ajouter la surcouche javascript, et lors de l'exécution du listener, je parse l'url href...
Mais peut-être que je m'égare Smiley cligne
a écrit :
Je crois même me rappeler que tu utilises les classes dans ton validateur de formulaires, afin de préciser le type de donnée attendu à la saisie.

Oui, exact. Cela ne m'empêche pas pour autant de remettre en question certaines choses, dont précisément celle-là. Ca fait déjà un certain temps que j'ai écrit ce script. Si je trouvais ça absolument génial au moment où je l'ai fait, finalement je me demande si c'était si génial que ça. Y'a plein de trucs dans mon site que je commence à trouver de plus en plus ... bof et que je devrais bien refaire.

De toute façon dans le cas de la validation de formulaire, mon super truc tendra à disparaître avec l'avènement de HTML5 qui propose presque tout ce qu'il faut pour les vérifications de formulaires les plus courantes.
Pour les navigateurs un peu conservaeteurs, j'avais commencé d'écrir un script HTML5FormsSimulator, actuellement en stand-by parce que j'ai d'autres trucs à faire plus urgent qui comptent pour mes études.
Au fait à ce propos j'ai remarqué que <input type="nimportequoi" /> affichait quoi qu'il arrive un champ texte simple ligne. Je sors un peu (beaucoup) du sujet initial mais je me demandais si c'était une spécialité de IE ou si c'était réellement utilisable. Rien vu de particulier dans les spec à ce sujet.

Bon je vais m'arrêter là, je suis en train de divaguer complètement du sujet de départ.
QuentinC a écrit :
Au fait à ce propos j'ai remarqué que <input type="nimportequoi" /> affichait quoi qu'il arrive un champ texte simple ligne. Je sors un peu (beaucoup) du sujet initial mais je me demandais si c'était une spécialité de IE ou si c'était réellement utilisable. Rien vu de particulier dans les spec à ce sujet.

Par défaut un input est un input de type texte. Si tu écris juste
<input />
tu obtiens un champ texte.

Je suppose que si tu utilises une valeur inexistante pour l'attribut type, le navigateur bascule sur la valeur par défaut, donc "text".
Je serai plutot d'accord avec jeje, l'attribut class est tout à fait adapté à y mettre ce genre d'informations. Même s'il est actuellement utilisé quasi uniquement pour des définitions CSS ce n'est pas sa seule fonction, rien ne nous empeche de nous en servir pour autre chose.

Pour le cas précis de l'exemple indiqué dans le premier message, j'utiliserai personnellement directement l'attribut href avec un href="?action=truc#div1" comme jeje propose aussi, aucun probleme pour retrouver la cible à partir de là en javascript.

Et pour finir, je vous invite à jeter un oeil si vous ne l'avez pas déjà vu sur le plugin metadata de jQuery : http://plugins.jquery.com/project/metadata qui affronte cette problématique aussi (soit dans la class soit dans un attribut custom) mais qui parvient à stocker des objets complexes
Pour la solution de Florent avec les balises <script>, J'avais vraiment envie d'éviter ça. Le but principal de la chose était que un intégrateur HTML puisse facilement créer des fonctionnement ajax sans pour autant avoir a écrire une ligne de JS.
Sinon je reconnais que c'est le plus simple.

jeje a écrit :
Et si je pousse encore la réflexion, je me dis que l'action du lien est d'exécuter cette action coté serveur si javascript est désactivé, donc je mets le div cible dans l'url.

Je peux pas vraiment faire ça car effectivement il existe une action alternative qui s'execute coté serveur en cas d'absence de javascript.
Seulement cette action ne doit justement pas avoir ce dernier paramètre , car c'est javascript qui va ajouter ce paramètre puis effectuer une requête ajax et n'avoir QUE le contenu de la div en retour a cause justement de ce parametre.

Tymlis a écrit :
href="?action=truc#div1"

Très pertinent , j'y avait même pas pensé ...
Mais si je veut quand même me servir des ancres pour une raison diverse je l'ai dans ... l'os.

Sinon c'est exellent le plugin de Jquery (malheuresement j'utilise actuellement mootools ... persone n'est parfait Smiley murf ).
Mais je crois que c'est cette approche qui est la meilleure. Et tanpis si cela doit être un peu lourd a developper sur le coup.

Une dernière petite question :
Je croyais que CLASS ne tolerait que les caractères alphanumerique, underscore et le signe moins [-_A-Za-z].
Jviens de faire des tests sous le validateur en ligne du w3 il n'a rien dit au sujet de [{} () :]
Le validateur est plus souple que ce que décrit la DTD XHTML, ou ces caractères sont bel et bien authorisé dans l'attribut CLASS
Bonsoir,
Citron.mecanik a écrit :
Seulement cette action ne doit justement pas avoir ce dernier paramètre , car c'est javascript qui va ajouter ce paramètre puis effectuer une requête ajax et n'avoir QUE le contenu de la div en retour a cause justement de ce parametre.


<a href="/?dest=div1">

et javascript vient ajouter un paramètre &ajax=1
Un seul paramètre utilisé à chaque fois que l'on fait de l'ajax, automatisation des traitements ajax coté serveur, automatisation du test support XHR coté client... et réponse à la question initiale Smiley murf

a écrit :
Je croyais que CLASS ne tolerait que les caractères alphanumerique

C'est déclaré en cdata-list et cdata n'a pas ces restrictions, en effet.
Perso je suis la déclaration de ID pour mes classes, pas besoin de plus.
On va attendre l'avis des spécialistes, lire les spec ça me fatigue vite Smiley ravi

a+
Hello,

Dans la lignée des attributs personnalisés (invalides en HTML 4.01 et fortement déconseillés par Laurent ci-dessus pour des questions de maintenance et d'abus possibles notamment), on peut jeter un coup d'oeil au brouillon de HTML 5 qui proposera à priori des attributs personnalisés: data-monattribut:

http://www.w3.org/html/wg/html5/#custom-data-attribute
Comment ça va etre pratique ! Smiley ravi

En attendant, si cela en interesse certains, j'ai opter pour la solution suivante :
<a 
    href="?action=truc" 
    class="skin target (div01)" >blabla</a>


Comme ça je recupère facilement les éléments concernés grace à un selecteur CSS ( genre $$('.target') )
Après je recup ce qui se trouve entre paranthèse dans l'attribut CLASS et le tour est joué.

Finalement c'était pas bien dur Smiley cligne
Pages :