Кстати вот
t="Открыть"
а в css
promo-o:before{
content:attr(t);
}
Как видите атрибут может быть любым.
Про атрибуты.
Разница лишь в том, что есть список кошерных атрибутов, которые браузер компилирует в модели документа и рендерит часть кошерных согласно спецификации или близко к ней. Например атрибут disabled вызывает явное засерение кнопки.
Все трефовые атрибуты, то есть которые браузер нипонял - никуда не деваются, они общедоступны через стандартный метод getAttribute(name); Если указанного имени нет, вернется null, или "", не помню, от браузера еще зависит.