Меня твои теги уже просто…, или о наболевшем про HTML

Выговорюсь тут о всём наболевшем по поводу HTML. Больше негде выговориться — на ИТшных сайтах закидают тухлыми яйцами.

Все знают, что такое HTML и для чего он нужен, но испытать на себе все его плохие стороны доводится только людям, так или иначе связанным с веб- разработкой.

А плохих сторон у него хватает. Начну с того, что в список стандартных тегов HTML накидали хренову кучу тегов, которые не отличаются друг от друга ничем, кроме CSS- стиля, применяемого к ним по умолчанию. Что- то можно списать на те времена, когда из браузеров были только IE и Netscape, что- то оправдать необходимостью чем- то компенсировать недостаточные возможности CSS, когда еще было разделение на блочные и строчные элементы. Но те времена уже прошли, а введение таких тегов- клонов продолжилось, теперь уже под предлогом семантической разметки. Можно надеяться, что появление Web Components положит конец этому безобразию, но даже если так, то изменения будут происходить с черепашьей скоростью.

Другая проблема — нет MIME- типизации для элементов. Та, что есть сделана из рук вон плохо и доступна не для всех тегов. Такое впечатление, что разработчики стандартов каждый раз специально уходили от решения этой проблемы. Поводов для того, чтобы сделать нормальное, полноценное решение было достаточно — когда встала необходимость деление DOM- узлов на Text node и Element node, когда вводились теги object, embed, iframe, а теперь ещё source, video и audio. Но до сих пор вместо этого имеются какие- то полурабочие полумеры. Ввести атрибут, в котором для каждого элемента прописывался бы MIME- тип содержимого, чтобы и содержимое элемента обрабатывалось на основе этого типа — это так сложно, или религия не позволяет. Нет, вместо этого мы наклепаем img, object, embed, audio, video, iframe, а теперь ещё и picture. Больше тегов богу тегов, красивых и разных!

Третья проблема — формы и отображение списков. Если на HTML кроме разметки возложили ещё что- то связанное с отправкой данных на сервер, то эту задачу надо решать как следует, а не спустя рукава. Совершенно очевидно, что во многих случаях требуется отправлять данные более сложной структуры, чем просто одиночную пару "имя = значение".для одного элемента. Кроме того, разные способы отображения одних и тех же способов выбора данных для отправки на сервер должны описываться одними и теми же способами. Внутри одного тега должен описываться массив данных, которые могут быть отправлены на сервер, а способ их отображения должен устанавливаться одним или несколькими атрибутами HTML или свойствами CSS. Иначе говоря, если делать как положено, то должен быть один тег, который в завимимости от значения двух атрибутов выглядел бы
1) как тег select с несколькими option,
2) как несколько input type=checkbox,
3) как несколько input type=radio.
Причем атрибут multiple у тега select уже есть, осталось добавить всего один атрибут, отвечающий за внешний вид. Попутно с этим возможна унификация представления массивов/ списков вообще, и способов это сделать — хренова туча.
Первый, который приходит в голову — сделать так, чтобы datalist относился к select (или к тому, что его заменит) также, как select относится к form. Чтобы расположенный datalist внутри select выглядел и работал также, как select list=list_ id. Дальше сделать, чтобы datalist мог быть видимым, а отображение задавать с помощью CSS свойства list- style- type, к которому добавить 3 варианта: checkbox, radio и number.
Таким образом мог бы получиться тег для представления любых списков — от обычных нумерованых и ненумерованых до отправляемых на сервер через тег select (или его заменитель) и списка подсказок к тегам input. Кроме того, стало бы возможным введение нового тега для отправки двух datalist на сервер в виде ассоциативного массива. Примерно так:

datalist id="data1"
option value="a">Key 1</option
option value="b">Key 2</option
/datalist
datalist id="data2"
option value="a">Key 1/ option
option value="b">Key 2/ option
/datalist>
mapselect keys="data1" values="data2"
/mapselect

Более того, добавлеие для большинства тегов всего одного универсального атрибута (да хоть того же form), отвечающего за "отправляемость" содержимого тега на сервер, значительно облегчило бы веб- разработку.

В реальности вместо всего этого зачем- то понадобилось городить кучу разных вариантов тега input (radio, checkbox и все, что можно заменить тегом button) и тег label в придачу, а также ul, ol и li.




Комментарии:

Один комментарий на «Меня твои теги уже просто…, или о наболевшем про HTML»

  • Tiki
    09 Апр 2015, 11:12

    Извините, что вмешаюсь. Я не очень разбираюсь в том, что вы пишите, но html коды знаю и использую.
    Вы аргумнтируете свою точку зрения, но пока ваши мысли не реализованы на практике, не опробованы, трудно дать им оценку. Возможно, вы пойдёте по стопам Тима Бёрнерс-Ли и создадите свой язык разметки. Сможете запатентовать своё изобретение и больше не будет «тухлых яиц». Когда-то в Билла Гейтса тоже не верили, пока он не изобрёл Windows.

    Рейтинг: 0

Политика конфиденциальности

Наш сайт использует файлы cookies, чтобы улучшить работу и повысить эффективность сайта. Продолжая работу с сайтом, а также заполняя и отправляя любую форму на сайте, вы соглашаетесь с использованием нами cookies и политикой конфиденциальности.

Принять