Alexander Kuklev (akuklev) wrote,
Alexander Kuklev
akuklev

Category:

А если вы на него бочку катите — это уже контейнерные перевозки...

Чего-то на html5 бочку катят, а он в целом отличен! Особенно встроенная валидация форм, аттрибуты required и pattern, новые семантические элементы, отказ от идиотских ограничений xml.

Я бы добавил пару вещей по мелочи:
1) Добавил бы у полей аттрибут confirm='field id' для автовалидации ситуации "confirm password" или "confirm email". (На данный момент добавил)
2) В тэгах hN добавил бы аттрибут for как у тэга label, счас сам использю, хоть и не по стандарту.
3) Допустил бы у тэгов button и img аттрибут href, чтоб делать блочные линки (это де-факто работает в части браузеров).
4) Альты картинок сделал бы не аттрибутом, а контентом тэга img, как это сделано в тэге video (это де-факто работает в части браузеров).

Многословность бесит, потому ввёл бы синтаксический сахар:
1) Допустил бы синтаксис <tag.id> вместо <tag id="tag_id">, напр. <form.login method='POST'> вместо <form id='form.login' method='POST'>.
2) Для классов/ролей ввёл бы особый синтаксис. Они же метки тэга, так что вместо <img class="icon small" src='bla'> естественно писать <img #icon #small src='bla'>.

Для увеличения семантической чистоты:
1) Задеприкейтил бы открывающие и закрывающие тэги <li> и <p>, ввёл бы <li\> и <p\>, простираюиеся до следующего такого же или конца родительского блока:
<ul>
  <li\> item1
  <li\> item2
</ul>
2) Ввёл бы сокращённую нотацию вида <#strong> для <span #strong></span> и соответственно убрал бы тэги em, strong, i, b, tt, code, s, u и т.д. в пользу таких вот.
3) Разделил бы разные поля input type на field, checkbox, radio и т.д.
4) title и keywords сделал бы аттрибутами тэга html, link rel и разные meta разделил бы по типам: icon там, stylesheet, script и т.д.

Из фич добавил бы:
1) Тэги <footnote>, <sidenote> и <figure>.
2) Табуляцию в потоке текста (а то стихи Маяковского сверстать невозможно) через тэги <anchor.id> и <tab to='anchor id'>/<skip to='anchor id'> (горизонтальная/вертикальная табуляция до правейшего/нижайшего якоря с указанным id).
3) Нормальные таблицы (т.е. как в ТеХе) с поддержкой выравнивания по десятичной запятой или любому другому маркеру.

Вот как надо (рабочий пример):
<!DOCTYPE html>
<html title="Login">
  <head>
    <icon src=/image/favicon.ico />
    <stylesheet src=/stylesheet/main.css #screen #handheld />
  </head>

  <nav>
    <img.goHome href=/ src=/image/logo.png> Home </img>
    <button.goBack href=@back> Back </button>
  </nav>

  <h1 for=form.login> Login </h1>
  <form.login method='POST'>
    <label for=field.username> User name </label>
    <field.username pattern='/[A-Za-z][A-Za-z0-1_-]+/' required/>
 
    <label for=field.password> Password </label>
    <field.password type='password' required/>

    <button.doLogin type='submit'> Login </button>
    <button.resetPassword href=/reset-password> Forgot your password? </button>
  </form>

  <footer><a href=/sign-up>Sign up</a> or login with:
    <img #exticon src=/icons/facebook.png href=@fbLogin> Facebook </img>
    <img #exticon src=/icons/twitter.png href=@twLogin> Twitter </img>
  </footer>
</html>


CSS3 хорош фичами (хотя до LATEXа и XSL:FO в отдельных аспектах не дотягивает и strechable-fillers плохо поддерживает), в форме less.css очень приятен глазу... но концептуально всё равно хрень, т.к. не содержит древотрансформационной части — именно того, что позволяет полностью отделять представлние от контента.

Надо разделить делать как в связке XSLT+XSL:FO — отдельно компонентный layout-язык и отдельно таблицу стилей, дающую хинты, как переводить контент в лейаут. Только с чтобы stylesheet-часть была с человеческим синтаксисом навроде less.css, а XSL:FO не был не чисто полиграфическим, а экранно-динамическим, взять лучшее из мозилового XULе и адобовско-флешевого MXML.

P.S. Ещё меня люто радует, что SPDY взят за базу для HTTP/2, это просто мечта.. Свести к минимуму количество RTT на загрузку страницы. А вот что websockets поверх http поверх tcp — это, конечно стыд и срам... Когда есть STT (Structured Stream Transport), идеально решающий задачу вебсокетов, и совмещающий (и превосходящий) все достоинства TCP/UDP и ещё десятка протоколов...
Subscribe

  • Прогресс

    Десять дней назад, вторая ступень SpaceX'овского корабля Starship своим ходом слетала своим ходом на десять километров вверх, и усмепшно приземлилась…

  • О водосбережении

    Как известно, питьевая вода во многих странах дефицитный ресурс. И даже в дождливой Германии летом иногда случаются засухи, в результате которых она…

  • 36

    Традиционный деньрожденный пост. Год выдался необычный. :)

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments

  • Прогресс

    Десять дней назад, вторая ступень SpaceX'овского корабля Starship своим ходом слетала своим ходом на десять километров вверх, и усмепшно приземлилась…

  • О водосбережении

    Как известно, питьевая вода во многих странах дефицитный ресурс. И даже в дождливой Германии летом иногда случаются засухи, в результате которых она…

  • 36

    Традиционный деньрожденный пост. Год выдался необычный. :)