IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le Web bientôt doté d'un nouveau langage ?
CAS s'inspire du CSS pour proposer une définition des attributs des balises HTML dans une feuille

Le , par Hinault Romaric

238PARTAGES

7  0 
Tab Atkins Jr, un représentant de Google au sein du W3C (World Wide Web Consortium) vient de proposer à l’organisme un nouveau langage de script pour normalisation.

Le langage CAS pour Cascading Attribute Sheets s’inspire grandement du CSS (Cascading Style Sheets), à la différence qu’il est basé sur un concept d’attributs HTML.

L’idée de base autour de ce nouveau langage est que tout comme avec le CSS, les développeurs pourront définir dans un fichier des attributs pour les balises HTML, qui seront directement appliqués à l’ensemble d’une page lors de l’appel de ces balises.

Concrètement, le développeur pourra par exemple écrire le code CAS suivant :

Code CSS : Sélectionner tout
1
2
3
4
  
video { 
  preload: metadata; 
}

Lors de l’utilisation de la balise video dans son application Web, l’attribut « preload » sera automatiquement ajouté et sa valeur sera définie à « metadata ».

Un lien vers le fichier CAS doit au préalable être inclus dans la page HTML en utilisant la balise script <script type="text/cas">.

Selon la description d’Atkins, la grammaire de CAS est pratiquement identique à celle du CSS. La feuille d’attribut peut contenir des règles, des sélecteurs, des accolades et des déclarations.

Au niveau où le CSS a normalement un nom de propriété, CAS utilise un nom d’attribut. Tout jeton unique comme une chaine, un numéro ou un identifiant peut être utilisé pour définir la valeur d’un attribut.

Compte tenu de sa similitude avec le CSS, CAS peut être facilement pris en charge par les navigateurs qui pourront utiliser l’analyseur CSS existant en y apportant très peu de modifications.

La proposition de Tab Atkins Jr est en train d’être analysée par le W3C qui n’a pas encore pris une décision sur son adoption ou pas.

Source : W3C

Et vous ?

Que pensez-vous de CAS ? Intéressant ou le Web n'a pas besoin d'un langage de script de plus ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Lutarez
Membre chevronné https://www.developpez.com
Le 11/09/2012 à 19:55
Citation Envoyé par la.lune Voir le message

Code : Sélectionner tout
<a>Mon lien</a>
Si par exemple ta balise a étant le 3e on peut avoir ceci
Code : Sélectionner tout
1
2
3
4
5
a:nth-child(3){
    href : 'http://google.com';
    class : 'misenforme';
}
Sauf que si une autre personne dans ton équipe "s'amuse" à changer l'ordre de tes liens dans la page, tout tes liens deviennent par conséquent faux. Dans un cas comme celui-ci, je pense que c'est une très mauvaise chose d'utiliser cette techno !
6  0 
Avatar de LSMetag
Expert confirmé https://www.developpez.com
Le 12/09/2012 à 11:00
La logique est intéressante :

Séparer les balises html de leur comportement.

Peut être intéressant lorsque l'on a des structures de balises récurrentes.
Comme dit plus haut ça permet d'avoir un standard permettant une fragmentation et une factorisation supplémentaire de son code html.

Indéniablement, c'est un gain de productivité pour le développeur. C'est aussi une simplification des pages HTML. Mais ça risque de nuire à la productivité des personnes qui devront ensuite reprendre son code ou le maintenir.

Je ne sais pas si c'est une très bonne idée.

imaginez qu'on fasse :
Code : Sélectionner tout
<div id = "test1"><input /> <input/></div><div id = "test2"><input/> <input/></div>
puis
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
#test1 input
{
   type="button";
   text="coucou";
   value = "keke";
}

#test2 input
{
   type="text";
   text="coucou";
}
Pas évident de savoir au premier abord quel input correspond à tel composant.
4  0 
Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 11/09/2012 à 18:09
Citation Envoyé par grunk Voir le message

Parce que si c'est pour ecrire

Code : Sélectionner tout
<a id="lelien">Mon lien</a>
Code : Sélectionner tout
1
2
3
4
#lelien {
    href : 'http://google.com';
    class : 'misenforme';
}
Ca présente quand même pas beaucoup d'intérêt.
D'abord le facteur important ça permettra de factoriser plusieurs attributs qui sont les même dans plusieurs balise. et ça c'est un +10.

D'autre part toute personne ayant fait du html5 sait très bien que les balises sont trop long parce que les attributs sont nombreux alors du coup on a un gain et modularise nos attributs aussi.

Et pourquoi pas comme ça :

