Originariamente inviato da Another-Life
Continuo a non vederne il senso...mi spiego meglio:

Se devo assegnare un colore rosso a un solo paragrafo o piu paragrafi che contengono del testo in inglese non è obbligatorio selezionare l'attributo language(lang).l'attributo language è stato pensato per altro e non per essere utilizzato come selettore.Per cui io creerei una classe che sia necessaria solo per assegnare questo tipo di stile.
Infatti l'attributo lang - come tutti gli altri attributi del linguaggio di marcatura XHTML - è stato pensato per fornire una meta-informazione, che NULLA ha a che fare con lo stile, al testo in questione. Anche l'attributo class, utilizzato soprattutto per legarsi al foglio di stile, se ci pensiamo bene ha valenza semantica: serve a raggruppare elementi distinti che hanno però un criterio comune di appartenenza a una famiglia (suddivisione lasciata alla discrezione del progettista).

La potenzialità dei selettori CSS come quello di attributo sta proprio nel poter attribuire stili specifici con un amplissimo spettro di possibilità, senza dover per forza rifarsi ad un unico strumento quale class.

Se mi dici che per te l'unico modo di attribuire uno stile ad un elemento è raggiungerlo tramite detto attributo, allora mi sa che non ti è ben chiara la situazione. XHTML serve a costruire una struttura logica e di significato, mentre CSS ci permette di dare ad essa una rappresentazione visuale. I selettori che stiamo analizzando ci permettono di raggiungere in maniera capillare e precisa tutti i rami della struttura, permettendoci proprio di collegarci a quasi tutte le meta-informazioni che abbiamo utilizzato.

Insomma, stiamo parlando di fine contatto ed estrema indipendenza tra struttura e presentazione.