в xhtml теги должны закрываться, и допускается сокращенная запись тега в случае отсутствия в нем контента… Например,
, <span /> и другие. Это аналогично стандартной записи:
В принципе можно и <button/>. Это не важно. Но основые методики требуют span. А нарушает он семантику тем что на вопрос — зачем для контента и структры нужен этот тэг ответа нет.
Согласен, использование слова семантики в данном посте, возможно, не совсем корректно.
Однако идея что в каком то месте нужно навставлять тэгов для того чтобы помочь браузеру правильно отобразить тот или иной элемент мне не нравится. В том числе Javascript.
Наверное это связано с тем что основная специфика моей деятельности — веб-приложения. И стиль может быть изменен но при этом добавлять в сотни кнопок span тэг только для того чтобы отобразить по другому я считаю неправильным.
Запомните: семантику нарушает применение тегов не по назначению. Назначение тегов span — быть контейнером. Для оформления, например. Для создания неразрывных фрагментов строк, например. Для чего угодно.
Так вот, применение тут тега span не нарушает семантику.
1. Когда тег span стал блочным?
2. Это еще почему? Логически заголовок один, а внутри него может быть масса span'ов. span — это просто контейнер, их может быть сколько угодно и где угодно.
Кнопка на основе тега A без внутреннего SPAN