Каким я хочу видеть HTML6

в 16:18, , рубрики: html, web-разработка, верстка, метки: , ,

Заранее хочу предупредить, что тут вы не найдёте каких-либо исследований на тему развития веба и html в частности. Тут не будет ни оценки важности CSS3 ни семантики тегов html4 — html5. Это просто крик в пустоту о том, каким инструментом я, как верстальщик, хотел бы пользоваться.
Если интересно, прошу пожаловать под кат.

Возьмём классический случай: футер сайта.
Его можно выполнить так:

<div class=”footer”> … </div>

Но с тем же успехом и так:

<footer> … </footer>

А можно так:

<section class=”footer”> … </section>

Но это варианты семантически верны (section не для всех случаев, но это уже мелочи). А ведь есть ещё и:

<p class=”footer”> … </p>
<span class=”footer”> … </ span>

, или:

<table class=”footer”>
	<tr>
		<td> … </td>
	<tr>
</table>

, даже:

<a class=”footer”> … </a>
<b class=”footer”> … </b>

И всё это многообразие можно представить абсолютно одинаково при помощи css!
Более того. Однажды я видел сайт полностью выполненный из блоков вроде этого:

<ul class=”footer”>
	<li>…
</ul>

При этом в css было прописано:

ul {display:table; … }
li {display:table-cell; … }

Так какой вообще тогда смысл во всех этих тэгах? Ведь 9 из 10 тегов взаимозаменяемы при помощи css. А для пользователя результат всё-равно один и тот же.

И плавно мы подошли к другой проблеме: Если 9 из 10 взаимозаменяемы, то почему этот 1 из 10 выбивается из колеи?

Примером такого тега является <textarea>
Что бы хотя бы повторить функционал <textarea> и его оформление при помощи, например, <div>’а приходится обвешивать страницу лишними скриптами и добавлять значительное количество строк к css. А с другой стороны, <textarea> практически не способен повторить функционал любого другого тега.

А я ещё не упоминал про «технические» теги.
Например подключение внешних файлов.
Самый логичный по названию тег – <link>. Всё верно, что бы подключить favicon добавляем в <head>:

<link rel="shortcut icon" href=" … ">

Что бы подключить таблицу стилей

<link rel="stylesheet" type="text/css" href=" … ">

Что бы подключить javascript

<script type="text/javascript" src=" … "></script>

Что? Да, всё верно. Всё подключаем при помощи тега <link>, а скрипты при помощи тега <script>. Было бы ещё понятно, если бы стили подключались тегом <style>. Потому что в нём, как и в <script> можно писать само тело таблицы стилей (или скрипта), но увы.

Складывается впечатление, что со стандартами html случилось примерно то же, что и с ГОСТами. Когда изначально набор правил был придуман для облегчения работы, а в итоге только усложняет её.

А теперь, я всё-таки расскажу каким бы я хотел видеть html.


Во-первых: всего 5 тегов.

  1. <a> … </a> — стандартный закрытый тег, полный аналог современного <div>’а
  2. <b> … — тег не требующий закрытия, ближе всего к нему из современных тегов <li>. Но, если применить жёсткое правило: r и/или n, а так же следующий <b> или закрывающий родительский </a> — являются закрывают тег. Можно использовать его аналогично h2 и для похожих случаев.
  3. <c /> — стандартный тег без “innerContent” но с “value” – это кнопки, поля ввода и подобные элементы.
  4. <d /> — пустой тег, использующийся для оформления. Ближайшие аналоги — <br /> и <hr />. Но так же им можно выполнить лого, или популярные когда-то снежинки под новый год.
  5. <e /> — технический тег, замена современным <link>, <meta>, <script> и иже с ними.

Во-вторых: изначальный, но более грубый CSS-reset – полное совпадение стилей всех описанных тегов, кроме <e /> — он невидим. Фактически первые 4 из описанных выше тегов должны обладать изначальным стилем современного <span>.

В-третьих: полная передача всех прав оформления от html к css(или его аналогу). Я хочу иметь возможность применить как полностью, так и частично оформление вышеупомянутого <textarea> к любому из первых 4 тегов.

В-четвёртых: полная передача прав управления от html к javascript(или его аналогу). Даже функционал элементарных checkbox’ов отдать. Опять же всё ради того что бы иметь возможность применить полностью или частично функционал <textarea> к любому из первых 4 тегов.

Само собой разумеется, что будут использоваться framework’и как для javascript так и для css, которые уберут недостаток, заключающийся в повышенной сложности некоторых стандартных моментов: отсутствие тегов <b>, <i>, <u> и т.д.

P.S. Конечно ещё многое хотелось бы поменять в css, но это уже совсем другая история.

Автор: titulusdesiderio

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js