Code : Sélectionner tout
<a>Mon lien</a>
Si par exemple ta balise a étant le 3e on peut avoir ceci
Code : Sélectionner tout
1
2
3
4
5
a:nth-child(3){
    href : 'http://google.com';
    class : 'misenforme';
}
N'est ce pas un gain et au cas ce même lie repète dans d'autre balise. En tout cas je dis oui pour ce projet et merci pour la personne ayant réfléchi sur ça +100
3  0 
Avatar de Kamule
Futur Membre du Club https://www.developpez.com
Le 11/09/2012 à 13:53
Un nouveau moyen de mutualiser les déclarations c'est toujours bon à prendre. Ca risque en plus de faciliter la mise en cache de ce genre de données.
Et comme dit dans l'article, c'est très proche du CSS, donc facile à ajouter aux navigateurs. Par contre, un moyen simple de gérer la compatibilité avec les anciens navigateurs ?
2  0 
Avatar de grunk
Modérateur https://www.developpez.com
Le 11/09/2012 à 14:20
Rien que pour avoir des pages HTML qui vont à l'essentiel , ca pourrait être sympa.

D'un autre coté j'ai du mal à voir combien de fois on a besoin d'attributs qui pourraient être mutualisés dans une fichier à part ?

Parce que si c'est pour ecrire

Code : Sélectionner tout
<a id="lelien">Mon lien</a>
Code : Sélectionner tout
1
2
3
4
#lelien {
    href : 'http://google.com';
    class : 'misenforme';
}
Ca présente quand même pas beaucoup d'intérêt.
3  1 
Avatar de Zefling
Expert confirmé https://www.developpez.com
Le 12/09/2012 à 9:18
Si c'est aussi simple que du CSS, ça va vraiment faciliter le « responsive design » et le support conditionnel. Mais bon, s'il n'y pas de changement en live l'intérêt est tout de même moindre. En l'état actuel, j'y vois assez peu de réel intérêt si ce n'est de faire du sur-templeting et finalement compliquer les choses.
2  0 
Avatar de sekaijin
Expert éminent https://www.developpez.com
Le 13/09/2012 à 7:52
je suis moi aussi assez septique.
un des pb du développement web est justement la multiplication des langages

la norme W3C HTML5 à contrairement au versions antérieures normalisé le DOM et non le source

dans XHTML et HTML 4<= le W3C normalisait le source HTML et définissait la façon dont le langage devait être interprété pour donner un DOM

dans HTML5 on a normaliser le DOM et le code source n'est définit que comme une sérialisation possible parmis d'autre.

le but était de permetre l'émergence d'autre forme de sérialisation
on a dans les Groupe de travail beaucoup parlé de chose comme JSON, CSS, XML, ??

ce côté de la norme est resté en l'état car justement trop de langages en ajouter un impliquais un moteur d'interprétation de plus dans les navigateurs.
mais les quelques labo à s'être penché sur le sujet y voyait l'opportunité de proposer un langage unique regroupant structure du document (HTML) Style (CSS) Comportement (Javascript)

cette proposition n'apporte pas grand chose au moulin. elle ne vas pas assez loin et n'apporte pas grand chose.
par exemple avoir dans le même esprit un seul langage qui fait tout à la CSS pour reprendre l'exemple donné plus haut
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{DOCTYPE html}
html {
    head {
        style {
            div {
                class working;
            }
            .working {
                color: red;
            }
        }
    }
    body {
        div {Hello World !}
    }
}
cela pourait effectivement en se penchant dessus avoir des vertues. mais embarquer un Nieme langage qui ne traite qu'une infime partie des choses me parait peut souhaitable.
A+JYT
2  0 
Avatar de transgohan
Expert éminent https://www.developpez.com
Le 11/09/2012 à 14:39
Je suis tout aussi sceptique que grunk, je ne suis pas dans le métier mais lorsque je développe quelques petits sites je n'ai jamais à utiliser des attributs HTML autres que title, alt ou href (et sans doute deux ou trois que j'oublie mais bon vous voyez le nombre quoi...).
La grosse part de renseignement se trouve dans la forme du DOM et des propriétés CSS.
1  0 
Avatar de gwinyam
Membre chevronné https://www.developpez.com
Le 11/09/2012 à 15:25
Dans une application riche, cela pourrait avoir un sens. Mais en fait non, puisque dans une application riche, vous utilisez un moteur de templates. Et si vous l'utilisez correctement, vous aurez rarement à répéter une balise avec les mêmes attributs.

De plus, ça fera un fichier de plus à charger, pas terrible pour le chargement doux. Vous allez charger la structure du site (HTML simple), puis la description précise (CAS) de la structure puis l'apparence de la structure (CSS) puis son comportement (JS). Sans compter les nombreux médias et annexes de scripts. Ça va pas alléger les sites ça.

Comme grunk, je suis très sceptique. Je demande à voir.
1  0 
Avatar de thelvin
Modérateur https://www.developpez.com
Le 11/09/2012 à 16:53
À la limite j'ai rien contre l'architecture proposée par ce truc.
Simplement... Bon, moi je veux bien croire que cela puisse possiblement servir à quelque chose.
Mais j'aimerais un exemple. Parce que, désolé, mais des balises <video>, dans les rares cas où j'en ai plus d'une par page, ben elles ne font justement pas la même chose.
1  0