Uz elemente koje smo obradili, naveli smo njihove naj~ce~s~te atribute. No postoje atributi koji se mogu dodati prakti~cki svakom elementu unutar body elementa. Oni se zovu univerzalni atributi, i uglavnom pru~zaju dodatne "neesencijalne" podatke o sadr~zaju pojedinih elemenata. Ovdje ~te biti navedeni neki naj~ce~s~te kori~steni.
Ovo je vrlo mo~tan atribut. Na njemu se zasniva mehanizam klasifikacije, koji nam omogu~tuje da dodatno profinimo osnovne elemente XHTMLa. Zahvaljuju~ti njemu, mo~zemo imati proizvoljno novih "elemenata".
Recimo da ~zelimo unutar nekog dokumenta pisati matemati~cke izraze. Rekli smo da za takvo ne~sto mo~zemo koristiti code element. No ~sto ako unutar istog dokumenta ~zelimo pisati i kompjuterski kod? S jedne strane, nije ba~s sretno rje~senje koristiti jedan element (code) za dvije bitno razli~cite svrhe. S druge strane, nije pametno ni odre~ti se semantike code elementa i koristiti recimo tt element za matemati~cke zapise.
Ono ~sto nam u tom trenutku treba, je finija "podjela uloga" me~du elementima. I jedno i drugo je code, samo je jedno code.math, a drugo je code.C (ili ~sto ve~t). To se mo~ze posti~ti upotrebom class atributa: code class="math" i code class="C" su elementi koji nam trebaju. I jedan i drugi su code element, renderiraju se jednako (osim ako propi~semo druga~cije CSSom, te mogu primiti iste dodatne atribute kao i obi~cni code element. Razlikuju se samo po tome ~sto su to dvije razli~cite potklase code elementa, semanti~cki odvojene i spremne za dalju obradu kao dva razli~cita elementa, ako je potrebno.